[console_scripts]
crucible = crucible_ai.cli:main

[crucible_ai.detectors]
keyword = crucible_ai.detectors.keyword:KeywordDetector
regex = crucible_ai.detectors.regex:RegexDetector
tool_call = crucible_ai.detectors.tool_call:ToolCallDetector

[crucible_ai.harnesses]
agent = crucible_ai.harnesses.agent:AgentHarness
chat = crucible_ai.harnesses.chat:ChatHarness
mcp = crucible_ai.harnesses.mcp:MCPHarness

[crucible_ai.probes]
LLM01.001 = crucible_ai.probes.llm01_injection.llm01_001_direct_injection:LLM01001DirectInjection
LLM01.010 = crucible_ai.probes.llm01_injection.promptinject.llm01_010_hijack_hate_humans:HijackHateHumans
LLM01.011 = crucible_ai.probes.llm01_injection.promptinject.llm01_011_hijack_kill_humans:HijackKillHumans
LLM01.012 = crucible_ai.probes.llm01_injection.promptinject.llm01_012_hijack_long_prompt:HijackLongPrompt
LLM01.013 = crucible_ai.probes.llm01_injection.promptinject.llm01_013_hijack_hate_humans_full:HijackHateHumansFull
LLM01.014 = crucible_ai.probes.llm01_injection.promptinject.llm01_014_hijack_kill_humans_full:HijackKillHumansFull
LLM01.015 = crucible_ai.probes.llm01_injection.promptinject.llm01_015_hijack_long_prompt_full:HijackLongPromptFull
LLM03.001 = crucible_ai.probes.llm03_supply_chain.llm03_001_tool_poisoning:LLM03001ToolPoisoning
LLM06.001 = crucible_ai.probes.llm06_agency.llm06_001_tool_boundary:LLM06001ToolBoundary
LLM07.001 = crucible_ai.probes.llm07_sysprompt.llm07_001_naive_extraction:LLM07001NaiveExtraction
LLM10.001 = crucible_ai.probes.llm10_consumption.llm10_001_token_flooding:LLM10001TokenFlooding

[crucible_ai.providers]
anthropic = crucible_ai.providers.anthropic_provider:AnthropicProvider
callable = crucible_ai.providers.callable_provider:CallableProvider
gemini = crucible_ai.providers.gemini_provider:GeminiProvider
mcp_stdio = crucible_ai.providers.mcp_stdio:MCPStdioProvider
ollama = crucible_ai.providers.ollama_provider:OllamaProvider
openai = crucible_ai.providers.openai_provider:OpenAIProvider
webhook = crucible_ai.providers.webhook_provider:WebhookProvider
