Skip to content
BreachPilot

Config Reference (Generated)

Machine-readable companion to docs/config-reference.md. Every key below was verified to exist in config.yaml at generation time — no invented keys. Lab values (config.yaml) vs schema defaults (tools/config_manager.py:CONFIG_SCHEMA) are both shown where they differ. See docs/configuration/overview.md for loading/precedence and docs/configuration/validation.md for type checks.

Source locations use config.yaml:<top-level-line> + tools/config_manager.py:CONFIG_SCHEMA path. Consumers are primary file:line citations; full call graph is in docs/module-guide.md.

Generated 2026-09-07 from config.yaml (439 leaf keys, 46 top-level blocks). Lab-only keys (not in CONFIG_SCHEMA) are marked.

KeyTypeDefault (schema → lab)AllowedSourceConsumer(s)EffectEnv overrideRestartSubsystemTests
adaptive_exploits.enabledboolTrueconfig.yaml:381 + CONFIG_SCHEMA['adaptive_exploits'].enabledcli_exploit_settings.py, mcp_tools/attack_modules.pyMutation enginenoexploittests/test_mutator.py
adaptive_exploits.max_mutationsint5config.yaml:381 + CONFIG_SCHEMA['adaptive_exploits'].max_mutationscli_exploit_settings.py, mcp_tools/attack_modules.pyMutation enginenoexploittests/test_mutator.py
adaptive_exploits.mutation_strategieslist[str]['parameter_tweak', 'encoding_change', 'delivery_swap', 'context_aware']config.yaml:381 + CONFIG_SCHEMA['adaptive_exploits'].mutation_strategiescli_exploit_settings.py, mcp_tools/attack_modules.pyMutation enginenoexploittests/test_mutator.py
agent.capability_discovery_enabledboolTrueconfig.yaml:513 + CONFIG_SCHEMA['agent'].capability_discovery_enabledattack_planner.py, decision_log.pyTask graphnoagenttests/test_agent*.py
agent.decision_log_enabledboolTrueconfig.yaml:513 + CONFIG_SCHEMA['agent'].decision_log_enabledattack_planner.py, decision_log.pyTask graphnoagenttests/test_agent*.py
agent.generated_code_repair_attemptsint3config.yaml:513 + CONFIG_SCHEMA['agent'].generated_code_repair_attemptsattack_planner.py, decision_log.pyTask graphnoagenttests/test_agent*.py
agent.max_actionsint0config.yaml:513 + CONFIG_SCHEMA['agent'].max_actionsattack_planner.py, decision_log.pyTask graphnoagenttests/test_agent*.py
agent.max_retries_per_taskint2config.yaml:513 + CONFIG_SCHEMA['agent'].max_retries_per_taskattack_planner.py, decision_log.pyTask graphnoagenttests/test_agent*.py
agent.planner_hints_enabledboolTrueconfig.yaml:513 + CONFIG_SCHEMA['agent'].planner_hints_enabledattack_planner.py, decision_log.pyTask graphnoagenttests/test_agent*.py
agent.reflection_enabledboolTrueconfig.yaml:513 + CONFIG_SCHEMA['agent'].reflection_enabledattack_planner.py, decision_log.pyTask graphnoagenttests/test_agent*.py
agent.state_tools_enabledboolTrueconfig.yaml:513 + CONFIG_SCHEMA['agent'].state_tools_enabledattack_planner.py, decision_log.pyTask graphnoagenttests/test_agent*.py
agent.task_graph_enabledboolTrueconfig.yaml:513 + CONFIG_SCHEMA['agent'].task_graph_enabledattack_planner.py, decision_log.pyTask graphnoagenttests/test_agent*.py
api.allowed_originslist[]config.yaml:438 + CONFIG_SCHEMA['api'].allowed_originsapp.py, api/*, doctor.pyWebUI daemonyesapi/webuitests/test_api*.py
api.enabledboolTrueconfig.yaml:438 + CONFIG_SCHEMA['api'].enabledapp.py, api/*, doctor.pyWebUI daemonyesapi/webuitests/test_api*.py
api.event_buffer_sizeint256config.yaml:438 + CONFIG_SCHEMA['api'].event_buffer_sizeapp.py, api/*, doctor.pyWebUI daemonyesapi/webuitests/test_api*.py
api.graph_routeboolTrueconfig.yaml:438 + CONFIG_SCHEMA['api'].graph_routeapp.py, api/*, doctor.pyWebUI daemonyesapi/webuitests/test_api*.py
api.hoststr'127.0.0.1'127.0.0.1 | localhost | ::1 else ERRORconfig.yaml:438 + CONFIG_SCHEMA['api'].hostapp.py, api/*, doctor.pyWebUI daemonyesapi/webuitests/test_api*.py
api.max_concurrent_runsint3 (lab-only, not in CONFIG_SCHEMA)config.yaml:438 (lab extra)app.py, api/*, doctor.pyWebUI daemonyesapi/webuitests/test_api*.py
api.multi_operatorboolTrue (lab-only, not in CONFIG_SCHEMA)config.yaml:438 (lab extra)app.py, api/*, doctor.pyWebUI daemonyesapi/webuitests/test_api*.py
api.portint8765config.yaml:438 + CONFIG_SCHEMA['api'].portapp.py, api/*, doctor.pyWebUI daemonyesapi/webuitests/test_api*.py
api.serve_webuiboolFalse (schema) → True (lab)config.yaml:438 + CONFIG_SCHEMA['api'].serve_webuiapp.py, api/*, doctor.pyWebUI daemonyesapi/webuitests/test_api*.py
api.shutdown_timeout_secondsint15config.yaml:438 + CONFIG_SCHEMA['api'].shutdown_timeout_secondsapp.py, api/*, doctor.pyWebUI daemonyesapi/webuitests/test_api*.py
api.token_filestr'.webui_secret_key'config.yaml:438 + CONFIG_SCHEMA['api'].token_fileapp.py, api/*, doctor.pyWebUI daemonBREACHPILOT_API_TOKEN overridesyesapi/webuitests/test_api*.py
autonomous.adaptive_replanboolFalseconfig.yaml:198 + CONFIG_SCHEMA['autonomous'].adaptive_replanautonomous_orchestrator.pyOrchestrator Phase 2noautonomoustests/test_autonomous*.py
autonomous.checkpoint_everyint0config.yaml:198 + CONFIG_SCHEMA['autonomous'].checkpoint_everyautonomous_orchestrator.pyOrchestrator Phase 2noautonomoustests/test_autonomous*.py
autonomous.dedup_targetsboolFalse (lab-only, not in CONFIG_SCHEMA)config.yaml:198 (lab extra)autonomous_orchestrator.pyOrchestrator Phase 2noautonomoustests/test_autonomous*.py
autonomous.hard_target_max_roundsint0 (lab-only, not in CONFIG_SCHEMA)config.yaml:198 (lab extra)autonomous_orchestrator.pyOrchestrator Phase 2noautonomoustests/test_autonomous*.py
autonomous.max_cyclesint100config.yaml:198 + CONFIG_SCHEMA['autonomous'].max_cyclesautonomous_orchestrator.pyOrchestrator Phase 2noautonomoustests/test_autonomous*.py
autonomous.max_parallel_targetsint1 (lab-only, not in CONFIG_SCHEMA)config.yaml:198 (lab extra)noautonomous
autonomous.max_pivot_depthint0config.yaml:198 + CONFIG_SCHEMA['autonomous'].max_pivot_depthautonomous_orchestrator.pyOrchestrator Phase 2noautonomoustests/test_autonomous*.py
autonomous.persistence_phaseboolFalseconfig.yaml:198 + CONFIG_SCHEMA['autonomous'].persistence_phaseautonomous_orchestrator.pyOrchestrator Phase 2noautonomoustests/test_autonomous*.py
autonomous.skip_non_routableboolFalse (lab-only, not in CONFIG_SCHEMA)config.yaml:198 (lab extra)autonomous_orchestrator.pyOrchestrator Phase 2noautonomoustests/test_autonomous*.py
benchmark.baseline_pathstr'reports/benchmarks/baseline.json'config.yaml:276 + CONFIG_SCHEMA['benchmark'].baseline_pathnobenchmark
benchmark.enabledboolTrueconfig.yaml:276 + CONFIG_SCHEMA['benchmark'].enablednobenchmark
benchmark.output_dirstr'reports/benchmarks'config.yaml:276 + CONFIG_SCHEMA['benchmark'].output_dirnobenchmark
benchmark.regression.cost_tolerancefloat0.3config.yaml:276 + CONFIG_SCHEMA['benchmark'].regression.cost_tolerancenobenchmark
benchmark.regression.enabledboolTrueconfig.yaml:276 + CONFIG_SCHEMA['benchmark'].regression.enablednobenchmark
benchmark.regression.false_positive_tolerancefloat0.01config.yaml:276 + CONFIG_SCHEMA['benchmark'].regression.false_positive_tolerancenobenchmark
benchmark.regression.median_time_tolerancefloat0.2config.yaml:276 + CONFIG_SCHEMA['benchmark'].regression.median_time_tolerancenobenchmark
benchmark.regression.success_rate_tolerancefloat0.02config.yaml:276 + CONFIG_SCHEMA['benchmark'].regression.success_rate_tolerancenobenchmark
benchmark.regression.tool_actions_tolerancefloat0.3config.yaml:276 + CONFIG_SCHEMA['benchmark'].regression.tool_actions_tolerancenobenchmark
benchmark.sandbox_requiredboolTrueconfig.yaml:276 + CONFIG_SCHEMA['benchmark'].sandbox_requirednobenchmark
benchmark.telemetry.costboolTrueconfig.yaml:276 + CONFIG_SCHEMA['benchmark'].telemetry.costnobenchmark
benchmark.telemetry.eventsboolTrueconfig.yaml:276 + CONFIG_SCHEMA['benchmark'].telemetry.eventsnobenchmark
benchmark.telemetry.token_usageboolTrueconfig.yaml:276 + CONFIG_SCHEMA['benchmark'].telemetry.token_usagenobenchmark
benchmark.timeout_secondsint1800config.yaml:276 + CONFIG_SCHEMA['benchmark'].timeout_secondsnobenchmark
benchmark.trialsint3config.yaml:276 + CONFIG_SCHEMA['benchmark'].trialsnobenchmark
browser.allow_mutating_actionsboolFalseconfig.yaml:299 + CONFIG_SCHEMA['browser'].allow_mutating_actionsnobrowser
browser.artifact_dirstr''config.yaml:299 + CONFIG_SCHEMA['browser'].artifact_dirnobrowser
browser.backendstr'none' (schema) → 'playwright' (lab)config.yaml:299 + CONFIG_SCHEMA['browser'].backendnobrowser
browser.body_sample_max_bytesint4096config.yaml:299 + CONFIG_SCHEMA['browser'].body_sample_max_bytesnobrowser
browser.capture_consoleboolFalseconfig.yaml:299 + CONFIG_SCHEMA['browser'].capture_consolenobrowser
browser.capture_networkboolTrueconfig.yaml:299 + CONFIG_SCHEMA['browser'].capture_networknobrowser
browser.capture_screenshotsboolTrueconfig.yaml:299 + CONFIG_SCHEMA['browser'].capture_screenshotsnobrowser
browser.console_max_eventsint200config.yaml:299 + CONFIG_SCHEMA['browser'].console_max_eventsnobrowser
browser.dom_summary_max_charsint8000config.yaml:299 + CONFIG_SCHEMA['browser'].dom_summary_max_charsnobrowser
browser.enabledboolFalse (schema) → True (lab)config.yaml:299 + CONFIG_SCHEMA['browser'].enablednobrowser
browser.executable_pathstr''config.yaml:299 + CONFIG_SCHEMA['browser'].executable_pathnobrowser
browser.headlessboolTrueconfig.yaml:299 + CONFIG_SCHEMA['browser'].headlessnobrowser
browser.max_sessionsint2config.yaml:299 + CONFIG_SCHEMA['browser'].max_sessionsnobrowser
browser.navigation_timeout_secondsint30config.yaml:299 + CONFIG_SCHEMA['browser'].navigation_timeout_secondsnobrowser
browser.network_max_eventsint500config.yaml:299 + CONFIG_SCHEMA['browser'].network_max_eventsnobrowser
browser.persist_storageboolFalseconfig.yaml:299 + CONFIG_SCHEMA['browser'].persist_storagenobrowser
browser.session_timeout_secondsint300config.yaml:299 + CONFIG_SCHEMA['browser'].session_timeout_secondsnobrowser
browser.worker_imagestr''config.yaml:299 + CONFIG_SCHEMA['browser'].worker_imagenobrowser
caldera.api_key_envstr'CALDERA_API_KEY'config.yaml:509 + CONFIG_SCHEMA['caldera'].api_key_envplugins/caldera/plugin.pyCaldera emulationCALDERA_API_KEYnoad
caldera.enabledboolFalse (schema) → True (lab)config.yaml:509 + CONFIG_SCHEMA['caldera'].enabledplugins/caldera/plugin.pyCaldera emulationnoad
caldera.urlstr''config.yaml:509 + CONFIG_SCHEMA['caldera'].urlplugins/caldera/plugin.pyCaldera emulationnoad
chatgpt.enabledboolFalse (schema) → True (lab)config.yaml:561 + CONFIG_SCHEMA['chatgpt'].enabledproviders/chatgpt_provider.py, model_router.py, doctor.pyChatGPT proxyyesproviderstests/test_chatgpt*.py
cve_lookup.api_key_envstr'NVD_API_KEY'config.yaml:112 + CONFIG_SCHEMA['cve_lookup'].api_key_envmcp_shared, cve_lookup.pyNVD + KEV/EPSSNVD_API_KEYnoresearch/cvetests/test_cve_lookup.py
cve_lookup.cache_max_entriesint100config.yaml:112 + CONFIG_SCHEMA['cve_lookup'].cache_max_entriesmcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
cve_lookup.cache_ttl_secondsint3600config.yaml:112 + CONFIG_SCHEMA['cve_lookup'].cache_ttl_secondsmcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
cve_lookup.circuit_failure_thresholdint5config.yaml:112 + CONFIG_SCHEMA['cve_lookup'].circuit_failure_thresholdmcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
cve_lookup.circuit_recovery_timeoutfloat60.0config.yaml:112 + CONFIG_SCHEMA['cve_lookup'].circuit_recovery_timeoutmcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
cve_lookup.enabledboolTrueconfig.yaml:112 + CONFIG_SCHEMA['cve_lookup'].enabledmcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
cve_lookup.epss_enabledboolTrueconfig.yaml:112 + CONFIG_SCHEMA['cve_lookup'].epss_enabledmcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
cve_lookup.github.token_envstr'GITHUB_TOKEN'config.yaml:112 + CONFIG_SCHEMA['cve_lookup'].github.token_envmcp_shared, cve_lookup.pyNVD + KEV/EPSSGITHUB_TOKENnoresearch/cvetests/test_cve_lookup.py
cve_lookup.kev_cache_pathstr''config.yaml:112 + CONFIG_SCHEMA['cve_lookup'].kev_cache_pathmcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
cve_lookup.kev_cache_ttl_secondsint86400config.yaml:112 + CONFIG_SCHEMA['cve_lookup'].kev_cache_ttl_secondsmcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
cve_lookup.kev_enabledboolTrueconfig.yaml:112 + CONFIG_SCHEMA['cve_lookup'].kev_enabledmcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
cve_lookup.max_resultsint5config.yaml:112 + CONFIG_SCHEMA['cve_lookup'].max_resultsmcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
cve_lookup.rate_limit_secondsfloat6.0config.yaml:112 + CONFIG_SCHEMA['cve_lookup'].rate_limit_secondsmcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
cve_lookup.search_rate_limit_per_minuteint10config.yaml:112 + CONFIG_SCHEMA['cve_lookup'].search_rate_limit_per_minutemcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
cve_lookup.timeout_secondsint30config.yaml:112 + CONFIG_SCHEMA['cve_lookup'].timeout_secondsmcp_shared, cve_lookup.pyNVD + KEV/EPSSnoresearch/cvetests/test_cve_lookup.py
embeddings.providerstr'ollama' (schema) → 'none' (lab)config.yaml:507 + CONFIG_SCHEMA['embeddings'].provideryesembeddings
engine_mcp.enabledboolTrueconfig.yaml:53 + CONFIG_SCHEMA['engine_mcp'].enabledmcp_engine_server.pyAdvisory MCP enableyesmcp/engine
engine_mcp.hoststr'127.0.0.1'config.yaml:53 + CONFIG_SCHEMA['engine_mcp'].hostmcp_engine_server.pyLoopback bindyesmcp/engine
engine_mcp.portint8002config.yaml:53 + CONFIG_SCHEMA['engine_mcp'].portmcp_engine_server.pyHTTP portyesmcp/engine
eval.baseline_pathstr'reports/eval/baseline.json'config.yaml:268 + CONFIG_SCHEMA['eval'].baseline_pathnoeval
eval.enabledboolTrueconfig.yaml:268 + CONFIG_SCHEMA['eval'].enabledeval_harness.pyEval harnessnoevaltests/test_eval*.py
eval.max_roundsint30config.yaml:268 + CONFIG_SCHEMA['eval'].max_roundseval_harness.pyEval harnessnoevaltests/test_eval*.py
eval.output_dirstr'reports/eval'config.yaml:268 + CONFIG_SCHEMA['eval'].output_direval_harness.pyEval harnessnoevaltests/test_eval*.py
eval.regression_tolerancefloat0.05config.yaml:268 + CONFIG_SCHEMA['eval'].regression_tolerancenoeval
eval.write_htmlboolTrueconfig.yaml:268 + CONFIG_SCHEMA['eval'].write_htmleval_harness.pyEval harnessnoevaltests/test_eval*.py
eval.write_markdownboolTrueconfig.yaml:268 + CONFIG_SCHEMA['eval'].write_markdowneval_harness.pyEval harnessnoevaltests/test_eval*.py
exploit.ad_kerberos.adcs_enumboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].ad_kerberos.adcs_enumcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.ad_kerberos.asrep_roastboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].ad_kerberos.asrep_roastcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.ad_kerberos.bloodhoundboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].ad_kerberos.bloodhoundcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.ad_kerberos.enabledboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].ad_kerberos.enabledcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.ad_kerberos.golden_ticketboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].ad_kerberos.golden_ticketcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.ad_kerberos.pass_the_hashboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].ad_kerberos.pass_the_hashcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.ad_kerberos.responder_relayboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].ad_kerberos.responder_relaycli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.ad_kerberos.smb_signing_checkboolTrueconfig.yaml:61 + CONFIG_SCHEMA['exploit'].ad_kerberos.smb_signing_checkcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.allowed_targetslist[str][] (schema) → ['127.0.0.1'] (lab)config.yaml:61 + CONFIG_SCHEMA['exploit'].allowed_targetscli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist lockEXPLOIT_TARGET* + EXPLOIT_DISCOVERED_TARGETSnoexploit/agenttests/test_scope_gate.py
exploit.attack_max_commandsint150config.yaml:61 + CONFIG_SCHEMA['exploit'].attack_max_commandscli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.attack_max_duration_minutesint360config.yaml:61 + CONFIG_SCHEMA['exploit'].attack_max_duration_minutescli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.attack_max_roundsint50config.yaml:61 + CONFIG_SCHEMA['exploit'].attack_max_roundscli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.attack_modeboolTrueconfig.yaml:61 + CONFIG_SCHEMA['exploit'].attack_modecli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.attacker_osstr'auto'auto | linux | windowsconfig.yaml:61 + CONFIG_SCHEMA['exploit'].attacker_oscli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.auto_post_exploitboolTrueconfig.yaml:61 + CONFIG_SCHEMA['exploit'].auto_post_exploitcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.cache_max_entriesint50config.yaml:61 + CONFIG_SCHEMA['exploit'].cache_max_entriescli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.cache_ttl_secondsint3600config.yaml:61 + CONFIG_SCHEMA['exploit'].cache_ttl_secondscli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.command_timeout_secondsint300config.yaml:61 + CONFIG_SCHEMA['exploit'].command_timeout_secondscli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.context_summarize_everyint10 (schema) → 50 (lab)config.yaml:61 + CONFIG_SCHEMA['exploit'].context_summarize_everycli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.disallowed_assetslist[]config.yaml:61 + CONFIG_SCHEMA['exploit'].disallowed_assetscli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.enabledboolTrueconfig.yaml:61 + CONFIG_SCHEMA['exploit'].enabledcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.forbidden_actionslist[]config.yaml:61 + CONFIG_SCHEMA['exploit'].forbidden_actionscli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.listeners.dnsboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].listeners.dnscli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.listeners.https_beaconboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].listeners.https_beaconcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.listeners.socks_pivotboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].listeners.socks_pivotcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.listeners.tlsboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].listeners.tlscli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.loot_workspacestr'exploit_workspace/loot'config.yaml:61 + CONFIG_SCHEMA['exploit'].loot_workspacecli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.max_commands_per_sessionint9999config.yaml:61 + CONFIG_SCHEMA['exploit'].max_commands_per_sessioncli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.max_pivot_depthint2config.yaml:61 + CONFIG_SCHEMA['exploit'].max_pivot_depthcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.max_query_charsint200config.yaml:61 + CONFIG_SCHEMA['exploit'].max_query_charscli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.max_roundsint200config.yaml:61 + CONFIG_SCHEMA['exploit'].max_roundscli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.modestr'standalone'config.yaml:61 + CONFIG_SCHEMA['exploit'].modecli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.msf.auto_local_exploit_suggesterboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].msf.auto_local_exploit_suggestercli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.msf.recipes_enabledboolFalseconfig.yaml:61 + CONFIG_SCHEMA['exploit'].msf.recipes_enabledcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.msfconsole_pathstr'msfconsole'config.yaml:61 + CONFIG_SCHEMA['exploit'].msfconsole_pathcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.permissionstr'full_access'full_access | approve_only | read_onlyconfig.yaml:61 + CONFIG_SCHEMA['exploit'].permissioncli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.require_explicit_allowlistboolTrueconfig.yaml:61 + CONFIG_SCHEMA['exploit'].require_explicit_allowlistcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.searchsploit_pathstr'searchsploit'config.yaml:61 + CONFIG_SCHEMA['exploit'].searchsploit_pathcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.shellstr'bash'bashconfig.yaml:61 + CONFIG_SCHEMA['exploit'].shellcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.terminalstr'visible'visible | hiddenconfig.yaml:61 + CONFIG_SCHEMA['exploit'].terminalcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.web_searchboolTrueconfig.yaml:61 + CONFIG_SCHEMA['exploit'].web_searchcli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist locknoexploit/agenttests/test_scope_gate.py
exploit.workspace_dirstr'exploit_workspace'config.yaml:61 + CONFIG_SCHEMA['exploit'].workspace_dircli_exploit_settings.py, mcp_tools/terminal, mcp_sharedAttack posture/budgets/allowlist lockEXPLOIT_WORKSPACEnoexploit/agenttests/test_scope_gate.py
fsm.enabledboolFalseconfig.yaml:208 + CONFIG_SCHEMA['fsm'].enablednofsm
fsm.max_retries_per_stepint3config.yaml:208 + CONFIG_SCHEMA['fsm'].max_retries_per_stepnofsm
hitl.enabledboolTrueconfig.yaml:361 + CONFIG_SCHEMA['hitl'].enablednohitl
ics.allow_writeboolFalseconfig.yaml:450 + CONFIG_SCHEMA['ics'].allow_writeattack_modules/modules/ics_iot.pyICS write gatesnoicstests/test_ics*.py
ics.destructive_icsboolFalseconfig.yaml:450 + CONFIG_SCHEMA['ics'].destructive_icsattack_modules/modules/ics_iot.pyICS write gatesnoicstests/test_ics*.py
killchain.enabledboolFalseconfig.yaml:294 + CONFIG_SCHEMA['killchain'].enablednokillchain
killchain.goal_statestr'shell_as_root'config.yaml:294 + CONFIG_SCHEMA['killchain'].goal_statenokillchain
killchain.graph_dbstr''config.yaml:294 + CONFIG_SCHEMA['killchain'].graph_dbnokillchain
killchain.require_verificationboolTrueconfig.yaml:294 + CONFIG_SCHEMA['killchain'].require_verificationnokillchain
long_session.attack_max_commandsint1000config.yaml:318 + CONFIG_SCHEMA['long_session'].attack_max_commandscli_exploit_settings.py, run_service/service.pyMulti-hour budgetsnolong_sessiontests/test_long*.py
long_session.attack_max_duration_minutesint720config.yaml:318 + CONFIG_SCHEMA['long_session'].attack_max_duration_minutescli_exploit_settings.py, run_service/service.pyMulti-hour budgetsnolong_sessiontests/test_long*.py
long_session.attack_max_roundsint200config.yaml:318 + CONFIG_SCHEMA['long_session'].attack_max_roundscli_exploit_settings.py, run_service/service.pyMulti-hour budgetsnolong_sessiontests/test_long*.py
long_session.enabledboolFalse (schema) → True (lab)config.yaml:318 + CONFIG_SCHEMA['long_session'].enabledcli_exploit_settings.py, run_service/service.pyMulti-hour budgetsnolong_sessiontests/test_long*.py
long_session.persist_messagesboolTrueconfig.yaml:318 + CONFIG_SCHEMA['long_session'].persist_messagescli_exploit_settings.py, run_service/service.pyMulti-hour budgetsnolong_sessiontests/test_long*.py
long_session.request_timeout_secondsint600config.yaml:318 + CONFIG_SCHEMA['long_session'].request_timeout_secondscli_exploit_settings.py, run_service/service.pyMulti-hour budgetsnolong_sessiontests/test_long*.py
long_session.swarm_session_timeout_minutesint30config.yaml:318 + CONFIG_SCHEMA['long_session'].swarm_session_timeout_minutescli_exploit_settings.py, run_service/service.pyMulti-hour budgetsnolong_sessiontests/test_long*.py
mcp.default_transportstr'stdio'stdio | httpconfig.yaml:51 + CONFIG_SCHEMA['mcp'].default_transportconfig_manager, mcp_session.pystdio|httpyesmcptests/test_config_manager.py
memory.attack_memory_enabledboolTrueconfig.yaml:335 + CONFIG_SCHEMA['memory'].attack_memory_enabledtools/exploit_agent/runner/_impl.py, semantic_memory.pyCross-mission memorynomemorytests/test_memory.py
memory.attack_memory_max_context_charsint6000config.yaml:335 + CONFIG_SCHEMA['memory'].attack_memory_max_context_charstools/exploit_agent/runner/_impl.py, semantic_memory.pyCross-mission memorynomemorytests/test_memory.py
memory.cross_mission_learningboolTrueconfig.yaml:335 + CONFIG_SCHEMA['memory'].cross_mission_learningtools/exploit_agent/runner/_impl.py, semantic_memory.pyCross-mission memorynomemorytests/test_memory.py
memory.embedding_modelstr'nomic-embed-text'config.yaml:335 + CONFIG_SCHEMA['memory'].embedding_modeltools/exploit_agent/runner/_impl.py, semantic_memory.pyCross-mission memorynomemorytests/test_memory.py
memory.experience_min_samplesint3config.yaml:335 + CONFIG_SCHEMA['memory'].experience_min_samplestools/exploit_agent/runner/_impl.py, semantic_memory.pyCross-mission memorynomemorytests/test_memory.py
memory.experience_time_decay_daysint90config.yaml:335 + CONFIG_SCHEMA['memory'].experience_time_decay_daystools/exploit_agent/runner/_impl.py, semantic_memory.pyCross-mission memorynomemorytests/test_memory.py
memory.semantic_enabledboolTrueconfig.yaml:335 + CONFIG_SCHEMA['memory'].semantic_enabledtools/exploit_agent/runner/_impl.py, semantic_memory.pyCross-mission memorynomemorytests/test_memory.py
mitre.enabledboolTrueconfig.yaml:482 + CONFIG_SCHEMA['mitre'].enabledmitre_export.pyATT&CK exportnomitre
mitre.include_skill_tagsboolTrueconfig.yaml:482 + CONFIG_SCHEMA['mitre'].include_skill_tagsmitre_export.pyATT&CK exportnomitre
mitre.navigator_output_dirstr'reports/mitre'config.yaml:482 + CONFIG_SCHEMA['mitre'].navigator_output_dirmitre_export.pyATT&CK exportnomitre
mitre.technique_mapstr'tools/mitre_technique_map.json'config.yaml:482 + CONFIG_SCHEMA['mitre'].technique_mapmitre_export.pyATT&CK exportnomitre
models.auto_updateboolTrueconfig.yaml:6 + CONFIG_SCHEMA['models'].auto_updateyesmodels
models.default_aliasstr'glm'config.yaml:6 + CONFIG_SCHEMA['models'].default_aliasconfig_manager, run_service/service.pyActive aliasyesmodelstests/test_config_manager.py
models.info.deepseek.context_windowint1000000config.yaml:6 + CONFIG_SCHEMA['models'].info.deepseek.context_windowmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.deepseek.descriptionstr'DeepSeek V4 Pro — 1M token context, deep code reasoning.'config.yaml:6 + CONFIG_SCHEMA['models'].info.deepseek.descriptionmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.deepseek.labelstr'DeepSeek V4 Pro'config.yaml:6 + CONFIG_SCHEMA['models'].info.deepseek.labelmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.deepseek_flash.context_windowint1000000config.yaml:6 + CONFIG_SCHEMA['models'].info.deepseek_flash.context_windowmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.deepseek_flash.descriptionstr'DeepSeek V4 Flash - 1M token context, fast DeepSeek option for lower-latency work.'config.yaml:6 + CONFIG_SCHEMA['models'].info.deepseek_flash.descriptionmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.deepseek_flash.labelstr'DeepSeek V4 Flash'config.yaml:6 + CONFIG_SCHEMA['models'].info.deepseek_flash.labelmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.glm.context_windowint976000config.yaml:6 + CONFIG_SCHEMA['models'].info.glm.context_windowmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.glm.descriptionstr'Zhipu GLM-5.2 — 976K context, the smartest/newest GLM for deep reasoning + coding.'config.yaml:6 + CONFIG_SCHEMA['models'].info.glm.descriptionmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.glm.labelstr'GLM-5.2'config.yaml:6 + CONFIG_SCHEMA['models'].info.glm.labelmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.glm3.context_windowint128000config.yaml:6 + CONFIG_SCHEMA['models'].info.glm3.context_windowyesmemory/context
models.info.glm3.descriptionstr'Zhipu GLM-5.3 Flash — fast low-latency GLM option (128K context).'config.yaml:6 + CONFIG_SCHEMA['models'].info.glm3.descriptionyesmemory/context
models.info.glm3.labelstr'GLM-5.3 Flash'config.yaml:6 + CONFIG_SCHEMA['models'].info.glm3.labelyesmemory/context
models.info.kimi.context_windowint256000config.yaml:6 + CONFIG_SCHEMA['models'].info.kimi.context_windowmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.kimi.descriptionstr'Moonshot Kimi K2.6 — strong long-form reasoning, 256K context.'config.yaml:6 + CONFIG_SCHEMA['models'].info.kimi.descriptionmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.kimi.labelstr'Kimi K2.6'config.yaml:6 + CONFIG_SCHEMA['models'].info.kimi.labelmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.minimax.context_windowint512000config.yaml:6 + CONFIG_SCHEMA['models'].info.minimax.context_windowmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.minimax.descriptionstr'Minimax M3 (cloud) — 512K context, balanced coding + reasoning.'config.yaml:6 + CONFIG_SCHEMA['models'].info.minimax.descriptionmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.info.minimax.labelstr'Minimax M3'config.yaml:6 + CONFIG_SCHEMA['models'].info.minimax.labelmodel_router, exploit_agent/contextContext windowsyesmemory/contexttests/test_config_manager.py
models.providerstr'ollama' (schema) → 'opencode_go' (lab)ollama | chatgptconfig.yaml:6 + CONFIG_SCHEMA['models'].providerconfig_manager.get_ai_provider, model_router, doctor.pyActive chat provideryesproviderstests/test_config_manager.py
models.registry.deepseekstr'deepseek-v4-pro:cloud'config.yaml:6 + CONFIG_SCHEMA['models'].registry.deepseekconfig_manager, doctor.py, run_serviceAlias→model_id mapyesmodelstests/test_config_manager.py
models.registry.deepseek_flashstr'deepseek-v4-flash:cloud'config.yaml:6 + CONFIG_SCHEMA['models'].registry.deepseek_flashconfig_manager, doctor.py, run_serviceAlias→model_id mapyesmodelstests/test_config_manager.py
models.registry.glmstr'glm-5.2:cloud'config.yaml:6 + CONFIG_SCHEMA['models'].registry.glmconfig_manager, doctor.py, run_serviceAlias→model_id mapyesmodelstests/test_config_manager.py
models.registry.glm3str'glm-5.3-flash'config.yaml:6 + CONFIG_SCHEMA['models'].registry.glm3yesmodels
models.registry.kimistr'kimi-k2.6:cloud'config.yaml:6 + CONFIG_SCHEMA['models'].registry.kimiconfig_manager, doctor.py, run_serviceAlias→model_id mapyesmodelstests/test_config_manager.py
models.registry.minimaxstr'minimax-m3:cloud'config.yaml:6 + CONFIG_SCHEMA['models'].registry.minimaxconfig_manager, doctor.py, run_serviceAlias→model_id mapyesmodelstests/test_config_manager.py
models.roles.code_generatorstr''config.yaml:6 + CONFIG_SCHEMA['models'].roles.code_generatormodel_router.get_client_for_rolePer-role model aliasyesreasoningtests/test_config_manager.py
models.roles.criticstr''config.yaml:6 + CONFIG_SCHEMA['models'].roles.criticmodel_router.get_client_for_rolePer-role model aliasyesreasoningtests/test_config_manager.py
models.roles.executorstr''config.yaml:6 + CONFIG_SCHEMA['models'].roles.executormodel_router.get_client_for_rolePer-role model aliasyesreasoningtests/test_config_manager.py
models.roles.interpreterstr''config.yaml:6 + CONFIG_SCHEMA['models'].roles.interpretermodel_router.get_client_for_rolePer-role model aliasyesreasoningtests/test_config_manager.py
models.roles.plannerstr''config.yaml:6 + CONFIG_SCHEMA['models'].roles.plannermodel_router.get_client_for_rolePer-role model aliasyesreasoningtests/test_config_manager.py
models.roles.summarizerstr''config.yaml:6 + CONFIG_SCHEMA['models'].roles.summarizermodel_router.get_client_for_rolePer-role model aliasyesreasoningtests/test_config_manager.py
multi_model.consult_aliaseslist[str]['kimi', 'deepseek', 'deepseek_flash', 'glm', 'minimax']config.yaml:389 + CONFIG_SCHEMA['multi_model'].consult_aliasesmcp_tools/peer_models.py, exploit_agent/reflection.pyPeer consultationnomulti-modeltests/test_peer*.py
multi_model.enabledboolFalse (schema) → True (lab)config.yaml:389 + CONFIG_SCHEMA['multi_model'].enabledmcp_tools/peer_models.py, exploit_agent/reflection.pyPeer consultationnomulti-modeltests/test_peer*.py
multi_model.max_answer_charsint8000config.yaml:389 + CONFIG_SCHEMA['multi_model'].max_answer_charsmcp_tools/peer_models.py, exploit_agent/reflection.pyPeer consultationnomulti-modeltests/test_peer*.py
multi_model.max_consultationsint10config.yaml:389 + CONFIG_SCHEMA['multi_model'].max_consultationsmcp_tools/peer_models.py, exploit_agent/reflection.pyPeer consultationnomulti-modeltests/test_peer*.py
multi_model.max_question_charsint4000config.yaml:389 + CONFIG_SCHEMA['multi_model'].max_question_charsmcp_tools/peer_models.py, exploit_agent/reflection.pyPeer consultationnomulti-modeltests/test_peer*.py
nmap.pathstr'nmap'config.yaml:57 + CONFIG_SCHEMA['nmap'].pathrecon_pipeline, mcp_server, doctorBinary overridenorecontests/test_recon.py
nmap.priv_fallbackboolTrueconfig.yaml:57 + CONFIG_SCHEMA['nmap'].priv_fallbackrecon_pipelineauto-downgradenorecontests/test_recon.py
nmap.sudoboolFalseconfig.yaml:57 + CONFIG_SCHEMA['nmap'].sudorecon_pipeline, nmap_privsudo -nnorecontests/test_recon.py
ollama.api_key_envstr'OLLAMA_API_KEY'config.yaml:1 + CONFIG_SCHEMA['ollama'].api_key_envapi_key_store.py, model_router.pyEnv var name holding bearer tokenOLLAMA_API_KEY (named by this key)yessecretstests/test_config_cli.py
ollama.embed_hoststr'http://localhost:11434'config.yaml:1 + CONFIG_SCHEMA['ollama'].embed_hostconfig_manager.py, tools/exploit_agent/runner/_impl.pyEmbedding host fallbackyesmemory/embeddingstests/test_config_manager.py
ollama.hoststr'https://api.ollama.com'config.yaml:1 + CONFIG_SCHEMA['ollama'].hostmodel_router.py, doctor.pyOllama endpoint for chat/generateyesmodels/providertests/test_config_manager.py
ollama.modelstr'glm-5.2:cloud'config.yaml:1 + CONFIG_SCHEMA['ollama'].modelconfig_manager.py, interactive_menu.pyDefault concrete model idyesmodelstests/test_config_manager.py
opencode_go.enabledboolFalse (schema) → True (lab)config.yaml:563 + CONFIG_SCHEMA['opencode_go'].enabledyesproviders
operator_connection.auto_start_listenerboolTrueconfig.yaml:523 + CONFIG_SCHEMA['operator_connection'].auto_start_listenernooperator
operator_connection.beacon_interval_secondsint300config.yaml:523 + CONFIG_SCHEMA['operator_connection'].beacon_interval_secondsnooperator
operator_connection.default_callback_portint4444config.yaml:523 + CONFIG_SCHEMA['operator_connection'].default_callback_portnooperator
operator_connection.default_listener_typestr'netcat'config.yaml:523 + CONFIG_SCHEMA['operator_connection'].default_listener_typenooperator
operator_connection.enabledboolTrueconfig.yaml:523 + CONFIG_SCHEMA['operator_connection'].enablednooperator
operator_connection.health_check_interval_secondsint60config.yaml:523 + CONFIG_SCHEMA['operator_connection'].health_check_interval_secondsnooperator
operator_connection.workspace_dirstr'exploit_workspace'config.yaml:523 + CONFIG_SCHEMA['operator_connection'].workspace_dirnooperator
opsec.dohboolFalseconfig.yaml:255 + CONFIG_SCHEMA['opsec'].dohopsec.py, validation_utils.is_private_or_local_targetOPSEC hardeningnoopsectests/test_opsec.py
opsec.doh_providerstr'cloudflare'cloudflare | googleconfig.yaml:255 + CONFIG_SCHEMA['opsec'].doh_provideropsec.py, validation_utils.is_private_or_local_targetOPSEC hardeningnoopsectests/test_opsec.py
opsec.enabledboolFalseconfig.yaml:255 + CONFIG_SCHEMA['opsec'].enabledopsec.py, validation_utils.is_private_or_local_targetOPSEC hardeningnoopsectests/test_opsec.py
opsec.jitter_secondsfloat0.0config.yaml:255 + CONFIG_SCHEMA['opsec'].jitter_secondsopsec.py, validation_utils.is_private_or_local_targetOPSEC hardeningnoopsectests/test_opsec.py
opsec.local_cidrslist[]config.yaml:255 + CONFIG_SCHEMA['opsec'].local_cidrsopsec.py, validation_utils.is_private_or_local_targetOPSEC hardeningnoopsectests/test_opsec.py
opsec.local_targets_offboolTrueconfig.yaml:255 + CONFIG_SCHEMA['opsec'].local_targets_offopsec.py, validation_utils.is_private_or_local_targetOPSEC hardeningnoopsectests/test_opsec.py
opsec.min_gap_secondsfloat0.0config.yaml:255 + CONFIG_SCHEMA['opsec'].min_gap_secondsopsec.py, validation_utils.is_private_or_local_targetOPSEC hardeningnoopsectests/test_opsec.py
opsec.noise_budgetint0config.yaml:255 + CONFIG_SCHEMA['opsec'].noise_budgetopsec.py, validation_utils.is_private_or_local_targetOPSEC hardeningnoopsectests/test_opsec.py
opsec.public_autonomyboolTrueconfig.yaml:255 + CONFIG_SCHEMA['opsec'].public_autonomyopsec.py, validation_utils.is_private_or_local_targetOPSEC hardeningnoopsectests/test_opsec.py
opsec.quiet_command_patternslist[]config.yaml:255 + CONFIG_SCHEMA['opsec'].quiet_command_patternsopsec.py, validation_utils.is_private_or_local_targetOPSEC hardeningnoopsectests/test_opsec.py
opsec.rate_per_minuteint0config.yaml:255 + CONFIG_SCHEMA['opsec'].rate_per_minuteopsec.py, validation_utils.is_private_or_local_targetOPSEC hardeningnoopsectests/test_opsec.py
opsec.ua_rotationboolFalseconfig.yaml:255 + CONFIG_SCHEMA['opsec'].ua_rotationopsec.py, validation_utils.is_private_or_local_targetOPSEC hardeningnoopsectests/test_opsec.py
orchestrator.semantic_memoryboolTrueconfig.yaml:211 + CONFIG_SCHEMA['orchestrator'].semantic_memoryautonomous_orchestrator.pyCross-mission semantic memorynoautonomous
outcome_judgment.confirmation_thresholdfloat0.75config.yaml:343 + CONFIG_SCHEMA['outcome_judgment'].confirmation_thresholdcli_exploit_settings.py, outcome_judge.pyEvidence verdictsnoevaltests/test_outcome*.py
outcome_judgment.flow_aboolFalse (schema) → True (lab)config.yaml:343 + CONFIG_SCHEMA['outcome_judgment'].flow_acli_exploit_settings.py, outcome_judge.pyEvidence verdictsnoevaltests/test_outcome*.py
outcome_judgment.max_inconclusive_attemptsint3config.yaml:343 + CONFIG_SCHEMA['outcome_judgment'].max_inconclusive_attemptscli_exploit_settings.py, outcome_judge.pyEvidence verdictsnoevaltests/test_outcome*.py
outcome_judgment.min_evidence_referencesint1config.yaml:343 + CONFIG_SCHEMA['outcome_judgment'].min_evidence_referencescli_exploit_settings.py, outcome_judge.pyEvidence verdictsnoevaltests/test_outcome*.py
outcome_judgment.peer_reviewboolFalse (schema) → True (lab)config.yaml:343 + CONFIG_SCHEMA['outcome_judgment'].peer_reviewcli_exploit_settings.py, outcome_judge.pyEvidence verdictsnoevaltests/test_outcome*.py
outcome_judgment.refutation_thresholdfloat0.75config.yaml:343 + CONFIG_SCHEMA['outcome_judgment'].refutation_thresholdcli_exploit_settings.py, outcome_judge.pyEvidence verdictsnoevaltests/test_outcome*.py
plugins.disabledlist[]config.yaml:453 + CONFIG_SCHEMA['plugins'].disabledplugins.pyPlugin discoverynopluginstests/test_plugins*.py
plugins.enabledlist[str][] (schema) → ['shodan_recon', 'github_dorks', 'webhook_notify', 'sliver_c2', 'bloodhound_ce', 'zap_scan', 'browser_attack', 'mobile_attack', 'wireless', 'spiderfoot', 'atomic_red_team', 'caldera', 'firmware_analysis'] (lab)config.yaml:453 + CONFIG_SCHEMA['plugins'].enabledplugins.pyPlugin discoverynopluginstests/test_plugins*.py
plugins.entry_pointsboolTrueconfig.yaml:453 + CONFIG_SCHEMA['plugins'].entry_pointsplugins.pyPlugin discoverynopluginstests/test_plugins*.py
plugins.search_pathslist[str]['plugins']config.yaml:453 + CONFIG_SCHEMA['plugins'].search_pathsplugins.pyPlugin discoverynopluginstests/test_plugins*.py
poc_verification.compile_timeout_secondsint30config.yaml:350 + CONFIG_SCHEMA['poc_verification'].compile_timeout_secondspoc_verifier.py, mcp_tools/attack_modules.pyPoC compile gatenopoctests/test_poc*.py
poc_verification.docker_imagestr'python:3.11-slim'config.yaml:350 + CONFIG_SCHEMA['poc_verification'].docker_imagepoc_verifier.py, mcp_tools/attack_modules.pyPoC compile gatenopoctests/test_poc*.py
poc_verification.docker_memorystr'256m'config.yaml:350 + CONFIG_SCHEMA['poc_verification'].docker_memorypoc_verifier.py, mcp_tools/attack_modules.pyPoC compile gatenopoctests/test_poc*.py
poc_verification.docker_networkstr'none'config.yaml:350 + CONFIG_SCHEMA['poc_verification'].docker_networkpoc_verifier.py, mcp_tools/attack_modules.pyPoC compile gatenopoctests/test_poc*.py
poc_verification.docker_read_onlyboolTrueconfig.yaml:350 + CONFIG_SCHEMA['poc_verification'].docker_read_onlypoc_verifier.py, mcp_tools/attack_modules.pyPoC compile gatenopoctests/test_poc*.py
poc_verification.enabledboolFalse (schema) → True (lab)config.yaml:350 + CONFIG_SCHEMA['poc_verification'].enabledpoc_verifier.py, mcp_tools/attack_modules.pyPoC compile gatenopoctests/test_poc*.py
poc_verification.max_retriesint3config.yaml:350 + CONFIG_SCHEMA['poc_verification'].max_retriespoc_verifier.py, mcp_tools/attack_modules.pyPoC compile gatenopoctests/test_poc*.py
providers.chatgpt.enabledboolTrue (lab-only, not in CONFIG_SCHEMA)config.yaml:495 (lab extra)yesproviders
providers.opencode_go.api_key_envstr'OPENCODE_GO_API_KEY' (lab-only, not in CONFIG_SCHEMA)config.yaml:495 (lab extra)yesproviders
providers.opencode_go.base_urlstr'https://opencode.ai/zen/go/v1' (lab-only, not in CONFIG_SCHEMA)config.yaml:495 (lab extra)yesproviders
providers.opencode_go.context_windowint128000 (lab-only, not in CONFIG_SCHEMA)config.yaml:495 (lab extra)yesproviders
providers.opencode_go.default_modelstr'muse-spark-1.2-contributor' (lab-only, not in CONFIG_SCHEMA)config.yaml:495 (lab extra)yesproviders
providers.opencode_go.discover_cache_secondsint300 (lab-only, not in CONFIG_SCHEMA)config.yaml:495 (lab extra)yesproviders
providers.opencode_go.enabledboolTrue (lab-only, not in CONFIG_SCHEMA)config.yaml:495 (lab extra)yesproviders
providers.opencode_go.modelslist[] (lab-only, not in CONFIG_SCHEMA)config.yaml:495 (lab extra)yesproviders
providers.opencode_go.request_timeout_secondsint300 (lab-only, not in CONFIG_SCHEMA)config.yaml:495 (lab extra)yesproviders
reasoning.chain_of_thoughtboolTrueconfig.yaml:326 + CONFIG_SCHEMA['reasoning'].chain_of_thoughtcli_exploit_settings.py, tools/exploit_agent/runner/_impl.pyCoT / reflectionnoreasoningtests/test_reasoning.py
reasoning.critic_enabledboolTrueconfig.yaml:326 + CONFIG_SCHEMA['reasoning'].critic_enabledcli_exploit_settings.py, tools/exploit_agent/runner/_impl.pyCoT / reflectionnoreasoningtests/test_reasoning.py
reasoning.llm_reflectionboolFalse (schema) → True (lab)config.yaml:326 + CONFIG_SCHEMA['reasoning'].llm_reflectioncli_exploit_settings.py, tools/exploit_agent/runner/_impl.pyCoT / reflectionnoreasoningtests/test_reasoning.py
reasoning.observer_modestr'hybrid'heuristic | llm | hybridconfig.yaml:326 + CONFIG_SCHEMA['reasoning'].observer_modecli_exploit_settings.py, tools/exploit_agent/runner/_impl.pyCoT / reflectionnoreasoningtests/test_reasoning.py
reasoning.peer_consult_on_failure_thresholdint3config.yaml:326 + CONFIG_SCHEMA['reasoning'].peer_consult_on_failure_thresholdcli_exploit_settings.py, tools/exploit_agent/runner/_impl.pyCoT / reflectionnoreasoningtests/test_reasoning.py
reasoning.reflection_every_n_actionsint10config.yaml:326 + CONFIG_SCHEMA['reasoning'].reflection_every_n_actionscli_exploit_settings.py, tools/exploit_agent/runner/_impl.pyCoT / reflectionnoreasoningtests/test_reasoning.py
reasoning.ultrathinkboolFalse (schema) → True (lab)config.yaml:326 + CONFIG_SCHEMA['reasoning'].ultrathinkcli_exploit_settings.py, tools/exploit_agent/runner/_impl.pyCoT / reflectionnoreasoningtests/test_reasoning.py
reasoning.ultrathink_reflection_intervalint3config.yaml:326 + CONFIG_SCHEMA['reasoning'].ultrathink_reflection_intervalcli_exploit_settings.py, tools/exploit_agent/runner/_impl.pyCoT / reflectionnoreasoningtests/test_reasoning.py
recon.asn_whoisboolFalseconfig.yaml:213 + CONFIG_SCHEMA['recon'].asn_whoisrecon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.cloud_metadata_probeboolFalseconfig.yaml:213 + CONFIG_SCHEMA['recon'].cloud_metadata_proberecon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.dns_zone_transferboolFalseconfig.yaml:213 + CONFIG_SCHEMA['recon'].dns_zone_transferrecon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.domain_resolution.dns_zone_transferboolFalse (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.domain_resolution.enabledboolTrue (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.domain_resolution.max_subdomainsint500 (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.domain_resolution.subdomain_sourceslist[str]['crt_sh', 'dns_bruteforce', 'subfinder', 'amass'] (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.domain_resolution.whois_enabledboolTrue (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.extended_enumeratorsboolTrueconfig.yaml:213 + CONFIG_SCHEMA['recon'].extended_enumeratorsrecon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.fast.cache_ttl_secondsint300 (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.fast.cve_concurrencyint8 (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.fast.cve_lookupboolTrue (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.fast.enabledboolTrue (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.fast.max_concurrencyint8 (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.fast.overall_timeout_secondsint180 (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.fast.passive_osintboolTrue (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.fast.per_task_timeout_secondsint60 (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.fast.service_concurrencyint6 (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.fast.service_enumerationboolTrue (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.fast.tcp_discoveryboolTrue (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.fast.udp_top_portsint50 (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.max_retriesint2 (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.preflight_portslist[int][80, 443] (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.preflight_probeboolFalse (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.preflight_timeout_msint1000 (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.retry_delayfloat5.0 (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.shodan_api_keystr''config.yaml:213 + CONFIG_SCHEMA['recon'].shodan_api_keyrecon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthSHODAN_API_KEY (file wins)norecontests/test_recon*.py
recon.snmp_enumboolFalseconfig.yaml:213 + CONFIG_SCHEMA['recon'].snmp_enumrecon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.subdomain_enumboolFalseconfig.yaml:213 + CONFIG_SCHEMA['recon'].subdomain_enumrecon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.timeout_secondsint300 (lab-only, not in CONFIG_SCHEMA)config.yaml:213 (lab extra)recon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.udp_top_portsint100config.yaml:213 + CONFIG_SCHEMA['recon'].udp_top_portsrecon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.vhost_discoveryboolFalseconfig.yaml:213 + CONFIG_SCHEMA['recon'].vhost_discoveryrecon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
recon.waf_fingerprintboolFalseconfig.yaml:213 + CONFIG_SCHEMA['recon'].waf_fingerprintrecon_pipeline.py, tools/mcp_tools/domain.pyRecon coverage & depthnorecontests/test_recon*.py
replay_simulator.counterfactualboolFalseconfig.yaml:358 + CONFIG_SCHEMA['replay_simulator'].counterfactualno
replay_simulator.enabledboolFalse (schema) → True (lab)config.yaml:358 + CONFIG_SCHEMA['replay_simulator'].enabledno
research.allow_local_fetchboolFalseconfig.yaml:141 + CONFIG_SCHEMA['research'].allow_local_fetchmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.assistant.automaticboolTrueconfig.yaml:141 + CONFIG_SCHEMA['research'].assistant.automaticmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.assistant.enabledboolTrueconfig.yaml:141 + CONFIG_SCHEMA['research'].assistant.enabledmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.assistant.failure_triggerint2config.yaml:141 + CONFIG_SCHEMA['research'].assistant.failure_triggermcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.assistant.max_advisory_charsint4000config.yaml:141 + CONFIG_SCHEMA['research'].assistant.max_advisory_charsmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.assistant.max_auto_consultationsint4config.yaml:141 + CONFIG_SCHEMA['research'].assistant.max_auto_consultationsmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.assistant.max_model_roundsint3config.yaml:141 + CONFIG_SCHEMA['research'].assistant.max_model_roundsmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.assistant.max_tool_calls_per_consultationint5config.yaml:141 + CONFIG_SCHEMA['research'].assistant.max_tool_calls_per_consultationmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.assistant.model_aliasstr''config.yaml:141 + CONFIG_SCHEMA['research'].assistant.model_aliasmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.assistant.save_advisoriesboolTrueconfig.yaml:141 + CONFIG_SCHEMA['research'].assistant.save_advisoriesmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.assistant.timeout_secondsint90config.yaml:141 + CONFIG_SCHEMA['research'].assistant.timeout_secondsmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.cache_max_entriesint250config.yaml:141 + CONFIG_SCHEMA['research'].cache_max_entriesmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.cache_ttl_secondsint1800config.yaml:141 + CONFIG_SCHEMA['research'].cache_ttl_secondsmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.enabledboolTrueconfig.yaml:141 + CONFIG_SCHEMA['research'].enabledmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.fallback_providerstr'serpapi'ollama | serpapi | stdlib | ""config.yaml:141 + CONFIG_SCHEMA['research'].fallback_providermcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.max_content_charsint12000config.yaml:141 + CONFIG_SCHEMA['research'].max_content_charsmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.max_fetch_depthint5config.yaml:141 + CONFIG_SCHEMA['research'].max_fetch_depthmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.max_resultsint8config.yaml:141 + CONFIG_SCHEMA['research'].max_resultsmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.min_source_qualitystr'medium'low | medium | highconfig.yaml:141 + CONFIG_SCHEMA['research'].min_source_qualitymcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.ollama.api_key_envstr'OLLAMA_API_KEY'config.yaml:141 + CONFIG_SCHEMA['research'].ollama.api_key_envmcp_shared, web_researcher.py, api_key_store.pyWeb research + cacheOLLAMA_API_KEYnoresearchtests/test_research.py
research.ollama.max_resultsint8config.yaml:141 + CONFIG_SCHEMA['research'].ollama.max_resultsmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.ollama.use_web_fetchboolTrueconfig.yaml:141 + CONFIG_SCHEMA['research'].ollama.use_web_fetchmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.ollama.use_web_searchboolTrueconfig.yaml:141 + CONFIG_SCHEMA['research'].ollama.use_web_searchmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.providerstr'ollama'ollama | serpapi | stdlibconfig.yaml:141 + CONFIG_SCHEMA['research'].providermcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.require_api_key_for_mcp_toolsboolTrueconfig.yaml:141 + CONFIG_SCHEMA['research'].require_api_key_for_mcp_toolsmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.serpapi.api_key_envstr'SERPAPI_API_KEY'config.yaml:141 + CONFIG_SCHEMA['research'].serpapi.api_key_envmcp_shared, web_researcher.py, api_key_store.pyWeb research + cacheSERPAPI_API_KEYnoresearchtests/test_research.py
research.serpapi.endpointstr'https://serpapi.com/search.json'config.yaml:141 + CONFIG_SCHEMA['research'].serpapi.endpointmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.serpapi.enginestr'duckduckgo'config.yaml:141 + CONFIG_SCHEMA['research'].serpapi.enginemcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.serpapi.regionstr'us-en'config.yaml:141 + CONFIG_SCHEMA['research'].serpapi.regionmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
research.timeout_secondsint15config.yaml:141 + CONFIG_SCHEMA['research'].timeout_secondsmcp_shared, web_researcher.py, api_key_store.pyWeb research + cachenoresearchtests/test_research.py
sandbox.auto_manage_dockerboolFalse (schema) → True (lab)config.yaml:531 + CONFIG_SCHEMA['sandbox'].auto_manage_dockernosandbox
sandbox.backendstr'docker'config.yaml:531 + CONFIG_SCHEMA['sandbox'].backendnosandbox
sandbox.cleanup.remove_on_exitboolTrueconfig.yaml:531 + CONFIG_SCHEMA['sandbox'].cleanup.remove_on_exitnosandbox
sandbox.cleanup.remove_stale_on_startupboolTrueconfig.yaml:531 + CONFIG_SCHEMA['sandbox'].cleanup.remove_stale_on_startupnosandbox
sandbox.docker_start_timeout_secondsint60config.yaml:531 + CONFIG_SCHEMA['sandbox'].docker_start_timeout_secondsnosandbox
sandbox.docker_stop_timeout_secondsint30config.yaml:531 + CONFIG_SCHEMA['sandbox'].docker_stop_timeout_secondsnosandbox
sandbox.enabledboolTrueconfig.yaml:531 + CONFIG_SCHEMA['sandbox'].enablednosandbox
sandbox.env_passthroughlist[]config.yaml:531 + CONFIG_SCHEMA['sandbox'].env_passthroughnosandbox
sandbox.fallback_nativeboolFalseconfig.yaml:531 + CONFIG_SCHEMA['sandbox'].fallback_nativenosandbox
sandbox.imagestr'breachpilot-sandbox:latest'config.yaml:531 + CONFIG_SCHEMA['sandbox'].imagenosandbox
sandbox.multi_net_rawboolTrueconfig.yaml:531 + CONFIG_SCHEMA['sandbox'].multi_net_rawnosandbox
sandbox.network.allow_dnsstr'controlled'config.yaml:531 + CONFIG_SCHEMA['sandbox'].network.allow_dnsnosandbox
sandbox.network.allow_gatewayboolFalseconfig.yaml:531 + CONFIG_SCHEMA['sandbox'].network.allow_gatewaynosandbox
sandbox.network.allow_research_hostsboolTrueconfig.yaml:531 + CONFIG_SCHEMA['sandbox'].network.allow_research_hostsnosandbox
sandbox.network.enforceboolTrueconfig.yaml:531 + CONFIG_SCHEMA['sandbox'].network.enforcenosandbox
sandbox.network.extra_allow_cidrslist[]config.yaml:531 + CONFIG_SCHEMA['sandbox'].network.extra_allow_cidrsnosandbox
sandbox.network.fail_closedboolTrueconfig.yaml:531 + CONFIG_SCHEMA['sandbox'].network.fail_closednosandbox
sandbox.network.map_host_loopbackboolFalseconfig.yaml:531 + CONFIG_SCHEMA['sandbox'].network.map_host_loopbacknosandbox
sandbox.read_only_rootfsboolTrueconfig.yaml:531 + CONFIG_SCHEMA['sandbox'].read_only_rootfsnosandbox
sandbox.resources.cpusint2config.yaml:531 + CONFIG_SCHEMA['sandbox'].resources.cpusnosandbox
sandbox.resources.memory_mbint4096config.yaml:531 + CONFIG_SCHEMA['sandbox'].resources.memory_mbnosandbox
sandbox.resources.output_max_bytesint2000000config.yaml:531 + CONFIG_SCHEMA['sandbox'].resources.output_max_bytesnosandbox
sandbox.resources.pidsint512config.yaml:531 + CONFIG_SCHEMA['sandbox'].resources.pidsnosandbox
sandbox.resources.timeout_secondsint300config.yaml:531 + CONFIG_SCHEMA['sandbox'].resources.timeout_secondsnosandbox
sandbox.resources.tmpfs_size_mbint256config.yaml:531 + CONFIG_SCHEMA['sandbox'].resources.tmpfs_size_mbnosandbox
sandbox.userstr'sandbox'config.yaml:531 + CONFIG_SCHEMA['sandbox'].usernosandbox
skills.allow_model_lookupboolTrueconfig.yaml:400 + CONFIG_SCHEMA['skills'].allow_model_lookupskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.allow_reference_listingboolTrueconfig.yaml:400 + CONFIG_SCHEMA['skills'].allow_reference_listingskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.context_skill_weightint24config.yaml:400 + CONFIG_SCHEMA['skills'].context_skill_weightskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.default_enabledlist[str]['scanning-network-with-nmap-advanced', 'conducting-network-penetration-test', 'executing-red-team-engagement-planning', 'auditing-mcp-servers-for-tool-poisoning', 'securing-agentic-ai-tool-invocation'] (schema) → ['scanning-network-with-nmap-advanced', 'conducting-network-penetration-test', 'executing-red-team-engagement-planning', 'auditing-mcp-servers-for-tool-poisoning', 'securing-agentic-ai-tool-invocation', 'attacking-domains-end-to-end'] (lab)config.yaml:400 + CONFIG_SCHEMA['skills'].default_enabledskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.default_skill_weightint12config.yaml:400 + CONFIG_SCHEMA['skills'].default_skill_weightskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.diversity_penaltyint12config.yaml:400 + CONFIG_SCHEMA['skills'].diversity_penaltyskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.enabledboolTrueconfig.yaml:400 + CONFIG_SCHEMA['skills'].enabledskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.exclude_nameslist[]config.yaml:400 + CONFIG_SCHEMA['skills'].exclude_namesskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.feedback_enabledboolTrueconfig.yaml:400 + CONFIG_SCHEMA['skills'].feedback_enabledskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.feedback_min_observationsint3config.yaml:400 + CONFIG_SCHEMA['skills'].feedback_min_observationsskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.feedback_skill_weightint8config.yaml:400 + CONFIG_SCHEMA['skills'].feedback_skill_weightskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.include_metadataboolFalseconfig.yaml:400 + CONFIG_SCHEMA['skills'].include_metadataskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.include_tagslist[]config.yaml:400 + CONFIG_SCHEMA['skills'].include_tagsskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.inject_startup_contextboolFalseconfig.yaml:400 + CONFIG_SCHEMA['skills'].inject_startup_contextskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.max_active_skillsint6config.yaml:400 + CONFIG_SCHEMA['skills'].max_active_skillsskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.max_chars_per_skillint2500config.yaml:400 + CONFIG_SCHEMA['skills'].max_chars_per_skillskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.max_total_charsint9000config.yaml:400 + CONFIG_SCHEMA['skills'].max_total_charsskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.maybe_enabledboolFalseconfig.yaml:400 + CONFIG_SCHEMA['skills'].maybe_enabledskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.min_contextual_skillsint3config.yaml:400 + CONFIG_SCHEMA['skills'].min_contextual_skillsskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.reselect_max_per_runint3config.yaml:400 + CONFIG_SCHEMA['skills'].reselect_max_per_runskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.reselect_mid_runboolTrueconfig.yaml:400 + CONFIG_SCHEMA['skills'].reselect_mid_runskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.reselect_min_interval_actionsint5config.yaml:400 + CONFIG_SCHEMA['skills'].reselect_min_interval_actionsskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.reselect_sticky_defaultsboolTrueconfig.yaml:400 + CONFIG_SCHEMA['skills'].reselect_sticky_defaultsskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.rootslist[str]['skills']config.yaml:400 + CONFIG_SCHEMA['skills'].rootsskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.semantic_matchingboolTrueconfig.yaml:400 + CONFIG_SCHEMA['skills'].semantic_matchingskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.semantic_min_similarityfloat0.35config.yaml:400 + CONFIG_SCHEMA['skills'].semantic_min_similarityskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.semantic_modelstr'nomic-embed-text'config.yaml:400 + CONFIG_SCHEMA['skills'].semantic_modelskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.semantic_skill_weightint16config.yaml:400 + CONFIG_SCHEMA['skills'].semantic_skill_weightskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.swarm_injectboolTrueconfig.yaml:400 + CONFIG_SCHEMA['skills'].swarm_injectskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
skills.swarm_phase_hints_onlyboolTrueconfig.yaml:400 + CONFIG_SCHEMA['skills'].swarm_phase_hints_onlyskill_selector.py, skill_pipeline.py, exploit_agent/skills.pyRuntime skillsnoskillstests/test_skills*.py
snapshots.auto_before_destructiveboolTrueconfig.yaml:363 + CONFIG_SCHEMA['snapshots'].auto_before_destructivenosnapshots
snapshots.enabledboolFalseconfig.yaml:363 + CONFIG_SCHEMA['snapshots'].enablednosnapshots
snapshots.max_snapshots_per_targetint3config.yaml:363 + CONFIG_SCHEMA['snapshots'].max_snapshots_per_targetnosnapshots
snapshots.providerstr'docker'config.yaml:363 + CONFIG_SCHEMA['snapshots'].providernosnapshots
snapshots.providers.docker.compose_filestr'eval_targets/docker-compose.yml'config.yaml:363 + CONFIG_SCHEMA['snapshots'].providers.docker.compose_filenosnapshots
snapshots.providers.hyperv.powershell_commandstr'powershell'config.yaml:363 + CONFIG_SCHEMA['snapshots'].providers.hyperv.powershell_commandnosnapshots
snapshots.providers.libvirt.virsh_pathstr'virsh'config.yaml:363 + CONFIG_SCHEMA['snapshots'].providers.libvirt.virsh_pathnosnapshots
snapshots.providers.proxmox.hoststr''config.yaml:363 + CONFIG_SCHEMA['snapshots'].providers.proxmox.hostnosnapshots
snapshots.providers.proxmox.nodestr''config.yaml:363 + CONFIG_SCHEMA['snapshots'].providers.proxmox.nodenosnapshots
snapshots.providers.vmware.vmrun_pathstr'vmrun'config.yaml:363 + CONFIG_SCHEMA['snapshots'].providers.vmware.vmrun_pathnosnapshots
snapshots.vm_mapdict{}config.yaml:363 + CONFIG_SCHEMA['snapshots'].vm_mapnosnapshots
stealth.dns_over_httpsboolFalseconfig.yaml:108 + CONFIG_SCHEMA['stealth'].dns_over_httpsinteractive_menu.py (legacy)Legacy stealthnoopsec
stealth.doh_providerstr'cloudflare'cloudflare | googleconfig.yaml:108 + CONFIG_SCHEMA['stealth'].doh_providerinteractive_menu.py (legacy)Legacy stealthnoopsec
stealth.rotate_uaboolFalseconfig.yaml:108 + CONFIG_SCHEMA['stealth'].rotate_uainteractive_menu.py (legacy)Legacy stealthnoopsec
swarm.agentslist[str]['recon', 'vuln', 'exploit', 'post_exploit', 'critic', 'reflection']config.yaml:175 + CONFIG_SCHEMA['swarm'].agentscli_exploit_settings.py, swarm/orchestrator.pyMulti-agent swarmnoswarmtests/test_swarm*.py
swarm.enabledboolTrueconfig.yaml:175 + CONFIG_SCHEMA['swarm'].enabledcli_exploit_settings.py, swarm/orchestrator.pyMulti-agent swarmnoswarmtests/test_swarm*.py
swarm.exploit_parallelboolFalseconfig.yaml:175 + CONFIG_SCHEMA['swarm'].exploit_parallelcli_exploit_settings.py, swarm/orchestrator.pyMulti-agent swarmnoswarmtests/test_swarm*.py
swarm.max_parallel_agentsint3config.yaml:175 + CONFIG_SCHEMA['swarm'].max_parallel_agentscli_exploit_settings.py, swarm/orchestrator.pyMulti-agent swarmnoswarmtests/test_swarm*.py
swarm.negotiation_roundsint0 (schema) → 2 (lab)config.yaml:175 + CONFIG_SCHEMA['swarm'].negotiation_roundscli_exploit_settings.py, swarm/orchestrator.pyMulti-agent swarmnoswarmtests/test_swarm*.py
swarm.parallel_enabledboolFalseconfig.yaml:175 + CONFIG_SCHEMA['swarm'].parallel_enabledcli_exploit_settings.py, swarm/orchestrator.pyMulti-agent swarmnoswarmtests/test_swarm*.py
swarm.per_phase_concurrencyint3config.yaml:175 + CONFIG_SCHEMA['swarm'].per_phase_concurrencycli_exploit_settings.py, swarm/orchestrator.pyMulti-agent swarmnoswarmtests/test_swarm*.py
swarm.subagent_timeout_secondsint600config.yaml:175 + CONFIG_SCHEMA['swarm'].subagent_timeout_secondscli_exploit_settings.py, swarm/orchestrator.pyMulti-agent swarmnoswarmtests/test_swarm*.py
threat_intel.cache_dirstr'exploit_workspace/.threat_intel'config.yaml:129 + CONFIG_SCHEMA['threat_intel'].cache_dirthreat_intel.py, mcp_tools/research.pyOSV/GHSA/KEVnothreat_inteltests/test_threat*.py
threat_intel.cache_ttl_secondsint86400config.yaml:129 + CONFIG_SCHEMA['threat_intel'].cache_ttl_secondsthreat_intel.py, mcp_tools/research.pyOSV/GHSA/KEVnothreat_inteltests/test_threat*.py
threat_intel.enabledboolTrueconfig.yaml:129 + CONFIG_SCHEMA['threat_intel'].enabledthreat_intel.py, mcp_tools/research.pyOSV/GHSA/KEVnothreat_inteltests/test_threat*.py
threat_intel.github_token_envstr'GITHUB_TOKEN'config.yaml:129 + CONFIG_SCHEMA['threat_intel'].github_token_envthreat_intel.py, mcp_tools/research.pyOSV/GHSA/KEVGITHUB_TOKENnothreat_inteltests/test_threat*.py
threat_intel.max_resultsint20config.yaml:129 + CONFIG_SCHEMA['threat_intel'].max_resultsthreat_intel.py, mcp_tools/research.pyOSV/GHSA/KEVnothreat_inteltests/test_threat*.py
threat_intel.sources.exploitdb_rssboolFalseconfig.yaml:129 + CONFIG_SCHEMA['threat_intel'].sources.exploitdb_rssthreat_intel.py, mcp_tools/research.pyOSV/GHSA/KEVnothreat_inteltests/test_threat*.py
threat_intel.sources.ghsaboolTrueconfig.yaml:129 + CONFIG_SCHEMA['threat_intel'].sources.ghsathreat_intel.py, mcp_tools/research.pyOSV/GHSA/KEVnothreat_inteltests/test_threat*.py
threat_intel.sources.kevboolTrueconfig.yaml:129 + CONFIG_SCHEMA['threat_intel'].sources.kevthreat_intel.py, mcp_tools/research.pyOSV/GHSA/KEVnothreat_inteltests/test_threat*.py
threat_intel.sources.osvboolTrueconfig.yaml:129 + CONFIG_SCHEMA['threat_intel'].sources.osvthreat_intel.py, mcp_tools/research.pyOSV/GHSA/KEVnothreat_inteltests/test_threat*.py
threat_intel.timeout_secondsint30config.yaml:129 + CONFIG_SCHEMA['threat_intel'].timeout_secondsthreat_intel.py, mcp_tools/research.pyOSV/GHSA/KEVnothreat_inteltests/test_threat*.py
ticketing.backoff_secondsfloat2.0config.yaml:487 + CONFIG_SCHEMA['ticketing'].backoff_secondsticketing.pyJira/GitHub ticketsnoticketing
ticketing.base_urlstr''config.yaml:487 + CONFIG_SCHEMA['ticketing'].base_urlticketing.pyJira/GitHub ticketsnoticketing
ticketing.enabledboolTrueconfig.yaml:487 + CONFIG_SCHEMA['ticketing'].enabledticketing.pyJira/GitHub ticketsnoticketing
ticketing.max_retriesint3config.yaml:487 + CONFIG_SCHEMA['ticketing'].max_retriesticketing.pyJira/GitHub ticketsnoticketing
ticketing.project_keystr''config.yaml:487 + CONFIG_SCHEMA['ticketing'].project_keyticketing.pyJira/GitHub ticketsnoticketing
ticketing.providerstr''config.yaml:487 + CONFIG_SCHEMA['ticketing'].providerticketing.pyJira/GitHub ticketsnoticketing
ticketing.token_envstr'TICKETING_TOKEN'config.yaml:487 + CONFIG_SCHEMA['ticketing'].token_envticketing.pyJira/GitHub ticketsTICKETING_TOKENnoticketing
webhook_notify.backoff_secondsfloat2.0config.yaml:472 + CONFIG_SCHEMA['webhook_notify'].backoff_secondsplugins/webhook_notify.pySlack/Discord webhooknoplugins
webhook_notify.enabledboolTrueconfig.yaml:472 + CONFIG_SCHEMA['webhook_notify'].enabledplugins/webhook_notify.pySlack/Discord webhooknoplugins
webhook_notify.eventslist[str]['finding', 'state']config.yaml:472 + CONFIG_SCHEMA['webhook_notify'].eventsplugins/webhook_notify.pySlack/Discord webhooknoplugins
webhook_notify.max_payload_charsint8192config.yaml:472 + CONFIG_SCHEMA['webhook_notify'].max_payload_charsplugins/webhook_notify.pySlack/Discord webhooknoplugins
webhook_notify.max_retriesint3config.yaml:472 + CONFIG_SCHEMA['webhook_notify'].max_retriesplugins/webhook_notify.pySlack/Discord webhooknoplugins
webhook_notify.timeout_secondsint5config.yaml:472 + CONFIG_SCHEMA['webhook_notify'].timeout_secondsplugins/webhook_notify.pySlack/Discord webhooknoplugins
webhook_notify.urlstr''config.yaml:472 + CONFIG_SCHEMA['webhook_notify'].urlplugins/webhook_notify.pySlack/Discord webhooknoplugins
witness.dos_failure_thresholdint8config.yaml:190 + CONFIG_SCHEMA['witness'].dos_failure_thresholdswarm/agents/witness_agent.pyAudit watchernowitnesstests/test_witness.py
witness.dos_failure_window_secondsfloat60.0config.yaml:190 + CONFIG_SCHEMA['witness'].dos_failure_window_secondsswarm/agents/witness_agent.pyAudit watchernowitnesstests/test_witness.py
witness.enabledboolFalse (schema) → True (lab)config.yaml:190 + CONFIG_SCHEMA['witness'].enabledrun_service/execute.py (per-run side task) + swarm/agents/witness_agent.pyAudit watcher (advisory)nowitnesstests/test_witness_wiring.py, tests/test_witness.py
witness.escalate_to_event_brokerboolTrueconfig.yaml:190 + CONFIG_SCHEMA['witness'].escalate_to_event_brokerswarm/agents/witness_agent.pyAudit watchernowitnesstests/test_witness.py
witness.log_pathstr'reports/witness.jsonl'config.yaml:190 + CONFIG_SCHEMA['witness'].log_pathswarm/agents/witness_agent.pyAudit watchernowitnesstests/test_witness.py
witness.max_flags_per_signal_per_minuteint10config.yaml:190 + CONFIG_SCHEMA['witness'].max_flags_per_signal_per_minuteswarm/agents/witness_agent.pyAudit watchernowitnesstests/test_witness.py
witness.poll_interval_secondsint5config.yaml:190 + CONFIG_SCHEMA['witness'].poll_interval_secondsswarm/agents/witness_agent.pyAudit watchernowitnesstests/test_witness.py

Notes

  • Verified: every Key is a leaf path present in config.yaml (checked via yaml.safe_load). No invented keys.
  • Schema vs lab: Default shows CONFIG_SCHEMA default; when lab differs, both shown as schema → lab. Lab-only keys (autonomous.dedup_targets, recon.preflight_*, recon.fast.*, api.max_concurrent_runs) have no schema default.
  • Restart: yes = daemon/router rebuild; no = next build_*/orchestration.
  • Allowed: = free-form string/int/list; enums where validated (see tools/config_manager.ConfigValidator.validate).
source: repo docs (build sync)Edit this page on GitHub →