agent-learning-kit 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (642) hide show
  1. agent_learning_kit-0.1.0.dist-info/METADATA +381 -0
  2. agent_learning_kit-0.1.0.dist-info/RECORD +642 -0
  3. agent_learning_kit-0.1.0.dist-info/WHEEL +4 -0
  4. agent_learning_kit-0.1.0.dist-info/entry_points.txt +5 -0
  5. agent_learning_kit-0.1.0.dist-info/licenses/LICENSE +173 -0
  6. agent_learning_kit-0.1.0.dist-info/licenses/NOTICE +7 -0
  7. fi/__init__.py +5 -0
  8. fi/alk/__init__.py +57 -0
  9. fi/alk/_facade.py +31 -0
  10. fi/alk/_module_alias.py +68 -0
  11. fi/alk/_paths.py +14 -0
  12. fi/alk/_schema.py +522 -0
  13. fi/alk/actions.py +727 -0
  14. fi/alk/bench/__init__.py +517 -0
  15. fi/alk/bench/_codeexec.py +213 -0
  16. fi/alk/bench/_coding.py +215 -0
  17. fi/alk/bench/_docker.py +237 -0
  18. fi/alk/bench/_grader.py +286 -0
  19. fi/alk/bench/_pull.py +212 -0
  20. fi/alk/bench/_voice.py +147 -0
  21. fi/alk/capabilities.py +627 -0
  22. fi/alk/cli.py +6396 -0
  23. fi/alk/config.py +130 -0
  24. fi/alk/cua_loop.py +562 -0
  25. fi/alk/evals.py +2351 -0
  26. fi/alk/extensions.py +163 -0
  27. fi/alk/harness/ARCHITECTURE.md +231 -0
  28. fi/alk/harness/DESIGN.md +246 -0
  29. fi/alk/harness/ENVIRONMENT_CONFORMANCE.md +127 -0
  30. fi/alk/harness/HOW-IT-WORKS.md +297 -0
  31. fi/alk/harness/IMPLEMENTATION_AND_VALIDATION_STATUS.md +229 -0
  32. fi/alk/harness/README.md +417 -0
  33. fi/alk/harness/__init__.py +77 -0
  34. fi/alk/harness/__main__.py +3 -0
  35. fi/alk/harness/amend.py +312 -0
  36. fi/alk/harness/artifacts.py +319 -0
  37. fi/alk/harness/authoring_entrypoint.py +189 -0
  38. fi/alk/harness/authoring_runtime_validation.py +267 -0
  39. fi/alk/harness/backends/README.md +43 -0
  40. fi/alk/harness/backends/__init__.py +122 -0
  41. fi/alk/harness/backends/base.py +241 -0
  42. fi/alk/harness/backends/claude.py +211 -0
  43. fi/alk/harness/backends/files.py +182 -0
  44. fi/alk/harness/backends/vertex_gemini.py +457 -0
  45. fi/alk/harness/background_noise.py +95 -0
  46. fi/alk/harness/build.py +385 -0
  47. fi/alk/harness/bundle.py +593 -0
  48. fi/alk/harness/bundle_author_v2.py +1831 -0
  49. fi/alk/harness/bundle_v2.py +719 -0
  50. fi/alk/harness/call_runner.py +1440 -0
  51. fi/alk/harness/callback_http_adapter.py +111 -0
  52. fi/alk/harness/catalogue.py +287 -0
  53. fi/alk/harness/chat.py +428 -0
  54. fi/alk/harness/chat_call_runner.py +506 -0
  55. fi/alk/harness/checks.py +136 -0
  56. fi/alk/harness/cli.py +1354 -0
  57. fi/alk/harness/config.py +338 -0
  58. fi/alk/harness/contract.py +718 -0
  59. fi/alk/harness/credentials.py +674 -0
  60. fi/alk/harness/data/persona_vocabulary.json +111 -0
  61. fi/alk/harness/environment.py +99 -0
  62. fi/alk/harness/environment_plan.py +168 -0
  63. fi/alk/harness/events.py +125 -0
  64. fi/alk/harness/executor.py +304 -0
  65. fi/alk/harness/folder.py +234 -0
  66. fi/alk/harness/generated_runtime.py +815 -0
  67. fi/alk/harness/github.py +72 -0
  68. fi/alk/harness/hosted_authoring_entrypoint.py +183 -0
  69. fi/alk/harness/hosted_entrypoint.py +2402 -0
  70. fi/alk/harness/hosted_scheduler.py +2218 -0
  71. fi/alk/harness/job.py +426 -0
  72. fi/alk/harness/judge.py +184 -0
  73. fi/alk/harness/livekit_source.py +50 -0
  74. fi/alk/harness/livekit_tool_trace_bootstrap.py +71 -0
  75. fi/alk/harness/observability.py +208 -0
  76. fi/alk/harness/outbound.py +3252 -0
  77. fi/alk/harness/packaging.py +515 -0
  78. fi/alk/harness/persona_guides.py +157 -0
  79. fi/alk/harness/platform.py +692 -0
  80. fi/alk/harness/process_preflight.py +764 -0
  81. fi/alk/harness/process_runtime.py +5670 -0
  82. fi/alk/harness/prove.py +425 -0
  83. fi/alk/harness/provider_import.py +703 -0
  84. fi/alk/harness/provider_lifecycle.py +392 -0
  85. fi/alk/harness/provision.py +2896 -0
  86. fi/alk/harness/reception.py +147 -0
  87. fi/alk/harness/retell_chat_call_runner.py +373 -0
  88. fi/alk/harness/run/__init__.py +296 -0
  89. fi/alk/harness/run/alk.py +184 -0
  90. fi/alk/harness/run/call.py +162 -0
  91. fi/alk/harness/run/conversation.py +264 -0
  92. fi/alk/harness/run/data/voices_by_language_and_gender.json +693 -0
  93. fi/alk/harness/run/evidence.py +195 -0
  94. fi/alk/harness/run/grade.py +598 -0
  95. fi/alk/harness/run/live.py +297 -0
  96. fi/alk/harness/run/models.py +56 -0
  97. fi/alk/harness/run/platform_evals.py +227 -0
  98. fi/alk/harness/run/sdk_voice.py +130 -0
  99. fi/alk/harness/run/simulation.py +1209 -0
  100. fi/alk/harness/run/stage.py +91 -0
  101. fi/alk/harness/run/targets.py +508 -0
  102. fi/alk/harness/run/tools.py +601 -0
  103. fi/alk/harness/run/voice.py +340 -0
  104. fi/alk/harness/runtime.py +172 -0
  105. fi/alk/harness/sandbox_server.py +2011 -0
  106. fi/alk/harness/sandbox_worker.py +44 -0
  107. fi/alk/harness/scenario.py +1048 -0
  108. fi/alk/harness/scenario_source.py +879 -0
  109. fi/alk/harness/scenario_tools.py +1143 -0
  110. fi/alk/harness/scenarios.py +915 -0
  111. fi/alk/harness/secrets.py +168 -0
  112. fi/alk/harness/service_catalog.py +97 -0
  113. fi/alk/harness/session.py +391 -0
  114. fi/alk/harness/sessions.py +372 -0
  115. fi/alk/harness/simulator.py +76 -0
  116. fi/alk/harness/simulator_voice.py +928 -0
  117. fi/alk/harness/skills/build-environment/SKILL.md +538 -0
  118. fi/alk/harness/skills/harness.md +131 -0
  119. fi/alk/harness/skills/kinds/chat.md +48 -0
  120. fi/alk/harness/skills/kinds/voice-voicemail.md +63 -0
  121. fi/alk/harness/skills/kinds/voice.md +59 -0
  122. fi/alk/harness/skills/plan-suite/SKILL.md +103 -0
  123. fi/alk/harness/skills/provision-environment/SKILL.md +136 -0
  124. fi/alk/harness/skills/run-scenarios/SKILL.md +112 -0
  125. fi/alk/harness/skills/understand-agent/SKILL.md +251 -0
  126. fi/alk/harness/skills/write-scenarios/SKILL.md +606 -0
  127. fi/alk/harness/skills/write-scenarios/references/refusals.md +28 -0
  128. fi/alk/harness/skills/write-scenarios/references/world-api.md +92 -0
  129. fi/alk/harness/source_data_invariants.py +444 -0
  130. fi/alk/harness/source_tool_evidence.py +79 -0
  131. fi/alk/harness/sources.py +253 -0
  132. fi/alk/harness/spend.py +140 -0
  133. fi/alk/harness/tool_trace_proxy.py +104 -0
  134. fi/alk/harness/tools.py +1018 -0
  135. fi/alk/harness/understand.py +169 -0
  136. fi/alk/harness/voicemail_audio.py +74 -0
  137. fi/alk/harness/world/__init__.py +33 -0
  138. fi/alk/harness/world/errors.py +68 -0
  139. fi/alk/harness/world/expectations.py +91 -0
  140. fi/alk/harness/world/handle.py +538 -0
  141. fi/alk/harness/world/kinds.py +196 -0
  142. fi/alk/harness/world/mutate.py +186 -0
  143. fi/alk/harness/world/probe.py +413 -0
  144. fi/alk/harness/world/provision.py +511 -0
  145. fi/alk/harness/world/provisioned.py +191 -0
  146. fi/alk/harness/world/runtime.py +616 -0
  147. fi/alk/harness/world/snapshot.py +288 -0
  148. fi/alk/harness/world/stores/__init__.py +305 -0
  149. fi/alk/harness/world/stores/container.py +215 -0
  150. fi/alk/harness/world/stores/inprocess.py +346 -0
  151. fi/alk/harness/world/stores/postgres.py +481 -0
  152. fi/alk/harness/world/stores/prove.py +202 -0
  153. fi/alk/harness/world/stores/sqlite.py +245 -0
  154. fi/alk/harness/world/stores/written.py +182 -0
  155. fi/alk/harness/world/tools.py +1516 -0
  156. fi/alk/harness/world/workspace.py +144 -0
  157. fi/alk/image_loop.py +453 -0
  158. fi/alk/image_perturb.py +241 -0
  159. fi/alk/improve.py +274 -0
  160. fi/alk/live/__init__.py +154 -0
  161. fi/alk/live/_attribution.py +184 -0
  162. fi/alk/live/_capture.py +264 -0
  163. fi/alk/live/_codec.py +391 -0
  164. fi/alk/live/_contract.py +134 -0
  165. fi/alk/live/_loopback.py +316 -0
  166. fi/alk/live/_perturb.py +449 -0
  167. fi/alk/live/_runner.py +386 -0
  168. fi/alk/live/_stats.py +561 -0
  169. fi/alk/live/_transcript.py +240 -0
  170. fi/alk/live/_workers/__init__.py +9 -0
  171. fi/alk/live/_workers/a2a_worker.py +316 -0
  172. fi/alk/live/_workers/langgraph_worker.py +217 -0
  173. fi/alk/live/_workers/livekit_worker.py +207 -0
  174. fi/alk/live/_workers/mcp_loopback_server.py +46 -0
  175. fi/alk/live/_workers/mcp_worker.py +158 -0
  176. fi/alk/live/_workers/pipecat_worker.py +189 -0
  177. fi/alk/live/a2a_lane.py +138 -0
  178. fi/alk/live/langgraph_lane.py +339 -0
  179. fi/alk/live/livekit_lane.py +376 -0
  180. fi/alk/live/mcp_lane.py +172 -0
  181. fi/alk/live/pipecat_lane.py +341 -0
  182. fi/alk/live/voice_redteam.py +494 -0
  183. fi/alk/loss.py +306 -0
  184. fi/alk/optimize.py +36260 -0
  185. fi/alk/practice/__init__.py +51 -0
  186. fi/alk/practice/_assess.py +103 -0
  187. fi/alk/practice/_budget.py +81 -0
  188. fi/alk/practice/_calibrate.py +69 -0
  189. fi/alk/practice/_capstone.py +86 -0
  190. fi/alk/practice/_contract.py +91 -0
  191. fi/alk/practice/_diagnose.py +79 -0
  192. fi/alk/practice/_drill.py +196 -0
  193. fi/alk/practice/_experiment.py +720 -0
  194. fi/alk/practice/_schedule.py +102 -0
  195. fi/alk/practice/_store.py +194 -0
  196. fi/alk/practice/_trainer.py +245 -0
  197. fi/alk/practice/_update.py +125 -0
  198. fi/alk/redteam.py +2621 -0
  199. fi/alk/rewardhack.py +237 -0
  200. fi/alk/simulate.py +10351 -0
  201. fi/alk/studio/__init__.py +82 -0
  202. fi/alk/studio/_bias.py +314 -0
  203. fi/alk/studio/_calibration.py +522 -0
  204. fi/alk/studio/_coverage.py +262 -0
  205. fi/alk/studio/_download.py +665 -0
  206. fi/alk/studio/_fidelity_attack.py +114 -0
  207. fi/alk/studio/_generate.py +652 -0
  208. fi/alk/studio/_library.py +370 -0
  209. fi/alk/studio/_scan.py +134 -0
  210. fi/alk/studio/_upgrade.py +42 -0
  211. fi/alk/studio/_vendor.py +172 -0
  212. fi/alk/suite.py +4200 -0
  213. fi/alk/tasks.py +828 -0
  214. fi/alk/telemetry/__init__.py +149 -0
  215. fi/alk/telemetry/_contract.py +141 -0
  216. fi/alk/telemetry/_emit.py +182 -0
  217. fi/alk/telemetry/_ledger.py +296 -0
  218. fi/alk/telemetry/_queue.py +127 -0
  219. fi/alk/telemetry/_row.py +294 -0
  220. fi/alk/telemetry/_run.py +233 -0
  221. fi/alk/telemetry/_sync.py +193 -0
  222. fi/alk/telemetry/_url.py +119 -0
  223. fi/alk/trinity.py +49397 -0
  224. fi/alk/voice_loop.py +174 -0
  225. fi/api/__init__.py +1 -0
  226. fi/api/auth.py +137 -0
  227. fi/api/types.py +29 -0
  228. fi/cli/__init__.py +9 -0
  229. fi/cli/assertions/__init__.py +25 -0
  230. fi/cli/assertions/conditions.py +76 -0
  231. fi/cli/assertions/evaluator.py +286 -0
  232. fi/cli/assertions/exit_codes.py +20 -0
  233. fi/cli/assertions/parser.py +131 -0
  234. fi/cli/assertions/reporter.py +194 -0
  235. fi/cli/commands/__init__.py +9 -0
  236. fi/cli/commands/config.py +165 -0
  237. fi/cli/commands/export.py +208 -0
  238. fi/cli/commands/init.py +112 -0
  239. fi/cli/commands/list_cmd.py +213 -0
  240. fi/cli/commands/run.py +486 -0
  241. fi/cli/commands/validate.py +173 -0
  242. fi/cli/commands/view.py +424 -0
  243. fi/cli/config/__init__.py +6 -0
  244. fi/cli/config/defaults.py +206 -0
  245. fi/cli/config/loader.py +155 -0
  246. fi/cli/config/schema.py +174 -0
  247. fi/cli/main.py +78 -0
  248. fi/cli/output/__init__.py +6 -0
  249. fi/cli/output/formatters.py +106 -0
  250. fi/cli/output/reporters.py +46 -0
  251. fi/cli/storage/__init__.py +5 -0
  252. fi/cli/storage/run_history.py +249 -0
  253. fi/cli/utils/__init__.py +5 -0
  254. fi/cli/utils/console.py +44 -0
  255. fi/evals/__init__.py +131 -0
  256. fi/evals/autoeval/__init__.py +137 -0
  257. fi/evals/autoeval/analyzer.py +211 -0
  258. fi/evals/autoeval/config.py +244 -0
  259. fi/evals/autoeval/export.py +213 -0
  260. fi/evals/autoeval/interactive.py +283 -0
  261. fi/evals/autoeval/pipeline.py +625 -0
  262. fi/evals/autoeval/prompts.py +139 -0
  263. fi/evals/autoeval/recommender.py +242 -0
  264. fi/evals/autoeval/rules.py +589 -0
  265. fi/evals/autoeval/templates.py +299 -0
  266. fi/evals/autoeval/types.py +232 -0
  267. fi/evals/core/__init__.py +16 -0
  268. fi/evals/core/cloud_registry.py +184 -0
  269. fi/evals/core/engines.py +368 -0
  270. fi/evals/core/evaluate.py +319 -0
  271. fi/evals/core/judge_prompt.py +90 -0
  272. fi/evals/core/prompt_generator.py +83 -0
  273. fi/evals/core/registry.py +57 -0
  274. fi/evals/core/result.py +55 -0
  275. fi/evals/evaluator.py +721 -0
  276. fi/evals/execution.py +168 -0
  277. fi/evals/feedback/__init__.py +32 -0
  278. fi/evals/feedback/calibrator.py +160 -0
  279. fi/evals/feedback/collector.py +214 -0
  280. fi/evals/feedback/hooks.py +81 -0
  281. fi/evals/feedback/retriever.py +128 -0
  282. fi/evals/feedback/store.py +272 -0
  283. fi/evals/feedback/types.py +99 -0
  284. fi/evals/framework/README.md +79 -0
  285. fi/evals/framework/__init__.py +267 -0
  286. fi/evals/framework/backends/Dockerfile.eval-runner +33 -0
  287. fi/evals/framework/backends/__init__.py +99 -0
  288. fi/evals/framework/backends/_container.py +141 -0
  289. fi/evals/framework/backends/_utils.py +145 -0
  290. fi/evals/framework/backends/base.py +223 -0
  291. fi/evals/framework/backends/celery_backend.py +417 -0
  292. fi/evals/framework/backends/celery_worker.py +78 -0
  293. fi/evals/framework/backends/kubernetes_backend.py +665 -0
  294. fi/evals/framework/backends/ray_backend.py +521 -0
  295. fi/evals/framework/backends/temporal.py +350 -0
  296. fi/evals/framework/backends/temporal_worker.py +126 -0
  297. fi/evals/framework/backends/thread_pool.py +286 -0
  298. fi/evals/framework/context.py +258 -0
  299. fi/evals/framework/enrichment.py +306 -0
  300. fi/evals/framework/evals/__init__.py +68 -0
  301. fi/evals/framework/evals/agentic.py +399 -0
  302. fi/evals/framework/evals/builder.py +609 -0
  303. fi/evals/framework/evals/semantic.py +142 -0
  304. fi/evals/framework/evaluator.py +647 -0
  305. fi/evals/framework/evaluators/__init__.py +22 -0
  306. fi/evals/framework/evaluators/blocking.py +347 -0
  307. fi/evals/framework/evaluators/non_blocking.py +577 -0
  308. fi/evals/framework/propagation.py +421 -0
  309. fi/evals/framework/protocols.py +385 -0
  310. fi/evals/framework/registry.py +370 -0
  311. fi/evals/framework/resilience/__init__.py +150 -0
  312. fi/evals/framework/resilience/circuit_breaker.py +309 -0
  313. fi/evals/framework/resilience/degradation.py +355 -0
  314. fi/evals/framework/resilience/health.py +505 -0
  315. fi/evals/framework/resilience/rate_limiter.py +228 -0
  316. fi/evals/framework/resilience/retry.py +274 -0
  317. fi/evals/framework/resilience/types.py +288 -0
  318. fi/evals/framework/resilience/wrapper.py +433 -0
  319. fi/evals/framework/types.py +218 -0
  320. fi/evals/guardrails/README.md +915 -0
  321. fi/evals/guardrails/__init__.py +96 -0
  322. fi/evals/guardrails/backends/__init__.py +43 -0
  323. fi/evals/guardrails/backends/azure.py +361 -0
  324. fi/evals/guardrails/backends/base.py +88 -0
  325. fi/evals/guardrails/backends/generic_llm.py +163 -0
  326. fi/evals/guardrails/backends/granite.py +216 -0
  327. fi/evals/guardrails/backends/llamaguard.py +221 -0
  328. fi/evals/guardrails/backends/local_base.py +479 -0
  329. fi/evals/guardrails/backends/openai.py +365 -0
  330. fi/evals/guardrails/backends/qwen.py +170 -0
  331. fi/evals/guardrails/backends/shieldgemma.py +154 -0
  332. fi/evals/guardrails/backends/turing.py +235 -0
  333. fi/evals/guardrails/backends/vllm_client.py +321 -0
  334. fi/evals/guardrails/backends/wildguard.py +188 -0
  335. fi/evals/guardrails/base.py +888 -0
  336. fi/evals/guardrails/config.py +221 -0
  337. fi/evals/guardrails/discovery.py +243 -0
  338. fi/evals/guardrails/gateway.py +437 -0
  339. fi/evals/guardrails/registry.py +231 -0
  340. fi/evals/guardrails/scanners/__init__.py +127 -0
  341. fi/evals/guardrails/scanners/base.py +191 -0
  342. fi/evals/guardrails/scanners/code_injection.py +243 -0
  343. fi/evals/guardrails/scanners/eval_delegate.py +574 -0
  344. fi/evals/guardrails/scanners/invisible_chars.py +351 -0
  345. fi/evals/guardrails/scanners/jailbreak.py +412 -0
  346. fi/evals/guardrails/scanners/language.py +288 -0
  347. fi/evals/guardrails/scanners/pipeline.py +260 -0
  348. fi/evals/guardrails/scanners/regex.py +311 -0
  349. fi/evals/guardrails/scanners/secrets.py +274 -0
  350. fi/evals/guardrails/scanners/topics.py +649 -0
  351. fi/evals/guardrails/scanners/urls.py +341 -0
  352. fi/evals/guardrails/types.py +96 -0
  353. fi/evals/llm/__init__.py +3 -0
  354. fi/evals/llm/base_llm_provider.py +35 -0
  355. fi/evals/llm/providers/litellm.py +70 -0
  356. fi/evals/local/__init__.py +90 -0
  357. fi/evals/local/evaluator.py +690 -0
  358. fi/evals/local/execution_mode.py +121 -0
  359. fi/evals/local/llm.py +489 -0
  360. fi/evals/local/metrics/__init__.py +19 -0
  361. fi/evals/local/registry.py +360 -0
  362. fi/evals/manager.py +1018 -0
  363. fi/evals/manager_types.py +362 -0
  364. fi/evals/metrics/__init__.py +185 -0
  365. fi/evals/metrics/agents/__init__.py +74 -0
  366. fi/evals/metrics/agents/metrics.py +693 -0
  367. fi/evals/metrics/agents/report.py +36463 -0
  368. fi/evals/metrics/agents/types.py +160 -0
  369. fi/evals/metrics/base_llm_metric.py +111 -0
  370. fi/evals/metrics/base_metric.py +138 -0
  371. fi/evals/metrics/code_security/__init__.py +305 -0
  372. fi/evals/metrics/code_security/analyzer.py +985 -0
  373. fi/evals/metrics/code_security/benchmarks/__init__.py +73 -0
  374. fi/evals/metrics/code_security/benchmarks/builtin.py +750 -0
  375. fi/evals/metrics/code_security/benchmarks/loader.py +580 -0
  376. fi/evals/metrics/code_security/benchmarks/types.py +308 -0
  377. fi/evals/metrics/code_security/detectors/__init__.py +186 -0
  378. fi/evals/metrics/code_security/detectors/base.py +394 -0
  379. fi/evals/metrics/code_security/detectors/cryptography.py +345 -0
  380. fi/evals/metrics/code_security/detectors/injection.py +744 -0
  381. fi/evals/metrics/code_security/detectors/secrets.py +287 -0
  382. fi/evals/metrics/code_security/detectors/serialization.py +192 -0
  383. fi/evals/metrics/code_security/joint_metrics.py +588 -0
  384. fi/evals/metrics/code_security/judges/__init__.py +83 -0
  385. fi/evals/metrics/code_security/judges/base.py +238 -0
  386. fi/evals/metrics/code_security/judges/dual_judge.py +534 -0
  387. fi/evals/metrics/code_security/judges/llm_judge.py +301 -0
  388. fi/evals/metrics/code_security/judges/pattern_judge.py +515 -0
  389. fi/evals/metrics/code_security/metrics.py +388 -0
  390. fi/evals/metrics/code_security/modes/__init__.py +63 -0
  391. fi/evals/metrics/code_security/modes/adversarial.py +284 -0
  392. fi/evals/metrics/code_security/modes/autocomplete.py +198 -0
  393. fi/evals/metrics/code_security/modes/base.py +283 -0
  394. fi/evals/metrics/code_security/modes/instruct.py +253 -0
  395. fi/evals/metrics/code_security/modes/repair.py +230 -0
  396. fi/evals/metrics/code_security/reports/__init__.py +57 -0
  397. fi/evals/metrics/code_security/reports/generator.py +404 -0
  398. fi/evals/metrics/code_security/reports/leaderboard.py +509 -0
  399. fi/evals/metrics/code_security/types.py +534 -0
  400. fi/evals/metrics/function_calling/__init__.py +34 -0
  401. fi/evals/metrics/function_calling/metrics.py +573 -0
  402. fi/evals/metrics/function_calling/types.py +87 -0
  403. fi/evals/metrics/hallucination/__init__.py +54 -0
  404. fi/evals/metrics/hallucination/detector.py +149 -0
  405. fi/evals/metrics/hallucination/metrics.py +390 -0
  406. fi/evals/metrics/hallucination/nli.py +253 -0
  407. fi/evals/metrics/hallucination/sentinel.py +106 -0
  408. fi/evals/metrics/hallucination/types.py +132 -0
  409. fi/evals/metrics/heuristics/aggregation_metrics.py +85 -0
  410. fi/evals/metrics/heuristics/json_metrics.py +87 -0
  411. fi/evals/metrics/heuristics/similarity_metrics.py +375 -0
  412. fi/evals/metrics/heuristics/string_metrics.py +391 -0
  413. fi/evals/metrics/llm_as_judges/__init__.py +17 -0
  414. fi/evals/metrics/llm_as_judges/custom_judge/metric.py +112 -0
  415. fi/evals/metrics/llm_as_judges/custom_judge/prompts.py +26 -0
  416. fi/evals/metrics/llm_as_judges/types.py +48 -0
  417. fi/evals/metrics/rag/__init__.py +111 -0
  418. fi/evals/metrics/rag/advanced/__init__.py +14 -0
  419. fi/evals/metrics/rag/advanced/multi_hop.py +283 -0
  420. fi/evals/metrics/rag/advanced/source_attribution.py +344 -0
  421. fi/evals/metrics/rag/generation/__init__.py +17 -0
  422. fi/evals/metrics/rag/generation/answer_relevancy.py +176 -0
  423. fi/evals/metrics/rag/generation/context_utilization.py +245 -0
  424. fi/evals/metrics/rag/generation/faithfulness.py +241 -0
  425. fi/evals/metrics/rag/generation/groundedness.py +131 -0
  426. fi/evals/metrics/rag/rag_score.py +277 -0
  427. fi/evals/metrics/rag/retrieval/__init__.py +20 -0
  428. fi/evals/metrics/rag/retrieval/context_entity_recall.py +124 -0
  429. fi/evals/metrics/rag/retrieval/context_precision.py +158 -0
  430. fi/evals/metrics/rag/retrieval/context_recall.py +106 -0
  431. fi/evals/metrics/rag/retrieval/noise_sensitivity.py +163 -0
  432. fi/evals/metrics/rag/retrieval/ranking.py +261 -0
  433. fi/evals/metrics/rag/types.py +100 -0
  434. fi/evals/metrics/rag/utils/__init__.py +62 -0
  435. fi/evals/metrics/rag/utils/claims.py +189 -0
  436. fi/evals/metrics/rag/utils/entities.py +244 -0
  437. fi/evals/metrics/rag/utils/nli.py +92 -0
  438. fi/evals/metrics/rag/utils/similarity.py +345 -0
  439. fi/evals/metrics/structured/__init__.py +114 -0
  440. fi/evals/metrics/structured/field_completeness.py +313 -0
  441. fi/evals/metrics/structured/hierarchy_score.py +366 -0
  442. fi/evals/metrics/structured/json_validation.py +190 -0
  443. fi/evals/metrics/structured/schema_compliance.py +280 -0
  444. fi/evals/metrics/structured/structured_output_score.py +298 -0
  445. fi/evals/metrics/structured/types.py +108 -0
  446. fi/evals/metrics/structured/validators/__init__.py +30 -0
  447. fi/evals/metrics/structured/validators/base.py +189 -0
  448. fi/evals/metrics/structured/validators/json_validator.py +196 -0
  449. fi/evals/metrics/structured/validators/pydantic_validator.py +178 -0
  450. fi/evals/metrics/structured/validators/yaml_validator.py +248 -0
  451. fi/evals/otel/__init__.py +266 -0
  452. fi/evals/otel/config.py +400 -0
  453. fi/evals/otel/conventions.py +463 -0
  454. fi/evals/otel/enrichment.py +371 -0
  455. fi/evals/otel/instrumentors/__init__.py +140 -0
  456. fi/evals/otel/instrumentors/anthropic.py +517 -0
  457. fi/evals/otel/instrumentors/base.py +382 -0
  458. fi/evals/otel/instrumentors/openai.py +673 -0
  459. fi/evals/otel/processors/__init__.py +36 -0
  460. fi/evals/otel/processors/base.py +473 -0
  461. fi/evals/otel/processors/cost.py +445 -0
  462. fi/evals/otel/processors/evaluation.py +559 -0
  463. fi/evals/otel/processors/llm.py +462 -0
  464. fi/evals/otel/tracer.py +506 -0
  465. fi/evals/otel/types.py +232 -0
  466. fi/evals/otel_utils.py +23 -0
  467. fi/evals/protect.py +671 -0
  468. fi/evals/protect_input_adapter.py +154 -0
  469. fi/evals/streaming/__init__.py +88 -0
  470. fi/evals/streaming/buffer.py +213 -0
  471. fi/evals/streaming/evaluator.py +551 -0
  472. fi/evals/streaming/policy.py +307 -0
  473. fi/evals/streaming/scorers.py +368 -0
  474. fi/evals/streaming/types.py +238 -0
  475. fi/evals/templates.py +472 -0
  476. fi/evals/types.py +156 -0
  477. fi/opt/__init__.py +221 -0
  478. fi/opt/_objective_scoring.py +85 -0
  479. fi/opt/base/__init__.py +11 -0
  480. fi/opt/base/base_generator.py +33 -0
  481. fi/opt/base/base_mapper.py +26 -0
  482. fi/opt/base/base_optimizer.py +45 -0
  483. fi/opt/base/evaluator.py +211 -0
  484. fi/opt/components.py +3095 -0
  485. fi/opt/datamappers/__init__.py +3 -0
  486. fi/opt/datamappers/basic_mapper.py +40 -0
  487. fi/opt/deployment.py +1021 -0
  488. fi/opt/evidence.py +4332 -0
  489. fi/opt/generators/__init__.py +3 -0
  490. fi/opt/generators/litellm.py +66 -0
  491. fi/opt/integrations/__init__.py +23 -0
  492. fi/opt/integrations/generative_suite.py +410 -0
  493. fi/opt/integrations/simulate.py +1313 -0
  494. fi/opt/mutations.py +771 -0
  495. fi/opt/observability.py +4639 -0
  496. fi/opt/optimizer_trace.py +889 -0
  497. fi/opt/optimizers/__init__.py +80 -0
  498. fi/opt/optimizers/agent.py +331 -0
  499. fi/opt/optimizers/agent_bandit.py +392 -0
  500. fi/opt/optimizers/agent_curriculum.py +635 -0
  501. fi/opt/optimizers/agent_evolution.py +894 -0
  502. fi/opt/optimizers/agent_feedback.py +1863 -0
  503. fi/opt/optimizers/agent_pareto.py +547 -0
  504. fi/opt/optimizers/agent_social_memory.py +1113 -0
  505. fi/opt/optimizers/agent_tpe.py +321 -0
  506. fi/opt/optimizers/bayesian_search.py +449 -0
  507. fi/opt/optimizers/council.py +2075 -0
  508. fi/opt/optimizers/futureagi_replay.py +799 -0
  509. fi/opt/optimizers/gepa.py +322 -0
  510. fi/opt/optimizers/metaprompt.py +243 -0
  511. fi/opt/optimizers/promptwizard.py +417 -0
  512. fi/opt/optimizers/protegi.py +329 -0
  513. fi/opt/optimizers/random_search.py +224 -0
  514. fi/opt/research.py +518 -0
  515. fi/opt/simulation.py +260 -0
  516. fi/opt/targets.py +232 -0
  517. fi/opt/types.py +66 -0
  518. fi/opt/utils/__init__.py +4 -0
  519. fi/opt/utils/early_stopping.py +266 -0
  520. fi/opt/utils/setup_logging.py +82 -0
  521. fi/simulate/__init__.py +540 -0
  522. fi/simulate/_hashing.py +35 -0
  523. fi/simulate/_logging.py +10 -0
  524. fi/simulate/adapters.py +87 -0
  525. fi/simulate/agent/__init__.py +120 -0
  526. fi/simulate/agent/browser.py +658 -0
  527. fi/simulate/agent/definition.py +587 -0
  528. fi/simulate/agent/frameworks.py +3528 -0
  529. fi/simulate/agent/generic.py +8286 -0
  530. fi/simulate/agent/import_probe.py +227 -0
  531. fi/simulate/agent/memory.py +905 -0
  532. fi/simulate/agent/mocks.py +101 -0
  533. fi/simulate/agent/multi_agent.py +361 -0
  534. fi/simulate/agent/orchestration.py +903 -0
  535. fi/simulate/agent/realtime.py +665 -0
  536. fi/simulate/agent/wrapper.py +99 -0
  537. fi/simulate/agent/wrappers/__init__.py +18 -0
  538. fi/simulate/agent/wrappers/anthropic.py +62 -0
  539. fi/simulate/agent/wrappers/gemini.py +65 -0
  540. fi/simulate/agent/wrappers/http.py +404 -0
  541. fi/simulate/agent/wrappers/langchain.py +80 -0
  542. fi/simulate/agent/wrappers/openai.py +75 -0
  543. fi/simulate/agent/wrappers/websocket.py +326 -0
  544. fi/simulate/artifacts/__init__.py +11 -0
  545. fi/simulate/artifacts/manifest.py +62 -0
  546. fi/simulate/cli.py +20560 -0
  547. fi/simulate/endpoints/__init__.py +45 -0
  548. fi/simulate/endpoints/_http_actor.py +73 -0
  549. fi/simulate/endpoints/actor_sources.py +243 -0
  550. fi/simulate/endpoints/base.py +107 -0
  551. fi/simulate/endpoints/builtins.py +10 -0
  552. fi/simulate/endpoints/callable.py +95 -0
  553. fi/simulate/endpoints/http.py +76 -0
  554. fi/simulate/endpoints/livekit.py +138 -0
  555. fi/simulate/endpoints/originators.py +132 -0
  556. fi/simulate/endpoints/profiles.py +348 -0
  557. fi/simulate/endpoints/retell.py +633 -0
  558. fi/simulate/endpoints/vapi.py +205 -0
  559. fi/simulate/endpoints/websocket.py +76 -0
  560. fi/simulate/environment.py +33026 -0
  561. fi/simulate/environments/__init__.py +11 -0
  562. fi/simulate/environments/base.py +73 -0
  563. fi/simulate/environments/chat.py +697 -0
  564. fi/simulate/environments/voice.py +212 -0
  565. fi/simulate/evaluation/__init__.py +4 -0
  566. fi/simulate/evaluation/ai_eval.py +227 -0
  567. fi/simulate/evidence/__init__.py +35 -0
  568. fi/simulate/evidence/base.py +59 -0
  569. fi/simulate/evidence/caller_observed.py +50 -0
  570. fi/simulate/evidence/livekit_instrumentation.py +51 -0
  571. fi/simulate/evidence/livekit_room.py +50 -0
  572. fi/simulate/evidence/otel.py +49 -0
  573. fi/simulate/evidence/providers/__init__.py +24 -0
  574. fi/simulate/evidence/providers/base.py +61 -0
  575. fi/simulate/evidence/providers/retell.py +376 -0
  576. fi/simulate/evidence/providers/vapi.py +426 -0
  577. fi/simulate/hosted/__init__.py +32 -0
  578. fi/simulate/hosted/child_entrypoint.py +306 -0
  579. fi/simulate/hosted/job.py +150 -0
  580. fi/simulate/hosted/targets.py +53 -0
  581. fi/simulate/instrumentation/__init__.py +5 -0
  582. fi/simulate/instrumentation/livekit/__init__.py +122 -0
  583. fi/simulate/manifest.py +1033 -0
  584. fi/simulate/matrix_cli.py +165 -0
  585. fi/simulate/realtime/__init__.py +40 -0
  586. fi/simulate/realtime/events.py +107 -0
  587. fi/simulate/realtime/media.py +61 -0
  588. fi/simulate/realtime/session.py +91 -0
  589. fi/simulate/recording/__init__.py +5 -0
  590. fi/simulate/recording/room_recorder.py +326 -0
  591. fi/simulate/registry.py +185 -0
  592. fi/simulate/results/__init__.py +9 -0
  593. fi/simulate/results/base.py +18 -0
  594. fi/simulate/results/filesystem.py +71 -0
  595. fi/simulate/results/futureagi.py +1340 -0
  596. fi/simulate/runtime/__init__.py +85 -0
  597. fi/simulate/runtime/capabilities.py +40 -0
  598. fi/simulate/runtime/events.py +63 -0
  599. fi/simulate/runtime/failures.py +25 -0
  600. fi/simulate/runtime/ids.py +34 -0
  601. fi/simulate/runtime/plan.py +70 -0
  602. fi/simulate/runtime/planner.py +102 -0
  603. fi/simulate/runtime/report.py +174 -0
  604. fi/simulate/runtime/run.py +75 -0
  605. fi/simulate/runtime/runner.py +333 -0
  606. fi/simulate/runtime/spec.py +186 -0
  607. fi/simulate/simulation/__init__.py +30 -0
  608. fi/simulate/simulation/behavior_policy.py +425 -0
  609. fi/simulate/simulation/bridge/__init__.py +9 -0
  610. fi/simulate/simulation/bridge/audio.py +29 -0
  611. fi/simulate/simulation/bridge/connector.py +46 -0
  612. fi/simulate/simulation/bridge/livekit.py +252 -0
  613. fi/simulate/simulation/bridge/retell.py +188 -0
  614. fi/simulate/simulation/bridge/vapi.py +177 -0
  615. fi/simulate/simulation/contract.py +419 -0
  616. fi/simulate/simulation/engines/__init__.py +12 -0
  617. fi/simulate/simulation/engines/base.py +21 -0
  618. fi/simulate/simulation/engines/cloud.py +517 -0
  619. fi/simulate/simulation/engines/livekit.py +4167 -0
  620. fi/simulate/simulation/engines/local_text.py +89 -0
  621. fi/simulate/simulation/fidelity.py +374 -0
  622. fi/simulate/simulation/gemini_tts_stream.py +110 -0
  623. fi/simulate/simulation/generator.py +91 -0
  624. fi/simulate/simulation/goal_machine.py +185 -0
  625. fi/simulate/simulation/livekit_models.py +467 -0
  626. fi/simulate/simulation/matrix.py +170 -0
  627. fi/simulate/simulation/models.py +279 -0
  628. fi/simulate/simulation/runner.py +153 -0
  629. fi/simulate/simulation/synthetic.py +880 -0
  630. fi/simulate/simulation/voice_prompt.py +502 -0
  631. fi/simulate/simulator/__init__.py +55 -0
  632. fi/simulate/simulator/builtins.py +53 -0
  633. fi/simulate/suite.py +1288 -0
  634. fi/simulate/utils/routes.py +164 -0
  635. fi/simulate/voice.py +225 -0
  636. fi/simulate/voice_cli.py +182 -0
  637. fi/utils/__init__.py +1 -0
  638. fi/utils/constants.py +14 -0
  639. fi/utils/errors.py +200 -0
  640. fi/utils/executor.py +26 -0
  641. fi/utils/routes.py +119 -0
  642. fi/utils/utils.py +17 -0
fi/opt/components.py ADDED
@@ -0,0 +1,3095 @@
1
+ from __future__ import annotations
2
+
3
+ import json
4
+ from typing import Any, Dict, Iterable, List, Literal, Optional, Sequence, Set
5
+
6
+ from pydantic import BaseModel, Field, field_validator
7
+
8
+
9
+ AgentComponent = Literal[
10
+ "objective",
11
+ "harness",
12
+ "integration",
13
+ "framework",
14
+ "orchestration",
15
+ "streaming",
16
+ "world",
17
+ "security",
18
+ "perception",
19
+ "prompt",
20
+ "planner",
21
+ "autonomy",
22
+ "router",
23
+ "tools",
24
+ "memory",
25
+ "retrieval",
26
+ "policy",
27
+ "action",
28
+ "environment",
29
+ "implementation",
30
+ "evaluator",
31
+ "multi_agent",
32
+ "model",
33
+ "voice",
34
+ "browser",
35
+ "cua",
36
+ "custom",
37
+ ]
38
+
39
+
40
+ FailureMode = Literal[
41
+ "unclear_goal",
42
+ "poor_plan",
43
+ "wrong_tool",
44
+ "bad_tool_arguments",
45
+ "tool_execution_error",
46
+ "missing_tool",
47
+ "memory_write_failure",
48
+ "memory_retrieval_failure",
49
+ "memory_contamination",
50
+ "retrieval_relevance_failure",
51
+ "policy_violation",
52
+ "unsafe_action",
53
+ "hallucination",
54
+ "schema_error",
55
+ "environment_mismatch",
56
+ "latency_or_cost",
57
+ "coordination_failure",
58
+ "evaluation_gap",
59
+ "integration_gap",
60
+ "implementation_bug",
61
+ "perception_grounding_failure",
62
+ "artifact_semantics_failure",
63
+ "domain_package_failure",
64
+ "context_overload",
65
+ "voice_turn_taking_failure",
66
+ "voice_timing_distribution_failure",
67
+ "browser_action_failure",
68
+ "browser_mutation_failure",
69
+ "autonomy_loop_failure",
70
+ "cross_trial_memory_skill_failure",
71
+ "framework_trace_gap",
72
+ "framework_lifecycle_gap",
73
+ "framework_capability_gap",
74
+ "framework_probe_gap",
75
+ "framework_portability_gap",
76
+ "trust_boundary_gap",
77
+ "control_plane_gap",
78
+ "framework_transcript_gap",
79
+ "orchestration_trace_gap",
80
+ "orchestration_flow_failure",
81
+ "streaming_trace_gap",
82
+ "streaming_interaction_failure",
83
+ "world_contract_gap",
84
+ "world_contract_violation",
85
+ "adversarial_resilience_failure",
86
+ "reliability_failure",
87
+ "fault_tolerance_failure",
88
+ "unknown",
89
+ ]
90
+
91
+
92
+ class AgentComponentSpec(BaseModel):
93
+ """A component that can be measured and optimized."""
94
+
95
+ name: AgentComponent
96
+ config_paths: List[str] = Field(default_factory=list)
97
+ metrics: List[str] = Field(default_factory=list)
98
+ failure_modes: List[FailureMode] = Field(default_factory=list)
99
+ patch_strategies: List[str] = Field(default_factory=list)
100
+ metadata: Dict[str, Any] = Field(default_factory=dict)
101
+
102
+
103
+ HARNESS_LAYERS = (
104
+ "execution",
105
+ "tool_interface",
106
+ "context_memory",
107
+ "lifecycle",
108
+ "observability",
109
+ "verification",
110
+ "governance",
111
+ )
112
+
113
+ # Layer -> admissible search-path prefixes. Built from the SAME path families
114
+ # COMPONENT_SPECS already uses (e.g. the "harness" spec's framework.runtime.*,
115
+ # framework.lifecycle.*, framework.capabilities.* path groups) so layer scoping
116
+ # and component scoping cannot disagree: every prefix below appears in some
117
+ # spec's config_paths (asserted by the Phase-4 locality tests).
118
+ HARNESS_LAYER_PATH_PREFIXES: Dict[str, tuple[str, ...]] = {
119
+ "execution": ("simulation", "harness", "framework.runtime", "framework.runtime.method"),
120
+ "tool_interface": ("tools", "framework.capabilities.tools", "framework.lifecycle.tool_registration"),
121
+ "context_memory": ("memory", "retrieval", "retriever", "framework.capabilities.memory"),
122
+ "lifecycle": ("framework.lifecycle", "framework.lifecycle.sessions", "framework.lifecycle.checkpoints"),
123
+ "observability": ("framework.trace", "framework.trace.export", "framework.import.event_streams"),
124
+ "verification": ("evaluation", "evaluation.trajectory_templates", "rubric"),
125
+ "governance": ("security", "policy", "framework.trust_boundary", "environment"),
126
+ }
127
+
128
+
129
+ class ComponentDiagnosis(BaseModel):
130
+ """Evidence-backed route from observed failure to component-level patch space."""
131
+
132
+ component: AgentComponent
133
+ failure_mode: FailureMode
134
+ confidence: float = Field(1.0, ge=0.0, le=1.0)
135
+ evidence: str = ""
136
+ suggested_paths: List[str] = Field(default_factory=list)
137
+ suggested_metrics: List[str] = Field(default_factory=list)
138
+ patch_strategy: Optional[str] = None
139
+ harness_layer: Optional[str] = None # member of HARNESS_LAYERS or None
140
+ metadata: Dict[str, Any] = Field(default_factory=dict)
141
+
142
+ @field_validator("harness_layer")
143
+ @classmethod
144
+ def _validate_harness_layer(cls, value: Optional[str]) -> Optional[str]:
145
+ if value is None:
146
+ return value
147
+ if value not in HARNESS_LAYERS:
148
+ raise ValueError(
149
+ f"harness_layer must be one of {HARNESS_LAYERS} or None, got {value!r}."
150
+ )
151
+ return value
152
+
153
+
154
+ COMPONENT_SPECS: Dict[AgentComponent, AgentComponentSpec] = {
155
+ "objective": AgentComponentSpec(
156
+ name="objective",
157
+ config_paths=["objective", "task", "rubric", "trajectory_templates", "evaluation.trajectory_templates"],
158
+ metrics=["task_completion", "goal_accuracy", "agent_goal_accuracy"],
159
+ failure_modes=["unclear_goal", "evaluation_gap"],
160
+ patch_strategies=["clarify success criteria", "add reference state checks"],
161
+ ),
162
+ "harness": AgentComponentSpec(
163
+ name="harness",
164
+ config_paths=[
165
+ "simulation",
166
+ "harness",
167
+ "environment.fixtures",
168
+ "evaluation.trajectory_templates",
169
+ "framework.trace",
170
+ "framework.import_manifest",
171
+ "framework.import.sources",
172
+ "framework.import.trace_exports",
173
+ "framework.import.event_streams",
174
+ "framework.import.lifecycle",
175
+ "framework.import.capabilities",
176
+ "framework.import.probes",
177
+ "framework.import.portability",
178
+ "framework.trace.export",
179
+ "framework.trace.export.auth",
180
+ "framework.trace.export.pagination",
181
+ "framework.runtime",
182
+ "framework.runtime.method",
183
+ "framework.runtime.input_mode",
184
+ "framework.runtime.output_schema",
185
+ "framework.runtime.trace_runtime",
186
+ "framework.runtime.contract",
187
+ "framework.lifecycle",
188
+ "framework.lifecycle.phases",
189
+ "framework.lifecycle.sessions",
190
+ "framework.lifecycle.tool_registration",
191
+ "framework.lifecycle.checkpoints",
192
+ "framework.lifecycle.retry_policy",
193
+ "framework.lifecycle.cancel_resume",
194
+ "framework.lifecycle.cleanup",
195
+ "framework.capabilities",
196
+ "framework.capabilities.tools",
197
+ "framework.capabilities.memory",
198
+ "framework.capabilities.streaming",
199
+ "framework.capabilities.lifecycle",
200
+ "framework.capabilities.orchestration",
201
+ "framework.capabilities.security",
202
+ "framework.capabilities.observability",
203
+ "framework.capabilities.exports",
204
+ "framework.probes",
205
+ "framework.probes.invoke",
206
+ "framework.probes.tools",
207
+ "framework.probes.memory",
208
+ "framework.probes.streaming",
209
+ "framework.probes.lifecycle",
210
+ "framework.probes.orchestration",
211
+ "framework.probes.security",
212
+ "framework.probes.observability",
213
+ "framework.probes.exports",
214
+ "framework.portability",
215
+ "framework.portability.source",
216
+ "framework.portability.target",
217
+ "framework.portability.mappings",
218
+ "framework.portability.tools",
219
+ "framework.portability.memory",
220
+ "framework.portability.streaming",
221
+ "framework.portability.lifecycle",
222
+ "framework.portability.orchestration",
223
+ "framework.portability.security",
224
+ "framework.portability.observability",
225
+ "framework.portability.exports",
226
+ "framework.portability.browser",
227
+ "framework.portability.voice",
228
+ "framework.portability.runtime",
229
+ "framework.memory",
230
+ "framework.checkpoints",
231
+ "framework.checkpoints.state",
232
+ "framework.checkpoints.parent",
233
+ "framework.sessions",
234
+ "framework.sessions.thread_id",
235
+ "framework.events",
236
+ "framework.transcript",
237
+ "mcp.tool_session",
238
+ "mcp.tools.list",
239
+ "mcp.tools.call",
240
+ "orchestration.trace",
241
+ "orchestration.graph",
242
+ "orchestration.steps",
243
+ "orchestration.routes",
244
+ "workflow.graph",
245
+ "streaming.trace",
246
+ "streaming.events",
247
+ "streaming.export",
248
+ "world.contract",
249
+ "world.state",
250
+ "world.transitions",
251
+ "world.invariants",
252
+ "browser.actions",
253
+ "agent.trust_boundary",
254
+ "agent.control_plane",
255
+ "autonomy.control_plane",
256
+ "framework.trust_boundary",
257
+ "framework.control_plane",
258
+ "security.trust_boundary",
259
+ "policy.control_plane",
260
+ "policy.action_gates",
261
+ "policy.rollback",
262
+ "policy.kill_switch",
263
+ "policy.circuit_breakers",
264
+ "policy.rate_limits",
265
+ "policy.risk_budgets",
266
+ "security.containment",
267
+ "tools.risk_scoring",
268
+ "tools.action_policy",
269
+ "security.permissions",
270
+ "security.sandbox",
271
+ "security.audit",
272
+ "security.canaries",
273
+ "security.network_egress",
274
+ "policy.approvals",
275
+ "tools.risk_scoring",
276
+ "tools.action_policy",
277
+ "tools.permissions",
278
+ "tools.allowlist",
279
+ "memory.isolation",
280
+ "evaluation.agent_trust_boundary_quality",
281
+ "evaluation.agent_control_plane_quality",
282
+ "security.attack_pack",
283
+ "red_team.campaign",
284
+ "red_team.taxonomies",
285
+ "red_team.attack_packs",
286
+ "red_team.matrix_evidence",
287
+ "red_team.coverage_matrix",
288
+ "red_team.matrix_cells",
289
+ "red_team.scenarios",
290
+ "red_team.scenarios.matrix_cell_ids",
291
+ "red_team.runs",
292
+ "red_team.runs.matrix_cell_ids",
293
+ "red_team.runs.execution_evidence",
294
+ "red_team.findings",
295
+ "red_team.findings.matrix_cell_ids",
296
+ "red_team.artifacts",
297
+ "red_team.artifacts.matrix_cell_ids",
298
+ "red_team.artifacts.execution_evidence",
299
+ "red_team.mitigations",
300
+ "red_team.mitigations.matrix_cell_ids",
301
+ "red_team.channels",
302
+ "red_team.providers",
303
+ "red_team.multi_turn",
304
+ "red_team.preflight",
305
+ "red_team.readiness",
306
+ "red_team.readiness.matrix_evidence",
307
+ "red_team.readiness.framework_import",
308
+ "red_team.readiness.campaign",
309
+ "red_team.readiness.workspace_run",
310
+ "red_team.readiness.trust_boundary",
311
+ "red_team.readiness.control_plane",
312
+ "red_team.readiness.observability",
313
+ "red_team.readiness.artifacts",
314
+ "adversarial.attacks",
315
+ "adversarial.surfaces",
316
+ "observability.replay",
317
+ "observability.replay_pack",
318
+ "observability.regression_pack",
319
+ "futureagi.regression_replay",
320
+ "evaluation.observability_replay",
321
+ "evaluation.framework_runtime_contract",
322
+ "evaluation.framework_import_quality",
323
+ "evaluation.red_team_readiness",
324
+ "evaluation.red_team_readiness_quality",
325
+ "evaluation.red_team_campaign_quality.require_attack_surface_matrix",
326
+ "evaluation.red_team_campaign_quality.require_run_artifacts",
327
+ "evaluation.red_team_campaign_quality.require_executed_run_evidence",
328
+ "evaluation.red_team_campaign_quality.require_finding_mapping",
329
+ "evaluation.red_team_campaign_quality.require_mitigation_mapping",
330
+ "evaluation.red_team_campaign_quality.required_attack_matrix_cells",
331
+ "evaluation.framework_lifecycle_quality",
332
+ "evaluation.framework_capability_quality",
333
+ "evaluation.framework_probe_quality",
334
+ "evaluation.framework_portability_quality",
335
+ "optimizer",
336
+ "optimizer.trace",
337
+ "optimizer.society_trace",
338
+ "optimizer.strategy",
339
+ "optimizer.max_rounds",
340
+ "optimizer.roles",
341
+ "optimizer.role_graph",
342
+ "optimizer.proposals",
343
+ "optimizer.credit",
344
+ "optimizer.diagnostics",
345
+ "optimizer.governance",
346
+ "optimizer.governance.checks",
347
+ "optimizer.governance.role_diversity",
348
+ "optimizer.governance.mediator",
349
+ "optimizer.governance.contract_gate",
350
+ "optimizer.governance.rollback",
351
+ "optimizer.governance.search_locality",
352
+ "optimizer.governance.dependency_audit",
353
+ "optimizer.backend_portfolio",
354
+ "optimizer.backends",
355
+ "optimizer.backend_selector",
356
+ "optimizer.backend_selector.policy",
357
+ "optimizer.backend_trials",
358
+ "optimizer.backend_evidence",
359
+ "optimizer.portfolio_gate",
360
+ "optimization",
361
+ "optimization.target",
362
+ "optimization.target.search_space",
363
+ "optimization.optimizer",
364
+ "optimization.optimizer.max_candidates",
365
+ "manifest_optimization",
366
+ "optimization.manifest_optimization",
367
+ "evaluation.optimizer_portfolio",
368
+ "evaluation.optimizer_portfolio_quality",
369
+ "evaluation.optimizer_portfolio_quality.required_backends",
370
+ "evaluation.optimizer_portfolio_quality.required_evidence",
371
+ "evaluation.optimizer_portfolio_quality.required_selection_relations",
372
+ "evaluation.optimizer_portfolio_quality.required_consensus_backends",
373
+ "evaluation.optimizer_portfolio_quality.required_dependencies",
374
+ "evaluation.optimizer_portfolio_quality.min_backend_plan_count",
375
+ "evaluation.optimizer_portfolio_quality.min_backend_run_count",
376
+ "evaluation.optimizer_portfolio_quality.min_completed_backends",
377
+ "evaluation.optimizer_portfolio_quality.min_lineage_count",
378
+ "evaluation.optimizer_portfolio_quality.min_consensus_backends",
379
+ "evaluation.optimizer_portfolio_quality.max_failed_backends",
380
+ "evaluation.optimizer_portfolio_quality.min_final_score",
381
+ "evaluation.optimizer_trace_quality",
382
+ "evaluation.optimizer_trace_quality.required_roles",
383
+ "evaluation.optimizer_trace_quality.required_search_paths",
384
+ "evaluation.optimizer_trace_quality.required_governance_signals",
385
+ "evaluation.optimizer_trace_quality.min_governance_checks",
386
+ "evaluation.manifest_optimization",
387
+ "evaluation.manifest_optimization_quality",
388
+ "evaluation.manifest_optimization_quality.required_search_paths",
389
+ "evaluation.manifest_optimization_quality.required_metrics",
390
+ ],
391
+ metrics=["reproducibility", "coverage", "pass_at_k", "trial_reliability", "tool_fault_tolerance", "observability_replay_coverage", "observability_replay_quality", "agent_integration_coverage", "agent_integration_quality", "optimizer_trace_coverage", "optimizer_trace_quality", "optimizer_portfolio_coverage", "optimizer_portfolio_quality", "manifest_optimization_coverage", "manifest_optimization_quality", "framework_import_coverage", "framework_import_quality", "red_team_readiness_coverage", "red_team_readiness_quality", "framework_trace_coverage", "framework_adapter_conformance", "framework_runtime_coverage", "framework_runtime_contract", "framework_lifecycle_coverage", "framework_lifecycle_quality", "framework_capability_coverage", "framework_capability_quality", "framework_probe_coverage", "framework_probe_quality", "framework_portability_coverage", "framework_portability_quality", "agent_trust_boundary_coverage", "agent_trust_boundary_quality", "agent_control_plane_coverage", "agent_control_plane_quality", "framework_transcript_quality", "orchestration_trace_coverage", "orchestration_flow_quality", "streaming_trace_coverage", "streaming_interaction_quality", "world_contract_coverage", "world_contract_quality", "adversarial_resilience", "cross_trial_memory_skill", "browser_action_outcome", "browser_grounding_quality"],
392
+ failure_modes=["environment_mismatch", "evaluation_gap", "integration_gap", "framework_trace_gap", "framework_lifecycle_gap", "framework_capability_gap", "framework_probe_gap", "framework_portability_gap", "trust_boundary_gap", "control_plane_gap", "framework_transcript_gap", "orchestration_trace_gap", "orchestration_flow_failure", "streaming_trace_gap", "streaming_interaction_failure", "world_contract_gap", "world_contract_violation", "adversarial_resilience_failure", "cross_trial_memory_skill_failure", "reliability_failure", "fault_tolerance_failure", "browser_action_failure"],
393
+ patch_strategies=["add mocks", "stabilize environment", "increase scenario coverage"],
394
+ ),
395
+ "integration": AgentComponentSpec(
396
+ name="integration",
397
+ config_paths=[
398
+ "integrations",
399
+ "agent_integrations",
400
+ "agent_definition",
401
+ "agent.definition",
402
+ "personas",
403
+ "simulation.personas",
404
+ "simulation.channels",
405
+ "simulation.sessions",
406
+ "simulation.providers",
407
+ "providers",
408
+ "providers.livekit",
409
+ "providers.vapi",
410
+ "providers.retell",
411
+ "providers.bland",
412
+ "providers.elevenlabs",
413
+ "providers.deepgram",
414
+ "providers.agora",
415
+ "providers.pipecat",
416
+ "providers.twilio",
417
+ "integrations.livekit",
418
+ "integrations.livekit.channels",
419
+ "integrations.livekit.webrtc",
420
+ "integrations.livekit.sip",
421
+ "integrations.livekit.phone",
422
+ "integrations.vapi",
423
+ "integrations.vapi.chat",
424
+ "integrations.vapi.voice",
425
+ "integrations.vapi.webrtc",
426
+ "integrations.vapi.sip",
427
+ "integrations.vapi.phone",
428
+ "integrations.retell",
429
+ "integrations.retell.chat",
430
+ "integrations.retell.voice",
431
+ "integrations.bland",
432
+ "integrations.bland.voice",
433
+ "integrations.bland.sip",
434
+ "integrations.bland.phone",
435
+ "integrations.bland.web_call",
436
+ "integrations.elevenlabs",
437
+ "integrations.deepgram",
438
+ "integrations.agora",
439
+ "integrations.pipecat",
440
+ "integrations.twilio",
441
+ "integrations.traceai",
442
+ "traceai.frameworks",
443
+ "traceai.instrumentors",
444
+ "traceai.livekit",
445
+ "traceai.pipecat",
446
+ "voice.providers",
447
+ "voice.trace.livekit",
448
+ "voice.trace.retell",
449
+ "voice.trace.elevenlabs",
450
+ "voice.trace.deepgram",
451
+ "voice.trace.agora",
452
+ "voice.trace.twilio",
453
+ "voice.webrtc",
454
+ "voice.phone",
455
+ "voice.sip",
456
+ "streaming.transports",
457
+ "framework.import_manifest",
458
+ "framework.import.sources",
459
+ "framework.import.trace_exports",
460
+ "framework.import.event_streams",
461
+ "framework.import.capabilities",
462
+ "framework.import.probes",
463
+ "framework.import.portability",
464
+ "platform.futureagi",
465
+ "platform.futureagi.ui_loop",
466
+ "workspace_run",
467
+ "workspace_run.repository",
468
+ "workspace_run.checkout",
469
+ "workspace_run.commands",
470
+ "workspace_run.logs",
471
+ "workspace_run.artifacts",
472
+ "workspace_run.simulations",
473
+ "workspace_run.evals",
474
+ "workspace_run.optimization",
475
+ "workspace_run.red_team",
476
+ "workspace_run.security",
477
+ "workspace_run.ui_verification",
478
+ "workspace_run.observability",
479
+ "github.app_installation",
480
+ "github.repository_access",
481
+ "execution.checkout",
482
+ "execution.commands",
483
+ "execution.logs",
484
+ "execution.artifacts",
485
+ "red_team.attack_pack",
486
+ "red_team.campaign",
487
+ "red_team.taxonomies",
488
+ "red_team.matrix_evidence",
489
+ "red_team.coverage_matrix",
490
+ "red_team.matrix_cells",
491
+ "red_team.scenarios",
492
+ "red_team.scenarios.matrix_cell_ids",
493
+ "red_team.runs",
494
+ "red_team.runs.matrix_cell_ids",
495
+ "red_team.runs.execution_evidence",
496
+ "red_team.findings",
497
+ "red_team.findings.matrix_cell_ids",
498
+ "red_team.artifacts",
499
+ "red_team.artifacts.matrix_cell_ids",
500
+ "red_team.artifacts.execution_evidence",
501
+ "red_team.mitigations",
502
+ "red_team.mitigations.matrix_cell_ids",
503
+ "red_team.multi_turn",
504
+ "red_team.owasp_llm_top_10",
505
+ "red_team.owasp_agentic_ai",
506
+ "red_team.mcp_security",
507
+ "red_team.garak",
508
+ "red_team.pyrit",
509
+ "red_team.inspect",
510
+ "red_team.preflight",
511
+ "red_team.readiness",
512
+ "red_team.readiness.matrix_evidence",
513
+ "red_team.readiness.framework_import",
514
+ "red_team.readiness.campaign",
515
+ "red_team.readiness.workspace_run",
516
+ "red_team.readiness.trust_boundary",
517
+ "red_team.readiness.control_plane",
518
+ "red_team.readiness.observability",
519
+ "red_team.readiness.artifacts",
520
+ "security.sandbox",
521
+ "security.secret_redaction",
522
+ "security.policy_gates",
523
+ "observability.futureagi",
524
+ "observability.traces",
525
+ "observability.webhooks",
526
+ "evaluation.agent_integration",
527
+ "evaluation.agent_integration_quality",
528
+ "evaluation.workspace_run",
529
+ "evaluation.workspace_run_quality",
530
+ "evaluation.red_team_campaign",
531
+ "evaluation.red_team_campaign_quality",
532
+ "evaluation.red_team_campaign_quality.require_attack_surface_matrix",
533
+ "evaluation.red_team_campaign_quality.require_run_artifacts",
534
+ "evaluation.red_team_campaign_quality.require_executed_run_evidence",
535
+ "evaluation.red_team_campaign_quality.require_finding_mapping",
536
+ "evaluation.red_team_campaign_quality.require_mitigation_mapping",
537
+ "evaluation.red_team_campaign_quality.required_attack_matrix_cells",
538
+ "evaluation.red_team_readiness",
539
+ "evaluation.red_team_readiness_quality",
540
+ "evaluation.framework_import",
541
+ "evaluation.framework_import_quality",
542
+ "futureagi.evals",
543
+ "futureagi.observability",
544
+ ],
545
+ metrics=[
546
+ "agent_integration_coverage",
547
+ "agent_integration_quality",
548
+ "workspace_run_coverage",
549
+ "workspace_run_quality",
550
+ "red_team_campaign_coverage",
551
+ "red_team_campaign_quality",
552
+ "red_team_readiness_coverage",
553
+ "red_team_readiness_quality",
554
+ "voice_trace_coverage",
555
+ "voice_interaction_quality",
556
+ "streaming_trace_coverage",
557
+ "streaming_interaction_quality",
558
+ "framework_import_coverage",
559
+ "framework_import_quality",
560
+ "framework_trace_coverage",
561
+ "framework_runtime_contract",
562
+ "observability_replay_coverage",
563
+ "observability_replay_quality",
564
+ ],
565
+ failure_modes=[
566
+ "integration_gap",
567
+ "voice_turn_taking_failure",
568
+ "streaming_trace_gap",
569
+ "streaming_interaction_failure",
570
+ "framework_trace_gap",
571
+ "evaluation_gap",
572
+ "environment_mismatch",
573
+ ],
574
+ patch_strategies=["add provider/channel manifest", "attach Future AGI observability and eval hooks"],
575
+ ),
576
+ "framework": AgentComponentSpec(
577
+ name="framework",
578
+ config_paths=[
579
+ "framework",
580
+ "framework.adapter",
581
+ "framework.adapter.required_signals",
582
+ "framework.adapter.mappings",
583
+ "framework.import_manifest",
584
+ "framework.import.sources",
585
+ "framework.import.required_frameworks",
586
+ "framework.import.required_export_types",
587
+ "framework.import.required_signals",
588
+ "framework.import.trace_exports",
589
+ "framework.import.event_streams",
590
+ "framework.import.lifecycle",
591
+ "framework.import.capabilities",
592
+ "framework.import.probes",
593
+ "framework.import.portability",
594
+ "framework.import.observability",
595
+ "framework.import.artifacts",
596
+ "framework.capabilities",
597
+ "framework.capabilities.required",
598
+ "framework.capabilities.task_surfaces",
599
+ "framework.capabilities.tools",
600
+ "framework.capabilities.memory",
601
+ "framework.capabilities.streaming",
602
+ "framework.capabilities.lifecycle",
603
+ "framework.capabilities.orchestration",
604
+ "framework.capabilities.security",
605
+ "framework.capabilities.observability",
606
+ "framework.capabilities.exports",
607
+ "framework.probes",
608
+ "framework.probes.required_operations",
609
+ "framework.probes.invoke",
610
+ "framework.probes.tools",
611
+ "framework.probes.memory",
612
+ "framework.probes.streaming",
613
+ "framework.probes.lifecycle",
614
+ "framework.probes.orchestration",
615
+ "framework.probes.security",
616
+ "framework.probes.observability",
617
+ "framework.probes.exports",
618
+ "framework.portability",
619
+ "framework.portability.source",
620
+ "framework.portability.target",
621
+ "framework.portability.mappings",
622
+ "framework.portability.tools",
623
+ "framework.portability.memory",
624
+ "framework.portability.streaming",
625
+ "framework.portability.lifecycle",
626
+ "framework.portability.orchestration",
627
+ "framework.portability.security",
628
+ "framework.portability.observability",
629
+ "framework.portability.exports",
630
+ "framework.portability.browser",
631
+ "framework.portability.voice",
632
+ "framework.portability.runtime",
633
+ "framework.trust_boundary",
634
+ "framework.trust_boundary.actors",
635
+ "framework.trust_boundary.assets",
636
+ "framework.trust_boundary.tools",
637
+ "framework.trust_boundary.surfaces",
638
+ "framework.trust_boundary.controls",
639
+ "framework.trust_boundary.threats",
640
+ "framework.security.trust_boundary",
641
+ "agent.trust_boundary",
642
+ "framework.control_plane",
643
+ "framework.control_plane.actions",
644
+ "framework.control_plane.controls",
645
+ "framework.control_plane.budgets",
646
+ "framework.control_plane.escalations",
647
+ "framework.control_plane.incidents",
648
+ "framework.runtime.control_plane",
649
+ "agent.control_plane",
650
+ "framework.runtime",
651
+ "framework.runtime.method",
652
+ "framework.runtime.input_mode",
653
+ "framework.runtime.output_schema",
654
+ "framework.runtime.trace_runtime",
655
+ "framework.runtime.contract",
656
+ "framework.lifecycle",
657
+ "framework.lifecycle.phases",
658
+ "framework.lifecycle.sessions",
659
+ "framework.lifecycle.setup",
660
+ "framework.lifecycle.tool_registration",
661
+ "framework.lifecycle.checkpoints",
662
+ "framework.lifecycle.retry_policy",
663
+ "framework.lifecycle.cancel_resume",
664
+ "framework.lifecycle.cleanup",
665
+ "framework.trace",
666
+ "framework.trace.export",
667
+ "framework.trace.export_source",
668
+ "framework.trace.export.auth",
669
+ "framework.trace.export.pagination",
670
+ "framework.trace.export.cursor",
671
+ "framework.trace.export.page_size",
672
+ "framework.trace.collectors",
673
+ "framework.trace.otlp",
674
+ "framework.memory",
675
+ "framework.checkpoints",
676
+ "framework.checkpoints.state",
677
+ "framework.checkpoints.parent",
678
+ "framework.sessions",
679
+ "framework.sessions.thread_id",
680
+ "framework.sessions.thread_id_source",
681
+ "framework.spans",
682
+ "framework.events",
683
+ "framework.event_stream",
684
+ "framework.streaming",
685
+ "framework.stream_events",
686
+ "framework.transcript",
687
+ "framework.transcript.speakers",
688
+ "framework.transcript.handoffs",
689
+ "framework.transcript.termination",
690
+ "framework.transcript.tool_owners",
691
+ "orchestration.trace",
692
+ "orchestration.trace.export",
693
+ "orchestration.graph",
694
+ "orchestration.nodes",
695
+ "orchestration.edges",
696
+ "orchestration.steps",
697
+ "workflow.events",
698
+ "workflow.graph",
699
+ "optimizer",
700
+ "optimizer.strategy",
701
+ "optimizer.max_rounds",
702
+ "optimizer.society",
703
+ "optimizer.roles",
704
+ "optimizer.role_graph",
705
+ "optimizer.proposals",
706
+ "optimizer.credit",
707
+ "optimizer.diagnostics",
708
+ "workflow.nodes",
709
+ "workflow.edges",
710
+ "autogen.groupchat",
711
+ "crewai.events",
712
+ "openai_agents.sessions",
713
+ "openai_agents.tracing",
714
+ "langchain.stream_events",
715
+ "langchain.streaming",
716
+ "langgraph.stream_events",
717
+ "langgraph.streaming",
718
+ "langgraph.checkpointer",
719
+ "langgraph.checkpointer.enabled",
720
+ "langgraph.checkpointer.store",
721
+ "langgraph.nodes",
722
+ "mcp",
723
+ "mcp.server",
724
+ "mcp.tool_session",
725
+ "mcp.tools.list",
726
+ "mcp.tools.schema",
727
+ "mcp.tools.call",
728
+ "mcp.tools.result",
729
+ "mcp.tools.error",
730
+ "mcp.resources",
731
+ "openai_agents.streaming",
732
+ "openai_agents.stream_events",
733
+ "livekit.session_events",
734
+ "pipecat.frames",
735
+ "instrumentation",
736
+ "otel",
737
+ "otel.gen_ai.streaming",
738
+ "otlp",
739
+ "traceai",
740
+ "futureagi.traces",
741
+ "futureagi.regression_replay",
742
+ "runtime.tracing",
743
+ "simulation.framework",
744
+ ],
745
+ metrics=["framework_import_coverage", "framework_import_quality", "framework_trace_coverage", "framework_adapter_conformance", "framework_runtime_coverage", "framework_runtime_contract", "framework_lifecycle_coverage", "framework_lifecycle_quality", "framework_capability_coverage", "framework_capability_quality", "framework_probe_coverage", "framework_probe_quality", "framework_portability_coverage", "framework_portability_quality", "agent_trust_boundary_coverage", "agent_trust_boundary_quality", "agent_control_plane_coverage", "agent_control_plane_quality", "framework_transcript_quality", "observability_replay_coverage", "observability_replay_quality", "orchestration_trace_coverage", "orchestration_flow_quality", "streaming_trace_coverage", "streaming_interaction_quality", "cross_trial_memory_skill", "runtime_success", "schema_validity"],
746
+ failure_modes=["framework_trace_gap", "framework_lifecycle_gap", "framework_capability_gap", "framework_probe_gap", "framework_portability_gap", "trust_boundary_gap", "control_plane_gap", "framework_transcript_gap", "orchestration_trace_gap", "orchestration_flow_failure", "streaming_trace_gap", "streaming_interaction_failure", "cross_trial_memory_skill_failure", "implementation_bug", "evaluation_gap"],
747
+ patch_strategies=["enable framework tracing", "normalize framework spans and event streams"],
748
+ ),
749
+ "orchestration": AgentComponentSpec(
750
+ name="orchestration",
751
+ config_paths=[
752
+ "orchestration",
753
+ "orchestration.trace",
754
+ "orchestration.trace.export",
755
+ "orchestration.graph",
756
+ "orchestration.nodes",
757
+ "orchestration.edges",
758
+ "orchestration.routes",
759
+ "orchestration.steps",
760
+ "orchestration.retries",
761
+ "orchestration.recovery",
762
+ "orchestration.budgets",
763
+ "workflow",
764
+ "workflow.graph",
765
+ "workflow.nodes",
766
+ "workflow.edges",
767
+ "workflow.routes",
768
+ "workflow.retry_policy",
769
+ "workflow.timeout",
770
+ "graph",
771
+ "graph.nodes",
772
+ "graph.edges",
773
+ "graph.retry_policy",
774
+ "langgraph.routing",
775
+ "langgraph.retry_policy",
776
+ "livekit.fallbacks",
777
+ "pipecat.pipeline",
778
+ ],
779
+ metrics=[
780
+ "orchestration_trace_coverage",
781
+ "orchestration_flow_quality",
782
+ "framework_trace_coverage",
783
+ "framework_transcript_quality",
784
+ "trial_reliability",
785
+ "tool_fault_tolerance",
786
+ "latency",
787
+ "cost",
788
+ ],
789
+ failure_modes=[
790
+ "orchestration_trace_gap",
791
+ "orchestration_flow_failure",
792
+ "framework_trace_gap",
793
+ "framework_transcript_gap",
794
+ "latency_or_cost",
795
+ "coordination_failure",
796
+ "fault_tolerance_failure",
797
+ "reliability_failure",
798
+ ],
799
+ patch_strategies=["capture workflow graph traces", "tune routing, retries, recovery, and budgets"],
800
+ ),
801
+ "streaming": AgentComponentSpec(
802
+ name="streaming",
803
+ config_paths=[
804
+ "streaming",
805
+ "streaming.trace",
806
+ "streaming.export",
807
+ "streaming.events",
808
+ "streaming.chunks",
809
+ "streaming.tool_deltas",
810
+ "streaming.interruptions",
811
+ "streaming.finalization",
812
+ "streaming.buffer",
813
+ "streaming.backpressure",
814
+ "streaming.latency",
815
+ "streaming.gap",
816
+ "streaming.usage",
817
+ "runtime.streaming",
818
+ "runtime.event_stream",
819
+ "framework.streaming",
820
+ "framework.stream_events",
821
+ "framework.event_stream",
822
+ "framework.lifecycle",
823
+ "framework.lifecycle.cancel_resume",
824
+ "langchain.streaming",
825
+ "langchain.stream_events",
826
+ "langgraph.streaming",
827
+ "langgraph.stream_events",
828
+ "openai_agents.streaming",
829
+ "openai_agents.stream_events",
830
+ "livekit.session_events",
831
+ "livekit.interruptions",
832
+ "pipecat.frames",
833
+ "pipecat.pipeline",
834
+ "otel.gen_ai.streaming",
835
+ "simulation.streaming",
836
+ ],
837
+ metrics=[
838
+ "streaming_trace_coverage",
839
+ "streaming_interaction_quality",
840
+ "latency",
841
+ "runtime_success",
842
+ "framework_trace_coverage",
843
+ "framework_lifecycle_quality",
844
+ "voice_interaction_quality",
845
+ ],
846
+ failure_modes=[
847
+ "streaming_trace_gap",
848
+ "streaming_interaction_failure",
849
+ "latency_or_cost",
850
+ "framework_trace_gap",
851
+ "framework_lifecycle_gap",
852
+ "voice_turn_taking_failure",
853
+ "implementation_bug",
854
+ "evaluation_gap",
855
+ ],
856
+ patch_strategies=["capture stream events", "tune chunk assembly, buffering, interruption recovery, and finalization"],
857
+ ),
858
+ "world": AgentComponentSpec(
859
+ name="world",
860
+ config_paths=[
861
+ "world",
862
+ "world.contract",
863
+ "world.actors",
864
+ "world.resources",
865
+ "world.state",
866
+ "world.initial_state",
867
+ "world.transitions",
868
+ "world.required_transitions",
869
+ "world.forbidden_transitions",
870
+ "world.invariants",
871
+ "world.success_conditions",
872
+ "world.policy_gates",
873
+ "world.adversarial_surfaces",
874
+ "world.milestones",
875
+ "environment.world",
876
+ "environment.contract",
877
+ "environment.state",
878
+ "simulation.world",
879
+ "simulation.environment",
880
+ "tools.state_updates",
881
+ "policy.world_rules",
882
+ ],
883
+ metrics=[
884
+ "world_contract_coverage",
885
+ "world_contract_quality",
886
+ "state_goal_accuracy",
887
+ "tool_outcome",
888
+ "tool_fault_tolerance",
889
+ "trial_reliability",
890
+ "environment_injection_resistance",
891
+ ],
892
+ failure_modes=[
893
+ "world_contract_gap",
894
+ "world_contract_violation",
895
+ "environment_mismatch",
896
+ "policy_violation",
897
+ "tool_execution_error",
898
+ "fault_tolerance_failure",
899
+ "reliability_failure",
900
+ "evaluation_gap",
901
+ ],
902
+ patch_strategies=["add world contract state machine", "tune transitions, invariants, policy gates, and success conditions"],
903
+ ),
904
+ "security": AgentComponentSpec(
905
+ name="security",
906
+ config_paths=[
907
+ "security",
908
+ "security.attack_pack",
909
+ "security.trust_boundary",
910
+ "security.trust_boundaries",
911
+ "security.control_plane",
912
+ "security.risk_scoring",
913
+ "security.kill_switch",
914
+ "security.circuit_breakers",
915
+ "security.rate_limits",
916
+ "security.risk_budgets",
917
+ "security.containment",
918
+ "security.drift_detection",
919
+ "security.identity",
920
+ "security.permissions",
921
+ "security.sandbox",
922
+ "security.audit",
923
+ "security.canaries",
924
+ "security.human_approval",
925
+ "security.network_egress",
926
+ "security.tool_allowlist",
927
+ "security.data_boundary",
928
+ "security.secret_handling",
929
+ "security.untrusted_context",
930
+ "security.canaries",
931
+ "security.blocked_tools",
932
+ "security.tool_permissions",
933
+ "security.prompt_injection",
934
+ "security.output_filter",
935
+ "security.approval_gate",
936
+ "security.data_loss_prevention",
937
+ "guardrails",
938
+ "policy.guardrails",
939
+ "policy.trust_boundary",
940
+ "policy.approvals",
941
+ "policy.untrusted_context",
942
+ "policy.blocked_tools",
943
+ "tools.permissions",
944
+ "tools.allowlist",
945
+ "memory.write_policy",
946
+ "memory.write_quarantine",
947
+ "memory.isolation",
948
+ "memory.untrusted_context",
949
+ "memory.provenance",
950
+ "memory.trust_labels",
951
+ "memory.rehydration_policy",
952
+ "memory.lineage.poison_tests",
953
+ "memory.lineage.tenant_isolation",
954
+ "memory.lineage.canaries",
955
+ "security.memory_poisoning",
956
+ "security.persistent_state_attack",
957
+ "security.stored_prompt_injection",
958
+ "security.memory_lineage",
959
+ "security.memory_isolation",
960
+ "browser.injection_surfaces",
961
+ "environment.adversarial",
962
+ "environment.red_team_campaign",
963
+ "adversarial.attacks",
964
+ "adversarial.canaries",
965
+ "red_team.campaign",
966
+ "red_team.taxonomies",
967
+ "red_team.attack_packs",
968
+ "red_team.scenarios",
969
+ "red_team.runs",
970
+ "red_team.findings",
971
+ "red_team.artifacts",
972
+ "red_team.mitigations",
973
+ "red_team.channels",
974
+ "red_team.providers",
975
+ "red_team.multi_turn",
976
+ "red_team.owasp_llm_top_10",
977
+ "red_team.owasp_agentic_ai",
978
+ "red_team.mcp_security",
979
+ "red_team.garak",
980
+ "red_team.pyrit",
981
+ "red_team.inspect",
982
+ "red_team.preflight",
983
+ "red_team.readiness",
984
+ "red_team.readiness.framework_import",
985
+ "red_team.readiness.campaign",
986
+ "red_team.readiness.workspace_run",
987
+ "red_team.readiness.trust_boundary",
988
+ "red_team.readiness.control_plane",
989
+ "red_team.readiness.observability",
990
+ "red_team.readiness.artifacts",
991
+ "persistent_state_attack",
992
+ "persistent_state_attack.write_policy",
993
+ "persistent_state_attack.context_rehydration",
994
+ "persistent_state_attack.activation_guard",
995
+ "persistent_state_attack.provenance",
996
+ ],
997
+ metrics=[
998
+ "adversarial_resilience",
999
+ "persistent_state_attack_coverage",
1000
+ "persistent_state_attack_quality",
1001
+ "red_team_campaign_coverage",
1002
+ "red_team_campaign_quality",
1003
+ "red_team_readiness_coverage",
1004
+ "red_team_readiness_quality",
1005
+ "environment_injection_resistance",
1006
+ "prompt_injection_resistance",
1007
+ "secret_leakage",
1008
+ "memory_integrity",
1009
+ "agent_memory_lineage_quality",
1010
+ "policy_adherence",
1011
+ "action_safety",
1012
+ "trajectory_browser_action_safety",
1013
+ "agent_trust_boundary_coverage",
1014
+ "agent_trust_boundary_quality",
1015
+ "agent_control_plane_coverage",
1016
+ "agent_control_plane_quality",
1017
+ ],
1018
+ failure_modes=[
1019
+ "trust_boundary_gap",
1020
+ "control_plane_gap",
1021
+ "adversarial_resilience_failure",
1022
+ "policy_violation",
1023
+ "unsafe_action",
1024
+ "memory_contamination",
1025
+ "environment_mismatch",
1026
+ "evaluation_gap",
1027
+ ],
1028
+ patch_strategies=["quarantine untrusted context", "enforce tool allowlists, canary filters, and approval gates"],
1029
+ ),
1030
+ "perception": AgentComponentSpec(
1031
+ name="perception",
1032
+ config_paths=[
1033
+ "perception",
1034
+ "artifacts",
1035
+ "artifact_grounding",
1036
+ "artifact_semantics",
1037
+ "structured_artifacts",
1038
+ "multimodal",
1039
+ "vision",
1040
+ "audio",
1041
+ "trajectory.multimodal",
1042
+ "browser.dom",
1043
+ "browser.trace",
1044
+ "browser.trace.har",
1045
+ "browser.trace.openai_cua",
1046
+ "browser.trace.browser_use",
1047
+ "browser.resources",
1048
+ "browser.resource_bodies",
1049
+ "browser.actionability",
1050
+ "browser.storage_state",
1051
+ "browser.cookies",
1052
+ "browser.local_storage",
1053
+ "browser.session_storage",
1054
+ "browser.runtime",
1055
+ "browser.runtime_events",
1056
+ "browser.performance_entries",
1057
+ "browser.performance_timing",
1058
+ "browser.regions",
1059
+ "browser.screenshot_diff",
1060
+ "browser.screenshot_diff.pixel",
1061
+ "browser.screenshot_diff.semantic",
1062
+ "browser.screenshot_diff.mask",
1063
+ "browser.semantic_regions",
1064
+ "browser.masked_regions",
1065
+ "browser.allowed_regions",
1066
+ "browser.forbidden_regions",
1067
+ "browser.pixel_diff",
1068
+ "browser.layout_shift_distribution",
1069
+ "simulation.environment",
1070
+ "environment.images",
1071
+ "environment.voice",
1072
+ "voice.trace",
1073
+ "voice.webrtc",
1074
+ "voice.webrtc.stats",
1075
+ "voice.webrtc.get_stats",
1076
+ "voice.webrtc.rtp",
1077
+ "voice.webrtc.track",
1078
+ "voice.webrtc.codec",
1079
+ "voice.timing_distribution",
1080
+ ],
1081
+ metrics=[
1082
+ "grounding_accuracy",
1083
+ "ocr_accuracy",
1084
+ "audio_transcription_quality",
1085
+ "artifact_coverage",
1086
+ "artifact_semantics_quality",
1087
+ "browser_trace_coverage",
1088
+ "browser_action_outcome",
1089
+ "browser_grounding_quality",
1090
+ "voice_trace_coverage",
1091
+ "voice_timing_distribution_quality",
1092
+ "multimodal_faithfulness",
1093
+ "artifact_grounding_quality",
1094
+ ],
1095
+ failure_modes=[
1096
+ "perception_grounding_failure",
1097
+ "artifact_semantics_failure",
1098
+ "voice_turn_taking_failure",
1099
+ "voice_timing_distribution_failure",
1100
+ "browser_action_failure",
1101
+ ],
1102
+ patch_strategies=["improve artifact capture", "add multimodal grounding checks"],
1103
+ ),
1104
+ "prompt": AgentComponentSpec(
1105
+ name="prompt",
1106
+ config_paths=["prompt", "instructions", "system_prompt", "trajectory.policy"],
1107
+ metrics=["instruction_following", "final_response_quality", "agent_goal_accuracy", "policy_adherence", "source_contradiction"],
1108
+ failure_modes=["unclear_goal", "poor_plan", "hallucination", "policy_violation"],
1109
+ patch_strategies=["rewrite role/task instructions", "add constraints/examples"],
1110
+ ),
1111
+ "planner": AgentComponentSpec(
1112
+ name="planner",
1113
+ config_paths=["planner", "planning", "graph.plan", "graph.nodes", "graph.edges", "workflow.graph", "workflow.nodes", "workflow.edges", "orchestration.steps", "orchestration.routes", "trajectory", "trajectory.steps", "framework.transcript.tool_sequence", "langgraph.nodes", "optimizer.trace", "optimizer.society_trace", "optimizer.roles", "optimizer.role_graph", "optimizer.proposals", "optimizer.credit", "optimizer.governance", "optimizer.backend_selector", "optimizer.backend_selector.policy", "optimizer.portfolio_gate", "optimization", "optimization.target.search_space", "optimization.optimizer.max_candidates"],
1114
+ metrics=["plan_validity", "trajectory_accuracy", "step_success", "trial_reliability", "agent_goal_accuracy", "tool_call_accuracy", "optimizer_trace_coverage", "optimizer_trace_quality", "optimizer_portfolio_coverage", "optimizer_portfolio_quality", "manifest_optimization_coverage", "manifest_optimization_quality", "framework_transcript_quality", "orchestration_flow_quality"],
1115
+ failure_modes=["poor_plan", "context_overload", "reliability_failure", "framework_transcript_gap", "orchestration_flow_failure"],
1116
+ patch_strategies=["add decomposition", "add self-checks", "limit branching"],
1117
+ ),
1118
+ "autonomy": AgentComponentSpec(
1119
+ name="autonomy",
1120
+ config_paths=[
1121
+ "autonomy",
1122
+ "autonomy.loop",
1123
+ "autonomy.control_plane",
1124
+ "autonomy.action_gates",
1125
+ "autonomy.risk_budgets",
1126
+ "autonomy.rollback",
1127
+ "autonomy.kill_switch",
1128
+ "autonomy.plan",
1129
+ "autonomy.reflection",
1130
+ "autonomy.verifier",
1131
+ "autonomy.memory",
1132
+ "autonomy.skill_library",
1133
+ "autonomy.stop_policy",
1134
+ "planner",
1135
+ "memory",
1136
+ "policy",
1137
+ ],
1138
+ metrics=[
1139
+ "autonomy_loop_coverage",
1140
+ "autonomy_loop_quality",
1141
+ "cross_trial_memory_skill",
1142
+ "plan_validity",
1143
+ "memory_recall",
1144
+ "policy_adherence",
1145
+ "trial_reliability",
1146
+ "agent_control_plane_coverage",
1147
+ "agent_control_plane_quality",
1148
+ ],
1149
+ failure_modes=["autonomy_loop_failure", "control_plane_gap", "cross_trial_memory_skill_failure", "poor_plan", "memory_retrieval_failure", "reliability_failure"],
1150
+ patch_strategies=["add observe-orient-plan-act-verify-reflect loop evidence"],
1151
+ ),
1152
+ "router": AgentComponentSpec(
1153
+ name="router",
1154
+ config_paths=["router", "model_router", "tool_router", "memory.router", "workflow.routing", "workflow.routes", "orchestration.routes", "orchestration.edges", "graph.edges", "langgraph.routing", "framework.transcript.nodes"],
1155
+ metrics=["routing_accuracy", "latency", "cost", "framework_transcript_quality", "orchestration_flow_quality"],
1156
+ failure_modes=["wrong_tool", "latency_or_cost", "context_overload", "framework_transcript_gap", "orchestration_flow_failure"],
1157
+ patch_strategies=["add intent classifier", "route by task/tool/context"],
1158
+ ),
1159
+ "tools": AgentComponentSpec(
1160
+ name="tools",
1161
+ config_paths=[
1162
+ "tools",
1163
+ "tool_schemas",
1164
+ "mcp",
1165
+ "mcp.server",
1166
+ "mcp.tool_session",
1167
+ "mcp.tools.list",
1168
+ "mcp.tools.schema",
1169
+ "mcp.tools.call",
1170
+ "mcp.tools.result",
1171
+ "mcp.tools.error",
1172
+ "functions",
1173
+ "tools.risk_scoring",
1174
+ "tools.action_policy",
1175
+ "tools.permissions",
1176
+ "tools.allowlist",
1177
+ "tools.blocklist",
1178
+ "tools.auth",
1179
+ "tools.high_risk",
1180
+ "tools.external",
1181
+ "tools.destructive",
1182
+ "tools.argument_builder",
1183
+ "tools.result_mapper",
1184
+ "framework.portability.tools",
1185
+ "framework.portability.mappings",
1186
+ "trajectory.tools",
1187
+ "trajectory.tool_order",
1188
+ "framework.lifecycle.tool_registration",
1189
+ "framework.transcript.tool_sequence",
1190
+ "orchestration.steps",
1191
+ "orchestration.retries",
1192
+ "workflow.retry_policy",
1193
+ ],
1194
+ metrics=["tool_selection_accuracy", "slot_filling_accuracy", "tool_success", "tool_argument_schema", "tool_outcome", "tool_fault_tolerance", "adversarial_resilience", "agent_trust_boundary_coverage", "agent_trust_boundary_quality", "agent_control_plane_coverage", "agent_control_plane_quality", "trial_reliability", "tool_call_accuracy", "tool_call_f1", "framework_lifecycle_quality", "framework_portability_quality", "framework_transcript_quality", "orchestration_flow_quality"],
1195
+ failure_modes=["wrong_tool", "bad_tool_arguments", "tool_execution_error", "missing_tool", "adversarial_resilience_failure", "trust_boundary_gap", "control_plane_gap", "reliability_failure", "fault_tolerance_failure", "framework_lifecycle_gap", "framework_portability_gap", "framework_transcript_gap", "orchestration_flow_failure"],
1196
+ patch_strategies=["rewrite descriptions", "tighten schemas", "add tool mocks"],
1197
+ ),
1198
+ "memory": AgentComponentSpec(
1199
+ name="memory",
1200
+ config_paths=["memory", "memory.cross_trial", "memory.recall_policy", "memory.persistence", "memory.state_persistence", "memory.checkpoint_state", "memory.checkpoint_lineage", "memory.lineage", "memory.lineage.stores", "memory.lineage.memories", "memory.lineage.operations", "memory.lineage.source_attribution", "memory.lineage.tenant_isolation", "memory.lineage.audit", "memory.lineage.retention", "memory.lineage.deletion", "memory.lineage.redaction", "memory.lineage.canaries", "memory.lineage.poison_tests", "memory.lineage.observability", "memory.write_policy", "memory.write_quarantine", "memory.isolation", "memory.untrusted_context", "memory.provenance", "memory.trust_labels", "memory.rehydration_policy", "memory.control_plane", "memory.audit", "memory.drift_detection", "persistent_state_attack", "persistent_state_attack.write_policy", "persistent_state_attack.context_rehydration", "persistent_state_attack.activation_guard", "persistent_state_attack.provenance", "state", "scratchpad", "episodic_memory", "memory.attribution", "memory.correctness", "trajectory.memory", "framework.memory", "framework.portability.memory", "framework.portability.lifecycle", "framework.checkpoints", "framework.checkpoints.state", "framework.sessions", "framework.sessions.thread_id", "framework.lifecycle.sessions", "framework.lifecycle.checkpoints", "framework.lifecycle.resume", "framework.lifecycle.state_persistence", "framework.transcript.state", "orchestration.state", "orchestration.checkpoints", "workflow.state", "sessions"],
1201
+ metrics=["memory_precision", "memory_recall", "cross_trial_memory_skill", "supportedness", "retrieval_memory_attribution", "agent_memory_lineage_coverage", "agent_memory_lineage_quality", "retrieval_context_quality", "source_grounding", "source_contradiction", "adversarial_resilience", "persistent_state_attack_coverage", "persistent_state_attack_quality", "agent_trust_boundary_coverage", "agent_trust_boundary_quality", "agent_control_plane_coverage", "agent_control_plane_quality", "trial_reliability", "memory_correctness", "framework_lifecycle_quality", "framework_portability_quality", "framework_transcript_quality", "orchestration_flow_quality"],
1202
+ failure_modes=[
1203
+ "memory_write_failure",
1204
+ "memory_retrieval_failure",
1205
+ "memory_contamination",
1206
+ "adversarial_resilience_failure",
1207
+ "trust_boundary_gap",
1208
+ "control_plane_gap",
1209
+ "cross_trial_memory_skill_failure",
1210
+ "context_overload",
1211
+ "reliability_failure",
1212
+ "framework_lifecycle_gap",
1213
+ "framework_portability_gap",
1214
+ "framework_transcript_gap",
1215
+ "orchestration_flow_failure",
1216
+ ],
1217
+ patch_strategies=["change write policy", "change retrieval tier", "summarize/forget"],
1218
+ ),
1219
+ "retrieval": AgentComponentSpec(
1220
+ name="retrieval",
1221
+ config_paths=["retrieval", "retriever", "rag", "knowledge", "citations", "attribution"],
1222
+ metrics=["context_relevance", "faithfulness", "groundedness", "retrieval_memory_attribution", "retrieval_context_quality", "source_grounding", "source_contradiction"],
1223
+ failure_modes=["retrieval_relevance_failure", "hallucination"],
1224
+ patch_strategies=["change retriever/reranker", "tighten chunking", "add citations"],
1225
+ ),
1226
+ "policy": AgentComponentSpec(
1227
+ name="policy",
1228
+ config_paths=["policy", "guardrails", "constraints", "safety", "trajectory.policy", "policy.trust_boundary", "policy.control_plane", "policy.action_gates", "policy.permissions", "policy.approvals", "policy.rollback", "policy.kill_switch", "policy.circuit_breakers", "policy.rate_limits", "policy.risk_budgets", "policy.data_boundary", "policy.secret_handling", "policy.network_egress", "policy.untrusted_context", "policy.blocked_tools", "policy.canary_filter", "policy.memory_lineage", "policy.memory_source_attribution", "policy.memory_tenant_isolation", "policy.memory_retention", "policy.memory_deletion", "policy.memory_redaction", "policy.persistent_state_attack", "policy.persistent_state_write_gate", "policy.context_rehydration", "policy.activation_guard", "security.guardrails"],
1229
+ metrics=["policy_adherence", "risk_score", "unsafe_action_rate", "adversarial_resilience", "persistent_state_attack_quality", "agent_memory_lineage_quality", "agent_trust_boundary_coverage", "agent_trust_boundary_quality", "agent_control_plane_coverage", "agent_control_plane_quality", "tool_fault_tolerance", "trial_reliability", "trajectory_browser_action_safety"],
1230
+ failure_modes=["policy_violation", "unsafe_action", "adversarial_resilience_failure", "trust_boundary_gap", "control_plane_gap", "reliability_failure", "fault_tolerance_failure"],
1231
+ patch_strategies=["add explicit decision gates", "block irreversible actions"],
1232
+ ),
1233
+ "action": AgentComponentSpec(
1234
+ name="action",
1235
+ config_paths=["action", "executor", "actuator", "trajectory.browser"],
1236
+ metrics=["action_success", "invalid_action_rate", "tool_outcome", "tool_fault_tolerance", "browser_action_outcome", "browser_grounding_quality", "trajectory_browser_action_safety"],
1237
+ failure_modes=["unsafe_action", "tool_execution_error", "schema_error", "fault_tolerance_failure", "browser_action_failure"],
1238
+ patch_strategies=["validate actions", "add retry/state observations"],
1239
+ ),
1240
+ "environment": AgentComponentSpec(
1241
+ name="environment",
1242
+ config_paths=["environment", "fixtures", "mocks", "state", "environment.world", "environment.contract", "environment.agent_integration", "environment.integrations", "environment.agent_trust_boundary", "environment.trust_boundary", "environment.agent_control_plane", "environment.control_plane", "environment.agent_memory_lineage", "environment.memory_lineage", "environment.memory_provenance", "environment.memory_poisoning", "environment.persistent_state_attack", "environment.stored_prompt_injection", "environment.adversarial", "environment.attack_pack", "environment.red_team_campaign", "environment.red_team_readiness", "environment.red_team_preflight", "environment.observability_replay", "environment.replay_pack", "world.contract", "world.state", "world.transitions", "world.invariants", "adversarial.attacks", "adversarial.surfaces", "red_team.campaign", "red_team.readiness", "red_team.preflight", "red_team.scenarios", "red_team.runs", "red_team.artifacts", "red_team.observability", "persistent_state_attack", "persistent_state_attack.lifecycle", "persistent_state_attack.write_policy", "persistent_state_attack.context_rehydration", "persistent_state_attack.activation_guard", "observability.replay", "observability.replay_pack", "futureagi.regression_replay", "environment.structured_artifacts", "structured_artifacts", "environment.domain_packages", "domain_packages"],
1243
+ metrics=["environment_success", "state_goal_accuracy", "agent_memory_lineage_coverage", "agent_memory_lineage_quality", "agent_integration_coverage", "agent_integration_quality", "workspace_run_coverage", "workspace_run_quality", "observability_replay_coverage", "observability_replay_quality", "world_contract_coverage", "world_contract_quality", "adversarial_resilience", "persistent_state_attack_coverage", "persistent_state_attack_quality", "red_team_campaign_coverage", "red_team_campaign_quality", "red_team_readiness_coverage", "red_team_readiness_quality", "agent_trust_boundary_coverage", "agent_trust_boundary_quality", "agent_control_plane_coverage", "agent_control_plane_quality", "tool_outcome", "tool_fault_tolerance", "browser_action_outcome", "browser_grounding_quality", "artifact_semantics_quality", "domain_package_quality"],
1244
+ failure_modes=["environment_mismatch", "integration_gap", "world_contract_gap", "world_contract_violation", "adversarial_resilience_failure", "trust_boundary_gap", "control_plane_gap", "implementation_bug", "fault_tolerance_failure", "browser_action_failure", "artifact_semantics_failure", "domain_package_failure"],
1245
+ patch_strategies=["mock external state", "snapshot/restore environment"],
1246
+ ),
1247
+ "implementation": AgentComponentSpec(
1248
+ name="implementation",
1249
+ config_paths=["implementation", "code", "runtime", "runtime.adapter", "runtime.control_plane", "runtime.integrations", "framework.import_manifest", "framework.import.sources", "framework.runtime.method", "framework.runtime.output_schema", "framework.portability", "framework.portability.mappings", "framework.portability.runtime", "framework.trust_boundary", "framework.control_plane", "security.trust_boundary", "security.control_plane", "framework.lifecycle.setup", "framework.lifecycle.cleanup", "framework.lifecycle.retry_policy", "framework.lifecycle.cancel_resume", "dependencies", "domain_packages.parser", "domain_packages.normalizer"],
1250
+ metrics=["exception_rate", "schema_validity", "runtime_success", "agent_integration_quality", "workspace_run_quality", "framework_import_quality", "framework_runtime_contract", "framework_lifecycle_quality", "framework_portability_quality", "agent_trust_boundary_quality", "agent_control_plane_quality", "tool_argument_schema", "tool_outcome", "tool_fault_tolerance", "artifact_semantics_quality", "domain_package_quality"],
1251
+ failure_modes=["implementation_bug", "integration_gap", "schema_error", "latency_or_cost", "framework_lifecycle_gap", "framework_portability_gap", "trust_boundary_gap", "control_plane_gap", "fault_tolerance_failure", "artifact_semantics_failure", "domain_package_failure"],
1252
+ patch_strategies=["fix code path", "add schema validation", "add timeouts"],
1253
+ ),
1254
+ "evaluator": AgentComponentSpec(
1255
+ name="evaluator",
1256
+ config_paths=["evaluation", "metrics", "rubric", "evaluation.trajectory_templates", "trajectory_templates", "evaluation.agent_memory_lineage", "evaluation.agent_memory_lineage_quality", "evaluation.agent_memory_lineage_quality.required_evidence", "evaluation.agent_memory_lineage_quality.required_signals", "evaluation.agent_memory_lineage_quality.required_operation_types", "evaluation.agent_memory_lineage_quality.required_policies", "evaluation.agent_memory_lineage_quality.max_open_poisoning", "evaluation.agent_memory_lineage_quality.max_unattributed_memories", "evaluation.agent_memory_lineage_quality.max_isolation_violations", "evaluation.agent_memory_lineage_quality.max_retention_violations", "evaluation.agent_memory_lineage_quality.max_policy_violations", "evaluation.persistent_state_attack", "evaluation.required_persistent_state_attack", "evaluation.persistent_state_attack_quality", "evaluation.persistent_state_attack_quality.required_channels", "evaluation.persistent_state_attack_quality.required_attack_types", "evaluation.persistent_state_attack_quality.max_write_success_rate", "evaluation.persistent_state_attack_quality.max_incorporation_rate", "evaluation.persistent_state_attack_quality.max_activation_rate", "evaluation.persistent_state_attack_quality.max_e2e_attack_success_rate", "evaluation.agent_integration", "evaluation.agent_integration_quality", "evaluation.framework_import", "evaluation.framework_import_quality", "evaluation.framework_import_quality.required_frameworks", "evaluation.framework_import_quality.required_export_types", "evaluation.framework_import_quality.required_signals", "evaluation.framework_import_quality.max_failed_sources", "evaluation.red_team_readiness", "evaluation.red_team_readiness_quality", "evaluation.red_team_readiness_quality.required_evidence", "evaluation.red_team_readiness_quality.required_signals", "evaluation.red_team_readiness_quality.required_ready_components", "evaluation.red_team_readiness_quality.max_blocking_gaps", "evaluation.observability_replay", "evaluation.observability_replay_quality", "evaluation.optimizer_trace", "evaluation.optimizer_trace_quality", "evaluation.optimizer_trace_quality.required_roles", "evaluation.optimizer_trace_quality.required_search_paths", "evaluation.optimizer_trace_quality.required_governance_signals", "evaluation.optimizer_trace_quality.min_governance_checks", "evaluation.manifest_optimization", "evaluation.required_manifest_optimization", "evaluation.manifest_optimization_quality", "evaluation.manifest_optimization_quality.required_search_paths", "evaluation.manifest_optimization_quality.required_metrics", "evaluation.framework_runtime", "evaluation.framework_runtime_contract", "evaluation.framework_lifecycle", "evaluation.framework_lifecycle_quality", "evaluation.framework_capability_quality", "evaluation.framework_probe_quality", "evaluation.framework_portability_quality", "evaluation.agent_trust_boundary_quality", "evaluation.agent_trust_boundary_quality.required_controls", "evaluation.agent_trust_boundary_quality.required_categories", "evaluation.agent_trust_boundary_quality.min_control_rate", "evaluation.agent_trust_boundary_quality.max_high_risk_unmitigated_threats", "evaluation.agent_control_plane_quality", "evaluation.agent_control_plane_quality.required_controls", "evaluation.agent_control_plane_quality.required_categories", "evaluation.agent_control_plane_quality.min_control_rate", "evaluation.agent_control_plane_quality.max_high_risk_uncontained_incidents", "evaluation.framework_transcript_quality", "evaluation.orchestration_trace_quality", "evaluation.streaming_trace_quality", "evaluation.world_contract_quality", "evaluation.adversarial_resilience", "evaluation.red_team_campaign", "evaluation.red_team_campaign_quality", "evaluation.red_team_campaign_quality.required_taxonomies", "evaluation.red_team_campaign_quality.required_attack_types", "evaluation.red_team_campaign_quality.required_surfaces", "evaluation.red_team_campaign_quality.required_channels", "evaluation.red_team_campaign_quality.required_providers", "evaluation.red_team_campaign_quality.required_frameworks", "evaluation.red_team_campaign_quality.max_open_high_findings", "evaluation.red_team_campaign_quality.max_failed_runs", "evaluation.cross_trial_memory_skill", "evaluation.voice_timing_distribution", "optimizer", "optimizer.trace", "optimizer.society_trace", "optimizer.roles", "optimizer.role_graph", "optimizer.proposals", "optimizer.credit", "optimizer.diagnostics", "optimizer.governance", "optimization", "optimization.target", "optimization.target.search_space", "optimization.optimizer", "optimization.optimizer.max_candidates", "manifest_optimization", "optimization.manifest_optimization", "framework.import_manifest", "framework.import.sources", "framework.runtime", "framework.lifecycle", "framework.capabilities", "framework.probes", "framework.portability", "framework.trust_boundary", "framework.control_plane", "framework.transcript", "orchestration.trace", "streaming.trace", "world.contract", "adversarial.attack_pack", "red_team.campaign", "red_team.readiness", "observability.replay", "observability.replay_pack", "evaluation.artifact_semantics", "evaluation.domain_packages"],
1257
+ metrics=["judge_agreement", "eval_coverage", "agent_goal_accuracy", "tool_call_accuracy", "tool_call_f1", "policy_adherence", "memory_correctness", "agent_memory_lineage_coverage", "agent_memory_lineage_quality", "persistent_state_attack_coverage", "persistent_state_attack_quality", "multimodal_faithfulness", "artifact_grounding_quality", "artifact_semantics_quality", "domain_package_quality", "source_contradiction", "agent_integration_coverage", "agent_integration_quality", "workspace_run_coverage", "workspace_run_quality", "red_team_campaign_coverage", "red_team_campaign_quality", "red_team_readiness_coverage", "red_team_readiness_quality", "observability_replay_coverage", "observability_replay_quality", "optimizer_trace_coverage", "optimizer_trace_quality", "manifest_optimization_coverage", "manifest_optimization_quality", "framework_import_coverage", "framework_import_quality", "framework_runtime_coverage", "framework_runtime_contract", "framework_lifecycle_coverage", "framework_lifecycle_quality", "framework_capability_coverage", "framework_capability_quality", "framework_probe_coverage", "framework_probe_quality", "framework_portability_coverage", "framework_portability_quality", "agent_trust_boundary_coverage", "agent_trust_boundary_quality", "agent_control_plane_coverage", "agent_control_plane_quality", "framework_transcript_quality", "orchestration_trace_coverage", "orchestration_flow_quality", "streaming_trace_coverage", "streaming_interaction_quality", "world_contract_coverage", "world_contract_quality", "adversarial_resilience", "cross_trial_memory_skill", "voice_timing_distribution_quality"],
1258
+ failure_modes=["evaluation_gap", "integration_gap", "framework_trace_gap", "framework_lifecycle_gap", "framework_capability_gap", "framework_probe_gap", "framework_portability_gap", "trust_boundary_gap", "control_plane_gap", "reliability_failure", "framework_transcript_gap", "orchestration_trace_gap", "orchestration_flow_failure", "streaming_trace_gap", "streaming_interaction_failure", "world_contract_gap", "world_contract_violation", "adversarial_resilience_failure", "cross_trial_memory_skill_failure", "artifact_semantics_failure", "domain_package_failure", "voice_timing_distribution_failure"],
1259
+ patch_strategies=["add trajectory/step evals", "add deterministic state checks"],
1260
+ ),
1261
+ "multi_agent": AgentComponentSpec(
1262
+ name="multi_agent",
1263
+ config_paths=[
1264
+ "multi_agent",
1265
+ "multi_agent.trace",
1266
+ "multi_agent.roles",
1267
+ "multi_agent.contracts",
1268
+ "multi_agent.handoffs",
1269
+ "multi_agent.reviews",
1270
+ "multi_agent.reconciliation",
1271
+ "optimizer",
1272
+ "optimizer.trace",
1273
+ "optimizer.society",
1274
+ "optimizer.society_trace",
1275
+ "optimizer.strategy",
1276
+ "optimizer.max_rounds",
1277
+ "optimizer.roles",
1278
+ "optimizer.role_graph",
1279
+ "optimizer.proposals",
1280
+ "optimizer.credit",
1281
+ "optimizer.diagnostics",
1282
+ "optimizer.governance",
1283
+ "optimizer.governance.role_diversity",
1284
+ "optimizer.governance.mediator",
1285
+ "optimizer.governance.contract_gate",
1286
+ "optimizer.governance.rollback",
1287
+ "optimizer.governance.search_locality",
1288
+ "optimizer.governance.dependency_audit",
1289
+ "optimizer.backend_portfolio",
1290
+ "optimizer.backends",
1291
+ "optimizer.backend_selector",
1292
+ "optimizer.backend_selector.policy",
1293
+ "optimizer.backend_trials",
1294
+ "optimizer.backend_evidence",
1295
+ "optimizer.portfolio_gate",
1296
+ "optimization",
1297
+ "optimization.target",
1298
+ "optimization.target.search_space",
1299
+ "optimization.optimizer",
1300
+ "optimization.optimizer.max_candidates",
1301
+ "manifest_optimization",
1302
+ "optimization.manifest_optimization",
1303
+ "evaluation.optimizer_trace_quality",
1304
+ "evaluation.optimizer_trace_quality.required_roles",
1305
+ "evaluation.optimizer_trace_quality.required_search_paths",
1306
+ "evaluation.optimizer_trace_quality.required_governance_signals",
1307
+ "evaluation.optimizer_trace_quality.min_governance_checks",
1308
+ "evaluation.optimizer_portfolio_quality",
1309
+ "evaluation.manifest_optimization_quality",
1310
+ "evaluation.manifest_optimization_quality.required_search_paths",
1311
+ "evaluation.manifest_optimization_quality.required_metrics",
1312
+ "orchestration.handoffs",
1313
+ "orchestration.routes",
1314
+ "workflow.handoffs",
1315
+ "handoffs",
1316
+ "roles",
1317
+ "debate",
1318
+ ],
1319
+ metrics=[
1320
+ "handoff_accuracy",
1321
+ "coordination_success",
1322
+ "multi_agent_trace_coverage",
1323
+ "multi_agent_coordination_quality",
1324
+ "optimizer_trace_coverage",
1325
+ "optimizer_trace_quality",
1326
+ "optimizer_portfolio_coverage",
1327
+ "optimizer_portfolio_quality",
1328
+ "manifest_optimization_coverage",
1329
+ "manifest_optimization_quality",
1330
+ "orchestration_flow_quality",
1331
+ ],
1332
+ failure_modes=["coordination_failure", "poor_plan", "orchestration_flow_failure"],
1333
+ patch_strategies=["clarify roles", "add handoff contracts", "add reconciliation"],
1334
+ ),
1335
+ "model": AgentComponentSpec(
1336
+ name="model",
1337
+ config_paths=["model", "llm", "inference", "generation"],
1338
+ metrics=["quality", "latency", "cost", "source_contradiction"],
1339
+ failure_modes=["latency_or_cost", "hallucination", "context_overload"],
1340
+ patch_strategies=["route to model tier", "adjust temperature/context"],
1341
+ ),
1342
+ "voice": AgentComponentSpec(
1343
+ name="voice",
1344
+ config_paths=[
1345
+ "voice",
1346
+ "voice.trace",
1347
+ "voice.export",
1348
+ "voice.export.auth",
1349
+ "voice.export.pagination",
1350
+ "voice.export.cursor",
1351
+ "voice.export.page_size",
1352
+ "voice.trace.livekit",
1353
+ "voice.trace.vapi",
1354
+ "voice.trace.pipecat",
1355
+ "voice.trace.bland",
1356
+ "voice.webrtc",
1357
+ "voice.webrtc.stats",
1358
+ "voice.webrtc.get_stats",
1359
+ "voice.webrtc.rtp",
1360
+ "voice.webrtc.packet_counters",
1361
+ "voice.webrtc.track",
1362
+ "voice.webrtc.codec",
1363
+ "voice.webrtc.audio_level",
1364
+ "voice.transport",
1365
+ "voice.frames",
1366
+ "voice.media",
1367
+ "voice.audio_decode",
1368
+ "voice.waveform",
1369
+ "voice.diarization",
1370
+ "voice.perceptual",
1371
+ "voice.routing",
1372
+ "voice.noise",
1373
+ "voice.overlap",
1374
+ "voice.snr",
1375
+ "voice.clipping",
1376
+ "voice.jitter",
1377
+ "voice.packet_loss",
1378
+ "voice.transport.packet_loss",
1379
+ "voice.timing_distribution",
1380
+ "voice.timing",
1381
+ "voice.endpointing",
1382
+ "voice.eou",
1383
+ "voice.vad",
1384
+ "voice.stt_latency",
1385
+ "voice.tts_latency",
1386
+ "voice.turn_latency",
1387
+ "voice.jitter_buffer",
1388
+ "vad",
1389
+ "stt",
1390
+ "tts",
1391
+ "turn_taking",
1392
+ ],
1393
+ metrics=[
1394
+ "turn_taking",
1395
+ "interruption_handling",
1396
+ "audio_quality",
1397
+ "voice_trace_coverage",
1398
+ "voice_interaction_quality",
1399
+ "voice_timing_distribution_quality",
1400
+ ],
1401
+ failure_modes=["voice_turn_taking_failure", "voice_timing_distribution_failure", "latency_or_cost"],
1402
+ patch_strategies=[
1403
+ "tune VAD/endpointing",
1404
+ "adjust TTS/STT model",
1405
+ "add noise cancellation and frame replay checks",
1406
+ "capture timing distributions and reduce p95 stage latency",
1407
+ ],
1408
+ ),
1409
+ "browser": AgentComponentSpec(
1410
+ name="browser",
1411
+ config_paths=[
1412
+ "browser",
1413
+ "trajectory.browser",
1414
+ "browser.trace",
1415
+ "browser.trace.har",
1416
+ "browser.actions",
1417
+ "browser.resources",
1418
+ "browser.resource_bodies",
1419
+ "browser.actionability",
1420
+ "browser.storage_state",
1421
+ "browser.cookies",
1422
+ "browser.local_storage",
1423
+ "browser.session_storage",
1424
+ "browser.runtime",
1425
+ "browser.runtime_events",
1426
+ "browser.performance_entries",
1427
+ "browser.performance_timing",
1428
+ "browser.selectors",
1429
+ "browser.regions",
1430
+ "browser.screenshot_diff",
1431
+ "browser.screenshot_diff.pixel",
1432
+ "browser.screenshot_diff.semantic",
1433
+ "browser.screenshot_diff.mask",
1434
+ "browser.semantic_regions",
1435
+ "browser.masked_regions",
1436
+ "browser.allowed_regions",
1437
+ "browser.forbidden_regions",
1438
+ "browser.pixel_diff",
1439
+ "browser.trace.playwright",
1440
+ "browser.trace.openai_cua",
1441
+ "browser.trace.browser_use",
1442
+ "browser.trace.video",
1443
+ "browser.perturbations",
1444
+ "browser.mutations",
1445
+ "browser.mutation_pack",
1446
+ "browser.selector_fallbacks",
1447
+ "browser.refresh_before_action",
1448
+ "browser.actionability_recheck",
1449
+ "browser.storage_recheck",
1450
+ "browser.runtime_recheck",
1451
+ "browser.overlay_handling",
1452
+ "browser.layout_shift",
1453
+ "browser.layout_shift_distribution",
1454
+ "browser.stale_screenshot",
1455
+ "browser.refresh_snapshot",
1456
+ "browser.injection_surfaces",
1457
+ "dom",
1458
+ "screenshot",
1459
+ "video",
1460
+ "playwright",
1461
+ ],
1462
+ metrics=["gui_grounding", "dom_state_success", "browser_trace_coverage", "browser_action_outcome", "browser_grounding_quality", "browser_mutation_resilience", "trajectory_browser_action_safety"],
1463
+ failure_modes=["perception_grounding_failure", "unsafe_action", "environment_mismatch", "browser_action_failure", "browser_mutation_failure"],
1464
+ patch_strategies=["capture DOM/screenshot/coordinate evidence", "constrain browser actions", "stabilize browser action selectors", "add mutation-pack refresh, storage/runtime recheck, and selector fallback handling"],
1465
+ ),
1466
+ "cua": AgentComponentSpec(
1467
+ name="cua",
1468
+ config_paths=[
1469
+ "cua",
1470
+ "cua.coordinates",
1471
+ "cua.trace.openai",
1472
+ "cua.actionability",
1473
+ "computer_use",
1474
+ "browser.policy",
1475
+ "trajectory.browser",
1476
+ "browser.trace",
1477
+ "browser.trace.openai_cua",
1478
+ "browser.trace.browser_use",
1479
+ "browser.trace.har",
1480
+ "browser.actions",
1481
+ "browser.resource_bodies",
1482
+ "browser.actionability",
1483
+ "browser.storage_state",
1484
+ "browser.runtime",
1485
+ "browser.runtime_events",
1486
+ "browser.performance_timing",
1487
+ "browser.mutations",
1488
+ "browser.mutation_pack",
1489
+ "browser.selector_fallbacks",
1490
+ "browser.actionability_recheck",
1491
+ "browser.storage_recheck",
1492
+ "browser.runtime_recheck",
1493
+ "browser.regions",
1494
+ "browser.screenshot_diff.semantic",
1495
+ "browser.screenshot_diff.mask",
1496
+ "browser.semantic_regions",
1497
+ "browser.masked_regions",
1498
+ "browser.layout_shift",
1499
+ "browser.stale_screenshot",
1500
+ "browser.refresh_snapshot",
1501
+ "cua.semantic_regions",
1502
+ "cua.screenshot_masks",
1503
+ "cua.runtime_events",
1504
+ ],
1505
+ metrics=["action_success", "gui_grounding", "state_goal_accuracy", "browser_trace_coverage", "browser_action_outcome", "browser_grounding_quality", "browser_mutation_resilience", "trajectory_browser_action_safety"],
1506
+ failure_modes=["perception_grounding_failure", "unsafe_action", "environment_mismatch", "browser_action_failure", "browser_mutation_failure"],
1507
+ patch_strategies=["sandbox actions", "add screenshot/action replay", "handle mutation-pack fallbacks before CUA actions"],
1508
+ ),
1509
+ "custom": AgentComponentSpec(name="custom"),
1510
+ }
1511
+
1512
+
1513
+ FAILURE_ROUTES: Dict[FailureMode, List[AgentComponent]] = {
1514
+ "unclear_goal": ["objective", "planner", "prompt", "evaluator"],
1515
+ "poor_plan": ["planner", "prompt", "multi_agent"],
1516
+ "wrong_tool": ["tools", "router", "prompt"],
1517
+ "bad_tool_arguments": ["tools", "implementation"],
1518
+ "tool_execution_error": ["tools", "action", "environment", "implementation"],
1519
+ "missing_tool": ["tools", "environment"],
1520
+ "memory_write_failure": ["memory", "implementation"],
1521
+ "memory_retrieval_failure": ["memory", "retrieval", "router"],
1522
+ "memory_contamination": ["memory", "policy", "security"],
1523
+ "retrieval_relevance_failure": ["retrieval", "memory"],
1524
+ "policy_violation": ["policy", "security", "prompt", "tools"],
1525
+ "unsafe_action": ["policy", "security", "action", "browser", "cua"],
1526
+ "hallucination": ["retrieval", "prompt", "model", "memory"],
1527
+ "schema_error": ["implementation", "tools", "action"],
1528
+ "environment_mismatch": ["harness", "environment", "world", "browser", "cua"],
1529
+ "latency_or_cost": ["model", "router", "tools", "voice", "streaming", "implementation"],
1530
+ "coordination_failure": ["multi_agent", "planner", "memory", "harness", "evaluator"],
1531
+ "evaluation_gap": ["evaluator", "harness", "objective"],
1532
+ "integration_gap": ["integration", "framework", "voice", "streaming", "environment", "harness", "evaluator", "implementation"],
1533
+ "implementation_bug": ["implementation", "environment", "harness"],
1534
+ "perception_grounding_failure": ["perception", "voice", "browser", "cua"],
1535
+ "artifact_semantics_failure": ["perception", "environment", "implementation", "evaluator"],
1536
+ "domain_package_failure": ["environment", "implementation", "evaluator", "tools", "policy"],
1537
+ "context_overload": ["memory", "router", "model", "planner"],
1538
+ "voice_turn_taking_failure": ["voice", "perception"],
1539
+ "voice_timing_distribution_failure": ["voice", "perception", "streaming", "harness", "evaluator"],
1540
+ "browser_action_failure": ["browser", "cua", "action", "environment", "harness"],
1541
+ "browser_mutation_failure": ["browser", "cua", "action", "environment", "harness", "evaluator"],
1542
+ "autonomy_loop_failure": ["autonomy", "planner", "memory", "policy", "tools", "harness"],
1543
+ "cross_trial_memory_skill_failure": ["autonomy", "memory", "framework", "harness", "evaluator"],
1544
+ "framework_trace_gap": ["framework", "harness", "implementation", "evaluator", "model", "tools", "router"],
1545
+ "framework_lifecycle_gap": ["framework", "harness", "implementation", "evaluator", "streaming", "tools", "memory"],
1546
+ "framework_capability_gap": ["framework", "harness", "implementation", "evaluator", "tools", "memory", "streaming", "orchestration", "security", "environment"],
1547
+ "framework_probe_gap": ["framework", "harness", "implementation", "evaluator", "tools", "memory", "streaming", "orchestration", "security", "environment"],
1548
+ "framework_portability_gap": ["framework", "harness", "implementation", "evaluator", "tools", "memory", "streaming", "orchestration", "security", "environment"],
1549
+ "trust_boundary_gap": ["security", "policy", "tools", "memory", "framework", "environment", "harness", "implementation", "evaluator"],
1550
+ "control_plane_gap": ["autonomy", "policy", "security", "tools", "memory", "framework", "environment", "harness", "implementation", "evaluator"],
1551
+ "framework_transcript_gap": ["framework", "harness", "planner", "tools", "memory", "router", "implementation", "evaluator"],
1552
+ "orchestration_trace_gap": ["orchestration", "framework", "harness", "implementation", "evaluator"],
1553
+ "orchestration_flow_failure": ["orchestration", "planner", "router", "multi_agent", "tools", "memory", "implementation", "harness"],
1554
+ "streaming_trace_gap": ["streaming", "framework", "harness", "implementation", "evaluator"],
1555
+ "streaming_interaction_failure": ["streaming", "framework", "model", "router", "voice", "implementation", "harness"],
1556
+ "world_contract_gap": ["world", "environment", "harness", "tools", "policy", "implementation", "evaluator"],
1557
+ "world_contract_violation": ["world", "environment", "policy", "tools", "action", "planner", "implementation", "harness"],
1558
+ "adversarial_resilience_failure": ["security", "policy", "tools", "memory", "browser", "environment", "harness", "evaluator", "implementation"],
1559
+ "reliability_failure": ["autonomy", "planner", "policy", "tools", "memory", "framework", "environment", "harness", "evaluator"],
1560
+ "fault_tolerance_failure": ["policy", "tools", "action", "environment", "implementation", "harness"],
1561
+ "unknown": ["custom"],
1562
+ }
1563
+
1564
+
1565
+ KEYWORD_FAILURES: Dict[FailureMode, List[str]] = {
1566
+ "wrong_tool": [
1567
+ "wrong tool",
1568
+ "tool selection",
1569
+ "unexpected tool",
1570
+ "extra tool",
1571
+ "tool call accuracy",
1572
+ "tool call f1",
1573
+ "trajectory tool",
1574
+ "tool order",
1575
+ ],
1576
+ "bad_tool_arguments": ["bad argument", "slot", "parameter", "invalid argument", "tool argument schema", "tool schema", "mcp tool schema"],
1577
+ "tool_execution_error": ["tool error", "api error", "exception", "timeout", "tool outcome", "tool result", "mcp tool result", "mcp tool error"],
1578
+ "missing_tool": ["missing tool", "no tool", "unsupported action", "tools/list", "mcp tools/list"],
1579
+ "memory_write_failure": [
1580
+ "forgot",
1581
+ "not stored",
1582
+ "memory write",
1583
+ "memory correctness",
1584
+ "trajectory memory",
1585
+ "checkpoint state",
1586
+ "state persistence",
1587
+ ],
1588
+ "memory_retrieval_failure": [
1589
+ "memory retrieval",
1590
+ "could not recall",
1591
+ "lost context",
1592
+ "missing memory",
1593
+ "memory attribution",
1594
+ "missing checkpoint",
1595
+ "missing session",
1596
+ ],
1597
+ "memory_contamination": [
1598
+ "poisoned memory",
1599
+ "irrelevant memory",
1600
+ "stale memory",
1601
+ "agent memory lineage",
1602
+ "memory lineage",
1603
+ "memory provenance",
1604
+ "memory poisoning",
1605
+ "source attribution",
1606
+ "tenant isolation",
1607
+ "unattributed memory",
1608
+ "retention policy",
1609
+ "deletion policy",
1610
+ ],
1611
+ "retrieval_relevance_failure": [
1612
+ "irrelevant context",
1613
+ "bad retrieval",
1614
+ "missing context",
1615
+ "missing citation",
1616
+ "missing source",
1617
+ "retrieval context",
1618
+ "stale retrieval",
1619
+ "retrieval ranking",
1620
+ "attribution",
1621
+ "retrieval memory",
1622
+ ],
1623
+ "policy_violation": [
1624
+ "policy violation",
1625
+ "violated policy",
1626
+ "unsafe response",
1627
+ "policy adherence",
1628
+ "trajectory policy",
1629
+ "environment injection",
1630
+ "retrieved instruction",
1631
+ "tool output injection",
1632
+ ],
1633
+ "unsafe_action": ["unsafe action", "unauthorized", "irreversible"],
1634
+ "hallucination": [
1635
+ "hallucination",
1636
+ "unsupported",
1637
+ "not grounded",
1638
+ "fabricated",
1639
+ "source contradiction",
1640
+ "source contradicted",
1641
+ "contradicted claim",
1642
+ "conflicting source",
1643
+ ],
1644
+ "schema_error": ["schema", "json", "parse", "validation"],
1645
+ "environment_mismatch": ["environment", "fixture", "state mismatch", "broken url"],
1646
+ "latency_or_cost": ["latency", "cost", "too slow", "token"],
1647
+ "coordination_failure": [
1648
+ "handoff",
1649
+ "coordination",
1650
+ "role confusion",
1651
+ "wrong specialist",
1652
+ "multi-agent trace",
1653
+ "optimizer trace",
1654
+ "optimizer_trace_coverage",
1655
+ "optimizer_trace_quality",
1656
+ "optimizer society trace",
1657
+ "manifest optimization",
1658
+ "manifest_optimization_coverage",
1659
+ "manifest_optimization_quality",
1660
+ "manifest optimization artifact",
1661
+ "manifest optimization quality",
1662
+ "manifest optimization coverage",
1663
+ "optimizer backend portfolio",
1664
+ "backend portfolio",
1665
+ "optimizer portfolio",
1666
+ "optimizer_portfolio_coverage",
1667
+ "optimizer_portfolio_quality",
1668
+ "backend selector",
1669
+ "backend selection",
1670
+ "backend evidence",
1671
+ "backend trial",
1672
+ "portfolio gate",
1673
+ "missing optimizer backend",
1674
+ "optimizer role",
1675
+ "role graph",
1676
+ "proposal credit",
1677
+ "role credit",
1678
+ "credit assignment",
1679
+ "optimizer governance",
1680
+ "governance check",
1681
+ "role diversity",
1682
+ "mediator review",
1683
+ "contract gate",
1684
+ "rollback check",
1685
+ "search locality",
1686
+ "dependency audit",
1687
+ "society search",
1688
+ "council search",
1689
+ "handoff contract",
1690
+ "coordination quality",
1691
+ "review missing",
1692
+ "reconciliation",
1693
+ ],
1694
+ "evaluation_gap": ["eval gap", "judge wrong", "metric missing", "observability replay metric"],
1695
+ "integration_gap": [
1696
+ "agent integration",
1697
+ "agent integration coverage",
1698
+ "agent integration quality",
1699
+ "workspace run",
1700
+ "workspace run coverage",
1701
+ "workspace run quality",
1702
+ "autonomous code run",
1703
+ "github checkout",
1704
+ "red team readiness",
1705
+ "red-team readiness",
1706
+ "red_team_readiness",
1707
+ "red team preflight",
1708
+ "readiness preflight",
1709
+ "preflight gate",
1710
+ "framework import not ready",
1711
+ "campaign not ready",
1712
+ "workspace run not ready",
1713
+ "red team coverage",
1714
+ "red team quality",
1715
+ "red-team quality",
1716
+ "red-team finding",
1717
+ "framework import manifest",
1718
+ "framework import coverage",
1719
+ "framework import quality",
1720
+ "framework import source",
1721
+ "agent memory lineage coverage",
1722
+ "agent_memory_lineage_coverage",
1723
+ "memory lineage coverage",
1724
+ "secret redaction",
1725
+ "provider integration",
1726
+ "channel integration",
1727
+ "agent definition missing",
1728
+ "persona missing",
1729
+ "livekit integration",
1730
+ "livekit sip",
1731
+ "livekit webrtc",
1732
+ "vapi integration",
1733
+ "vapi phone",
1734
+ "vapi webrtc",
1735
+ "retell integration",
1736
+ "bland integration",
1737
+ "bland phone",
1738
+ "bland sip",
1739
+ "elevenlabs integration",
1740
+ "deepgram integration",
1741
+ "agora integration",
1742
+ "pipecat integration",
1743
+ "twilio integration",
1744
+ "phone integration",
1745
+ "sip integration",
1746
+ "traceai framework",
1747
+ "future agi observability",
1748
+ "futureagi observability",
1749
+ ],
1750
+ "implementation_bug": ["bug", "traceback", "dependency", "runtime"],
1751
+ "perception_grounding_failure": [
1752
+ "artifact",
1753
+ "artifact grounding",
1754
+ "artifact grounding quality",
1755
+ "artifact support missing",
1756
+ "artifact claim missing",
1757
+ "artifact contradicted claim",
1758
+ "artifact supported claim",
1759
+ "audio",
1760
+ "image",
1761
+ "screenshot",
1762
+ "dom",
1763
+ "ocr",
1764
+ "vision",
1765
+ "grounding",
1766
+ "multimodal faithfulness",
1767
+ "multimodal claim",
1768
+ "browser grounding",
1769
+ "browser trace",
1770
+ "action replay",
1771
+ "coordinate region",
1772
+ "screenshot diff",
1773
+ "pixel diff",
1774
+ "pixel screenshot diff",
1775
+ "screenshot pixel diff",
1776
+ "real screenshot diff",
1777
+ "semantic screenshot diff",
1778
+ "semantic visual diff",
1779
+ "masked screenshot diff",
1780
+ "masked visual diff",
1781
+ "masked region",
1782
+ "forbidden region changed",
1783
+ "allowed semantic region",
1784
+ "playwright trace",
1785
+ "trace.zip",
1786
+ "browser video",
1787
+ "layout shift",
1788
+ "stale screenshot",
1789
+ "stale snapshot",
1790
+ "perturbation",
1791
+ "prompt-injection surface",
1792
+ "console log",
1793
+ "network log",
1794
+ "storage state",
1795
+ "local storage",
1796
+ "session storage",
1797
+ "browser cookie",
1798
+ "runtime event",
1799
+ "runtime error",
1800
+ "page error",
1801
+ "web error",
1802
+ "performance entry",
1803
+ "performance timing",
1804
+ ],
1805
+ "artifact_semantics_failure": [
1806
+ "artifact semantics",
1807
+ "artifact semantics quality",
1808
+ "structured artifact",
1809
+ "artifact field mismatch",
1810
+ "artifact answer field missing",
1811
+ "artifact row missing",
1812
+ "artifact row field mismatch",
1813
+ "artifact event sequence mismatch",
1814
+ "artifact semantic forbidden answer",
1815
+ ],
1816
+ "domain_package_failure": [
1817
+ "domain package",
1818
+ "domain package quality",
1819
+ "support ticket package",
1820
+ "ledger package",
1821
+ "calendar package",
1822
+ "email thread package",
1823
+ "domain package field mismatch",
1824
+ "domain package required field missing",
1825
+ "domain package status invalid",
1826
+ "domain package ledger unbalanced",
1827
+ "domain package calendar overlap",
1828
+ "domain package chronology invalid",
1829
+ "domain package participant missing",
1830
+ ],
1831
+ "context_overload": ["context overflow", "too many tools", "context window"],
1832
+ "voice_turn_taking_failure": [
1833
+ "barge",
1834
+ "interrupt",
1835
+ "vad",
1836
+ "stt",
1837
+ "tts",
1838
+ "voice trace",
1839
+ "voice interaction",
1840
+ "voice frame",
1841
+ "voice export",
1842
+ "voice export auth",
1843
+ "voice export pagination",
1844
+ "authenticated voice export",
1845
+ "paginated voice export",
1846
+ "livekit export",
1847
+ "pipecat export",
1848
+ "webrtc",
1849
+ "getstats",
1850
+ "get stats",
1851
+ "rtc stats",
1852
+ "rtp",
1853
+ "inbound rtp",
1854
+ "remote inbound rtp",
1855
+ "track identifier",
1856
+ "track stats",
1857
+ "codec stats",
1858
+ "audio level",
1859
+ "waveform",
1860
+ "decoded audio",
1861
+ "media decode",
1862
+ "wav",
1863
+ "pcm",
1864
+ "sample rate",
1865
+ "duration",
1866
+ "rms",
1867
+ "peak",
1868
+ "recording",
1869
+ "diarization",
1870
+ "speaker segment",
1871
+ "speaker missing",
1872
+ "snr",
1873
+ "mos",
1874
+ "perceptual",
1875
+ "clipping",
1876
+ "jitter",
1877
+ "packet loss",
1878
+ "overlapping speech",
1879
+ "noise",
1880
+ "call route",
1881
+ "call routing",
1882
+ ],
1883
+ "voice_timing_distribution_failure": [
1884
+ "voice timing",
1885
+ "timing distribution",
1886
+ "timing stage",
1887
+ "voice latency p95",
1888
+ "turn latency",
1889
+ "endpointing",
1890
+ "end of utterance",
1891
+ "eou",
1892
+ "vad latency",
1893
+ "stt latency",
1894
+ "llm latency",
1895
+ "tts latency",
1896
+ "time to first audio",
1897
+ "ttft",
1898
+ "jitter buffer",
1899
+ "voice timing sample",
1900
+ ],
1901
+ "browser_action_failure": [
1902
+ "browser action outcome",
1903
+ "browser state mismatch",
1904
+ "trajectory browser action safety",
1905
+ "browser action failed",
1906
+ "browser grounding quality",
1907
+ "coordinate mismatch",
1908
+ "region mismatch",
1909
+ "screenshot diff missing",
1910
+ "pixel diff",
1911
+ "pixel screenshot diff",
1912
+ "screenshot pixel diff",
1913
+ "real screenshot diff",
1914
+ "semantic screenshot diff",
1915
+ "semantic visual diff",
1916
+ "masked screenshot diff",
1917
+ "masked visual diff",
1918
+ "masked region",
1919
+ "forbidden region changed",
1920
+ "allowed semantic region",
1921
+ "layout shift",
1922
+ "layout shift distribution",
1923
+ "cls distribution",
1924
+ "stale screenshot",
1925
+ "stale snapshot",
1926
+ "refresh snapshot",
1927
+ "playwright trace",
1928
+ "openai cua",
1929
+ "openai computer use",
1930
+ "computer use trace",
1931
+ "computer call",
1932
+ "browser use trace",
1933
+ "browser-use trace",
1934
+ "har",
1935
+ "http archive",
1936
+ "resource body",
1937
+ "resource bodies",
1938
+ "actionability",
1939
+ "actionability timeline",
1940
+ "browser video",
1941
+ "perturbation",
1942
+ "prompt injection surface",
1943
+ "storage state",
1944
+ "local storage",
1945
+ "session storage",
1946
+ "browser cookie",
1947
+ "runtime event",
1948
+ "runtime error",
1949
+ "page error",
1950
+ "web error",
1951
+ "performance threshold",
1952
+ "performance timing",
1953
+ "dom missing",
1954
+ "selector mismatch",
1955
+ "locator mismatch",
1956
+ "click failed",
1957
+ "cua action failed",
1958
+ ],
1959
+ "browser_mutation_failure": [
1960
+ "browser mutation",
1961
+ "browser mutation pack",
1962
+ "browser mutation resilience",
1963
+ "browser_mutation_resilience",
1964
+ "mutation pack",
1965
+ "stale selector",
1966
+ "selector alias",
1967
+ "selector fallback",
1968
+ "fallback selector",
1969
+ "storage drift",
1970
+ "runtime mutation",
1971
+ "network mutation",
1972
+ "network latency",
1973
+ "overlay handling",
1974
+ "actionability recheck",
1975
+ "storage recheck",
1976
+ "runtime recheck",
1977
+ "browser mutations tool",
1978
+ ],
1979
+ "autonomy_loop_failure": [
1980
+ "autonomy loop",
1981
+ "control loop",
1982
+ "observe orient plan act",
1983
+ "reflection missing",
1984
+ "missing reflection",
1985
+ "self check",
1986
+ "verifier missing",
1987
+ "verifier quality",
1988
+ "plan validity",
1989
+ "reflection usefulness",
1990
+ "stop decision",
1991
+ "skill library",
1992
+ "monitor control",
1993
+ ],
1994
+ "framework_trace_gap": [
1995
+ "framework trace",
1996
+ "framework import manifest",
1997
+ "framework import coverage",
1998
+ "framework import quality",
1999
+ "framework import source",
2000
+ "trace export missing",
2001
+ "event stream missing",
2002
+ "capability matrix missing",
2003
+ "probe suite missing",
2004
+ "portability matrix missing",
2005
+ "framework span",
2006
+ "framework adapter conformance",
2007
+ "framework adapter signal",
2008
+ "framework adapter mapping",
2009
+ "framework runtime",
2010
+ "runtime contract",
2011
+ "adapter runtime",
2012
+ "input mode",
2013
+ "runtime input",
2014
+ "runtime method",
2015
+ "runtime metadata",
2016
+ "missing span",
2017
+ "trace export",
2018
+ "export auth",
2019
+ "authenticated export",
2020
+ "authorization header",
2021
+ "api key header",
2022
+ "paginated export",
2023
+ "export pagination",
2024
+ "next cursor",
2025
+ "next page",
2026
+ "page token",
2027
+ "traceai export",
2028
+ "futureagi trace",
2029
+ "future agi trace",
2030
+ "resource spans",
2031
+ "resourcespans",
2032
+ "scope spans",
2033
+ "scopespans",
2034
+ "span attributes",
2035
+ "otel",
2036
+ "otlp",
2037
+ "opentelemetry",
2038
+ "instrumentation",
2039
+ "tracing disabled",
2040
+ "autogen",
2041
+ "llamaindex",
2042
+ "llama index",
2043
+ "dspy",
2044
+ "mcp",
2045
+ "mcp tool session",
2046
+ "mcp tool schema",
2047
+ "mcp tool call",
2048
+ "mcp tool result",
2049
+ "mcp tool error",
2050
+ "tools/list",
2051
+ "tools/call",
2052
+ "langgraph event",
2053
+ "openai agents trace",
2054
+ "pipecat frame",
2055
+ ],
2056
+ "framework_lifecycle_gap": [
2057
+ "framework lifecycle",
2058
+ "framework lifecycle trace",
2059
+ "framework lifecycle coverage",
2060
+ "framework lifecycle quality",
2061
+ "lifecycle phase",
2062
+ "missing lifecycle",
2063
+ "missing setup",
2064
+ "missing initialization",
2065
+ "missing tool registration",
2066
+ "tool registration missing",
2067
+ "missing lifecycle session",
2068
+ "missing session lifecycle",
2069
+ "session cleanup",
2070
+ "cleanup missing",
2071
+ "teardown missing",
2072
+ "checkpoint missing",
2073
+ "resume missing",
2074
+ "cancel resume",
2075
+ "cancellation missing",
2076
+ "retry missing",
2077
+ "lifecycle retry",
2078
+ "state persistence missing",
2079
+ "lifecycle terminal status",
2080
+ ],
2081
+ "framework_capability_gap": [
2082
+ "framework capability",
2083
+ "framework capability matrix",
2084
+ "framework capability coverage",
2085
+ "framework capability quality",
2086
+ "capability matrix",
2087
+ "missing framework capability",
2088
+ "unsupported capability",
2089
+ "missing capability evidence",
2090
+ "missing framework task surface",
2091
+ "task surface missing",
2092
+ "missing tool capability",
2093
+ "missing memory capability",
2094
+ "missing streaming capability",
2095
+ "missing lifecycle capability",
2096
+ "missing orchestration capability",
2097
+ "missing security capability",
2098
+ "missing observability capability",
2099
+ "missing export capability",
2100
+ "supported capabilities low",
2101
+ "support rate low",
2102
+ ],
2103
+ "framework_probe_gap": [
2104
+ "framework probe",
2105
+ "framework probe suite",
2106
+ "framework probe coverage",
2107
+ "framework probe quality",
2108
+ "adapter probe",
2109
+ "smoke probe",
2110
+ "smoke test",
2111
+ "required probe missing",
2112
+ "probe operation missing",
2113
+ "probe failed",
2114
+ "probe blocked",
2115
+ "required pass rate low",
2116
+ "missing probe evidence",
2117
+ "invoke probe",
2118
+ "tool probe",
2119
+ "memory probe",
2120
+ "streaming probe",
2121
+ "checkpoint probe",
2122
+ "handoff probe",
2123
+ "guardrail probe",
2124
+ "trace export probe",
2125
+ "export probe",
2126
+ ],
2127
+ "framework_transcript_gap": [
2128
+ "framework transcript",
2129
+ "framework transcript quality",
2130
+ "langchain event stream",
2131
+ "langchain stream_events",
2132
+ "langgraph event stream",
2133
+ "langgraph stream_events",
2134
+ "missing framework event method",
2135
+ "missing framework node",
2136
+ "missing framework subgraph",
2137
+ "framework tool sequence",
2138
+ "framework state mismatch",
2139
+ "framework checkpoint",
2140
+ "missing framework checkpoint",
2141
+ "framework checkpoint state",
2142
+ "checkpoint state mismatch",
2143
+ "checkpoint parent",
2144
+ "checkpoint lineage",
2145
+ "missing framework session",
2146
+ "thread id",
2147
+ "state persistence",
2148
+ "framework output missing",
2149
+ "framework error observed",
2150
+ "missing framework speaker",
2151
+ "framework speaker sequence",
2152
+ "framework handoff",
2153
+ "framework termination",
2154
+ "framework tool owner",
2155
+ "framework message missing",
2156
+ "framework turn count",
2157
+ "autogen groupchat",
2158
+ "crewai event",
2159
+ "openai agents handoff",
2160
+ "multi-agent transcript",
2161
+ "protocol event",
2162
+ "stream projection",
2163
+ ],
2164
+ "orchestration_trace_gap": [
2165
+ "orchestration trace",
2166
+ "orchestration trace coverage",
2167
+ "missing orchestration trace",
2168
+ "workflow graph trace",
2169
+ "workflow trace",
2170
+ "graph trace",
2171
+ "missing workflow node",
2172
+ "missing workflow edge",
2173
+ "missing orchestration node",
2174
+ "missing orchestration route",
2175
+ "orchestration step missing",
2176
+ "orchestration event missing",
2177
+ ],
2178
+ "orchestration_flow_failure": [
2179
+ "orchestration flow",
2180
+ "orchestration flow quality",
2181
+ "workflow route missing",
2182
+ "orchestration route missing",
2183
+ "orchestration node missing",
2184
+ "forbidden orchestration node",
2185
+ "orchestration retry missing",
2186
+ "orchestration recovery missing",
2187
+ "workflow recovery missing",
2188
+ "orchestration latency threshold",
2189
+ "orchestration cost threshold",
2190
+ "orchestration terminal status",
2191
+ "orchestration state mismatch",
2192
+ "workflow budget",
2193
+ "graph routing",
2194
+ "retry policy",
2195
+ "recovery policy",
2196
+ ],
2197
+ "streaming_trace_gap": [
2198
+ "streaming trace",
2199
+ "streaming trace coverage",
2200
+ "missing streaming trace",
2201
+ "missing stream event",
2202
+ "missing stream chunk",
2203
+ "missing chunk",
2204
+ "missing tool delta",
2205
+ "tool delta",
2206
+ "tool-call delta",
2207
+ "tool call delta",
2208
+ "stream_events",
2209
+ "event stream",
2210
+ "langchain streaming",
2211
+ "langgraph streaming",
2212
+ "openai agents streaming",
2213
+ "livekit session event",
2214
+ "pipecat frame",
2215
+ "time to first chunk",
2216
+ "stream usage",
2217
+ ],
2218
+ "streaming_interaction_failure": [
2219
+ "streaming interaction",
2220
+ "streaming interaction quality",
2221
+ "stream assembly",
2222
+ "assembled text",
2223
+ "final output missing",
2224
+ "streaming output missing",
2225
+ "chunk sequence",
2226
+ "chunk count low",
2227
+ "tool delta missing",
2228
+ "first token latency",
2229
+ "inter chunk gap",
2230
+ "streaming gap",
2231
+ "dropped stream",
2232
+ "dropped event",
2233
+ "backpressure",
2234
+ "buffering",
2235
+ "streaming completion",
2236
+ "streaming finalization",
2237
+ "unrecovered interruption",
2238
+ "interruption recovery",
2239
+ ],
2240
+ "world_contract_gap": [
2241
+ "world contract",
2242
+ "world contract coverage",
2243
+ "missing world contract",
2244
+ "missing world actor",
2245
+ "missing world resource",
2246
+ "missing world transition",
2247
+ "missing invariant",
2248
+ "missing success condition",
2249
+ "missing policy gate",
2250
+ "missing adversarial surface",
2251
+ "state machine",
2252
+ "world state",
2253
+ "interactive environment",
2254
+ "stateful tool",
2255
+ "required transition",
2256
+ ],
2257
+ "world_contract_violation": [
2258
+ "world contract quality",
2259
+ "world invariant violation",
2260
+ "invariant violation",
2261
+ "world transition missing",
2262
+ "world transition count",
2263
+ "world required transition",
2264
+ "forbidden transition",
2265
+ "world forbidden transition",
2266
+ "world violation",
2267
+ "world terminal status",
2268
+ "world state mismatch",
2269
+ "success condition missing",
2270
+ "policy gate violation",
2271
+ "precondition failed",
2272
+ "postcondition failed",
2273
+ ],
2274
+ "adversarial_resilience_failure": [
2275
+ "adversarial resilience",
2276
+ "adversarial attack",
2277
+ "attack pack",
2278
+ "red team campaign",
2279
+ "red-team campaign",
2280
+ "red_team_campaign",
2281
+ "red_team_campaign_coverage",
2282
+ "red_team_campaign_quality",
2283
+ "red_team_readiness_quality",
2284
+ "attack surface matrix",
2285
+ "attack surface cell",
2286
+ "matrix cell",
2287
+ "coverage matrix",
2288
+ "run artifact missing",
2289
+ "mitigation mapping missing",
2290
+ "matrix evidence",
2291
+ "readiness gate failed",
2292
+ "red-team readiness gate",
2293
+ "red team readiness gate",
2294
+ "blocking readiness gap",
2295
+ "trust boundary not ready",
2296
+ "control plane not ready",
2297
+ "red team taxonomy",
2298
+ "red-team taxonomy",
2299
+ "owasp agentic",
2300
+ "owasp llm top 10",
2301
+ "mcp security",
2302
+ "garak",
2303
+ "pyrit",
2304
+ "inspect",
2305
+ "multi-turn red team",
2306
+ "open high finding",
2307
+ "failed red team run",
2308
+ "canary leak",
2309
+ "forbidden term leak",
2310
+ "blocked tool",
2311
+ "blocked tool call",
2312
+ "tool misuse",
2313
+ "goal hijack",
2314
+ "instruction manipulation",
2315
+ "untrusted context",
2316
+ "memory poisoning",
2317
+ "context poisoning",
2318
+ "environment injection",
2319
+ "indirect prompt injection",
2320
+ "safe response missing",
2321
+ ],
2322
+ "cross_trial_memory_skill_failure": [
2323
+ "cross-trial memory",
2324
+ "cross trial memory",
2325
+ "cross_trial_memory_skill",
2326
+ "memory precision",
2327
+ "memory recall",
2328
+ "memory persistence",
2329
+ "recall after write",
2330
+ "skill regression",
2331
+ "skill persistence",
2332
+ "skill library",
2333
+ ],
2334
+ "reliability_failure": [
2335
+ "trial reliability",
2336
+ "pass rate",
2337
+ "pass@k",
2338
+ "pass^k",
2339
+ "inconsistent",
2340
+ "flaky",
2341
+ "observability replay",
2342
+ "replay pack",
2343
+ "regression replay",
2344
+ "failed replay case",
2345
+ ],
2346
+ "fault_tolerance_failure": [
2347
+ "fault tolerance",
2348
+ "tool fault",
2349
+ "transient failure",
2350
+ "retry failed",
2351
+ "rate limit",
2352
+ "timeout recovery",
2353
+ ],
2354
+ "framework_portability_gap": [
2355
+ "framework portability",
2356
+ "framework portability matrix",
2357
+ "framework portability coverage",
2358
+ "framework portability quality",
2359
+ "portability matrix",
2360
+ "migration matrix",
2361
+ "migration gap",
2362
+ "adapter migration",
2363
+ "source framework",
2364
+ "target framework",
2365
+ "source target mapping",
2366
+ "required mapping missing",
2367
+ "mapping missing",
2368
+ "mapping blocked",
2369
+ "mapping rate low",
2370
+ "required mapping rate low",
2371
+ "missing tool mapping",
2372
+ "missing memory mapping",
2373
+ "missing streaming mapping",
2374
+ "missing lifecycle mapping",
2375
+ "missing orchestration mapping",
2376
+ "missing security mapping",
2377
+ "missing observability mapping",
2378
+ "missing export mapping",
2379
+ "missing runtime mapping",
2380
+ "portability evidence missing",
2381
+ ],
2382
+ "trust_boundary_gap": [
2383
+ "agent trust boundary",
2384
+ "trust boundary",
2385
+ "trust-boundary",
2386
+ "threat model",
2387
+ "threat-model",
2388
+ "agent trust-boundary model",
2389
+ "agent_trust_boundary_coverage",
2390
+ "agent_trust_boundary_quality",
2391
+ "missing agent trust boundary",
2392
+ "missing trust boundary",
2393
+ "required control missing",
2394
+ "missing required control",
2395
+ "control rate low",
2396
+ "required control rate low",
2397
+ "permission missing",
2398
+ "permissions missing",
2399
+ "sandbox missing",
2400
+ "audit missing",
2401
+ "missing audit",
2402
+ "missing canary",
2403
+ "canary count low",
2404
+ "human approval missing",
2405
+ "approval gate missing",
2406
+ "memory isolation missing",
2407
+ "network egress",
2408
+ "network egress missing",
2409
+ "tool allowlist",
2410
+ "tool allowlist missing",
2411
+ "data boundary",
2412
+ "data boundary missing",
2413
+ "secret handling",
2414
+ "secret handling missing",
2415
+ "secret exfiltration",
2416
+ "unmitigated threat",
2417
+ "high risk unmitigated",
2418
+ ],
2419
+ "control_plane_gap": [
2420
+ "agent control plane",
2421
+ "control plane",
2422
+ "runtime governance",
2423
+ "agency control",
2424
+ "agent_control_plane_coverage",
2425
+ "agent_control_plane_quality",
2426
+ "missing agent control plane",
2427
+ "control-plane gap",
2428
+ "action gate",
2429
+ "action gates",
2430
+ "policy gate",
2431
+ "risk budget",
2432
+ "budget exceeded",
2433
+ "kill switch",
2434
+ "circuit breaker",
2435
+ "rollback missing",
2436
+ "reversibility",
2437
+ "uncontained incident",
2438
+ "high risk uncontained",
2439
+ "agency risk",
2440
+ "human override",
2441
+ "rate limit",
2442
+ "drift detection",
2443
+ "containment missing",
2444
+ ],
2445
+ "poor_plan": ["bad plan", "wrong step", "trajectory", "step order", "trajectory template"],
2446
+ "unclear_goal": ["unclear goal", "ambiguous", "rubric", "agent goal accuracy", "goal mismatch"],
2447
+ }
2448
+
2449
+
2450
+ METRIC_FAILURES: Dict[str, FailureMode] = {
2451
+ "task_completion": "unclear_goal",
2452
+ "agent_goal_accuracy": "unclear_goal",
2453
+ "goal_progress": "poor_plan",
2454
+ "trajectory_score": "poor_plan",
2455
+ "step_efficiency": "poor_plan",
2456
+ "tool_selection_accuracy": "wrong_tool",
2457
+ "tool_call_accuracy": "wrong_tool",
2458
+ "tool_call_f1": "wrong_tool",
2459
+ "function_name_match": "wrong_tool",
2460
+ "parameter_validation": "bad_tool_arguments",
2461
+ "function_call_accuracy": "bad_tool_arguments",
2462
+ "tool_argument_schema": "bad_tool_arguments",
2463
+ "tool_outcome": "tool_execution_error",
2464
+ "action_safety": "unsafe_action",
2465
+ "policy_adherence": "policy_violation",
2466
+ "prompt_injection_resistance": "policy_violation",
2467
+ "environment_injection_resistance": "policy_violation",
2468
+ "adversarial_resilience": "adversarial_resilience_failure",
2469
+ "secret_leakage": "policy_violation",
2470
+ "memory_integrity": "memory_contamination",
2471
+ "memory_correctness": "memory_write_failure",
2472
+ "browser_action_safety": "unsafe_action",
2473
+ "trajectory_browser_action_safety": "unsafe_action",
2474
+ "browser_action_outcome": "browser_action_failure",
2475
+ "browser_grounding_quality": "perception_grounding_failure",
2476
+ "browser_mutation_resilience": "browser_mutation_failure",
2477
+ "voice_turn_taking": "voice_turn_taking_failure",
2478
+ "voice_trace_coverage": "voice_turn_taking_failure",
2479
+ "voice_interaction_quality": "voice_turn_taking_failure",
2480
+ "voice_timing_distribution_quality": "voice_timing_distribution_failure",
2481
+ "autonomy_loop_coverage": "autonomy_loop_failure",
2482
+ "autonomy_loop_quality": "autonomy_loop_failure",
2483
+ "cross_trial_memory_skill": "cross_trial_memory_skill_failure",
2484
+ "framework_import_coverage": "framework_trace_gap",
2485
+ "framework_import_quality": "framework_trace_gap",
2486
+ "framework_trace_coverage": "framework_trace_gap",
2487
+ "framework_adapter_conformance": "framework_trace_gap",
2488
+ "framework_runtime_coverage": "framework_trace_gap",
2489
+ "framework_runtime_contract": "framework_trace_gap",
2490
+ "framework_lifecycle_coverage": "framework_lifecycle_gap",
2491
+ "framework_lifecycle_quality": "framework_lifecycle_gap",
2492
+ "framework_capability_coverage": "framework_capability_gap",
2493
+ "framework_capability_quality": "framework_capability_gap",
2494
+ "framework_probe_coverage": "framework_probe_gap",
2495
+ "framework_probe_quality": "framework_probe_gap",
2496
+ "framework_portability_coverage": "framework_portability_gap",
2497
+ "framework_portability_quality": "framework_portability_gap",
2498
+ "agent_trust_boundary_coverage": "trust_boundary_gap",
2499
+ "agent_trust_boundary_quality": "trust_boundary_gap",
2500
+ "agent_control_plane_coverage": "control_plane_gap",
2501
+ "agent_control_plane_quality": "control_plane_gap",
2502
+ "framework_transcript_quality": "framework_transcript_gap",
2503
+ "orchestration_trace_coverage": "orchestration_trace_gap",
2504
+ "orchestration_flow_quality": "orchestration_flow_failure",
2505
+ "streaming_trace_coverage": "streaming_trace_gap",
2506
+ "streaming_interaction_quality": "streaming_interaction_failure",
2507
+ "world_contract_coverage": "world_contract_gap",
2508
+ "world_contract_quality": "world_contract_violation",
2509
+ "retrieval_memory_attribution": "retrieval_relevance_failure",
2510
+ "agent_memory_lineage_coverage": "integration_gap",
2511
+ "agent_memory_lineage_quality": "memory_contamination",
2512
+ "retrieval_context_quality": "retrieval_relevance_failure",
2513
+ "source_grounding": "hallucination",
2514
+ "source_contradiction": "hallucination",
2515
+ "artifact_coverage": "perception_grounding_failure",
2516
+ "artifact_grounding_quality": "perception_grounding_failure",
2517
+ "artifact_semantics_quality": "artifact_semantics_failure",
2518
+ "domain_package_quality": "domain_package_failure",
2519
+ "multimodal_faithfulness": "perception_grounding_failure",
2520
+ "browser_trace_coverage": "perception_grounding_failure",
2521
+ "state_goal_accuracy": "environment_mismatch",
2522
+ "multi_agent_trace_coverage": "coordination_failure",
2523
+ "multi_agent_coordination_quality": "coordination_failure",
2524
+ "optimizer_trace_coverage": "coordination_failure",
2525
+ "optimizer_trace_quality": "coordination_failure",
2526
+ "optimizer_portfolio_coverage": "coordination_failure",
2527
+ "optimizer_portfolio_quality": "coordination_failure",
2528
+ "manifest_optimization_coverage": "coordination_failure",
2529
+ "manifest_optimization_quality": "coordination_failure",
2530
+ "trial_reliability": "reliability_failure",
2531
+ "tool_fault_tolerance": "fault_tolerance_failure",
2532
+ "observability_replay_coverage": "evaluation_gap",
2533
+ "observability_replay_quality": "reliability_failure",
2534
+ "agent_integration_coverage": "integration_gap",
2535
+ "agent_integration_quality": "integration_gap",
2536
+ "workspace_run_coverage": "integration_gap",
2537
+ "workspace_run_quality": "integration_gap",
2538
+ "red_team_campaign_coverage": "integration_gap",
2539
+ "red_team_campaign_quality": "adversarial_resilience_failure",
2540
+ "red_team_readiness_coverage": "integration_gap",
2541
+ "red_team_readiness_quality": "adversarial_resilience_failure",
2542
+ "persistent_state_attack_coverage": "integration_gap",
2543
+ "persistent_state_attack_quality": "adversarial_resilience_failure",
2544
+ }
2545
+
2546
+
2547
+ PERSISTENT_STATE_ATTACK_REPAIR_PATHS = [
2548
+ "persistent_state_attack",
2549
+ "persistent_state_attack.lifecycle",
2550
+ "persistent_state_attack.write_policy",
2551
+ "persistent_state_attack.context_rehydration",
2552
+ "persistent_state_attack.activation_guard",
2553
+ "persistent_state_attack.provenance",
2554
+ "memory.write_policy",
2555
+ "memory.write_quarantine",
2556
+ "memory.provenance",
2557
+ "memory.trust_labels",
2558
+ "memory.rehydration_policy",
2559
+ "policy.persistent_state_attack",
2560
+ "policy.persistent_state_write_gate",
2561
+ "policy.context_rehydration",
2562
+ "policy.activation_guard",
2563
+ "security.persistent_state_attack",
2564
+ "security.stored_prompt_injection",
2565
+ "environment.persistent_state_attack",
2566
+ "environment.stored_prompt_injection",
2567
+ "evaluation.required_persistent_state_attack",
2568
+ "evaluation.persistent_state_attack_quality",
2569
+ "evaluation.persistent_state_attack_quality.max_write_success_rate",
2570
+ "evaluation.persistent_state_attack_quality.max_incorporation_rate",
2571
+ "evaluation.persistent_state_attack_quality.max_activation_rate",
2572
+ "evaluation.persistent_state_attack_quality.max_e2e_attack_success_rate",
2573
+ ]
2574
+
2575
+
2576
+ PERSISTENT_STATE_ATTACK_FINDINGS = [
2577
+ "missing_persistent_state_attack_key",
2578
+ "persistent_state_case_count_low",
2579
+ "persistent_state_channel_count_low",
2580
+ "persistent_state_write_count_low",
2581
+ "persistent_state_incorporation_count_low",
2582
+ "persistent_state_activation_count_low",
2583
+ "persistent_state_mitigation_count_low",
2584
+ "persistent_state_artifact_count_low",
2585
+ "persistent_state_written_count_high",
2586
+ "persistent_state_incorporated_count_high",
2587
+ "persistent_state_activated_count_high",
2588
+ "persistent_state_wsr_high",
2589
+ "persistent_state_ir_high",
2590
+ "persistent_state_ar_high",
2591
+ "persistent_state_e2e_asr_high",
2592
+ "persistent_state_session_reset_missing",
2593
+ "persistent_state_stage_metrics_missing",
2594
+ "persistent_state_provenance_missing",
2595
+ "persistent_state_channel_missing",
2596
+ "persistent_state_attack_type_missing",
2597
+ "persistent_state_write_case_missing",
2598
+ "persistent_state_incorporation_case_missing",
2599
+ "persistent_state_activation_case_missing",
2600
+ ]
2601
+
2602
+
2603
+ RED_TEAM_MATRIX_REPAIR_PATHS = [
2604
+ "red_team.matrix_evidence",
2605
+ "red_team.coverage_matrix",
2606
+ "red_team.matrix_cells",
2607
+ "red_team.scenarios",
2608
+ "red_team.scenarios.matrix_cell_ids",
2609
+ "red_team.runs",
2610
+ "red_team.runs.matrix_cell_ids",
2611
+ "red_team.runs.execution_evidence",
2612
+ "red_team.artifacts",
2613
+ "red_team.artifacts.matrix_cell_ids",
2614
+ "red_team.artifacts.execution_evidence",
2615
+ "red_team.findings",
2616
+ "red_team.findings.matrix_cell_ids",
2617
+ "red_team.mitigations",
2618
+ "red_team.mitigations.matrix_cell_ids",
2619
+ "red_team.required_attack_types",
2620
+ "red_team.required_surfaces",
2621
+ "red_team.required_channels",
2622
+ "red_team.required_providers",
2623
+ "red_team.readiness.matrix_evidence",
2624
+ "evaluation.red_team_campaign_quality.require_attack_surface_matrix",
2625
+ "evaluation.red_team_campaign_quality.require_run_artifacts",
2626
+ "evaluation.red_team_campaign_quality.require_executed_run_evidence",
2627
+ "evaluation.red_team_campaign_quality.require_finding_mapping",
2628
+ "evaluation.red_team_campaign_quality.require_mitigation_mapping",
2629
+ "evaluation.red_team_campaign_quality.required_attack_matrix_cells",
2630
+ ]
2631
+
2632
+
2633
+ OPTIMIZER_TRACE_REPAIR_PATHS = [
2634
+ "optimizer.trace",
2635
+ "optimizer.society_trace",
2636
+ "optimizer.roles",
2637
+ "optimizer.role_graph",
2638
+ "optimizer.proposals",
2639
+ "optimizer.credit",
2640
+ "optimizer.diagnostics",
2641
+ "optimizer.governance",
2642
+ "optimizer.governance.checks",
2643
+ "optimizer.governance.role_diversity",
2644
+ "optimizer.governance.mediator",
2645
+ "optimizer.governance.contract_gate",
2646
+ "optimizer.governance.rollback",
2647
+ "optimizer.governance.search_locality",
2648
+ "optimizer.governance.dependency_audit",
2649
+ "optimization",
2650
+ "optimization.target.search_space",
2651
+ "optimization.optimizer.max_candidates",
2652
+ "manifest_optimization",
2653
+ "evaluation.optimizer_trace_quality",
2654
+ "evaluation.optimizer_trace_quality.min_role_count",
2655
+ "evaluation.optimizer_trace_quality.min_proposal_count",
2656
+ "evaluation.optimizer_trace_quality.min_round_count",
2657
+ "evaluation.optimizer_trace_quality.min_credit_entries",
2658
+ "evaluation.optimizer_trace_quality.required_roles",
2659
+ "evaluation.optimizer_trace_quality.required_signals",
2660
+ "evaluation.optimizer_trace_quality.required_archetypes",
2661
+ "evaluation.optimizer_trace_quality.required_search_paths",
2662
+ "evaluation.optimizer_trace_quality.required_governance_signals",
2663
+ "evaluation.optimizer_trace_quality.min_governance_checks",
2664
+ "evaluation.optimizer_trace_quality.min_governance_pass_rate",
2665
+ "evaluation.optimizer_trace_quality.min_best_score",
2666
+ "evaluation.optimizer_trace_quality.required_best_role",
2667
+ "evaluation.optimizer_trace_quality.require_role_graph",
2668
+ "evaluation.optimizer_trace_quality.require_diagnostics",
2669
+ "evaluation.optimizer_trace_quality.require_critique",
2670
+ "evaluation.optimizer_trace_quality.require_synthesis",
2671
+ "evaluation.optimizer_trace_quality.require_steward",
2672
+ "evaluation.optimizer_trace_quality.require_governance",
2673
+ "evaluation.optimizer_trace_quality.require_role_diversity",
2674
+ "evaluation.optimizer_trace_quality.require_mediator",
2675
+ "evaluation.optimizer_trace_quality.require_contract_gate",
2676
+ "evaluation.optimizer_trace_quality.require_rollback",
2677
+ "evaluation.optimizer_trace_quality.require_locality",
2678
+ "evaluation.optimizer_trace_quality.require_dependency_audit",
2679
+ "evaluation.optimizer_trace_quality.max_duplicate_candidate_count",
2680
+ ]
2681
+
2682
+
2683
+ OPTIMIZER_TRACE_FINDINGS = [
2684
+ "missing_optimizer_trace_key",
2685
+ "optimizer_trace_role_count_low",
2686
+ "optimizer_trace_proposal_count_low",
2687
+ "optimizer_trace_round_count_low",
2688
+ "optimizer_trace_credit_low",
2689
+ "optimizer_trace_role_missing",
2690
+ "optimizer_trace_signal_missing",
2691
+ "optimizer_trace_archetype_missing",
2692
+ "optimizer_trace_search_path_missing",
2693
+ "optimizer_trace_governance_signal_missing",
2694
+ "optimizer_trace_governance_check_count_low",
2695
+ "optimizer_trace_governance_pass_rate_low",
2696
+ "optimizer_trace_best_score_low",
2697
+ "optimizer_trace_best_role_mismatch",
2698
+ "optimizer_trace_role_graph_missing",
2699
+ "optimizer_trace_diagnostics_missing",
2700
+ "optimizer_trace_critique_missing",
2701
+ "optimizer_trace_synthesis_missing",
2702
+ "optimizer_trace_steward_missing",
2703
+ "optimizer_trace_governance_missing",
2704
+ "optimizer_trace_role_diversity_missing",
2705
+ "optimizer_trace_mediator_missing",
2706
+ "optimizer_trace_contract_gate_missing",
2707
+ "optimizer_trace_rollback_missing",
2708
+ "optimizer_trace_locality_missing",
2709
+ "optimizer_trace_dependency_audit_missing",
2710
+ "optimizer_trace_duplicate_candidates_high",
2711
+ ]
2712
+
2713
+
2714
+ MANIFEST_OPTIMIZATION_REPAIR_PATHS = [
2715
+ "optimization",
2716
+ "optimization.target",
2717
+ "optimization.target.base_config",
2718
+ "optimization.target.search_space",
2719
+ "optimization.optimizer",
2720
+ "optimization.optimizer.max_candidates",
2721
+ "optimization.threshold",
2722
+ "manifest_optimization",
2723
+ "manifest_optimization.history",
2724
+ "manifest_optimization.candidates",
2725
+ "manifest_optimization.best_candidate_id",
2726
+ "manifest_optimization.best_config",
2727
+ "manifest_optimization.metrics",
2728
+ "manifest_optimization.findings",
2729
+ "manifest_optimization.search_paths",
2730
+ "optimization.manifest_optimization",
2731
+ "optimization.manifest_optimization.history",
2732
+ "optimization.manifest_optimization.candidates",
2733
+ "optimization.manifest_optimization.best_candidate_id",
2734
+ "optimization.manifest_optimization.best_config",
2735
+ "optimization.manifest_optimization.metrics",
2736
+ "optimization.manifest_optimization.findings",
2737
+ "optimization.manifest_optimization.search_paths",
2738
+ "evaluation.required_manifest_optimization",
2739
+ "evaluation.manifest_optimization",
2740
+ "evaluation.manifest_optimization_quality",
2741
+ "evaluation.manifest_optimization_quality.min_history_count",
2742
+ "evaluation.manifest_optimization_quality.min_candidate_count",
2743
+ "evaluation.manifest_optimization_quality.min_patch_count",
2744
+ "evaluation.manifest_optimization_quality.min_metric_count",
2745
+ "evaluation.manifest_optimization_quality.min_final_score",
2746
+ "evaluation.manifest_optimization_quality.max_findings",
2747
+ "evaluation.manifest_optimization_quality.required_search_paths",
2748
+ "evaluation.manifest_optimization_quality.required_metrics",
2749
+ "evaluation.manifest_optimization_quality.require_passed",
2750
+ "evaluation.manifest_optimization_quality.require_best_candidate",
2751
+ "evaluation.manifest_optimization_quality.require_best_config",
2752
+ "evaluation.manifest_optimization_quality.require_history",
2753
+ "evaluation.manifest_optimization_quality.require_candidate_patches",
2754
+ "evaluation.manifest_optimization_quality.require_metrics",
2755
+ "evaluation.manifest_optimization_quality.require_findings",
2756
+ "evaluation.manifest_optimization_quality.require_search_paths",
2757
+ ]
2758
+
2759
+
2760
+ MANIFEST_OPTIMIZATION_FINDINGS = [
2761
+ "missing_manifest_optimization_key",
2762
+ "manifest_optimization_history_count_low",
2763
+ "manifest_optimization_candidate_count_low",
2764
+ "manifest_optimization_patch_count_low",
2765
+ "manifest_optimization_metric_count_low",
2766
+ "manifest_optimization_final_score_low",
2767
+ "manifest_optimization_findings_high",
2768
+ "manifest_optimization_search_path_missing",
2769
+ "manifest_optimization_metric_missing",
2770
+ "manifest_optimization_not_passed",
2771
+ "manifest_optimization_best_candidate_missing",
2772
+ "manifest_optimization_best_config_missing",
2773
+ "manifest_optimization_history_missing",
2774
+ "manifest_optimization_candidate_patches_missing",
2775
+ "manifest_optimization_metrics_missing",
2776
+ "manifest_optimization_findings_missing",
2777
+ "manifest_optimization_search_paths_missing",
2778
+ ]
2779
+
2780
+
2781
+ FINDING_REPAIR_HINTS: Dict[str, Dict[str, Any]] = {
2782
+ "red_team_attack_surface_cell_missing": {
2783
+ "failure_mode": "adversarial_resilience_failure",
2784
+ "suggested_paths": RED_TEAM_MATRIX_REPAIR_PATHS,
2785
+ "patch_strategy": "bind every required attack surface cell to scenario evidence",
2786
+ },
2787
+ "red_team_run_artifact_missing": {
2788
+ "failure_mode": "adversarial_resilience_failure",
2789
+ "suggested_paths": RED_TEAM_MATRIX_REPAIR_PATHS,
2790
+ "patch_strategy": "attach run artifacts to each required red-team matrix cell",
2791
+ },
2792
+ "red_team_run_evidence_missing": {
2793
+ "failure_mode": "adversarial_resilience_failure",
2794
+ "suggested_paths": RED_TEAM_MATRIX_REPAIR_PATHS,
2795
+ "patch_strategy": "capture replayable run evidence for each red-team matrix cell",
2796
+ },
2797
+ "red_team_finding_mapping_missing": {
2798
+ "failure_mode": "adversarial_resilience_failure",
2799
+ "suggested_paths": RED_TEAM_MATRIX_REPAIR_PATHS,
2800
+ "patch_strategy": "map red-team findings back to their attack surface matrix cells",
2801
+ },
2802
+ "red_team_mitigation_mapping_missing": {
2803
+ "failure_mode": "adversarial_resilience_failure",
2804
+ "suggested_paths": RED_TEAM_MATRIX_REPAIR_PATHS,
2805
+ "patch_strategy": "map mitigations back to each covered red-team matrix cell",
2806
+ },
2807
+ **{
2808
+ finding_type: {
2809
+ "failure_mode": "adversarial_resilience_failure",
2810
+ "suggested_paths": PERSISTENT_STATE_ATTACK_REPAIR_PATHS,
2811
+ "patch_strategy": (
2812
+ "quarantine untrusted durable writes, require provenance, "
2813
+ "filter clean-session context rehydration, and contain "
2814
+ "activation-time attacker instructions"
2815
+ ),
2816
+ }
2817
+ for finding_type in PERSISTENT_STATE_ATTACK_FINDINGS
2818
+ },
2819
+ **{
2820
+ finding_type: {
2821
+ "failure_mode": "coordination_failure",
2822
+ "suggested_paths": OPTIMIZER_TRACE_REPAIR_PATHS,
2823
+ "patch_strategy": "capture optimizer society trace roles, proposals, credit, governance, and quality gates",
2824
+ }
2825
+ for finding_type in OPTIMIZER_TRACE_FINDINGS
2826
+ },
2827
+ **{
2828
+ finding_type: {
2829
+ "failure_mode": "coordination_failure",
2830
+ "suggested_paths": MANIFEST_OPTIMIZATION_REPAIR_PATHS,
2831
+ "patch_strategy": "emit manifest optimization artifacts with candidate history, patches, metrics, search paths, and passing quality gates",
2832
+ }
2833
+ for finding_type in MANIFEST_OPTIMIZATION_FINDINGS
2834
+ },
2835
+ }
2836
+
2837
+
2838
+ def diagnose_text(text: str, *, confidence: float = 0.7) -> List[ComponentDiagnosis]:
2839
+ lowered = text.lower()
2840
+ diagnoses: List[ComponentDiagnosis] = []
2841
+ for failure_mode, keywords in KEYWORD_FAILURES.items():
2842
+ matched = [keyword for keyword in keywords if keyword in lowered]
2843
+ if not matched:
2844
+ continue
2845
+ for component in FAILURE_ROUTES[failure_mode]:
2846
+ spec = COMPONENT_SPECS[component]
2847
+ diagnoses.append(
2848
+ ComponentDiagnosis(
2849
+ component=component,
2850
+ failure_mode=failure_mode,
2851
+ confidence=confidence,
2852
+ evidence=f"Matched keywords: {', '.join(matched)}",
2853
+ suggested_paths=spec.config_paths,
2854
+ suggested_metrics=spec.metrics,
2855
+ patch_strategy=spec.patch_strategies[0] if spec.patch_strategies else None,
2856
+ )
2857
+ )
2858
+ return _dedupe_diagnoses(diagnoses)
2859
+
2860
+
2861
+ def diagnose_report(report: Any) -> List[ComponentDiagnosis]:
2862
+ evidence_parts: List[str] = []
2863
+ for result in getattr(report, "results", []) or []:
2864
+ evidence_parts.append(str(getattr(result, "transcript", "")))
2865
+ evidence_parts.append(_jsonish(getattr(result, "evaluation", None)))
2866
+ evidence_parts.append(_jsonish(getattr(result, "messages", None)))
2867
+ evidence_parts.append(_jsonish(getattr(result, "tool_calls", None)))
2868
+ evidence_parts.append(_jsonish(getattr(result, "events", None)))
2869
+ evidence_parts.append(_jsonish(getattr(result, "metadata", None)))
2870
+ text = "\n".join(part for part in evidence_parts if part)
2871
+ diagnoses = diagnose_text(text)
2872
+ if not diagnoses and text.strip():
2873
+ diagnoses.append(
2874
+ ComponentDiagnosis(
2875
+ component="evaluator",
2876
+ failure_mode="evaluation_gap",
2877
+ confidence=0.3,
2878
+ evidence="Report had evidence but no known failure keyword matched.",
2879
+ suggested_paths=COMPONENT_SPECS["evaluator"].config_paths,
2880
+ suggested_metrics=COMPONENT_SPECS["evaluator"].metrics,
2881
+ patch_strategy="add component-specific eval coverage",
2882
+ )
2883
+ )
2884
+ return diagnoses
2885
+
2886
+
2887
+ def diagnose_agent_report_evaluation(
2888
+ evaluation: Any,
2889
+ *,
2890
+ failing_threshold: float = 0.85,
2891
+ confidence: float = 0.85,
2892
+ ) -> List[ComponentDiagnosis]:
2893
+ payload = _model_to_plain(evaluation)
2894
+ diagnoses: List[ComponentDiagnosis] = []
2895
+ if not isinstance(payload, dict):
2896
+ return diagnoses
2897
+
2898
+ for finding in _iter_findings(payload):
2899
+ metric_name = str(finding.get("metric", ""))
2900
+ finding_type = str(finding.get("type", ""))
2901
+ repair_hint = FINDING_REPAIR_HINTS.get(finding_type)
2902
+ failure_mode = (
2903
+ repair_hint.get("failure_mode") if repair_hint else None
2904
+ ) or METRIC_FAILURES.get(metric_name)
2905
+ score = _as_float(finding.get("score"))
2906
+ if score is not None and score >= failing_threshold and metric_name != "trial_reliability":
2907
+ continue
2908
+ if failure_mode:
2909
+ diagnoses.extend(
2910
+ _diagnoses_for_failure(
2911
+ failure_mode,
2912
+ confidence=confidence,
2913
+ evidence=f"{metric_name}: {_jsonish(finding)}",
2914
+ metadata={"metric": metric_name, "finding": finding},
2915
+ suggested_paths=repair_hint.get("suggested_paths") if repair_hint else None,
2916
+ patch_strategy=repair_hint.get("patch_strategy") if repair_hint else None,
2917
+ )
2918
+ )
2919
+
2920
+ for metric in _iter_metrics(payload):
2921
+ metric_name = str(metric.get("name", ""))
2922
+ failure_mode = METRIC_FAILURES.get(metric_name)
2923
+ score = _as_float(metric.get("score", metric.get("output")))
2924
+ if failure_mode is None or score is None or score >= failing_threshold:
2925
+ continue
2926
+ diagnoses.extend(
2927
+ _diagnoses_for_failure(
2928
+ failure_mode,
2929
+ confidence=max(0.4, min(confidence, 1.0 - score + 0.2)),
2930
+ evidence=(
2931
+ f"{metric_name} score {score:.2f} below "
2932
+ f"threshold {failing_threshold:.2f}: {metric.get('reason', '')}"
2933
+ ),
2934
+ metadata={"metric": metric_name, "score": score, "metric_result": metric},
2935
+ )
2936
+ )
2937
+
2938
+ return _dedupe_diagnoses(diagnoses)
2939
+
2940
+
2941
+ def relevant_search_paths(
2942
+ search_space: Dict[str, List[Any]],
2943
+ diagnoses: Sequence[ComponentDiagnosis],
2944
+ ) -> Set[str]:
2945
+ if not diagnoses:
2946
+ return set(search_space.keys())
2947
+
2948
+ prefixes: Set[str] = set()
2949
+ for diagnosis in diagnoses:
2950
+ prefixes.update(diagnosis.suggested_paths)
2951
+ prefixes.update(COMPONENT_SPECS.get(diagnosis.component, COMPONENT_SPECS["custom"]).config_paths)
2952
+ prefixes.add(diagnosis.component)
2953
+
2954
+ matched = {
2955
+ path
2956
+ for path in search_space
2957
+ if any(path == prefix or path.startswith(f"{prefix}.") for prefix in prefixes)
2958
+ }
2959
+ # Harness-layer locality (Phase 4, HarnessFix anti-broad-patch rule): layer
2960
+ # scoping NARROWS the component-scoped set; it never widens it, and an
2961
+ # empty intersection degrades to the component-scoped set rather than to
2962
+ # everything. Untagged diagnoses reproduce the legacy behavior exactly.
2963
+ layers = {
2964
+ getattr(diagnosis, "harness_layer", None)
2965
+ for diagnosis in diagnoses
2966
+ if getattr(diagnosis, "harness_layer", None)
2967
+ }
2968
+ if layers:
2969
+ layer_prefixes: Set[str] = set()
2970
+ for layer in layers:
2971
+ layer_prefixes.update(HARNESS_LAYER_PATH_PREFIXES.get(layer, ()))
2972
+ layer_matched = {
2973
+ path
2974
+ for path in matched
2975
+ if any(path == p or path.startswith(f"{p}.") for p in layer_prefixes)
2976
+ }
2977
+ if layer_matched:
2978
+ return layer_matched
2979
+ return matched or set(search_space.keys())
2980
+
2981
+
2982
+ def _diagnoses_for_failure(
2983
+ failure_mode: FailureMode,
2984
+ *,
2985
+ confidence: float,
2986
+ evidence: str,
2987
+ metadata: Optional[Dict[str, Any]] = None,
2988
+ suggested_paths: Optional[Sequence[str]] = None,
2989
+ patch_strategy: Optional[str] = None,
2990
+ ) -> List[ComponentDiagnosis]:
2991
+ diagnoses: List[ComponentDiagnosis] = []
2992
+ for component in FAILURE_ROUTES[failure_mode]:
2993
+ spec = COMPONENT_SPECS[component]
2994
+ diagnoses.append(
2995
+ ComponentDiagnosis(
2996
+ component=component,
2997
+ failure_mode=failure_mode,
2998
+ confidence=confidence,
2999
+ evidence=evidence,
3000
+ suggested_paths=_merge_unique(spec.config_paths, suggested_paths or []),
3001
+ suggested_metrics=spec.metrics,
3002
+ patch_strategy=patch_strategy or (spec.patch_strategies[0] if spec.patch_strategies else None),
3003
+ metadata=metadata or {},
3004
+ )
3005
+ )
3006
+ return diagnoses
3007
+
3008
+
3009
+ def _iter_findings(payload: Dict[str, Any]):
3010
+ for finding in payload.get("findings", []) or []:
3011
+ if isinstance(finding, dict):
3012
+ yield finding
3013
+ for case in payload.get("cases", []) or []:
3014
+ if not isinstance(case, dict):
3015
+ continue
3016
+ for finding in case.get("findings", []) or []:
3017
+ if isinstance(finding, dict):
3018
+ yield finding
3019
+ for metric in case.get("metrics", []) or []:
3020
+ if not isinstance(metric, dict):
3021
+ continue
3022
+ details = metric.get("details")
3023
+ if not isinstance(details, dict):
3024
+ continue
3025
+ for finding in details.get("findings", []) or []:
3026
+ if isinstance(finding, dict):
3027
+ yield finding
3028
+
3029
+
3030
+ def _iter_metrics(payload: Dict[str, Any]):
3031
+ for case in payload.get("cases", []) or []:
3032
+ if not isinstance(case, dict):
3033
+ continue
3034
+ for metric in case.get("metrics", []) or []:
3035
+ if isinstance(metric, dict):
3036
+ yield metric
3037
+
3038
+
3039
+ def _as_float(value: Any) -> Optional[float]:
3040
+ if isinstance(value, bool):
3041
+ return 1.0 if value else 0.0
3042
+ if isinstance(value, (int, float)):
3043
+ return float(value)
3044
+ return None
3045
+
3046
+
3047
+ def _dedupe_diagnoses(diagnoses: Iterable[ComponentDiagnosis]) -> List[ComponentDiagnosis]:
3048
+ best: Dict[tuple[str, str], ComponentDiagnosis] = {}
3049
+ for diagnosis in diagnoses:
3050
+ key = (diagnosis.component, diagnosis.failure_mode)
3051
+ if key not in best or diagnosis.confidence > best[key].confidence:
3052
+ best[key] = diagnosis
3053
+ return sorted(
3054
+ best.values(),
3055
+ key=lambda item: (item.confidence, item.component, item.failure_mode),
3056
+ reverse=True,
3057
+ )
3058
+
3059
+
3060
+ def _merge_unique(*groups: Iterable[str]) -> List[str]:
3061
+ merged: List[str] = []
3062
+ seen: Set[str] = set()
3063
+ for group in groups:
3064
+ for item in group:
3065
+ if item not in seen:
3066
+ merged.append(item)
3067
+ seen.add(item)
3068
+ return merged
3069
+
3070
+
3071
+ def _jsonish(value: Any) -> str:
3072
+ if value is None:
3073
+ return ""
3074
+ try:
3075
+ if hasattr(value, "model_dump"):
3076
+ value = value.model_dump()
3077
+ return json.dumps(value, default=str)
3078
+ except Exception:
3079
+ return str(value)
3080
+
3081
+
3082
+ def _model_to_plain(value: Any) -> Any:
3083
+ if hasattr(value, "model_dump"):
3084
+ value = value.model_dump()
3085
+ elif hasattr(value, "dict"):
3086
+ value = value.dict()
3087
+ if isinstance(value, list):
3088
+ return [_model_to_plain(item) for item in value]
3089
+ if isinstance(value, tuple):
3090
+ return [_model_to_plain(item) for item in value]
3091
+ if isinstance(value, dict):
3092
+ return {key: _model_to_plain(item) for key, item in value.items()}
3093
+ if hasattr(value, "__dict__"):
3094
+ return {key: _model_to_plain(item) for key, item in vars(value).items()}
3095
+ return value