ouroboros-ai 0.43.2.dev2__tar.gz → 0.43.3.dev2__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 (1216) hide show
  1. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/marketplace.json +1 -1
  2. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/plugin.json +1 -1
  3. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/interview/SKILL.md +12 -7
  4. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/unstuck/SKILL.md +6 -3
  5. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/PKG-INFO +1 -1
  6. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/interview/SKILL.md +12 -7
  7. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/setup/SKILL.md +1 -1
  8. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/unstuck/SKILL.md +6 -3
  9. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/_version.py +2 -2
  10. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/backends/__init__.py +2 -0
  11. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/backends/capabilities.py +56 -3
  12. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/run.py +55 -4
  13. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/backends/test_capabilities.py +56 -1
  14. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_run_qa.py +2 -2
  15. ouroboros_ai-0.43.3.dev2/tests/unit/cli/test_run_runtime_routing.py +90 -0
  16. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_claude_plugin_skill_guide.py +1 -0
  17. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude/settings.json +0 -0
  18. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/.mcp.json +0 -0
  19. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/SKILL_CAPABILITY_GUIDE.md +0 -0
  20. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/auto/SKILL.md +0 -0
  21. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/brownfield/SKILL.md +0 -0
  22. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/cancel/SKILL.md +0 -0
  23. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/evaluate/SKILL.md +0 -0
  24. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/evolve/SKILL.md +0 -0
  25. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/help/SKILL.md +0 -0
  26. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/pm/SKILL.md +0 -0
  27. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/publish/SKILL.md +0 -0
  28. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/qa/SKILL.md +0 -0
  29. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/ralph/SKILL.md +0 -0
  30. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/resume-session/SKILL.md +0 -0
  31. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/run/SKILL.md +0 -0
  32. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/seed/SKILL.md +0 -0
  33. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/setup/SKILL.md +0 -0
  34. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/status/SKILL.md +0 -0
  35. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/tutorial/SKILL.md +0 -0
  36. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/update/SKILL.md +0 -0
  37. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.claude-plugin/skills/welcome/SKILL.md +0 -0
  38. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.codex/config.toml +0 -0
  39. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.codex/hooks.json +0 -0
  40. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.env.example +0 -0
  41. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  42. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  43. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  44. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/ISSUE_TEMPLATE/question.yml +0 -0
  45. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  46. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/dependabot.yml +0 -0
  47. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/workflows/auto-boundary.yml +0 -0
  48. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/workflows/auto-perf-budget.yml +0 -0
  49. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/workflows/dev-publish.yml +0 -0
  50. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/workflows/lint.yml +0 -0
  51. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/workflows/max-turns-envelope.yml +0 -0
  52. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/workflows/release.yml +0 -0
  53. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.github/workflows/test.yml +0 -0
  54. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.gitignore +0 -0
  55. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.mcp.json +0 -0
  56. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.ouroboros/mechanical.toml +0 -0
  57. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.ouroboros/seeds/seed_73827177a2a3.yaml +0 -0
  58. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.ouroboros/seeds/seed_78c8e6e41813.yaml +0 -0
  59. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.pre-commit-config.yaml +0 -0
  60. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/.python-version +0 -0
  61. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/AGENTS.md +0 -0
  62. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/CHANGELOG.md +0 -0
  63. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/CLAUDE.md +0 -0
  64. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/CODE_OF_CONDUCT.md +0 -0
  65. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/CONTRIBUTING.md +0 -0
  66. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/Code-Review-Claude.md +0 -0
  67. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/Code-Review-Codex.md +0 -0
  68. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/HANDOFF.md +0 -0
  69. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/LICENSE +0 -0
  70. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/README.ko.md +0 -0
  71. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/README.md +0 -0
  72. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/README.zh-CN.md +0 -0
  73. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/SECURITY.md +0 -0
  74. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/UNINSTALL.md +0 -0
  75. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/cancel.md +0 -0
  76. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/evaluate.md +0 -0
  77. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/evolve.md +0 -0
  78. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/help.md +0 -0
  79. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/interview.md +0 -0
  80. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/ralph.md +0 -0
  81. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/run.md +0 -0
  82. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/seed.md +0 -0
  83. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/setup.md +0 -0
  84. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/status.md +0 -0
  85. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/tutorial.md +0 -0
  86. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/unstuck.md +0 -0
  87. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/commands/welcome.md +0 -0
  88. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/.gitignore +0 -0
  89. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/Cargo.lock +0 -0
  90. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/Cargo.toml +0 -0
  91. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/README.md +0 -0
  92. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/src/db.rs +0 -0
  93. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/src/main.rs +0 -0
  94. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/src/mock.rs +0 -0
  95. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/src/state.rs +0 -0
  96. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/src/views/dashboard.rs +0 -0
  97. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/src/views/execution.rs +0 -0
  98. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/src/views/lineage.rs +0 -0
  99. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/src/views/logs.rs +0 -0
  100. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/src/views/mod.rs +0 -0
  101. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/crates/ouroboros-tui/src/views/session_selector.rs +0 -0
  102. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/README.md +0 -0
  103. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/agentos/control-journal.md +0 -0
  104. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/agentos/fat-harness-baseline-metrics.md +0 -0
  105. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/agentos/issue-sequencing-graph.md +0 -0
  106. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/agentos/profile-taxonomy.md +0 -0
  107. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/agentos/projection-followups.md +0 -0
  108. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/agentos/projection-v1-scope.md +0 -0
  109. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/agentos/release-readiness.md +0 -0
  110. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/agentos/runtime-contract.md +0 -0
  111. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/agentos/traceguard-observation-protocol.md +0 -0
  112. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/agentos/traceguard-vs-legacy-benchmark.md +0 -0
  113. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/agentos/workflow-ir-projection-mapping.md +0 -0
  114. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/agentos/workflow-ir-v1.md +0 -0
  115. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/api/README.md +0 -0
  116. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/api/core.md +0 -0
  117. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/api/mcp.md +0 -0
  118. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/architecture.md +0 -0
  119. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/auto-interview-convergence-contract.md +0 -0
  120. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/auto-runtime-semantics.md +0 -0
  121. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/cli-reference.md +0 -0
  122. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/config-reference.md +0 -0
  123. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/contributing/agent-os-kernel-terminology.md +0 -0
  124. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/contributing/architecture-overview.md +0 -0
  125. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/contributing/control-contract.md +0 -0
  126. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/contributing/control-plane-followups.md +0 -0
  127. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/contributing/findings-registry.md +0 -0
  128. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/contributing/issue-quality-policy.md +0 -0
  129. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/contributing/key-patterns.md +0 -0
  130. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/contributing/testing-guide.md +0 -0
  131. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/contributing/verifier-evidence-policy.md +0 -0
  132. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/contributing/watchdog-cancellation.md +0 -0
  133. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/events.md +0 -0
  134. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/examples/mcp-config.yaml +0 -0
  135. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/examples/workflows/design-code-verify.md +0 -0
  136. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/examples/workflows/research-to-deliverable.md +0 -0
  137. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/getting-started.md +0 -0
  138. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/agent-process-lifecycle.md +0 -0
  139. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/evaluation-pipeline.md +0 -0
  140. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/evolution-loop.md +0 -0
  141. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/execution-vs-evaluation.md +0 -0
  142. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/issue-176-subagent-mcp-inheritance.md +0 -0
  143. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/mcp-best-practices.md +0 -0
  144. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/mcp-bridge.md +0 -0
  145. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/ooo-skill-dispatch-router.md +0 -0
  146. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/opencode-subagent-bridge.md +0 -0
  147. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/qa-backends.md +0 -0
  148. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/seed-authoring.md +0 -0
  149. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/tui-usage.md +0 -0
  150. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/guides/windows-wsl-troubleshooting.md +0 -0
  151. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/images/PLACEHOLDER_README.md +0 -0
  152. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/images/ouroboros.png +0 -0
  153. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/interview-advisory-fanout-comparison.html +0 -0
  154. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/ooo-auto-analysis.md +0 -0
  155. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/ooo-auto-evolution-plan.md +0 -0
  156. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/platform-support.md +0 -0
  157. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/config-coherence.md +0 -0
  158. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/contract-ledger.md +0 -0
  159. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/decomposition-reliability.md +0 -0
  160. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/disposable-memory.md +0 -0
  161. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/frugality-control-loop.md +0 -0
  162. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/frugality-proof-producers.md +0 -0
  163. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/interview-hardening.md +0 -0
  164. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/interview-milestone-lateral-contract.md +0 -0
  165. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/mesh.md +0 -0
  166. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/plugin-artifact-state-hook-contract.md +0 -0
  167. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/plugin-tool-call-hook-contract.md +0 -0
  168. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/runtime-delegation-contract.md +0 -0
  169. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/runtime-timeout-contract.md +0 -0
  170. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/spend-actuator-effort-dial.md +0 -0
  171. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/spend-estimator.md +0 -0
  172. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/transparency-breadcrumb-tui.md +0 -0
  173. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/userlevel-plugins.md +0 -0
  174. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/rfc/verdict-envelope-v1.md +0 -0
  175. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/runtime-capability-matrix.md +0 -0
  176. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/runtime-guides/claude-code.md +0 -0
  177. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/runtime-guides/codex.md +0 -0
  178. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/runtime-guides/copilot.md +0 -0
  179. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/runtime-guides/gemini.md +0 -0
  180. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/runtime-guides/gjc.md +0 -0
  181. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/runtime-guides/goose.md +0 -0
  182. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/runtime-guides/hermes.md +0 -0
  183. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/runtime-guides/kiro.md +0 -0
  184. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/runtime-guides/opencode.md +0 -0
  185. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/runtime-guides/pi.md +0 -0
  186. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/docs/runtime-guides/skill-capability-guides.md +0 -0
  187. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/examples/coordinator_test_seed.yaml +0 -0
  188. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/examples/dummy_seed.yaml +0 -0
  189. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/examples/parallel_subac_test_seed.yaml +0 -0
  190. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/examples/subac_test_seed.yaml +0 -0
  191. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/examples/task_manager/README.md +0 -0
  192. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/examples/task_manager/__init__.py +0 -0
  193. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/examples/task_manager/__main__.py +0 -0
  194. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/examples/task_manager/cli.py +0 -0
  195. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/examples/task_manager/models.py +0 -0
  196. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/examples/task_manager/storage.py +0 -0
  197. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/examples/test_display.py +0 -0
  198. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/hooks/hooks.json +0 -0
  199. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/llms-full.txt +0 -0
  200. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/llms.txt +0 -0
  201. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/project-context.md +0 -0
  202. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/pyproject.toml +0 -0
  203. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/check-auto-boundary.py +0 -0
  204. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/check-auto-perf-budget.py +0 -0
  205. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/check-max-turns-envelope.py +0 -0
  206. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/drift-monitor.py +0 -0
  207. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/install.sh +0 -0
  208. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/keyword-detector.py +0 -0
  209. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/mcp-serve.sh +0 -0
  210. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/ralph-rewind.py +0 -0
  211. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/ralph.py +0 -0
  212. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/ralph.sh +0 -0
  213. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/session-start.py +0 -0
  214. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/sync-plugin-version.py +0 -0
  215. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/scripts/version-check.py +0 -0
  216. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/auto/SKILL.md +0 -0
  217. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/brownfield/SKILL.md +0 -0
  218. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/cancel/SKILL.md +0 -0
  219. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/config/SKILL.md +0 -0
  220. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/evaluate/SKILL.md +0 -0
  221. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/evolve/SKILL.md +0 -0
  222. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/help/SKILL.md +0 -0
  223. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/pm/SKILL.md +0 -0
  224. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/publish/SKILL.md +0 -0
  225. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/qa/SKILL.md +0 -0
  226. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/ralph/SKILL.md +0 -0
  227. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/resume-session/SKILL.md +0 -0
  228. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/run/SKILL.md +0 -0
  229. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/seed/SKILL.md +0 -0
  230. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/status/SKILL.md +0 -0
  231. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/tutorial/SKILL.md +0 -0
  232. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/update/SKILL.md +0 -0
  233. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/skills/welcome/SKILL.md +0 -0
  234. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/__init__.py +0 -0
  235. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/__main__.py +0 -0
  236. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/__init__.py +0 -0
  237. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/advocate.md +0 -0
  238. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/analysis-agent.md +0 -0
  239. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/architect.md +0 -0
  240. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/breadth-keeper.md +0 -0
  241. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/code-executor.md +0 -0
  242. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/codebase-explorer.md +0 -0
  243. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/consensus-reviewer.md +0 -0
  244. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/contrarian.md +0 -0
  245. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/evaluator.md +0 -0
  246. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/hacker.md +0 -0
  247. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/judge.md +0 -0
  248. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/loader.py +0 -0
  249. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/ontologist.md +0 -0
  250. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/ontology-analyst.md +0 -0
  251. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/qa-judge.md +0 -0
  252. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/research-agent.md +0 -0
  253. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/researcher.md +0 -0
  254. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/seed-architect.md +0 -0
  255. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/seed-closer.md +0 -0
  256. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/semantic-evaluator.md +0 -0
  257. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/simplifier.md +0 -0
  258. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/agents/socratic-interviewer.md +0 -0
  259. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/__init__.py +0 -0
  260. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/adapters.py +0 -0
  261. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/answerer.py +0 -0
  262. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/auto_fill.py +0 -0
  263. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/blocker_attribution.py +0 -0
  264. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/checkpoint_commits.py +0 -0
  265. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/domain_inference.py +0 -0
  266. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/domain_profile.py +0 -0
  267. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/execution_acceptance.py +0 -0
  268. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/gap_detector.py +0 -0
  269. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/grading.py +0 -0
  270. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/handoff_contract.py +0 -0
  271. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/intent_guard.py +0 -0
  272. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/interview_driver.py +0 -0
  273. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/lateral_routing.py +0 -0
  274. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/ledger.py +0 -0
  275. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/ledger_seed.py +0 -0
  276. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/listeners.py +0 -0
  277. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/pipeline.py +0 -0
  278. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/policies.py +0 -0
  279. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/profiles/__init__.py +0 -0
  280. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/profiles/coding.py +0 -0
  281. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/profiles/research.py +0 -0
  282. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/progress.py +0 -0
  283. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/provenance.py +0 -0
  284. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/recovery_plan.py +0 -0
  285. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/repo_context.py +0 -0
  286. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/resume_render.py +0 -0
  287. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/runtime_routing.py +0 -0
  288. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/safe_defaults.py +0 -0
  289. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/seed_repairer.py +0 -0
  290. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/seed_reviewer.py +0 -0
  291. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/state.py +0 -0
  292. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/task_class_application.py +0 -0
  293. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/task_classes.py +0 -0
  294. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/auto/worktree.py +0 -0
  295. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/backends/model_catalog.py +0 -0
  296. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/bigbang/__init__.py +0 -0
  297. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/bigbang/ambiguity.py +0 -0
  298. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/bigbang/brownfield.py +0 -0
  299. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/bigbang/explore.py +0 -0
  300. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/bigbang/interview.py +0 -0
  301. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/bigbang/pm_completion.py +0 -0
  302. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/bigbang/pm_document.py +0 -0
  303. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/bigbang/pm_interview.py +0 -0
  304. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/bigbang/pm_seed.py +0 -0
  305. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/bigbang/question_classifier.py +0 -0
  306. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/bigbang/seed_generator.py +0 -0
  307. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/claude_permissions.py +0 -0
  308. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/__init__.py +0 -0
  309. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/__init__.py +0 -0
  310. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/auto.py +0 -0
  311. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/cancel.py +0 -0
  312. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/codex.py +0 -0
  313. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/config.py +0 -0
  314. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/detect.py +0 -0
  315. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/dispatch.py +0 -0
  316. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/init.py +0 -0
  317. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/job.py +0 -0
  318. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/mcp.py +0 -0
  319. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/mcp_doctor.py +0 -0
  320. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/plugin.py +0 -0
  321. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/plugin_dispatch.py +0 -0
  322. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/pm.py +0 -0
  323. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/qa.py +0 -0
  324. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/resume.py +0 -0
  325. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/setup.py +0 -0
  326. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/status.py +0 -0
  327. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/tui.py +0 -0
  328. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/uninstall.py +0 -0
  329. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/commands/workflow_ir.py +0 -0
  330. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/formatters/__init__.py +0 -0
  331. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/formatters/panels.py +0 -0
  332. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/formatters/progress.py +0 -0
  333. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/formatters/prompting.py +0 -0
  334. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/formatters/tables.py +0 -0
  335. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/formatters/workflow_display.py +0 -0
  336. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/jsonc.py +0 -0
  337. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/main.py +0 -0
  338. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/cli/opencode_config.py +0 -0
  339. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/codex/__init__.py +0 -0
  340. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/codex/artifacts.py +0 -0
  341. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/codex/cli_policy.py +0 -0
  342. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/codex/ouroboros.md +0 -0
  343. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/codex/runtime_profile.py +0 -0
  344. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/codex_permissions.py +0 -0
  345. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/config/__init__.py +0 -0
  346. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/config/_model_defaults.py +0 -0
  347. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/config/loader.py +0 -0
  348. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/config/models.py +0 -0
  349. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/config_tui/__init__.py +0 -0
  350. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/config_tui/__main__.py +0 -0
  351. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/config_tui/app.py +0 -0
  352. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/config_tui/fields.py +0 -0
  353. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/config_tui/launcher.py +0 -0
  354. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/config_tui/persistence.py +0 -0
  355. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/copilot/__init__.py +0 -0
  356. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/copilot/cli_policy.py +0 -0
  357. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/copilot/model_discovery.py +0 -0
  358. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/copilot/runtime_profile.py +0 -0
  359. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/copilot_permissions.py +0 -0
  360. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/__init__.py +0 -0
  361. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/ac_tree.py +0 -0
  362. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/context.py +0 -0
  363. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/control_contract.py +0 -0
  364. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/directive.py +0 -0
  365. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/errors.py +0 -0
  366. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/file_lock.py +0 -0
  367. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/git_workflow.py +0 -0
  368. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/hitl_contract.py +0 -0
  369. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/hitl_resume.py +0 -0
  370. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/hitl_state.py +0 -0
  371. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/initial_context.py +0 -0
  372. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/json_utils.py +0 -0
  373. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/lineage.py +0 -0
  374. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/ontology_aspect.py +0 -0
  375. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/ontology_questions.py +0 -0
  376. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/project_paths.py +0 -0
  377. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/retry.py +0 -0
  378. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/runtime_transition.py +0 -0
  379. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/security.py +0 -0
  380. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/seed.py +0 -0
  381. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/seed_contract.py +0 -0
  382. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/seed_contract_prompt.py +0 -0
  383. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/text.py +0 -0
  384. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/ttl_cache.py +0 -0
  385. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/types.py +0 -0
  386. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/core/worktree.py +0 -0
  387. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/__init__.py +0 -0
  388. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/artifact_collector.py +0 -0
  389. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/checklist.py +0 -0
  390. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/consensus.py +0 -0
  391. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/detector.py +0 -0
  392. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/json_utils.py +0 -0
  393. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/languages.py +0 -0
  394. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/mechanical.py +0 -0
  395. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/models.py +0 -0
  396. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/pipeline.py +0 -0
  397. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/semantic.py +0 -0
  398. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/trigger.py +0 -0
  399. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evaluation/verification_artifacts.py +0 -0
  400. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/events/__init__.py +0 -0
  401. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/events/base.py +0 -0
  402. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/events/control.py +0 -0
  403. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/events/evaluation.py +0 -0
  404. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/events/hitl.py +0 -0
  405. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/events/interview.py +0 -0
  406. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/events/io.py +0 -0
  407. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/events/io_recorder.py +0 -0
  408. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/events/lineage.py +0 -0
  409. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/events/ontology.py +0 -0
  410. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evolution/__init__.py +0 -0
  411. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evolution/convergence.py +0 -0
  412. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evolution/directive_mapping.py +0 -0
  413. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evolution/loop.py +0 -0
  414. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evolution/material_progress.py +0 -0
  415. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evolution/projector.py +0 -0
  416. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evolution/reflect.py +0 -0
  417. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evolution/regression.py +0 -0
  418. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evolution/watchdog.py +0 -0
  419. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/evolution/wonder.py +0 -0
  420. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/gjc_bridge/index.ts +0 -0
  421. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/harness/__init__.py +0 -0
  422. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/harness/claim_term_guard.py +0 -0
  423. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/harness/deliver_gate.py +0 -0
  424. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/harness/deliver_routing.py +0 -0
  425. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/harness/journal.py +0 -0
  426. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/harness/projection.py +0 -0
  427. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/harness/projection_builder.py +0 -0
  428. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/harness/run_snapshot.py +0 -0
  429. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/hermes/__init__.py +0 -0
  430. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/hermes/artifacts.py +0 -0
  431. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/kiro/__init__.py +0 -0
  432. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/kiro/cli_policy.py +0 -0
  433. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/__init__.py +0 -0
  434. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/bridge/__init__.py +0 -0
  435. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/bridge/bridge.py +0 -0
  436. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/bridge/config.py +0 -0
  437. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/bridge/factory.py +0 -0
  438. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/client/__init__.py +0 -0
  439. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/client/adapter.py +0 -0
  440. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/client/manager.py +0 -0
  441. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/client/protocol.py +0 -0
  442. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/errors.py +0 -0
  443. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/job_manager.py +0 -0
  444. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/resources/__init__.py +0 -0
  445. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/resources/handlers.py +0 -0
  446. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/server/__init__.py +0 -0
  447. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/server/adapter.py +0 -0
  448. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/server/protocol.py +0 -0
  449. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/server/security.py +0 -0
  450. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/__init__.py +0 -0
  451. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/ac_tree_hud_handler.py +0 -0
  452. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/ac_tree_hud_render.py +0 -0
  453. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/authoring_handlers.py +0 -0
  454. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/auto_handler.py +0 -0
  455. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/background.py +0 -0
  456. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/bridge_mixin.py +0 -0
  457. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/brownfield_handler.py +0 -0
  458. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/dashboard.py +0 -0
  459. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/definitions.py +0 -0
  460. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/evaluation_handlers.py +0 -0
  461. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/evolution_handlers.py +0 -0
  462. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/execution_handlers.py +0 -0
  463. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/job_handlers.py +0 -0
  464. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/pm_handler.py +0 -0
  465. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/projection_handlers.py +0 -0
  466. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/qa.py +0 -0
  467. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/query_handlers.py +0 -0
  468. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/ralph_handlers.py +0 -0
  469. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/registry.py +0 -0
  470. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/tools/subagent.py +0 -0
  471. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/mcp/types.py +0 -0
  472. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/observability/__init__.py +0 -0
  473. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/observability/drift.py +0 -0
  474. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/observability/logging.py +0 -0
  475. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/observability/retrospective.py +0 -0
  476. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/opencode/__init__.py +0 -0
  477. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/opencode/plugin/__init__.py +0 -0
  478. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/opencode/plugin/opencode-plugin.d.ts +0 -0
  479. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/opencode/plugin/ouroboros-bridge.test.ts +0 -0
  480. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/opencode/plugin/ouroboros-bridge.ts +0 -0
  481. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/opencode/plugin/package.json +0 -0
  482. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/opencode/plugin/tsconfig.json +0 -0
  483. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/__init__.py +0 -0
  484. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/adapter.py +0 -0
  485. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/agent_process.py +0 -0
  486. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/agent_runtime_context.py +0 -0
  487. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/backend_limits.py +0 -0
  488. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/baseline_metrics.py +0 -0
  489. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/baseline_metrics_capture.py +0 -0
  490. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/baseline_metrics_format.py +0 -0
  491. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/capabilities.py +0 -0
  492. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/codex_cli_runtime.py +0 -0
  493. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/command_dispatcher.py +0 -0
  494. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/context_governor.py +0 -0
  495. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/control_bus.py +0 -0
  496. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/control_plane.py +0 -0
  497. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/coordinator.py +0 -0
  498. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/copilot_cli_runtime.py +0 -0
  499. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/decomposition_params.py +0 -0
  500. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/dependency_analyzer.py +0 -0
  501. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/effort_routing.py +0 -0
  502. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/events.py +0 -0
  503. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/evidence_schema.py +0 -0
  504. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/execution_runtime_scope.py +0 -0
  505. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/execution_strategy.py +0 -0
  506. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/failure_taxonomy.py +0 -0
  507. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/frugality_proof.py +0 -0
  508. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/gemini_cli_runtime.py +0 -0
  509. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/gjc_runtime.py +0 -0
  510. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/goose_runtime.py +0 -0
  511. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/heartbeat.py +0 -0
  512. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/hermes_runtime.py +0 -0
  513. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/kiro_adapter.py +0 -0
  514. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/level_context.py +0 -0
  515. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/mcp_config.py +0 -0
  516. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/mcp_tools.py +0 -0
  517. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/opencode_event_normalizer.py +0 -0
  518. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/opencode_runtime.py +0 -0
  519. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/parallel_executor.py +0 -0
  520. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/parallel_executor_models.py +0 -0
  521. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/phase_wrappers.py +0 -0
  522. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/pi_runtime.py +0 -0
  523. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/policy.py +0 -0
  524. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/profile_loader.py +0 -0
  525. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/profile_strategy.py +0 -0
  526. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/rate_limit.py +0 -0
  527. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/runner.py +0 -0
  528. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/runtime_error.py +0 -0
  529. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/runtime_evidence.py +0 -0
  530. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/runtime_factory.py +0 -0
  531. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/runtime_message_projection.py +0 -0
  532. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/runtime_param_negotiation.py +0 -0
  533. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/session.py +0 -0
  534. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/skill_intercept.py +0 -0
  535. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/skill_tool_mapping.py +0 -0
  536. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/stage.py +0 -0
  537. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/traceguard_benchmark_capture.py +0 -0
  538. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/verifier.py +0 -0
  539. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/workflow_ir.py +0 -0
  540. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/workflow_ir_adapter.py +0 -0
  541. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/workflow_lifecycle.py +0 -0
  542. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator/workflow_state.py +0 -0
  543. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/orchestrator_stage.py +0 -0
  544. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/persistence/__init__.py +0 -0
  545. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/persistence/brownfield.py +0 -0
  546. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/persistence/checkpoint.py +0 -0
  547. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/persistence/event_store.py +0 -0
  548. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/persistence/migrations/__init__.py +0 -0
  549. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/persistence/migrations/runner.py +0 -0
  550. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/persistence/migrations/scripts/001_initial.sql +0 -0
  551. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/persistence/migrations/scripts/002_brownfield.sql +0 -0
  552. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/persistence/schema.py +0 -0
  553. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/persistence/uow.py +0 -0
  554. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/__init__.py +0 -0
  555. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/agents/__init__.py +0 -0
  556. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/agents/pool.py +0 -0
  557. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/agents/registry.py +0 -0
  558. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/digest.py +0 -0
  559. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/firewall.py +0 -0
  560. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/hooks.py +0 -0
  561. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/ledger_adapter.py +0 -0
  562. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/lockfile.py +0 -0
  563. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/manifest.py +0 -0
  564. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/schemas/0.1/_source.json +0 -0
  565. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/schemas/0.1/audit-event.schema.json +0 -0
  566. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/schemas/0.1/plugin.schema.json +0 -0
  567. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/schemas/0.2/_source.json +0 -0
  568. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/schemas/0.2/audit-event.schema.json +0 -0
  569. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/schemas/0.2/plugin.schema.json +0 -0
  570. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/schemas/0.3/_source.json +0 -0
  571. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/schemas/0.3/audit-event.schema.json +0 -0
  572. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/schemas/0.3/plugin.schema.json +0 -0
  573. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/schemas/0.4/_source.json +0 -0
  574. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/schemas/0.4/audit-event.schema.json +0 -0
  575. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/schemas/0.4/plugin.schema.json +0 -0
  576. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/skills/__init__.py +0 -0
  577. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/skills/docs.py +0 -0
  578. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/skills/executor.py +0 -0
  579. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/skills/keywords.py +0 -0
  580. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/skills/registry.py +0 -0
  581. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/trust_store.py +0 -0
  582. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/plugin/userlevel_registry.py +0 -0
  583. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/pm/__init__.py +0 -0
  584. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/pm/handoff.py +0 -0
  585. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/pm/renderer.py +0 -0
  586. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/profiles/analysis.yaml +0 -0
  587. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/profiles/code.yaml +0 -0
  588. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/profiles/research.yaml +0 -0
  589. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/__init__.py +0 -0
  590. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/anthropic_adapter.py +0 -0
  591. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/base.py +0 -0
  592. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/claude_code_adapter.py +0 -0
  593. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/codex_cli_adapter.py +0 -0
  594. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/codex_cli_stream.py +0 -0
  595. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/copilot_cli_adapter.py +0 -0
  596. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/factory.py +0 -0
  597. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/gemini_cli_adapter.py +0 -0
  598. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/gemini_event_normalizer.py +0 -0
  599. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/gjc_llm_adapter.py +0 -0
  600. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/gjc_rpc_protocol.py +0 -0
  601. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/goose_cli_adapter.py +0 -0
  602. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/hermes_cli_adapter.py +0 -0
  603. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/kiro_adapter.py +0 -0
  604. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/litellm_adapter.py +0 -0
  605. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/opencode_adapter.py +0 -0
  606. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/ourocode_acp_client.py +0 -0
  607. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/ourocode_llm_adapter.py +0 -0
  608. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/pi_llm_adapter.py +0 -0
  609. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/profiles.py +0 -0
  610. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/providers/tool_use_diagnostics.py +0 -0
  611. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/py.typed +0 -0
  612. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/ralph_loop.py +0 -0
  613. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/resilience/__init__.py +0 -0
  614. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/resilience/lateral.py +0 -0
  615. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/resilience/recovery.py +0 -0
  616. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/resilience/stagnation.py +0 -0
  617. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/router/__init__.py +0 -0
  618. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/router/command_parser.py +0 -0
  619. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/router/dispatch.py +0 -0
  620. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/router/registry.py +0 -0
  621. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/router/types.py +0 -0
  622. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/runtime/__init__.py +0 -0
  623. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/runtime/child_env.py +0 -0
  624. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/runtime/controls.py +0 -0
  625. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/runtime/watchdog.py +0 -0
  626. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/runtime_instruction_artifacts.py +0 -0
  627. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/sandbox.py +0 -0
  628. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/skills/__init__.py +0 -0
  629. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/skills/artifacts.py +0 -0
  630. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/strategies/__init__.py +0 -0
  631. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/strategies/devil_advocate.py +0 -0
  632. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/__init__.py +0 -0
  633. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/app.py +0 -0
  634. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/components/__init__.py +0 -0
  635. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/components/agents_panel.py +0 -0
  636. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/components/event_log.py +0 -0
  637. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/components/progress.py +0 -0
  638. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/components/token_tracker.py +0 -0
  639. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/events.py +0 -0
  640. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/screens/__init__.py +0 -0
  641. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/screens/confirm_rewind.py +0 -0
  642. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/screens/dashboard.py +0 -0
  643. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/screens/dashboard_v2.py +0 -0
  644. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/screens/dashboard_v3.py +0 -0
  645. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/screens/debug.py +0 -0
  646. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/screens/execution.py +0 -0
  647. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/screens/hud_dashboard.py +0 -0
  648. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/screens/lineage_detail.py +0 -0
  649. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/screens/lineage_selector.py +0 -0
  650. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/screens/logs.py +0 -0
  651. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/screens/session_selector.py +0 -0
  652. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/widgets/__init__.py +0 -0
  653. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/widgets/ac_progress.py +0 -0
  654. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/widgets/ac_tree.py +0 -0
  655. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/widgets/agent_activity.py +0 -0
  656. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/widgets/cost_tracker.py +0 -0
  657. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/widgets/drift_meter.py +0 -0
  658. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/widgets/lineage_tree.py +0 -0
  659. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/widgets/parallel_graph.py +0 -0
  660. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/tui/widgets/phase_progress.py +0 -0
  661. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/verification/__init__.py +0 -0
  662. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/verification/extractor.py +0 -0
  663. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/verification/models.py +0 -0
  664. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/src/ouroboros/verification/verifier.py +0 -0
  665. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/__init__.py +0 -0
  666. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/_envelope_wiring.py +0 -0
  667. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/canonical/README.md +0 -0
  668. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/canonical/__init__.py +0 -0
  669. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/canonical/cli-todo/expected.yaml +0 -0
  670. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/canonical/cli-todo/goal.txt +0 -0
  671. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/canonical/conftest.py +0 -0
  672. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/canonical/test_canonical.py +0 -0
  673. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/canonical/test_conftest.py +0 -0
  674. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/conformance/__init__.py +0 -0
  675. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/conformance/workflow_ir/__init__.py +0 -0
  676. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/conformance/workflow_ir/fixtures.py +0 -0
  677. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/conformance/workflow_ir/test_negative_fixtures.py +0 -0
  678. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/conformance/workflow_ir/test_plugin_firewall_contract.py +0 -0
  679. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/conformance/workflow_ir/test_positive_fixtures.py +0 -0
  680. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/conftest.py +0 -0
  681. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/e2e/__init__.py +0 -0
  682. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/e2e/conftest.py +0 -0
  683. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/e2e/mcp_bridge_test_config.yaml +0 -0
  684. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/e2e/test_cli_commands.py +0 -0
  685. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/e2e/test_full_workflow.py +0 -0
  686. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/e2e/test_session_persistence.py +0 -0
  687. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/fixtures/fake_ourocode_acp.py +0 -0
  688. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/fixtures/plugins-fixture/README.md +0 -0
  689. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/fixtures/plugins-fixture/plugins/github-pr-ops/github_pr_ops/__init__.py +0 -0
  690. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/fixtures/plugins-fixture/plugins/github-pr-ops/github_pr_ops/__main__.py +0 -0
  691. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/fixtures/plugins-fixture/plugins/github-pr-ops/ouroboros.plugin.json +0 -0
  692. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/fixtures/projection/mechanical_evaluation_events.json +0 -0
  693. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/fixtures/router/skills/frontmatter-body/run/SKILL.md +0 -0
  694. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/fixtures/seeds/mechanical-eval-minimal.yaml +0 -0
  695. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/__init__.py +0 -0
  696. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/auto/__init__.py +0 -0
  697. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/auto/test_dispatch_to_seed_e2e.py +0 -0
  698. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/auto/test_domain_profile_plurality.py +0 -0
  699. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/auto/test_end_to_end_product.py +0 -0
  700. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/auto/test_interview_deadline_partial_product_regression.py +0 -0
  701. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/auto/test_status_unified.py +0 -0
  702. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/conftest.py +0 -0
  703. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/mcp/__init__.py +0 -0
  704. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/mcp/bridge/__init__.py +0 -0
  705. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/mcp/bridge/test_bridge_server_to_server.py +0 -0
  706. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/mcp/conftest.py +0 -0
  707. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/mcp/test_client_adapter.py +0 -0
  708. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/mcp/test_client_manager.py +0 -0
  709. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/mcp/test_server_adapter.py +0 -0
  710. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/orchestrator/__init__.py +0 -0
  711. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/orchestrator/test_agent_process_three_surface_acceptance.py +0 -0
  712. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/plugin/__init__.py +0 -0
  713. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/plugin/test_e2e.py +0 -0
  714. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/plugin/test_orchestration.py +0 -0
  715. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/plugin/test_wheel_packaging.py +0 -0
  716. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/test_cancel_subprocess_termination.py +0 -0
  717. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/test_codex_cli_passthrough_smoke.py +0 -0
  718. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/test_codex_skill_fallback.py +0 -0
  719. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/test_codex_skill_smoke.py +0 -0
  720. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/test_copilot_cli_smoke.py +0 -0
  721. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/test_entry_point.py +0 -0
  722. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/test_ir_projection_consistency.py +0 -0
  723. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/test_mechanical_eval_projection.py +0 -0
  724. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/integration/test_pi_native_smoke.py +0 -0
  725. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/test-execution-plan.md +0 -0
  726. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/__init__.py +0 -0
  727. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/agents/__init__.py +0 -0
  728. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/agents/test_loader.py +0 -0
  729. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/conftest.py +0 -0
  730. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_821_acceptance_matrix.py +0 -0
  731. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_adapters_client_gates.py +0 -0
  732. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_adapters_ralph_poller.py +0 -0
  733. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_answer_refiner_adapter.py +0 -0
  734. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_answer_source_log.py +0 -0
  735. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_answerer_via_domain_profile.py +0 -0
  736. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_auto_fill.py +0 -0
  737. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_auto_policies.py +0 -0
  738. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_auto_worktree.py +0 -0
  739. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_blocker_attribution.py +0 -0
  740. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_checkpoint_commits.py +0 -0
  741. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_cli_progress.py +0 -0
  742. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_domain_inference.py +0 -0
  743. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_domain_profile_coding_parity.py +0 -0
  744. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_domain_profile_contracts.py +0 -0
  745. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_execution_acceptance.py +0 -0
  746. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_handoff_contract.py +0 -0
  747. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_intent_guard.py +0 -0
  748. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_interview_answer_refiner.py +0 -0
  749. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_interview_driver_event_store_wiring.py +0 -0
  750. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_interview_pipeline.py +0 -0
  751. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_interview_stagnation_lateral.py +0 -0
  752. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_lateral_routing_safe_default.py +0 -0
  753. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_ledger_committed_decisions.py +0 -0
  754. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_ledger_grading_answerer.py +0 -0
  755. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_ledger_seed.py +0 -0
  756. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_deadline.py +0 -0
  757. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_defaulted_sections_surface.py +0 -0
  758. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_domain_profile.py +0 -0
  759. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_evaluate.py +0 -0
  760. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_interview_deadline_closure.py +0 -0
  761. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_interview_observer_drain.py +0 -0
  762. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_lateral.py +0 -0
  763. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_oscillation_lateral.py +0 -0
  764. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_partial_product_terminal.py +0 -0
  765. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_provenance.py +0 -0
  766. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_ralph_handoff.py +0 -0
  767. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_runtime_probe_envelope.py +0 -0
  768. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_task_class_envelope.py +0 -0
  769. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_pipeline_watchdog_integration.py +0 -0
  770. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_progress.py +0 -0
  771. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_recovery_plan.py +0 -0
  772. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_research_profile.py +0 -0
  773. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_run_starter_idempotency.py +0 -0
  774. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_runtime_routing.py +0 -0
  775. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_runtime_semantics.py +0 -0
  776. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_safe_default_lateral_escalation.py +0 -0
  777. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_safe_default_observability.py +0 -0
  778. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_safe_defaults_domain_profile.py +0 -0
  779. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_safe_defaults_freedom_policy.py +0 -0
  780. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_safe_defaults_prompt_non_goals.py +0 -0
  781. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_seed_repairer_bounded.py +0 -0
  782. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_state.py +0 -0
  783. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_state_provenance.py +0 -0
  784. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_stop_reason_code.py +0 -0
  785. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_surface.py +0 -0
  786. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_task_class_application.py +0 -0
  787. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_task_classes.py +0 -0
  788. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/auto/test_user_preference_and_floor.py +0 -0
  789. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/backends/test_model_catalog.py +0 -0
  790. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/__init__.py +0 -0
  791. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_ambiguity.py +0 -0
  792. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_brownfield.py +0 -0
  793. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_classifier_context.py +0 -0
  794. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_decide_later_items.py +0 -0
  795. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_explore.py +0 -0
  796. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_interview.py +0 -0
  797. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_interview_async_io.py +0 -0
  798. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_interview_no_web_search_hint.py +0 -0
  799. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_interview_research_prefix.py +0 -0
  800. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_interview_start_persist_failure.py +0 -0
  801. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_pm_completion.py +0 -0
  802. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_pm_document_generator.py +0 -0
  803. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_pm_document_writer.py +0 -0
  804. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_pm_interview.py +0 -0
  805. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_pm_interview_brownfield_db.py +0 -0
  806. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_pm_seed_ac12.py +0 -0
  807. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_pm_seed_save.py +0 -0
  808. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_question_classifier.py +0 -0
  809. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/bigbang/test_seed_generator.py +0 -0
  810. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/__init__.py +0 -0
  811. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/commands/test_config_bare_dispatch.py +0 -0
  812. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/commands/test_tui_command.py +0 -0
  813. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/conftest.py +0 -0
  814. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/formatters/__init__.py +0 -0
  815. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/formatters/test_console.py +0 -0
  816. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/formatters/test_panels.py +0 -0
  817. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/formatters/test_progress.py +0 -0
  818. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/formatters/test_prompting.py +0 -0
  819. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/formatters/test_tables.py +0 -0
  820. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/formatters/test_workflow_display.py +0 -0
  821. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_auto_command.py +0 -0
  822. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_auto_domain_activation.py +0 -0
  823. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_auto_provenance.py +0 -0
  824. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_auto_runtime_dispatch.py +0 -0
  825. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_bridge_plugin_hardening.py +0 -0
  826. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_bridge_plugin_lifecycle.py +0 -0
  827. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_cancel.py +0 -0
  828. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_codex_command.py +0 -0
  829. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_config.py +0 -0
  830. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_debug_tool_started_callbacks.py +0 -0
  831. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_detached_auto_wait_command.py +0 -0
  832. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_detect_allowed_tools_wiring.py +0 -0
  833. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_dispatch_command.py +0 -0
  834. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_doc_commands.py +0 -0
  835. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_init_hitl.py +0 -0
  836. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_init_pm_seed_detection.py +0 -0
  837. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_init_runtime.py +0 -0
  838. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_job_command.py +0 -0
  839. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_jsonc.py +0 -0
  840. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_main.py +0 -0
  841. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_mcp_doctor.py +0 -0
  842. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_mcp_nested_guard.py +0 -0
  843. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_mcp_pid_registry.py +0 -0
  844. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_mcp_shell_env.py +0 -0
  845. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_mcp_shutdown_drain.py +0 -0
  846. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_mcp_startup_cleanup.py +0 -0
  847. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_mcp_validate_transport_stderr.py +0 -0
  848. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_opencode_config.py +0 -0
  849. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_plugin_command.py +0 -0
  850. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_plugin_command_mutating.py +0 -0
  851. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_plugin_dispatch.py +0 -0
  852. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_pm.py +0 -0
  853. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_pm_brownfield.py +0 -0
  854. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_pm_completion.py +0 -0
  855. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_pm_interactive_logging.py +0 -0
  856. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_pm_missing_litellm.py +0 -0
  857. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_pm_overwrite.py +0 -0
  858. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_pm_runtime_adapter.py +0 -0
  859. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_pm_select_repos.py +0 -0
  860. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_resume.py +0 -0
  861. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_setup.py +0 -0
  862. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_status.py +0 -0
  863. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_status_run.py +0 -0
  864. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/cli/test_uninstall.py +0 -0
  865. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/codex/test_cli_policy.py +0 -0
  866. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/config/__init__.py +0 -0
  867. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/config/test_loader.py +0 -0
  868. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/config/test_loader_env.py +0 -0
  869. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/config/test_models.py +0 -0
  870. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/config_tui/__init__.py +0 -0
  871. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/config_tui/test_app.py +0 -0
  872. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/config_tui/test_fields.py +0 -0
  873. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/config_tui/test_launcher.py +0 -0
  874. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/config_tui/test_persistence.py +0 -0
  875. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/copilot/__init__.py +0 -0
  876. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/copilot/test_cli_policy.py +0 -0
  877. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/copilot/test_model_discovery.py +0 -0
  878. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/copilot/test_permissions.py +0 -0
  879. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/__init__.py +0 -0
  880. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_ac_tree.py +0 -0
  881. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_context.py +0 -0
  882. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_control_contract.py +0 -0
  883. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_directive.py +0 -0
  884. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_errors.py +0 -0
  885. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_file_lock.py +0 -0
  886. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_git_workflow.py +0 -0
  887. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_hitl_contract.py +0 -0
  888. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_hitl_resume.py +0 -0
  889. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_hitl_state.py +0 -0
  890. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_initial_context.py +0 -0
  891. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_lineage.py +0 -0
  892. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_ontology_aspect.py +0 -0
  893. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_ontology_questions.py +0 -0
  894. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_project_paths.py +0 -0
  895. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_retry.py +0 -0
  896. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_runtime_transition.py +0 -0
  897. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_security.py +0 -0
  898. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_seed.py +0 -0
  899. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_seed_project_path_callers.py +0 -0
  900. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_ttl_cache.py +0 -0
  901. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_types.py +0 -0
  902. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/core/test_worktree.py +0 -0
  903. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/__init__.py +0 -0
  904. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_artifact_collector_file_prefix.py +0 -0
  905. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_checklist.py +0 -0
  906. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_consensus.py +0 -0
  907. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_detector.py +0 -0
  908. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_json_utils.py +0 -0
  909. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_languages.py +0 -0
  910. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_mechanical.py +0 -0
  911. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_models.py +0 -0
  912. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_pipeline_stage1_reuse.py +0 -0
  913. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_pipeline_trigger_consensus.py +0 -0
  914. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_review_fixes.py +0 -0
  915. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_semantic.py +0 -0
  916. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_trigger.py +0 -0
  917. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_trigger_consensus.py +0 -0
  918. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_verification_artifacts.py +0 -0
  919. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evaluation/test_verification_artifacts_allowed_tools_wiring.py +0 -0
  920. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/events/__init__.py +0 -0
  921. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/events/test_base.py +0 -0
  922. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/events/test_control_events.py +0 -0
  923. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/events/test_hitl_events.py +0 -0
  924. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/events/test_io_events.py +0 -0
  925. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/events/test_io_recorder.py +0 -0
  926. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evolution/test_backend_drift.py +0 -0
  927. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evolution/test_directive_mapping.py +0 -0
  928. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evolution/test_evolve_step_agent_process_integration.py +0 -0
  929. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evolution/test_generation_watchdog.py +0 -0
  930. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evolution/test_material_progress.py +0 -0
  931. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/evolution/test_wonder_scope.py +0 -0
  932. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/harness/__init__.py +0 -0
  933. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/harness/test_claim_term_guard.py +0 -0
  934. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/harness/test_deliver_gate.py +0 -0
  935. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/harness/test_deliver_routing.py +0 -0
  936. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/harness/test_journal_normalizer.py +0 -0
  937. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/harness/test_projection_builder.py +0 -0
  938. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/harness/test_projection_records.py +0 -0
  939. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/harness/test_run_snapshot.py +0 -0
  940. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/hermes/test_artifacts.py +0 -0
  941. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/__init__.py +0 -0
  942. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/bridge/__init__.py +0 -0
  943. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/bridge/test_bridge.py +0 -0
  944. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/bridge/test_config.py +0 -0
  945. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/bridge/test_factory.py +0 -0
  946. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/bridge/test_handler_wiring.py +0 -0
  947. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/bridge/test_stability.py +0 -0
  948. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/client/__init__.py +0 -0
  949. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/client/test_adapter.py +0 -0
  950. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/client/test_adapter_transport_lifecycle.py +0 -0
  951. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/client/test_manager.py +0 -0
  952. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/conftest.py +0 -0
  953. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/resources/test_handlers.py +0 -0
  954. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/server/__init__.py +0 -0
  955. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/server/test_adapter.py +0 -0
  956. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/server/test_adapter_max_turns_envelope_wiring.py +0 -0
  957. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/server/test_security.py +0 -0
  958. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/test_errors.py +0 -0
  959. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/test_job_manager.py +0 -0
  960. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/test_job_manager_drain.py +0 -0
  961. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/test_types.py +0 -0
  962. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/__init__.py +0 -0
  963. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/conftest.py +0 -0
  964. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_footer.py +0 -0
  965. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_handler.py +0 -0
  966. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_handler_completed.py +0 -0
  967. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_handler_cursor_changed.py +0 -0
  968. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_handler_invalid_session.py +0 -0
  969. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_handler_no_execution.py +0 -0
  970. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_handler_waiting.py +0 -0
  971. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_max_nodes.py +0 -0
  972. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_render_depth2.py +0 -0
  973. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_render_depth3.py +0 -0
  974. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_status_icons.py +0 -0
  975. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_truncation.py +0 -0
  976. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_authoring_allowed_tools_wiring.py +0 -0
  977. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_auto_handler_ralph_runtime.py +0 -0
  978. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_auto_handler_resume_lines.py +0 -0
  979. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_auto_interview_construction.py +0 -0
  980. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_bridge_mixin_runtime_context.py +0 -0
  981. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_brownfield_handler.py +0 -0
  982. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_checklist_verify.py +0 -0
  983. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_client_gates.py +0 -0
  984. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_definitions.py +0 -0
  985. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_definitions_runtime_context.py +0 -0
  986. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_evaluate_multi_ac.py +0 -0
  987. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_evolve_checkpoint_commits.py +0 -0
  988. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_evolve_step_bridge_aware.py +0 -0
  989. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_execute_seed_path_resolution.py +0 -0
  990. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_generate_seed_force_flag.py +0 -0
  991. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_handler_subagent_wiring.py +0 -0
  992. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_interview_allowed_tools_wiring.py +0 -0
  993. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_interview_completion_signal_prefix_guard.py +0 -0
  994. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_interview_done_streak.py +0 -0
  995. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_interview_intent_guard.py +0 -0
  996. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_interview_lateral_review_advisory.py +0 -0
  997. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_interview_length_guard_envelope.py +0 -0
  998. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_interview_persists_session_on_failure.py +0 -0
  999. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_interview_reopen_seed_ready.py +0 -0
  1000. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_interview_response_diagnostics.py +0 -0
  1001. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_interview_strict_mcp_config_wiring.py +0 -0
  1002. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_job_instance_cancel_keys.py +0 -0
  1003. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_job_invalid_arguments.py +0 -0
  1004. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_lateral_think_handler.py +0 -0
  1005. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_mcp_manager_wiring.py +0 -0
  1006. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_pm_handler.py +0 -0
  1007. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_pm_handler_allowed_tools_wiring.py +0 -0
  1008. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_pm_handler_pending_reframe.py +0 -0
  1009. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_qa_allowed_tools_wiring.py +0 -0
  1010. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_qa_parser.py +0 -0
  1011. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_ralph_handler.py +0 -0
  1012. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_registry.py +0 -0
  1013. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_round5_fixes.py +0 -0
  1014. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_start_auto.py +0 -0
  1015. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_start_evaluate.py +0 -0
  1016. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_start_execute_seed_idempotency.py +0 -0
  1017. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_subagent.py +0 -0
  1018. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/mcp/tools/test_unstuck_bridge_aware.py +0 -0
  1019. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/observability/__init__.py +0 -0
  1020. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/observability/test_drift.py +0 -0
  1021. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/observability/test_logging.py +0 -0
  1022. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/observability/test_retrospective.py +0 -0
  1023. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/__init__.py +0 -0
  1024. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_adapter.py +0 -0
  1025. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_agent_process.py +0 -0
  1026. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_agent_runtime_context.py +0 -0
  1027. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_backend_limits.py +0 -0
  1028. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_baseline_metrics.py +0 -0
  1029. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_baseline_metrics_capture.py +0 -0
  1030. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_baseline_metrics_format.py +0 -0
  1031. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_capabilities.py +0 -0
  1032. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_codex_cli_runtime.py +0 -0
  1033. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_codex_recursion_guard.py +0 -0
  1034. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_command_dispatcher.py +0 -0
  1035. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_context_governor.py +0 -0
  1036. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_control_bus.py +0 -0
  1037. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_control_plane.py +0 -0
  1038. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_coordinator.py +0 -0
  1039. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_copilot_cli_runtime.py +0 -0
  1040. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_dead_router_removed.py +0 -0
  1041. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_decomposition_params.py +0 -0
  1042. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_dependency_analyzer.py +0 -0
  1043. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_effort_routed_event.py +0 -0
  1044. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_effort_routing.py +0 -0
  1045. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_events.py +0 -0
  1046. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_evidence_schema.py +0 -0
  1047. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_execution_runtime_scope.py +0 -0
  1048. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_execution_strategy.py +0 -0
  1049. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_failure_taxonomy.py +0 -0
  1050. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_frugality_proof.py +0 -0
  1051. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_gemini_cli_runtime.py +0 -0
  1052. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_gjc_runtime.py +0 -0
  1053. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_goose_runtime.py +0 -0
  1054. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_hermes_runtime.py +0 -0
  1055. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_inflight_cancellation.py +0 -0
  1056. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_level_context.py +0 -0
  1057. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_mcp_config.py +0 -0
  1058. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_mcp_tools.py +0 -0
  1059. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_opencode_runtime.py +0 -0
  1060. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_parallel_executor.py +0 -0
  1061. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_parallel_executor_atomic_judgment.py +0 -0
  1062. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_parallel_executor_recursive_depth.py +0 -0
  1063. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_parallel_executor_retry_resume.py +0 -0
  1064. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_phase_wrappers.py +0 -0
  1065. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_pi_runtime.py +0 -0
  1066. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_policy.py +0 -0
  1067. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_profile_loader.py +0 -0
  1068. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_profile_strategy.py +0 -0
  1069. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_rate_limit.py +0 -0
  1070. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_reasoning_effort_routing.py +0 -0
  1071. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_rfc_v2_integration.py +0 -0
  1072. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_runner.py +0 -0
  1073. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_runner_allowed_tools_wiring.py +0 -0
  1074. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_runner_cancellation.py +0 -0
  1075. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_runtime_error.py +0 -0
  1076. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_runtime_evidence.py +0 -0
  1077. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_runtime_factory.py +0 -0
  1078. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_runtime_message_projection.py +0 -0
  1079. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_runtime_param_negotiation.py +0 -0
  1080. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_sandbox_class.py +0 -0
  1081. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_seed_prompt.py +0 -0
  1082. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_session.py +0 -0
  1083. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_skill_tool_mapping.py +0 -0
  1084. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_stage_resolution.py +0 -0
  1085. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_traceguard_benchmark_capture.py +0 -0
  1086. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_verifier.py +0 -0
  1087. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_workflow_ir.py +0 -0
  1088. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_workflow_ir_adapter.py +0 -0
  1089. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_workflow_ir_plugin_adapter.py +0 -0
  1090. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_workflow_lifecycle.py +0 -0
  1091. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_workflow_lifecycle_conformance.py +0 -0
  1092. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_workflow_lifecycle_events.py +0 -0
  1093. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_workflow_projection_boundary.py +0 -0
  1094. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/test_workflow_state.py +0 -0
  1095. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/orchestrator/workflow_ir_conformance_fixtures.py +0 -0
  1096. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/persistence/__init__.py +0 -0
  1097. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/persistence/test_brownfield_store.py +0 -0
  1098. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/persistence/test_checkpoint.py +0 -0
  1099. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/persistence/test_event_store.py +0 -0
  1100. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/persistence/test_schema.py +0 -0
  1101. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/persistence/test_uow.py +0 -0
  1102. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/__init__.py +0 -0
  1103. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/agents/__init__.py +0 -0
  1104. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/agents/test_registry.py +0 -0
  1105. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/skills/__init__.py +0 -0
  1106. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/skills/test_keywords.py +0 -0
  1107. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/skills/test_registry.py +0 -0
  1108. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_digest.py +0 -0
  1109. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_firewall.py +0 -0
  1110. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_firewall_tool_call_dispatch.py +0 -0
  1111. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_hook_permission_scopes.py +0 -0
  1112. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_hooks_contract.py +0 -0
  1113. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_ledger_adapter.py +0 -0
  1114. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_lifecycle_observability.py +0 -0
  1115. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_lockfile.py +0 -0
  1116. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_manifest.py +0 -0
  1117. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_manifest_descriptor.py +0 -0
  1118. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_manifest_hook_validation.py +0 -0
  1119. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_manifest_schema_0_3.py +0 -0
  1120. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_manifest_schema_0_4.py +0 -0
  1121. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_trust_store.py +0 -0
  1122. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/plugin/test_userlevel_registry.py +0 -0
  1123. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/pm/__init__.py +0 -0
  1124. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/pm/test_renderer.py +0 -0
  1125. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/__init__.py +0 -0
  1126. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_anthropic_adapter_io_recorder.py +0 -0
  1127. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_base.py +0 -0
  1128. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_claude_code_adapter.py +0 -0
  1129. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_codex_cli_adapter.py +0 -0
  1130. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_copilot_cli_adapter.py +0 -0
  1131. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_factory.py +0 -0
  1132. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_factory_copilot.py +0 -0
  1133. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_gemini_cli_adapter.py +0 -0
  1134. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_gjc_llm_adapter.py +0 -0
  1135. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_goose_cli_adapter.py +0 -0
  1136. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_hermes_cli_adapter.py +0 -0
  1137. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_litellm_adapter.py +0 -0
  1138. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_litellm_adapter_io_recorder.py +0 -0
  1139. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_opencode_adapter.py +0 -0
  1140. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_ourocode_acp_client.py +0 -0
  1141. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_ourocode_llm_adapter.py +0 -0
  1142. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_pi_llm_adapter.py +0 -0
  1143. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_profiles.py +0 -0
  1144. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_public_exports.py +0 -0
  1145. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/providers/test_tool_use_diagnostics.py +0 -0
  1146. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/resilience/__init__.py +0 -0
  1147. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/resilience/test_lateral.py +0 -0
  1148. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/resilience/test_recovery.py +0 -0
  1149. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/resilience/test_stagnation.py +0 -0
  1150. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/__init__.py +0 -0
  1151. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_command_parser.py +0 -0
  1152. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_dispatch.py +0 -0
  1153. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_dispatch_result_shapes.py +0 -0
  1154. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_extract_first_argument.py +0 -0
  1155. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_invalid_dispatch_input_types.py +0 -0
  1156. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_malformed_unknown_dispatch_errors.py +0 -0
  1157. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_not_handled_resolution.py +0 -0
  1158. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_packaged_auto_dispatch.py +0 -0
  1159. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_registry.py +0 -0
  1160. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_repository_dispatch_guard.py +0 -0
  1161. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_router_resolution_pipeline.py +0 -0
  1162. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_typed_frontmatter_fields.py +0 -0
  1163. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/router/test_valid_dispatch_normalization.py +0 -0
  1164. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/runtime/__init__.py +0 -0
  1165. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/runtime/test_controls.py +0 -0
  1166. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/runtime/test_watchdog.py +0 -0
  1167. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/scripts/__init__.py +0 -0
  1168. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/scripts/test_check_auto_boundary.py +0 -0
  1169. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/scripts/test_check_auto_perf_budget.py +0 -0
  1170. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/scripts/test_check_max_turns_envelope.py +0 -0
  1171. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/scripts/test_claude_hook_settings.py +0 -0
  1172. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/scripts/test_hook_script_stdio.py +0 -0
  1173. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/scripts/test_install_runtime_selection.py +0 -0
  1174. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/scripts/test_keyword_detector.py +0 -0
  1175. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/scripts/test_ralph_shell_project_dir.py +0 -0
  1176. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/scripts/test_session_start.py +0 -0
  1177. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/scripts/test_sync_plugin_version.py +0 -0
  1178. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/scripts/test_version_check.py +0 -0
  1179. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/skills/test_skill_artifacts.py +0 -0
  1180. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_artifact_collector.py +0 -0
  1181. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_codex_artifacts.py +0 -0
  1182. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_convergence.py +0 -0
  1183. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_dashboard.py +0 -0
  1184. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_dependencies_configured.py +0 -0
  1185. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_detached_auto_docs.py +0 -0
  1186. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_evolve_rewind.py +0 -0
  1187. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_evolve_step.py +0 -0
  1188. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_graceful_shutdown.py +0 -0
  1189. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_kiro_adapters.py +0 -0
  1190. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_lineage.py +0 -0
  1191. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_main_entry_point.py +0 -0
  1192. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_module_structure.py +0 -0
  1193. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_project_initialization.py +0 -0
  1194. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_projector_directives.py +0 -0
  1195. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_projector_rewind.py +0 -0
  1196. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_ralph_loop_budget.py +0 -0
  1197. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_ralph_loop_progress.py +0 -0
  1198. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_ralph_loop_timeout.py +0 -0
  1199. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_ralph_parser.py +0 -0
  1200. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_ralph_rewind.py +0 -0
  1201. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_ralph_shell.py +0 -0
  1202. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_regression.py +0 -0
  1203. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_runtime_instruction_artifacts.py +0 -0
  1204. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_runtime_skill_capability_docs.py +0 -0
  1205. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_tooling_configuration.py +0 -0
  1206. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/test_verification.py +0 -0
  1207. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/tui/__init__.py +0 -0
  1208. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/tui/test_app.py +0 -0
  1209. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/tui/test_cancelled_display.py +0 -0
  1210. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/tui/test_events.py +0 -0
  1211. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/tui/test_lineage_viewer.py +0 -0
  1212. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/tui/test_screens.py +0 -0
  1213. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/tui/test_session_selector_replay.py +0 -0
  1214. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tests/unit/tui/test_widgets.py +0 -0
  1215. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/tools/sync_github_project.py +0 -0
  1216. {ouroboros_ai-0.43.2.dev2 → ouroboros_ai-0.43.3.dev2}/uv.lock +0 -0
@@ -10,7 +10,7 @@
10
10
  {
11
11
  "name": "ouroboros",
12
12
  "description": "Transform vague ideas into validated seed specifications through Socratic questioning and ontological analysis",
13
- "version": "0.43.2",
13
+ "version": "0.43.3",
14
14
  "author": {
15
15
  "name": "Q00",
16
16
  "email": "jqyu.lee@gmail.com"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ouroboros",
3
- "version": "0.43.2",
3
+ "version": "0.43.3",
4
4
  "description": "Self-improving AI workflow system. Crystallize requirements before execution with Socratic interview, ambiguity scoring, and 3-stage evaluation.",
5
5
  "author": {
6
6
  "name": "Q00",
@@ -171,10 +171,13 @@ MCP (question generator) ←→ You (answerer + router) ←→ User (human judgm
171
171
  it must not hide, replace, or delay the question itself.
172
172
 
173
173
  Run the advisory lanes in parallel using your host's native subagent
174
- primitive. In Claude Code that primitive is the **Task/Agent tool** — spawn
175
- one subagent per lane in a single batch so they run concurrently. Only fall
176
- back to the request's `sequential_fallback` semantics when the host has no
177
- subagent primitive at all. The standard lanes are:
174
+ mechanism. In Claude Code that mechanism is the **Task/Agent tool** — spawn
175
+ one subagent per lane in a single batch so they run concurrently. In Codex,
176
+ explicitly start a native subagent workflow in natural language: spawn one
177
+ Codex subagent per lane, pass that lane's payload prompt, wait for all
178
+ agents, then synthesize. Only fall back to the request's
179
+ `sequential_fallback` semantics when the host has no subagent mechanism at
180
+ all. The standard lanes are:
178
181
  - `code_context` — inspect repo-local facts and reuse
179
182
  `meta.code_investigation_request` when present.
180
183
  - `web_context` — browse/search only when current external facts genuinely
@@ -193,9 +196,11 @@ MCP (question generator) ←→ You (answerer + router) ←→ User (human judgm
193
196
  When `meta.question_advisory_subagents` is present you MUST fan out: treat
194
197
  each entry as a spawn-ready advisory payload with `title`, `agent`, `prompt`,
195
198
  and `context`, and dispatch every payload through your host's native subagent
196
- primitive (Claude Code → one Task/Agent call per payload, all in one parallel
197
- batch) instead of reconstructing prompts from prose. This is required
198
- regardless of dispatch mode: the payloads themselves are the spawn signal.
199
+ mechanism (Claude Code → one Task/Agent call per payload in one parallel
200
+ batch; Codex explicitly spawn one Codex subagent per payload, wait for all
201
+ results, then synthesize) instead of reconstructing prompts from prose. This
202
+ is required regardless of dispatch mode: the payloads themselves are the
203
+ spawn signal.
199
204
  Treat `meta.question_advisory_host_action=spawn_subagents`, when present, as
200
205
  a reinforcing cue for host-driven runtimes such as Codex or Claude Code, not
201
206
  as a prerequisite. The only time you skip spawning is when the host has no
@@ -151,7 +151,9 @@ Driving fan-out from this dispatch block — instead of from the joined human-di
151
151
 
152
152
  1. Locate the dispatch block at the end of the MCP response's `content` text — the substring between `<!-- ouroboros-lateral-inline-dispatch-v1 base64\n` and `\n-->`. Base64-decode the captured body, then `JSON.parse` to get `{dispatch_mode, persona_count, payloads}`. If the block is missing (older handler that pre-dates the v1 sentinel), fall through to the constrained-runtime path below — *do not* split the joined text.
153
153
  2. Surface a short "what the lateral toolkit suggests" header to the user, with the markdown above the dispatch block, so the MCP call is visible as a real product surface, not silent.
154
- 3. In a **single message**, emit N parallel `Task` calls (`general-purpose` subagent) — one per entry in `payloads`. Each Task receives the payload's `prompt` verbatim plus the payload's `context` so the persona is grounded. Strict isolation per Task. The user sees "Running N agents…".
154
+ 3. Spawn N persona subagents in parallel — one per entry in `payloads` — using your host's native subagent mechanism. Each child receives the payload's `prompt` verbatim plus the payload's `context` so the persona is grounded, with strict isolation per child. The user sees "Running N agents…".
155
+ - **Claude Code** → emit N `Task` calls (`general-purpose` subagent) in a **single message** so they run concurrently.
156
+ - **Codex** → Codex subagents are triggered by explicit natural-language delegation, not a callable tool name (do NOT call `multi_agent_v1.spawn_agent` — it does not exist). In one turn, explicitly spawn one Codex subagent per payload, hand each child its payload `prompt` + `context`, wait for all children, then continue.
155
157
  4. Wait for all N to return.
156
158
  5. (Optional) **Round 2 cross-attack** — only if Round 1 answers diverge meaningfully. Dispatch a second N-fan-out where each persona receives short summaries of the other answers and is asked: "Identify one weakness in each. ≤200 words." Skip if Round 1 already converges.
157
159
  6. Synthesize per the **Synthesize** block below.
@@ -226,8 +228,9 @@ with 2 tables, you haven't found the core feature yet.
226
228
  followed by hidden <!-- ouroboros-lateral-inline-dispatch-v1 base64
227
229
  <base64 body> --> sentinel block]
228
230
  [Extract via the sentinel; base64-decode then JSON.parse → payloads[]]
229
- [Single message: 5 parallel Task calls — one per payloads[] entry,
230
- each Task receives payload.prompt + payload.context verbatim;
231
+ [Spawn 5 parallel persona subagents — one per payloads[] entry — via the
232
+ host's native mechanism (Claude: Task calls; Codex: explicit NL delegation);
233
+ each child receives payload.prompt + payload.context verbatim;
231
234
  the visible markdown is shown to the user as the lateral scaffold]
232
235
  [User sees "Running 5 agents…"]
233
236
  [Round 1 returns]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ouroboros-ai
3
- Version: 0.43.2.dev2
3
+ Version: 0.43.3.dev2
4
4
  Summary: Specification-first workflow engine for AI coding agents. Works with Claude Code and Codex CLI.
5
5
  Author-email: Q00 <jqyu.lee@gmail.com>
6
6
  License-File: LICENSE
@@ -171,10 +171,13 @@ MCP (question generator) ←→ You (answerer + router) ←→ User (human judgm
171
171
  it must not hide, replace, or delay the question itself.
172
172
 
173
173
  Run the advisory lanes in parallel using your host's native subagent
174
- primitive. In Claude Code that primitive is the **Task/Agent tool** — spawn
175
- one subagent per lane in a single batch so they run concurrently. Only fall
176
- back to the request's `sequential_fallback` semantics when the host has no
177
- subagent primitive at all. The standard lanes are:
174
+ mechanism. In Claude Code that mechanism is the **Task/Agent tool** — spawn
175
+ one subagent per lane in a single batch so they run concurrently. In Codex,
176
+ explicitly start a native subagent workflow in natural language: spawn one
177
+ Codex subagent per lane, pass that lane's payload prompt, wait for all
178
+ agents, then synthesize. Only fall back to the request's
179
+ `sequential_fallback` semantics when the host has no subagent mechanism at
180
+ all. The standard lanes are:
178
181
  - `code_context` — inspect repo-local facts and reuse
179
182
  `meta.code_investigation_request` when present.
180
183
  - `web_context` — browse/search only when current external facts genuinely
@@ -193,9 +196,11 @@ MCP (question generator) ←→ You (answerer + router) ←→ User (human judgm
193
196
  When `meta.question_advisory_subagents` is present you MUST fan out: treat
194
197
  each entry as a spawn-ready advisory payload with `title`, `agent`, `prompt`,
195
198
  and `context`, and dispatch every payload through your host's native subagent
196
- primitive (Claude Code → one Task/Agent call per payload, all in one parallel
197
- batch) instead of reconstructing prompts from prose. This is required
198
- regardless of dispatch mode: the payloads themselves are the spawn signal.
199
+ mechanism (Claude Code → one Task/Agent call per payload in one parallel
200
+ batch; Codex explicitly spawn one Codex subagent per payload, wait for all
201
+ results, then synthesize) instead of reconstructing prompts from prose. This
202
+ is required regardless of dispatch mode: the payloads themselves are the
203
+ spawn signal.
199
204
  Treat `meta.question_advisory_host_action=spawn_subagents`, when present, as
200
205
  a reinforcing cue for host-driven runtimes such as Codex or Claude Code, not
201
206
  as a prerequisite. The only time you skip spawning is when the host has no
@@ -282,7 +282,7 @@ A backup will be created: CLAUDE.md.bak
282
282
  **If "Preview first", show:**
283
283
  ````markdown
284
284
  <!-- ooo:START -->
285
- <!-- ooo:VERSION:0.43.2 -->
285
+ <!-- ooo:VERSION:0.43.3 -->
286
286
  # Ouroboros — Specification-First AI Development
287
287
 
288
288
  > Before telling AI what to build, define what should be built.
@@ -151,7 +151,9 @@ Driving fan-out from this dispatch block — instead of from the joined human-di
151
151
 
152
152
  1. Locate the dispatch block at the end of the MCP response's `content` text — the substring between `<!-- ouroboros-lateral-inline-dispatch-v1 base64\n` and `\n-->`. Base64-decode the captured body, then `JSON.parse` to get `{dispatch_mode, persona_count, payloads}`. If the block is missing (older handler that pre-dates the v1 sentinel), fall through to the constrained-runtime path below — *do not* split the joined text.
153
153
  2. Surface a short "what the lateral toolkit suggests" header to the user, with the markdown above the dispatch block, so the MCP call is visible as a real product surface, not silent.
154
- 3. In a **single message**, emit N parallel `Task` calls (`general-purpose` subagent) — one per entry in `payloads`. Each Task receives the payload's `prompt` verbatim plus the payload's `context` so the persona is grounded. Strict isolation per Task. The user sees "Running N agents…".
154
+ 3. Spawn N persona subagents in parallel — one per entry in `payloads` — using your host's native subagent mechanism. Each child receives the payload's `prompt` verbatim plus the payload's `context` so the persona is grounded, with strict isolation per child. The user sees "Running N agents…".
155
+ - **Claude Code** → emit N `Task` calls (`general-purpose` subagent) in a **single message** so they run concurrently.
156
+ - **Codex** → Codex subagents are triggered by explicit natural-language delegation, not a callable tool name (do NOT call `multi_agent_v1.spawn_agent` — it does not exist). In one turn, explicitly spawn one Codex subagent per payload, hand each child its payload `prompt` + `context`, wait for all children, then continue.
155
157
  4. Wait for all N to return.
156
158
  5. (Optional) **Round 2 cross-attack** — only if Round 1 answers diverge meaningfully. Dispatch a second N-fan-out where each persona receives short summaries of the other answers and is asked: "Identify one weakness in each. ≤200 words." Skip if Round 1 already converges.
157
159
  6. Synthesize per the **Synthesize** block below.
@@ -226,8 +228,9 @@ with 2 tables, you haven't found the core feature yet.
226
228
  followed by hidden <!-- ouroboros-lateral-inline-dispatch-v1 base64
227
229
  <base64 body> --> sentinel block]
228
230
  [Extract via the sentinel; base64-decode then JSON.parse → payloads[]]
229
- [Single message: 5 parallel Task calls — one per payloads[] entry,
230
- each Task receives payload.prompt + payload.context verbatim;
231
+ [Spawn 5 parallel persona subagents — one per payloads[] entry — via the
232
+ host's native mechanism (Claude: Task calls; Codex: explicit NL delegation);
233
+ each child receives payload.prompt + payload.context verbatim;
231
234
  the visible markdown is shown to the user as the lateral scaffold]
232
235
  [User sees "Running 5 agents…"]
233
236
  [Round 1 returns]
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.43.2.dev2'
22
- __version_tuple__ = version_tuple = (0, 43, 2, 'dev2')
21
+ __version__ = version = '0.43.3.dev2'
22
+ __version_tuple__ = version_tuple = (0, 43, 3, 'dev2')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -5,6 +5,7 @@ from ouroboros.backends.capabilities import (
5
5
  RuntimeSubagentOrchestrationContract,
6
6
  SkillExecutionCapability,
7
7
  SubagentDispatchMode,
8
+ SubagentSpawnTriggerMechanism,
8
9
  backend_supports_tool_envelope,
9
10
  build_runtime_subagent_orchestration_contract,
10
11
  get_backend_capability,
@@ -25,6 +26,7 @@ __all__ = [
25
26
  "RuntimeSubagentOrchestrationContract",
26
27
  "SkillExecutionCapability",
27
28
  "SubagentDispatchMode",
29
+ "SubagentSpawnTriggerMechanism",
28
30
  "backend_supports_tool_envelope",
29
31
  "build_runtime_subagent_orchestration_contract",
30
32
  "get_backend_capability",
@@ -43,6 +43,10 @@ class BackendCapability:
43
43
  # backend can have the latter without the former. Do NOT conflate them.
44
44
  supports_native_parallel_subagents: bool = False
45
45
  supports_host_driven_subagents: bool = False
46
+ host_driven_subagent_mechanism: SubagentSpawnTriggerMechanism | None = None
47
+ host_driven_subagent_requires_explicit_request: bool = False
48
+ host_driven_callable_spawn_tool_name: str | None = None
49
+ prohibited_subagent_spawn_tool_names: tuple[str, ...] = ()
46
50
  skill_execution_capabilities: tuple[SkillExecutionCapability, ...] = ()
47
51
 
48
52
  @property
@@ -73,6 +77,15 @@ class SubagentDispatchMode(StrEnum):
73
77
  SEQUENTIAL = "sequential"
74
78
 
75
79
 
80
+ class SubagentSpawnTriggerMechanism(StrEnum):
81
+ """Concrete runtime mechanism used after dispatch mode is resolved."""
82
+
83
+ PASSIVE_BRIDGE_ENVELOPE = "passive_bridge_envelope"
84
+ CODEX_NATURAL_LANGUAGE_DELEGATION = "codex_natural_language_delegation"
85
+ CLAUDE_TASK_AGENT_TOOL = "claude_task_agent_tool"
86
+ SEQUENTIAL_FALLBACK = "sequential_fallback"
87
+
88
+
76
89
  @dataclass(frozen=True, slots=True)
77
90
  class RuntimeSubagentOrchestrationContract:
78
91
  """Runtime handling contract for MCP subagent directive metadata."""
@@ -80,6 +93,10 @@ class RuntimeSubagentOrchestrationContract:
80
93
  backend_name: str
81
94
  supports_native_parallel_subagents: bool
82
95
  dispatch_mode: str
96
+ spawn_trigger_mechanism: str
97
+ requires_explicit_spawn_request: bool
98
+ callable_spawn_tool_name: str | None
99
+ prohibited_spawn_tool_names: tuple[str, ...]
83
100
  mcp_directive_keys: tuple[str, ...]
84
101
  sequential_fallback: Mapping[str, Any]
85
102
  runtime_instruction_handling: str
@@ -91,6 +108,10 @@ class RuntimeSubagentOrchestrationContract:
91
108
  "backend_name": self.backend_name,
92
109
  "supports_native_parallel_subagents": self.supports_native_parallel_subagents,
93
110
  "dispatch_mode": self.dispatch_mode,
111
+ "spawn_trigger_mechanism": self.spawn_trigger_mechanism,
112
+ "requires_explicit_spawn_request": self.requires_explicit_spawn_request,
113
+ "callable_spawn_tool_name": self.callable_spawn_tool_name,
114
+ "prohibited_spawn_tool_names": list(self.prohibited_spawn_tool_names),
94
115
  "mcp_directive_keys": list(self.mcp_directive_keys),
95
116
  "sequential_fallback": dict(self.sequential_fallback),
96
117
  "runtime_instruction_handling": self.runtime_instruction_handling,
@@ -186,9 +207,12 @@ _CODEX_SKILL_EXECUTION_CAPABILITIES: tuple[SkillExecutionCapability, ...] = (
186
207
  "`question_advisory_dispatch_mode=host_driven` in the result `meta`, or "
187
208
  "the `ouroboros-lateral-inline-dispatch-v1` content block), do NOT just "
188
209
  "read the inline text: spawn one subagent per entry in the payload array "
189
- "(`payloads` or `question_advisory_subagents`) using your native "
190
- "multi-agent spawn primitive (`multi_agent_v1.spawn_agent`), passing "
191
- "each payload's `prompt`. Correlate every child result by the "
210
+ "(`payloads` or `question_advisory_subagents`) using Codex's native "
211
+ "subagent workflow. Codex subagents are triggered by an explicit "
212
+ "natural-language delegation, not by a callable tool name: explicitly "
213
+ "spawn one Codex subagent per payload, give each child the payload's "
214
+ "`prompt`, wait for all children, then summarize the results. Correlate "
215
+ "every child result by the "
192
216
  "payload-specific key named in the result `meta` "
193
217
  "(`result_correlation_key`): lateral payloads use `context.persona`, "
194
218
  "interview advisory payloads use `context.lane_id` (their `persona` is "
@@ -293,6 +317,9 @@ _CAPABILITIES: tuple[BackendCapability, ...] = (
293
317
  cli_config_key="cli_path",
294
318
  skill_execution_capabilities=_CLAUDE_SKILL_EXECUTION_CAPABILITIES,
295
319
  supports_host_driven_subagents=True,
320
+ host_driven_subagent_mechanism=SubagentSpawnTriggerMechanism.CLAUDE_TASK_AGENT_TOOL,
321
+ host_driven_subagent_requires_explicit_request=True,
322
+ host_driven_callable_spawn_tool_name="Task/Agent",
296
323
  ),
297
324
  BackendCapability(
298
325
  name="codex",
@@ -305,6 +332,12 @@ _CAPABILITIES: tuple[BackendCapability, ...] = (
305
332
  cli_config_key="codex_cli_path",
306
333
  skill_execution_capabilities=_CODEX_SKILL_EXECUTION_CAPABILITIES,
307
334
  supports_host_driven_subagents=True,
335
+ host_driven_subagent_mechanism=(
336
+ SubagentSpawnTriggerMechanism.CODEX_NATURAL_LANGUAGE_DELEGATION
337
+ ),
338
+ host_driven_subagent_requires_explicit_request=True,
339
+ host_driven_callable_spawn_tool_name=None,
340
+ prohibited_subagent_spawn_tool_names=("multi_agent_v1.spawn_agent",),
308
341
  ),
309
342
  BackendCapability(
310
343
  name="copilot",
@@ -478,6 +511,10 @@ def build_runtime_subagent_orchestration_contract(
478
511
  dispatch_mode = mode.value
479
512
 
480
513
  if mode is SubagentDispatchMode.PLUGIN_PASSIVE:
514
+ spawn_trigger_mechanism = SubagentSpawnTriggerMechanism.PASSIVE_BRIDGE_ENVELOPE
515
+ requires_explicit_spawn_request = False
516
+ callable_spawn_tool_name = None
517
+ prohibited_spawn_tool_names: tuple[str, ...] = ()
481
518
  runtime_instruction_handling = (
482
519
  "Consume MCP `_subagent` or `_subagents` directive payloads with the "
483
520
  "runtime's native parallel subagent primitive. For OpenCode this "
@@ -486,6 +523,13 @@ def build_runtime_subagent_orchestration_contract(
486
523
  "surfaces."
487
524
  )
488
525
  elif mode is SubagentDispatchMode.HOST_DRIVEN:
526
+ spawn_trigger_mechanism = (
527
+ capability.host_driven_subagent_mechanism
528
+ or SubagentSpawnTriggerMechanism.SEQUENTIAL_FALLBACK
529
+ )
530
+ requires_explicit_spawn_request = capability.host_driven_subagent_requires_explicit_request
531
+ callable_spawn_tool_name = capability.host_driven_callable_spawn_tool_name
532
+ prohibited_spawn_tool_names = capability.prohibited_subagent_spawn_tool_names
489
533
  runtime_instruction_handling = (
490
534
  "This runtime has a native subagent primitive but no passive "
491
535
  "Ouroboros bridge. Consume the inline `host_driven` dispatch payloads "
@@ -496,6 +540,10 @@ def build_runtime_subagent_orchestration_contract(
496
540
  "parallel primitive is available."
497
541
  )
498
542
  else:
543
+ spawn_trigger_mechanism = SubagentSpawnTriggerMechanism.SEQUENTIAL_FALLBACK
544
+ requires_explicit_spawn_request = False
545
+ callable_spawn_tool_name = None
546
+ prohibited_spawn_tool_names = ()
499
547
  runtime_instruction_handling = (
500
548
  "This runtime has no native parallel subagent primitive. Follow the "
501
549
  "MCP `sequential_fallback` contract and process each structured "
@@ -509,6 +557,10 @@ def build_runtime_subagent_orchestration_contract(
509
557
  # report False here and carry their capability via ``dispatch_mode``.
510
558
  supports_native_parallel_subagents=mode is SubagentDispatchMode.PLUGIN_PASSIVE,
511
559
  dispatch_mode=dispatch_mode,
560
+ spawn_trigger_mechanism=spawn_trigger_mechanism.value,
561
+ requires_explicit_spawn_request=requires_explicit_spawn_request,
562
+ callable_spawn_tool_name=callable_spawn_tool_name,
563
+ prohibited_spawn_tool_names=prohibited_spawn_tool_names,
512
564
  mcp_directive_keys=("_subagent", "_subagents"),
513
565
  sequential_fallback=dict(sequential_fallback),
514
566
  runtime_instruction_handling=runtime_instruction_handling,
@@ -642,6 +694,7 @@ __all__ = [
642
694
  "RuntimeSubagentOrchestrationContract",
643
695
  "SkillExecutionCapability",
644
696
  "SubagentDispatchMode",
697
+ "SubagentSpawnTriggerMechanism",
645
698
  "backend_supports_tool_envelope",
646
699
  "build_runtime_subagent_orchestration_contract",
647
700
  "get_backend_capability",
@@ -22,7 +22,7 @@ if TYPE_CHECKING:
22
22
  from ouroboros.cli.formatters import console
23
23
  from ouroboros.cli.formatters.panels import print_error, print_info, print_success, print_warning
24
24
  from ouroboros.config._model_defaults import DEFAULT_SONNET_MODEL
25
- from ouroboros.config.loader import get_max_parallel_workers
25
+ from ouroboros.config.loader import get_config_dir, get_max_parallel_workers, load_config
26
26
  from ouroboros.core.errors import ConfigError
27
27
  from ouroboros.core.project_paths import resolve_path_against_base, resolve_seed_project_path
28
28
  from ouroboros.core.security import InputValidator
@@ -46,6 +46,46 @@ def _resolve_execution_model(runtime_backend: str | None) -> str | None:
46
46
  return None
47
47
 
48
48
 
49
+ def _resolve_run_execute_runtime_backend(
50
+ runtime_backend: str | None,
51
+ *,
52
+ resolve_backend,
53
+ ) -> str:
54
+ """Resolve the agent runtime backend used by ``ooo run`` execution.
55
+
56
+ ``--runtime`` remains an explicit whole-run override. Without it, the CLI
57
+ honors ``orchestrator.runtime_profile.stages.execute`` with the same
58
+ precedence as auto/MCP: execute stage mapping, profile default, then
59
+ ``orchestrator.runtime_backend``.
60
+ """
61
+
62
+ resolved_default = resolve_backend(runtime_backend)
63
+ if runtime_backend is not None:
64
+ return resolved_default
65
+
66
+ from ouroboros.orchestrator_stage import Stage, parse_stage, resolve_runtime_for_stage
67
+
68
+ try:
69
+ profile = load_config().orchestrator.runtime_profile
70
+ except ConfigError:
71
+ if (get_config_dir() / "config.yaml").exists():
72
+ raise
73
+ profile = None
74
+
75
+ if profile is None:
76
+ return resolved_default
77
+
78
+ profile_stages = {parse_stage(key): value for key, value in profile.stages.items()}
79
+ return resolve_backend(
80
+ resolve_runtime_for_stage(
81
+ Stage.EXECUTE,
82
+ stages=profile_stages,
83
+ default=profile.default,
84
+ fallback=resolved_default,
85
+ )
86
+ )
87
+
88
+
49
89
  class _DefaultWorkflowGroup(typer.core.TyperGroup):
50
90
  """TyperGroup that falls back to 'workflow' when no subcommand matches.
51
91
 
@@ -535,7 +575,11 @@ async def _run_orchestrator(
535
575
  project_dir: Optional explicit project directory for seed path resolution.
536
576
  """
537
577
  from ouroboros.core.seed import Seed
538
- from ouroboros.orchestrator import OrchestratorRunner, create_agent_runtime
578
+ from ouroboros.orchestrator import (
579
+ OrchestratorRunner,
580
+ create_agent_runtime,
581
+ resolve_agent_runtime_backend,
582
+ )
539
583
  from ouroboros.orchestrator.session import SessionRepository
540
584
  from ouroboros.persistence.event_store import EventStore
541
585
 
@@ -630,9 +674,16 @@ async def _run_orchestrator(
630
674
  print_info(f"Task worktree: {workspace.worktree_path}")
631
675
  print_info(f"Task branch: {workspace.branch}")
632
676
 
677
+ resolved_runtime_backend = _resolve_run_execute_runtime_backend(
678
+ runtime_backend,
679
+ resolve_backend=resolve_agent_runtime_backend,
680
+ )
681
+ if debug:
682
+ print_info(f"Execution runtime: {resolved_runtime_backend}")
683
+
633
684
  adapter = create_agent_runtime(
634
- backend=runtime_backend,
635
- model=_resolve_execution_model(runtime_backend),
685
+ backend=resolved_runtime_backend,
686
+ model=_resolve_execution_model(resolved_runtime_backend),
636
687
  cwd=Path(workspace.effective_cwd) if workspace else project_dir,
637
688
  )
638
689
  runner = OrchestratorRunner(
@@ -4,6 +4,7 @@ from jsonschema import Draft202012Validator
4
4
  import pytest
5
5
 
6
6
  from ouroboros.backends import (
7
+ SubagentSpawnTriggerMechanism,
7
8
  backend_supports_tool_envelope,
8
9
  build_runtime_subagent_orchestration_contract,
9
10
  get_backend_capability,
@@ -147,12 +148,21 @@ def test_codex_host_driven_subagent_orchestration_is_registry_owned() -> None:
147
148
  assert capability is not None
148
149
  assert capability.supports_host_driven_subagents is True
149
150
  assert capability.supports_native_parallel_subagents is False
151
+ assert (
152
+ capability.host_driven_subagent_mechanism
153
+ is SubagentSpawnTriggerMechanism.CODEX_NATURAL_LANGUAGE_DELEGATION
154
+ )
155
+ assert capability.host_driven_subagent_requires_explicit_request is True
156
+ assert capability.host_driven_callable_spawn_tool_name is None
157
+ assert "multi_agent_v1.spawn_agent" in capability.prohibited_subagent_spawn_tool_names
150
158
 
151
159
  guide = render_backend_skill_capability_guide("codex")
152
160
  assert "### When a skill requires `orchestrate_subagents`" in guide
153
161
  assert "dispatch_mode=host_driven" in guide
154
162
  assert "host_action=spawn_subagents" in guide
155
- assert "multi_agent_v1.spawn_agent" in guide
163
+ assert "native subagent workflow" in guide
164
+ assert "explicit natural-language delegation" in guide
165
+ assert "multi_agent_v1.spawn_agent" not in guide
156
166
  # Correlation keys are payload-specific — the guide must not tell the host to
157
167
  # blanket-correlate advisory results by persona (absent on some lanes).
158
168
  assert "context.persona" in guide
@@ -166,6 +176,12 @@ def test_claude_host_driven_subagent_orchestration_is_registry_owned() -> None:
166
176
  assert capability is not None
167
177
  assert capability.supports_host_driven_subagents is True
168
178
  assert capability.supports_native_parallel_subagents is False
179
+ assert (
180
+ capability.host_driven_subagent_mechanism
181
+ is SubagentSpawnTriggerMechanism.CLAUDE_TASK_AGENT_TOOL
182
+ )
183
+ assert capability.host_driven_subagent_requires_explicit_request is True
184
+ assert capability.host_driven_callable_spawn_tool_name == "Task/Agent"
169
185
  names = {item.name for item in capability.skill_execution_capabilities}
170
186
  assert names == REQUIRED_SKILL_CAPABILITY_NAMES | {"orchestrate_subagents"}
171
187
 
@@ -245,6 +261,45 @@ def test_host_driven_runtime_gets_host_driven_contract(
245
261
  assert "no passive" in contract.runtime_instruction_handling
246
262
 
247
263
 
264
+ def test_codex_subagent_contract_codifies_documented_natural_language_trigger() -> None:
265
+ """Codex subagents are explicit NL delegation, not a callable spawn tool."""
266
+ contract = build_runtime_subagent_orchestration_contract(
267
+ "codex",
268
+ directive_metadata=_LATERAL_PANEL_DIRECTIVE_METADATA,
269
+ )
270
+
271
+ assert contract.dispatch_mode == "host_driven"
272
+ assert (
273
+ contract.spawn_trigger_mechanism
274
+ == SubagentSpawnTriggerMechanism.CODEX_NATURAL_LANGUAGE_DELEGATION.value
275
+ )
276
+ assert contract.requires_explicit_spawn_request is True
277
+ assert contract.callable_spawn_tool_name is None
278
+ assert contract.prohibited_spawn_tool_names == ("multi_agent_v1.spawn_agent",)
279
+
280
+ envelope = contract.to_dict()
281
+ assert envelope["spawn_trigger_mechanism"] == "codex_natural_language_delegation"
282
+ assert envelope["requires_explicit_spawn_request"] is True
283
+ assert envelope["callable_spawn_tool_name"] is None
284
+ assert envelope["prohibited_spawn_tool_names"] == ["multi_agent_v1.spawn_agent"]
285
+
286
+
287
+ def test_claude_subagent_contract_codifies_task_agent_trigger() -> None:
288
+ contract = build_runtime_subagent_orchestration_contract(
289
+ "claude_code",
290
+ directive_metadata=_LATERAL_PANEL_DIRECTIVE_METADATA,
291
+ )
292
+
293
+ assert contract.dispatch_mode == "host_driven"
294
+ assert (
295
+ contract.spawn_trigger_mechanism
296
+ == SubagentSpawnTriggerMechanism.CLAUDE_TASK_AGENT_TOOL.value
297
+ )
298
+ assert contract.requires_explicit_spawn_request is True
299
+ assert contract.callable_spawn_tool_name == "Task/Agent"
300
+ assert contract.prohibited_spawn_tool_names == ()
301
+
302
+
248
303
  @pytest.mark.parametrize("directive_metadata", [{}, {"sequential_fallback": "invalid"}])
249
304
  def test_subagent_orchestration_contract_handles_absent_or_malformed_fallback(
250
305
  directive_metadata: dict[str, object],
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from pathlib import Path
6
6
  from types import SimpleNamespace
7
- from unittest.mock import AsyncMock, MagicMock, patch
7
+ from unittest.mock import ANY, AsyncMock, MagicMock, patch
8
8
 
9
9
  import pytest
10
10
  import typer
@@ -729,7 +729,7 @@ async def test_run_orchestrator_uses_seed_relative_project_dir_for_runtime_and_q
729
729
  mock_event_store_cls.return_value.initialize = AsyncMock()
730
730
  await _run_orchestrator(seed_file)
731
731
 
732
- mock_runtime.assert_called_once_with(backend=None, model=None, cwd=expected_project_dir)
732
+ mock_runtime.assert_called_once_with(backend=ANY, model=ANY, cwd=expected_project_dir)
733
733
  mock_verification.assert_awaited_once_with(
734
734
  "exec-test",
735
735
  "Parallel Execution Verification Report",
@@ -0,0 +1,90 @@
1
+ from __future__ import annotations
2
+
3
+ import pytest
4
+
5
+ from ouroboros.cli.commands import run
6
+ from ouroboros.config.models import OrchestratorConfig, OuroborosConfig, RuntimeProfileConfig
7
+ from ouroboros.core.errors import ConfigError
8
+
9
+
10
+ def test_run_execute_runtime_honors_runtime_profile(monkeypatch) -> None:
11
+ config = OuroborosConfig(
12
+ orchestrator=OrchestratorConfig(
13
+ runtime_backend="claude",
14
+ runtime_profile=RuntimeProfileConfig(stages={"execute": "opencode"}),
15
+ )
16
+ )
17
+ monkeypatch.setattr(run, "load_config", lambda: config)
18
+
19
+ resolved = run._resolve_run_execute_runtime_backend(
20
+ None,
21
+ resolve_backend=lambda value=None: value or "claude",
22
+ )
23
+
24
+ assert resolved == "opencode"
25
+
26
+
27
+ def test_run_explicit_runtime_overrides_runtime_profile(monkeypatch) -> None:
28
+ config = OuroborosConfig(
29
+ orchestrator=OrchestratorConfig(
30
+ runtime_backend="claude",
31
+ runtime_profile=RuntimeProfileConfig(stages={"execute": "opencode"}),
32
+ )
33
+ )
34
+ monkeypatch.setattr(run, "load_config", lambda: config)
35
+
36
+ resolved = run._resolve_run_execute_runtime_backend(
37
+ "codex",
38
+ resolve_backend=lambda value=None: value or "claude",
39
+ )
40
+
41
+ assert resolved == "codex"
42
+
43
+
44
+ def test_run_runtime_profile_config_error_fails_fast_when_config_exists(
45
+ monkeypatch, tmp_path
46
+ ) -> None:
47
+ def _raise() -> OuroborosConfig:
48
+ raise ConfigError("bad runtime_profile")
49
+
50
+ (tmp_path / "config.yaml").write_text("orchestrator: {}\n")
51
+ monkeypatch.setattr(run, "load_config", _raise)
52
+ monkeypatch.setattr(run, "get_config_dir", lambda: tmp_path)
53
+
54
+ with pytest.raises(ConfigError):
55
+ run._resolve_run_execute_runtime_backend(
56
+ None,
57
+ resolve_backend=lambda value=None: value or "claude",
58
+ )
59
+
60
+
61
+ def test_run_execute_runtime_honors_runtime_profile_default(monkeypatch) -> None:
62
+ config = OuroborosConfig(
63
+ orchestrator=OrchestratorConfig(
64
+ runtime_backend="claude",
65
+ runtime_profile=RuntimeProfileConfig(default="opencode"),
66
+ )
67
+ )
68
+ monkeypatch.setattr(run, "load_config", lambda: config)
69
+
70
+ resolved = run._resolve_run_execute_runtime_backend(
71
+ None,
72
+ resolve_backend=lambda value=None: value or "claude",
73
+ )
74
+
75
+ assert resolved == "opencode"
76
+
77
+
78
+ def test_run_runtime_profile_absent_config_falls_back(monkeypatch, tmp_path) -> None:
79
+ def _raise() -> OuroborosConfig:
80
+ raise ConfigError("Configuration file not found")
81
+
82
+ monkeypatch.setattr(run, "load_config", _raise)
83
+ monkeypatch.setattr(run, "get_config_dir", lambda: tmp_path)
84
+
85
+ resolved = run._resolve_run_execute_runtime_backend(
86
+ None,
87
+ resolve_backend=lambda value=None: value or "claude",
88
+ )
89
+
90
+ assert resolved == "claude"
@@ -19,6 +19,7 @@ def test_claude_plugin_interview_skill_includes_lateral_review_dispatch() -> Non
19
19
 
20
20
  assert "question_advisory_subagents` is present you MUST fan out" in skill_text
21
21
  assert "Task/Agent" in skill_text
22
+ assert "spawn one Codex subagent per payload" in skill_text
22
23
  assert "a reinforcing cue for host-driven runtimes" in skill_text
23
24
  assert "as a prerequisite" in skill_text
24
25
  assert "`run_lateral_review`" in skill_text