## Module Interface Documentation The `Module` class interface provides a standardized way to create and use modules in the `agentic_security` project. Here is an example of a module that implements the `ModuleProtocol` interface. This example shows how to create a module that processes prompts and sends results to a queue. ```python from typing import List, Dict, Any, AsyncGenerator import asyncio from .module_protocol import ModuleProtocol class ModuleProtocol(ModuleProtocol): def __init__(self, prompt_groups: List[Any], tools_inbox: asyncio.Queue, opts: Dict[str, Any]): self.prompt_groups = prompt_groups self.tools_inbox = tools_inbox self.opts = opts async def apply(self) -> AsyncGenerator[str, None]: for group in self.prompt_groups: await asyncio.sleep(1) result = f"Processed {group}" await self.tools_inbox.put(result) yield result ``` #### Usage Example ```python import asyncio import ModuleProtocol tools_inbox = asyncio.Queue() prompt_groups = ["group1", "group2"] opts = {"max_prompts": 1000, "batch_size": 100} module = ModuleProtocol(prompt_groups, tools_inbox, opts) async def main(): async for result in module.apply(): print(result) asyncio.run(main()) ```