agentdebugx 0.4.0__tar.gz → 0.5.1__tar.gz

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 (333) hide show
  1. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/PKG-INFO +1 -1
  2. agentdebugx-0.5.1/docs/taxonomy_manifest.md +36 -0
  3. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/pyproject.toml +1 -1
  4. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/__init__.py +1 -1
  5. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/core/__init__.py +2 -3
  6. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/attribute/__init__.py +6 -0
  7. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/attribute/attribution.py +41 -0
  8. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/README.md +58 -0
  9. agentdebugx-0.5.1/src/agentdebug/diagnose/detect/evidence.py +940 -0
  10. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/packs/core/rules.py +3 -3
  11. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/registry.py +2 -2
  12. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/taxonomy_induction.py +0 -1
  13. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/recover/recovery.py +1 -1
  14. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/hub/backends.py +1 -1
  15. agentdebugx-0.5.1/src/agentdebug/ingest/README.md +66 -0
  16. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/__init__.py +6 -0
  17. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/adapters/importers.py +16 -0
  18. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/adapters/langgraph.py +1 -1
  19. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/adapters/openai_agents.py +1 -1
  20. agentdebugx-0.5.1/src/agentdebug/ingest/native_protocol.py +588 -0
  21. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/llm_convert.py +1 -1
  22. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/server.py +0 -24
  23. agentdebugx-0.5.1/src/agentdebug/provenance.py +69 -0
  24. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/executors/process_live.py +1 -1
  25. agentdebugx-0.5.1/src/agentdebug/taxonomy_manifest.py +393 -0
  26. agentdebugx-0.4.0/src/agentdebug/diagnose/detect/evidence.py +0 -360
  27. agentdebugx-0.4.0/src/agentdebug/ingest/README.md +0 -43
  28. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/LICENSE +0 -0
  29. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/README.md +0 -0
  30. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/ARCHITECTURE.md +0 -0
  31. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/GUI_RCA_COMMANDS.md +0 -0
  32. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/TRACE_SCHEMA.md +0 -0
  33. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/assets/UI.png +0 -0
  34. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/assets/logo-dark.svg +0 -0
  35. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/assets/logo.png +0 -0
  36. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/assets/logo.svg +0 -0
  37. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/assets/overview.pdf +0 -0
  38. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/assets/overview.png +0 -0
  39. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/assets/stylesheets/extra.css +0 -0
  40. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/concepts/workflow.md +0 -0
  41. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/getting-started/installation.md +0 -0
  42. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/getting-started/quickstart.md +0 -0
  43. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/guides/diagnose.md +0 -0
  44. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/guides/gui-rca.md +0 -0
  45. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/guides/ingest.md +0 -0
  46. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/guides/local-ui.md +0 -0
  47. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/guides/rerun.md +0 -0
  48. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/help/build-docs.md +0 -0
  49. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/help/troubleshooting.md +0 -0
  50. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/index.md +0 -0
  51. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/reference/cli.md +0 -0
  52. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/reference/diagnostic-report.md +0 -0
  53. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/docs/reference/python-api.md +0 -0
  54. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/batch/README.md +0 -0
  55. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/batch/__init__.py +0 -0
  56. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/batch/workflow.py +0 -0
  57. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/README.md +0 -0
  58. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/__init__.py +0 -0
  59. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/config.py +0 -0
  60. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/context.py +0 -0
  61. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/contracts.py +0 -0
  62. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/filtering.py +0 -0
  63. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/hosts/CODEX_SUPPORT.md +0 -0
  64. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/hosts/README.md +0 -0
  65. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/hosts/__init__.py +0 -0
  66. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/hosts/base.py +0 -0
  67. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/hosts/claude_code.py +0 -0
  68. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/hosts/codex.py +0 -0
  69. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/hosts/registry.py +0 -0
  70. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/identity.py +0 -0
  71. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/repository.py +0 -0
  72. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/service.py +0 -0
  73. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/capture/snapshot.py +0 -0
  74. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/README.md +0 -0
  75. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/__init__.py +0 -0
  76. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/__main__.py +0 -0
  77. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/__init__.py +0 -0
  78. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/batch.py +0 -0
  79. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/capture.py +0 -0
  80. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/config.py +0 -0
  81. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/diagnose.py +0 -0
  82. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/doctor.py +0 -0
  83. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/hub.py +0 -0
  84. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/ingest.py +0 -0
  85. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/integrations.py +0 -0
  86. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/rerun.py +0 -0
  87. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/run.py +0 -0
  88. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/runner.py +0 -0
  89. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/serve.py +0 -0
  90. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/store.py +0 -0
  91. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/commands/ui.py +0 -0
  92. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/legacy.py +0 -0
  93. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/cli/main.py +0 -0
  94. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/core/events.py +0 -0
  95. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/core/gui_taxonomy.py +0 -0
  96. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/core/llm.py +0 -0
  97. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/core/llm_channel.py +0 -0
  98. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/core/models.py +0 -0
  99. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/core/plugins/__init__.py +0 -0
  100. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/core/plugins/registry.py +0 -0
  101. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/core/plugins/types.py +0 -0
  102. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/core/storage.py +0 -0
  103. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/core/taxonomy.py +0 -0
  104. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/README.md +0 -0
  105. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/__init__.py +0 -0
  106. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/__init__.py +0 -0
  107. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/attribution.py +0 -0
  108. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/hub/__init__.py +0 -0
  109. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/hub/backend_base.py +0 -0
  110. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/hub/backends.py +0 -0
  111. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/hub/bundle.py +0 -0
  112. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/hub/scrub.py +0 -0
  113. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/integrations/__init__.py +0 -0
  114. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/integrations/_templates.py +0 -0
  115. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/integrations/claude_skill.py +0 -0
  116. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/integrations/debug_skill.py +0 -0
  117. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/integrations/openhands.py +0 -0
  118. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/moe.py +0 -0
  119. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/actions/recovery.py +0 -0
  120. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/analyzers.py +0 -0
  121. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/attribute/README.md +0 -0
  122. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/attribute/async_api.py +0 -0
  123. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/attribute/deep_memory.py +0 -0
  124. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/attribute/deepdebug.py +0 -0
  125. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/attribute/moe.py +0 -0
  126. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/attribute/reference.py +0 -0
  127. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/attribute/trajdebug.py +0 -0
  128. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/__init__.py +0 -0
  129. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/attribute/__init__.py +0 -0
  130. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/attribute/all_at_once.json +0 -0
  131. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/attribute/binary_search.json +0 -0
  132. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/attribute/counterfactual.json +0 -0
  133. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/attribute/deepdebug.json +0 -0
  134. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/attribute/heuristic.json +0 -0
  135. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/attribute/step_by_step.json +0 -0
  136. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/attribute/trajdebug.json +0 -0
  137. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/detect/__init__.py +0 -0
  138. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/detect/heuristic.json +0 -0
  139. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/detect/llm_judge.json +0 -0
  140. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/detect/perstep.json +0 -0
  141. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/detect/stage_a.json +0 -0
  142. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/detect/trajdebug.json +0 -0
  143. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/recover/__init__.py +0 -0
  144. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/recover/auto_manual.json +0 -0
  145. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/recover/critic.json +0 -0
  146. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/recover/deepdebug.json +0 -0
  147. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/recover/reflexion.json +0 -0
  148. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/recover/saga_rollback.json +0 -0
  149. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/component_manifests/recover/self_refine.json +0 -0
  150. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/context.py +0 -0
  151. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/deep.py +0 -0
  152. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/deep_memory.py +0 -0
  153. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/__init__.py +0 -0
  154. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/analyzers.py +0 -0
  155. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/compression.py +0 -0
  156. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/detectors.py +0 -0
  157. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/judge.py +0 -0
  158. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/perstep.py +0 -0
  159. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/__init__.py +0 -0
  160. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/agenterrorbench.py +0 -0
  161. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/base.py +0 -0
  162. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/core.py +0 -0
  163. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/gui.py +0 -0
  164. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/packs/__init__.py +0 -0
  165. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/packs/agenterrorbench/__init__.py +0 -0
  166. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/packs/agenterrorbench/manifest.json +0 -0
  167. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/packs/agenterrorbench/rules.py +0 -0
  168. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/packs/core/__init__.py +0 -0
  169. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/packs/core/manifest.json +0 -0
  170. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/packs/gui/__init__.py +0 -0
  171. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/packs/gui/manifest.json +0 -0
  172. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules/packs/gui/rules.py +0 -0
  173. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/rules.py +0 -0
  174. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/selection.py +0 -0
  175. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detect/trajdebug.py +0 -0
  176. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/detectors.py +0 -0
  177. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/deterministic.py +0 -0
  178. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/gui_rca.py +0 -0
  179. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/judge.py +0 -0
  180. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/judges.py +0 -0
  181. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/pipeline.py +0 -0
  182. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/profiles/README.md +0 -0
  183. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/profiles/__init__.py +0 -0
  184. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/profiles/deepdebug.py +0 -0
  185. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/recover/README.md +0 -0
  186. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/recover/__init__.py +0 -0
  187. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/registry.py +0 -0
  188. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/rules/__init__.py +0 -0
  189. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/rules/agenterrorbench.py +0 -0
  190. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/rules/base.py +0 -0
  191. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/rules/core.py +0 -0
  192. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/rules/gui.py +0 -0
  193. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/rules/registry.py +0 -0
  194. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/diagnose/taxonomy_induction.py +0 -0
  195. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/__init__.py +0 -0
  196. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/__main__.py +0 -0
  197. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/agent.py +0 -0
  198. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/config/debugger.example.json +0 -0
  199. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/config.py +0 -0
  200. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/discuss.py +0 -0
  201. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/dispatch.py +0 -0
  202. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/eval/__init__.py +0 -0
  203. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/eval/accuracy.py +0 -0
  204. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/evolving/__init__.py +0 -0
  205. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/evolving/alignment.py +0 -0
  206. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/evolving/case_loader.py +0 -0
  207. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/evolving/prompts.py +0 -0
  208. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/evolving/protocol.py +0 -0
  209. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/evolving/runner.py +0 -0
  210. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/evolving/state.py +0 -0
  211. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/evolving/tools.py +0 -0
  212. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/ingester.py +0 -0
  213. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/memory/__init__.py +0 -0
  214. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/memory/annotation_loader.py +0 -0
  215. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/memory/distill.py +0 -0
  216. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/memory/episode_memory.py +0 -0
  217. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/memory/intention.py +0 -0
  218. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/memory/lesson_injector.py +0 -0
  219. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/memory/lesson_memory.py +0 -0
  220. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/memory/semantic_merge.py +0 -0
  221. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/openai_adapter.py +0 -0
  222. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/output.py +0 -0
  223. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/perplexity_adapter.py +0 -0
  224. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/pipeline/__init__.py +0 -0
  225. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/pipeline/classify.py +0 -0
  226. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/pipeline/client_factory.py +0 -0
  227. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/pipeline/orchestrator.py +0 -0
  228. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/pipeline/results.py +0 -0
  229. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/pipeline/runtime.py +0 -0
  230. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/pipeline/worker.py +0 -0
  231. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/prompts.py +0 -0
  232. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/prompts_discuss.py +0 -0
  233. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/rca.py +0 -0
  234. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/scripts/__init__.py +0 -0
  235. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/scripts/download_input_trajectory.py +0 -0
  236. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/tagger.py +0 -0
  237. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/taxonomy.py +0 -0
  238. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/together_adapter.py +0 -0
  239. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/tools/__init__.py +0 -0
  240. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/tools/lesson_explorer.py +0 -0
  241. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/trajectory.py +0 -0
  242. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/trajectory_normalizer.py +0 -0
  243. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/utils/__init__.py +0 -0
  244. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/utils/lock.py +0 -0
  245. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/utils/logger.py +0 -0
  246. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/vis/__init__.py +0 -0
  247. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/vis/debugger_app.py +0 -0
  248. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/gui/vis/generate_assignments.py +0 -0
  249. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/hub/README.md +0 -0
  250. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/hub/__init__.py +0 -0
  251. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/hub/backend_base.py +0 -0
  252. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/hub/bundle.py +0 -0
  253. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/hub/scrub.py +0 -0
  254. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/adapters/__init__.py +0 -0
  255. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/adapters/base.py +0 -0
  256. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/adapters/crewai.py +0 -0
  257. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/adapters/gaia_odr.py +0 -0
  258. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/adapters/osworld.py +0 -0
  259. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/adapters/otel.py +0 -0
  260. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/adapters/raw.py +0 -0
  261. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/adapters/trajdebug.py +0 -0
  262. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/core/__init__.py +0 -0
  263. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/importers.py +0 -0
  264. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/instrumentation.py +0 -0
  265. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/ingest/recorder.py +0 -0
  266. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/README.md +0 -0
  267. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/__init__.py +0 -0
  268. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/discussion.py +0 -0
  269. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/traceback.py +0 -0
  270. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/__init__.py +0 -0
  271. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/app.py +0 -0
  272. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/assets/robot-avatar.svg +0 -0
  273. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/branch_store.py +0 -0
  274. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/discussion_store.py +0 -0
  275. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/manager.py +0 -0
  276. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/mcp_rerun.py +0 -0
  277. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/routes.py +0 -0
  278. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/services.py +0 -0
  279. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/upload.py +0 -0
  280. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/inspect/ui/views.py +0 -0
  281. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/README.md +0 -0
  282. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/__init__.py +0 -0
  283. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/_templates.py +0 -0
  284. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/agentdebug_skill/SKILL.md +0 -0
  285. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/agentdebug_skill/references/analysis.md +0 -0
  286. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/agentdebug_skill/references/cli_reference.md +0 -0
  287. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/agentdebug_skill/references/formats.md +0 -0
  288. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/agentdebug_skill/references/recovery.md +0 -0
  289. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/agentdebug_skill/references/safety.md +0 -0
  290. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/agentdebug_skill/references/setup.md +0 -0
  291. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/capture_management.py +0 -0
  292. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/claude_skill.py +0 -0
  293. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/codex_skill.py +0 -0
  294. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/debug_skill.py +0 -0
  295. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/management.py +0 -0
  296. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/integrations/openhands.py +0 -0
  297. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/py.typed +0 -0
  298. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/ACTOR_TASK_SPEC.md +0 -0
  299. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/README.md +0 -0
  300. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/RUNNER_SPEC.md +0 -0
  301. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/SIMULATION_SPEC.md +0 -0
  302. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/__init__.py +0 -0
  303. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/actor_task.py +0 -0
  304. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/branch.py +0 -0
  305. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/evaluators.py +0 -0
  306. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/executors/__init__.py +0 -0
  307. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/executors/base.py +0 -0
  308. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/executors/http_live.py +0 -0
  309. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/executors/llm_continuation.py +0 -0
  310. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/http_service.py +0 -0
  311. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/live_validation.py +0 -0
  312. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/request.py +0 -0
  313. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/rerun/workflow.py +0 -0
  314. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/runtime/README.md +0 -0
  315. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/runtime/__init__.py +0 -0
  316. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/runtime/events.py +0 -0
  317. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/runtime/gui_taxonomy.py +0 -0
  318. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/runtime/llm.py +0 -0
  319. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/runtime/llm_channel.py +0 -0
  320. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/runtime/plugins/__init__.py +0 -0
  321. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/runtime/plugins/registry.py +0 -0
  322. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/runtime/plugins/types.py +0 -0
  323. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/runtime/storage.py +0 -0
  324. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/schema/README.md +0 -0
  325. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/schema/__init__.py +0 -0
  326. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/schema/models.py +0 -0
  327. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/schema/taxonomy.py +0 -0
  328. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/workbench/README.md +0 -0
  329. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/workbench/__init__.py +0 -0
  330. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/workbench/models.py +0 -0
  331. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/workbench/profiles.py +0 -0
  332. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/workbench/registry.py +0 -0
  333. {agentdebugx-0.4.0 → agentdebugx-0.5.1}/src/agentdebug/workbench/service.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentdebugx
3
- Version: 0.4.0
3
+ Version: 0.5.1
4
4
  Summary: Portable error analysis, tracing, and recovery framework for agentic AI systems. Import as `agentdebug`.
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -0,0 +1,36 @@
1
+ # Taxonomy manifest and classification contract
2
+
3
+ `agentdebug.taxonomy_manifest` freezes `SEED_FAILURE_MODES` into a JSON-serialisable
4
+ document with a content fingerprint and the package revision it came from, and defines a
5
+ side-effect-free classification contract on top of it. A label stored in a corpus is only
6
+ interpretable if the reader can recover the exact definitions the labeller saw; the
7
+ fingerprint is how a corpus notices that its labels and its taxonomy drifted apart.
8
+
9
+ ```python
10
+ from agentdebug.taxonomy_manifest import (
11
+ ClassificationRequest, cohens_kappa, compile_classification_prompt,
12
+ parse_classification_response, taxonomy_manifest,
13
+ )
14
+
15
+ manifest = taxonomy_manifest() # 23 modes in 9 families, fingerprint, source_revision
16
+ system, user = compile_classification_prompt(manifest, ClassificationRequest(
17
+ trace_uid="tr-1", task_statement="...", outcome_text="failed", window=rendered_tail))
18
+ reply = my_client.complete(system=system, user=user) # the consumer owns the call and its budget
19
+ result = parse_classification_response(reply.text, manifest)
20
+ ```
21
+
22
+ `ClassificationResult` carries `mode_id`, `family`, optional `submode`, `decisive_step`,
23
+ `evidence_quote`, `rationale`, `confidence` in [0, 1], and an explicit `abstain` with one of
24
+ `ABSTAIN_REASONS` (`infrastructure_fault`, `decisive_step_not_in_window`, `ambiguous`,
25
+ `unknown_mode`, `malformed_response`, `unparsed`). Infrastructure faults and ambiguous cases
26
+ are never forced into an agent-error family. `parse_classification_response` never raises:
27
+ fenced JSON, trailing prose, an unknown mode id, duplicate keys and malformed JSON all map to a
28
+ result or an abstention with the raw object preserved.
29
+
30
+ The grouping from leaf modes to families keeps every family, including `verification`,
31
+ `multiagent`, `multimodal` and `observation`. `cohens_kappa(labels_a, labels_b)` measures
32
+ two-judge agreement over the items both labelled and returns `None` where kappa is undefined.
33
+
34
+ Consumers keep provider calls, budgets, metering, trace binding and append-only storage; a
35
+ row should record the manifest `fingerprint`, `source_revision` and the SHA-256 of the
36
+ compiled prompt so the classification is reproducible from the stored reply.
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "agentdebugx"
3
- version = "0.4.0"
3
+ version = "0.5.1"
4
4
  description = "Portable error analysis, tracing, and recovery framework for agentic AI systems. Import as `agentdebug`."
5
5
  authors = ["ULab @ UIUC <ulab@illinois.edu>"]
6
6
  license = "MIT"
@@ -291,7 +291,7 @@ __all__ = [
291
291
  'write_converted_trajectory',
292
292
  ]
293
293
 
294
- __version__ = '0.4.0'
294
+ __version__ = '0.5.1'
295
295
 
296
296
  _COMPAT_MODULE_ALIASES = {
297
297
  'agentdebug.models': _core_models_mod,
@@ -1,6 +1,5 @@
1
- """Core AgentDebugX primitives."""
2
-
3
- """Backward-compatible aggregate import path for schema/runtime APIs."""
1
+ """Core AgentDebugX primitives: the backward-compatible aggregate import path for the
2
+ schema and runtime APIs."""
4
3
 
5
4
  from agentdebug.runtime.events import DEFAULT_BUS, BusEvent, EventBus, EventSubscription
6
5
  from agentdebug.runtime.llm import (
@@ -18,7 +18,10 @@ from agentdebug.diagnose.attribute.attribution import (
18
18
  CorrectedAction,
19
19
  CounterfactualAttributor,
20
20
  EnsembleAttributor,
21
+ AttributionUnavailable,
21
22
  HeuristicAttributor,
23
+ NO_FALLBACK,
24
+ NoFallback,
22
25
  SBFLAttributor,
23
26
  StepByStepAttributor,
24
27
  )
@@ -42,7 +45,10 @@ __all__ = [
42
45
  'DeepDebugResult',
43
46
  'DeepDebugRound',
44
47
  'EnsembleAttributor',
48
+ 'AttributionUnavailable',
45
49
  'HeuristicAttributor',
50
+ 'NO_FALLBACK',
51
+ 'NoFallback',
46
52
  'SBFLAttributor',
47
53
  'StepByStepAttributor',
48
54
  'attribute_async',
@@ -162,6 +162,47 @@ class Attributor(Protocol):
162
162
  ...
163
163
 
164
164
 
165
+ class AttributionUnavailable(RuntimeError):
166
+ """The model-based attributor produced nothing and the caller refused a substitute.
167
+
168
+ Raised by :data:`NO_FALLBACK` where an attributor would otherwise hand the
169
+ trajectory to its ``fallback``. The message names the attributor and the
170
+ reason (an LLM error, or a reply with no JSON block), so a corpus can
171
+ record the attempt as a dropout instead of a heuristic label that looks
172
+ like a model one.
173
+ """
174
+
175
+
176
+ class NoFallback:
177
+ """An ``Attributor`` that refuses, for callers who want fail-closed attribution.
178
+
179
+ Every model-based attributor defaults to ``fallback or HeuristicAttributor()``:
180
+ when the model call fails or returns no JSON, a model-free ranking of the
181
+ detector findings is returned under the *same* result type, and nothing
182
+ downstream can tell the two apart. Pass ``fallback=NO_FALLBACK`` to make that
183
+ path raise :class:`AttributionUnavailable` instead. Measured by a consumer
184
+ on 887 rows: the silent substitute fired on 16.7% of one model's attempts
185
+ against 0.5% of another's, all labelled as model attributions.
186
+ """
187
+
188
+ id = 'no_fallback'
189
+ requires_findings = False
190
+
191
+ def attribute(
192
+ self,
193
+ trajectory: AgentTrajectory,
194
+ findings: Optional[List[FailureFinding]] = None,
195
+ ) -> AttributionResult:
196
+ raise AttributionUnavailable(
197
+ f'attribution unavailable for trace {trajectory.trace_id!r}: the model-based '
198
+ 'attributor produced no usable result and fallback is disabled (NO_FALLBACK)'
199
+ )
200
+
201
+
202
+ #: Pass as ``fallback=`` to any attributor to disable the heuristic substitute.
203
+ NO_FALLBACK = NoFallback()
204
+
205
+
165
206
  class HeuristicAttributor:
166
207
  """Cheap, model-free fallback that picks the earliest highest-confidence finding.
167
208
 
@@ -64,6 +64,64 @@ still fails.
64
64
 
65
65
  Adapted from TrajDebug Stage B (THU-KEG/TrajDebug, MIT).
66
66
 
67
+ ### Where a quote came from
68
+
69
+ `quote_verified` is a boolean, which is what a detector needs to keep or drop
70
+ a finding. A consumer that stores findings needs to know *where* a quote was
71
+ found, because position is evidence too: a verbatim quote of the grader's
72
+ verdict at the last event does not support a diagnosis of step 4.
73
+
74
+ `locate_quote(trajectory, quote, anchor=None, shown=None)` returns a
75
+ `QuoteLocation`:
76
+
77
+ - `rung` -- `exact` (verbatim substring of the stored field), `normalized`
78
+ (after the same normalisation `verify_finding_quotes` applies, plus removal
79
+ of the renderer's `[step 3] event_id=... output=` framing and one pair of
80
+ wrapping quotation marks), `anchored` (the text was found nowhere but the
81
+ quote or the caller named an event id that exists -- a pointer, not a
82
+ transcription), or `unresolvable`
83
+ - `region` -- `event`, `shown` (the text a detector rendered for an event),
84
+ `goal`, or `none`; with `event_id`, `event_index`, `step_index`,
85
+ `event_type` and `field` (`input` / `output` / `error`) for an event
86
+ - `span` and `text` -- character offsets into the stored field (as `str`, or
87
+ `repr` for a non-string value), the `shown` text, or the goal, and the slice
88
+ they cover. Offsets are into the raw field even when the match was made after
89
+ unescaping, so `event.output[start:end]` is the cited text
90
+ - `anchor` and `anchor_status` -- `not_declared`, `resolved`, `unknown_event`
91
+ (an id the trajectory does not contain), or `elsewhere` (a real id whose
92
+ event does not contain the text: a mislabelling, not a fabrication)
93
+ - `grounded` -- `rung` is `exact` or `normalized` and `region` is `event` or
94
+ `shown`. A goal quote is faithful and grounds nothing about the trajectory;
95
+ a real pointer locates an event but cannot be checked by string search.
96
+
97
+ Rungs are tried strictest first; within a rung the anchor's event is searched
98
+ before the others, then the remaining events in order, then the goal.
99
+
100
+ `resolve_anchor(trajectory, event_id)` returns the event an id names, by exact
101
+ match, or `None`.
102
+
103
+ `grounds_trajectory(findings, trajectory, shown=None)` locates the
104
+ `wrong_content_quote` (anchored on the blamed event) and `reference_quote` of
105
+ each finding and places each relative to the blamed event: `position` is
106
+ `before` / `at` / `after`, and `at_or_before_blame` is the question a consumer
107
+ asks -- was this text in front of the agent when it acted? `FindingGrounding.
108
+ grounded` is `None` for a finding with no quotes (as `quote_verified` is),
109
+ and otherwise requires every quote to be located under a grounding rung, none
110
+ to come from after the blame, and the wrong-content quote to sit at it.
111
+ `annotate_evidence_regions(findings, trajectory)` writes that as JSON into
112
+ `finding.metadata['evidence_regions']`, next to `quote_verified`.
113
+
114
+ ```python
115
+ from agentdebug.diagnose.detect.evidence import locate_quote, grounds_trajectory
116
+
117
+ loc = locate_quote(trajectory, 'you see a cd 3')
118
+ loc.rung, loc.event_id, loc.field, loc.span # 'exact', 'evt_...', 'output', (17, 31)
119
+
120
+ for g in grounds_trajectory(report.findings, trajectory):
121
+ for q in g.quotes:
122
+ print(g.finding_id, q.role, q.location.rung, q.position, q.at_or_before_blame)
123
+ ```
124
+
67
125
  ## Context budget
68
126
 
69
127
  Both LLM detectors render the trajectory by clipping each event to a fixed