ouroboros-ai 0.27.3.dev4__tar.gz → 0.27.3.dev6__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.

Potentially problematic release.


This version of ouroboros-ai might be problematic. Click here for more details.

Files changed (657) hide show
  1. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/PKG-INFO +8 -1
  2. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/README.md +7 -0
  3. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/api/mcp.md +88 -0
  4. ouroboros_ai-0.27.3.dev6/docs/contributing/openclaw-current-baseline.md +53 -0
  5. ouroboros_ai-0.27.3.dev6/docs/guides/openclaw-channel-workflow.md +152 -0
  6. ouroboros_ai-0.27.3.dev6/skills/openclaw/SKILL.md +99 -0
  7. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/_version.py +2 -2
  8. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/server/adapter.py +40 -2
  9. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/__init__.py +4 -0
  10. ouroboros_ai-0.27.3.dev6/src/ouroboros/mcp/tools/channel_workflow_handler.py +485 -0
  11. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/definitions.py +62 -7
  12. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/evaluation_handlers.py +2 -2
  13. ouroboros_ai-0.27.3.dev6/src/ouroboros/openclaw/__init__.py +39 -0
  14. ouroboros_ai-0.27.3.dev6/src/ouroboros/openclaw/responses.py +42 -0
  15. ouroboros_ai-0.27.3.dev6/src/ouroboros/openclaw/runtime.py +328 -0
  16. ouroboros_ai-0.27.3.dev6/src/ouroboros/openclaw/store.py +289 -0
  17. ouroboros_ai-0.27.3.dev6/src/ouroboros/openclaw/workflow.py +517 -0
  18. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/mcp/test_server_adapter.py +35 -0
  19. ouroboros_ai-0.27.3.dev6/tests/unit/mcp/tools/test_channel_workflow_handler.py +744 -0
  20. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_definitions.py +22 -2
  21. ouroboros_ai-0.27.3.dev6/tests/unit/openclaw/test_workflow.py +258 -0
  22. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.claude/settings.json +0 -0
  23. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.claude-plugin/.mcp.json +0 -0
  24. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.claude-plugin/marketplace.json +0 -0
  25. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.claude-plugin/plugin.json +0 -0
  26. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.env.example +0 -0
  27. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  28. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  29. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  30. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.github/ISSUE_TEMPLATE/question.yml +0 -0
  31. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.github/workflows/dev-publish.yml +0 -0
  32. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.github/workflows/lint.yml +0 -0
  33. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.github/workflows/release.yml +0 -0
  34. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.github/workflows/test.yml +0 -0
  35. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.gitignore +0 -0
  36. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.mcp.json +0 -0
  37. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.ouroboros/mechanical.toml +0 -0
  38. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.ouroboros/seeds/seed_73827177a2a3.yaml +0 -0
  39. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.ouroboros/seeds/seed_78c8e6e41813.yaml +0 -0
  40. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.pre-commit-config.yaml +0 -0
  41. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/.python-version +0 -0
  42. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/CHANGELOG.md +0 -0
  43. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/CLAUDE.md +0 -0
  44. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/CODE_OF_CONDUCT.md +0 -0
  45. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/CONTRIBUTING.md +0 -0
  46. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/HANDOFF.md +0 -0
  47. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/LICENSE +0 -0
  48. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/README.ko.md +0 -0
  49. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/SECURITY.md +0 -0
  50. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/UNINSTALL.md +0 -0
  51. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/cancel.md +0 -0
  52. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/evaluate.md +0 -0
  53. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/evolve.md +0 -0
  54. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/help.md +0 -0
  55. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/interview.md +0 -0
  56. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/ralph.md +0 -0
  57. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/run.md +0 -0
  58. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/seed.md +0 -0
  59. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/setup.md +0 -0
  60. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/status.md +0 -0
  61. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/tutorial.md +0 -0
  62. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/unstuck.md +0 -0
  63. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/commands/welcome.md +0 -0
  64. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/.gitignore +0 -0
  65. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/Cargo.lock +0 -0
  66. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/Cargo.toml +0 -0
  67. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/README.md +0 -0
  68. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/src/db.rs +0 -0
  69. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/src/main.rs +0 -0
  70. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/src/mock.rs +0 -0
  71. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/src/state.rs +0 -0
  72. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/src/views/dashboard.rs +0 -0
  73. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/src/views/execution.rs +0 -0
  74. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/src/views/lineage.rs +0 -0
  75. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/src/views/logs.rs +0 -0
  76. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/src/views/mod.rs +0 -0
  77. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/crates/ouroboros-tui/src/views/session_selector.rs +0 -0
  78. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/README.md +0 -0
  79. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/api/README.md +0 -0
  80. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/api/core.md +0 -0
  81. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/architecture.md +0 -0
  82. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/cli-reference.md +0 -0
  83. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/config-reference.md +0 -0
  84. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/contributing/architecture-overview.md +0 -0
  85. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/contributing/findings-registry.md +0 -0
  86. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/contributing/issue-quality-policy.md +0 -0
  87. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/contributing/key-patterns.md +0 -0
  88. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/contributing/testing-guide.md +0 -0
  89. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/examples/mcp-config.yaml +0 -0
  90. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/getting-started.md +0 -0
  91. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/guides/evaluation-pipeline.md +0 -0
  92. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/guides/evolution-loop.md +0 -0
  93. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/guides/issue-176-subagent-mcp-inheritance.md +0 -0
  94. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/guides/mcp-bridge.md +0 -0
  95. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/guides/seed-authoring.md +0 -0
  96. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/guides/tui-usage.md +0 -0
  97. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/images/PLACEHOLDER_README.md +0 -0
  98. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/images/ouroboros.png +0 -0
  99. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/platform-support.md +0 -0
  100. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/runtime-capability-matrix.md +0 -0
  101. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/runtime-guides/claude-code.md +0 -0
  102. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/runtime-guides/codex.md +0 -0
  103. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/docs/runtime-guides/opencode.md +0 -0
  104. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/examples/coordinator_test_seed.yaml +0 -0
  105. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/examples/dummy_seed.yaml +0 -0
  106. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/examples/parallel_subac_test_seed.yaml +0 -0
  107. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/examples/subac_test_seed.yaml +0 -0
  108. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/examples/task_manager/README.md +0 -0
  109. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/examples/task_manager/__init__.py +0 -0
  110. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/examples/task_manager/__main__.py +0 -0
  111. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/examples/task_manager/cli.py +0 -0
  112. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/examples/task_manager/models.py +0 -0
  113. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/examples/task_manager/storage.py +0 -0
  114. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/examples/test_display.py +0 -0
  115. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/hooks/hooks.json +0 -0
  116. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/llms-full.txt +0 -0
  117. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/llms.txt +0 -0
  118. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/project-context.md +0 -0
  119. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/pyproject.toml +0 -0
  120. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/scripts/drift-monitor.py +0 -0
  121. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/scripts/install.sh +0 -0
  122. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/scripts/keyword-detector.py +0 -0
  123. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/scripts/mcp-serve.sh +0 -0
  124. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/scripts/ralph-rewind.py +0 -0
  125. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/scripts/ralph.py +0 -0
  126. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/scripts/ralph.sh +0 -0
  127. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/scripts/session-start.py +0 -0
  128. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/scripts/sync-plugin-version.py +0 -0
  129. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/scripts/version-check.py +0 -0
  130. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/brownfield/SKILL.md +0 -0
  131. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/cancel/SKILL.md +0 -0
  132. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/evaluate/SKILL.md +0 -0
  133. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/evolve/SKILL.md +0 -0
  134. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/help/SKILL.md +0 -0
  135. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/interview/SKILL.md +0 -0
  136. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/pm/SKILL.md +0 -0
  137. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/publish/SKILL.md +0 -0
  138. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/qa/SKILL.md +0 -0
  139. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/ralph/SKILL.md +0 -0
  140. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/run/SKILL.md +0 -0
  141. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/seed/SKILL.md +0 -0
  142. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/setup/SKILL.md +0 -0
  143. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/status/SKILL.md +0 -0
  144. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/tutorial/SKILL.md +0 -0
  145. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/unstuck/SKILL.md +0 -0
  146. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/update/SKILL.md +0 -0
  147. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/skills/welcome/SKILL.md +0 -0
  148. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/__init__.py +0 -0
  149. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/__main__.py +0 -0
  150. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/__init__.py +0 -0
  151. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/advocate.md +0 -0
  152. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/analysis-agent.md +0 -0
  153. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/architect.md +0 -0
  154. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/breadth-keeper.md +0 -0
  155. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/code-executor.md +0 -0
  156. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/codebase-explorer.md +0 -0
  157. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/consensus-reviewer.md +0 -0
  158. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/contrarian.md +0 -0
  159. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/evaluator.md +0 -0
  160. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/hacker.md +0 -0
  161. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/judge.md +0 -0
  162. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/loader.py +0 -0
  163. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/ontologist.md +0 -0
  164. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/ontology-analyst.md +0 -0
  165. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/qa-judge.md +0 -0
  166. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/research-agent.md +0 -0
  167. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/researcher.md +0 -0
  168. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/seed-architect.md +0 -0
  169. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/seed-closer.md +0 -0
  170. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/semantic-evaluator.md +0 -0
  171. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/simplifier.md +0 -0
  172. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/agents/socratic-interviewer.md +0 -0
  173. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/bigbang/__init__.py +0 -0
  174. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/bigbang/ambiguity.py +0 -0
  175. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/bigbang/brownfield.py +0 -0
  176. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/bigbang/explore.py +0 -0
  177. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/bigbang/interview.py +0 -0
  178. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/bigbang/pm_completion.py +0 -0
  179. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/bigbang/pm_document.py +0 -0
  180. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/bigbang/pm_interview.py +0 -0
  181. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/bigbang/pm_seed.py +0 -0
  182. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/bigbang/question_classifier.py +0 -0
  183. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/bigbang/seed_generator.py +0 -0
  184. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/__init__.py +0 -0
  185. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/commands/__init__.py +0 -0
  186. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/commands/cancel.py +0 -0
  187. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/commands/config.py +0 -0
  188. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/commands/init.py +0 -0
  189. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/commands/mcp.py +0 -0
  190. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/commands/pm.py +0 -0
  191. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/commands/run.py +0 -0
  192. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/commands/setup.py +0 -0
  193. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/commands/status.py +0 -0
  194. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/commands/tui.py +0 -0
  195. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/commands/uninstall.py +0 -0
  196. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/formatters/__init__.py +0 -0
  197. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/formatters/panels.py +0 -0
  198. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/formatters/progress.py +0 -0
  199. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/formatters/prompting.py +0 -0
  200. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/formatters/tables.py +0 -0
  201. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/formatters/workflow_display.py +0 -0
  202. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/jsonc.py +0 -0
  203. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/cli/main.py +0 -0
  204. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/codex/__init__.py +0 -0
  205. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/codex/artifacts.py +0 -0
  206. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/codex/ouroboros.md +0 -0
  207. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/codex_permissions.py +0 -0
  208. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/config/__init__.py +0 -0
  209. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/config/loader.py +0 -0
  210. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/config/models.py +0 -0
  211. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/__init__.py +0 -0
  212. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/ac_tree.py +0 -0
  213. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/context.py +0 -0
  214. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/errors.py +0 -0
  215. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/file_lock.py +0 -0
  216. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/git_workflow.py +0 -0
  217. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/initial_context.py +0 -0
  218. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/json_utils.py +0 -0
  219. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/lineage.py +0 -0
  220. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/ontology_aspect.py +0 -0
  221. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/ontology_questions.py +0 -0
  222. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/project_paths.py +0 -0
  223. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/retry.py +0 -0
  224. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/security.py +0 -0
  225. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/seed.py +0 -0
  226. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/text.py +0 -0
  227. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/ttl_cache.py +0 -0
  228. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/types.py +0 -0
  229. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/core/worktree.py +0 -0
  230. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evaluation/__init__.py +0 -0
  231. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evaluation/artifact_collector.py +0 -0
  232. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evaluation/consensus.py +0 -0
  233. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evaluation/json_utils.py +0 -0
  234. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evaluation/languages.py +0 -0
  235. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evaluation/mechanical.py +0 -0
  236. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evaluation/models.py +0 -0
  237. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evaluation/pipeline.py +0 -0
  238. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evaluation/semantic.py +0 -0
  239. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evaluation/trigger.py +0 -0
  240. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evaluation/verification_artifacts.py +0 -0
  241. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/events/__init__.py +0 -0
  242. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/events/base.py +0 -0
  243. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/events/decomposition.py +0 -0
  244. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/events/evaluation.py +0 -0
  245. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/events/interview.py +0 -0
  246. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/events/lineage.py +0 -0
  247. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/events/ontology.py +0 -0
  248. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evolution/__init__.py +0 -0
  249. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evolution/convergence.py +0 -0
  250. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evolution/loop.py +0 -0
  251. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evolution/projector.py +0 -0
  252. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evolution/reflect.py +0 -0
  253. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evolution/regression.py +0 -0
  254. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/evolution/wonder.py +0 -0
  255. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/execution/__init__.py +0 -0
  256. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/execution/atomicity.py +0 -0
  257. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/execution/decomposition.py +0 -0
  258. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/execution/double_diamond.py +0 -0
  259. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/execution/subagent.py +0 -0
  260. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/__init__.py +0 -0
  261. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/bridge/__init__.py +0 -0
  262. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/bridge/bridge.py +0 -0
  263. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/bridge/config.py +0 -0
  264. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/bridge/factory.py +0 -0
  265. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/client/__init__.py +0 -0
  266. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/client/adapter.py +0 -0
  267. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/client/manager.py +0 -0
  268. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/client/protocol.py +0 -0
  269. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/errors.py +0 -0
  270. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/job_manager.py +0 -0
  271. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/resources/__init__.py +0 -0
  272. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/resources/handlers.py +0 -0
  273. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/server/__init__.py +0 -0
  274. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/server/protocol.py +0 -0
  275. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/server/security.py +0 -0
  276. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/ac_tree_hud_handler.py +0 -0
  277. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/ac_tree_hud_render.py +0 -0
  278. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/authoring_handlers.py +0 -0
  279. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/bridge_mixin.py +0 -0
  280. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/brownfield_handler.py +0 -0
  281. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/dashboard.py +0 -0
  282. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/evolution_handlers.py +0 -0
  283. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/execution_handlers.py +0 -0
  284. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/job_handlers.py +0 -0
  285. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/pm_handler.py +0 -0
  286. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/qa.py +0 -0
  287. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/query_handlers.py +0 -0
  288. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/tools/registry.py +0 -0
  289. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/mcp/types.py +0 -0
  290. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/observability/__init__.py +0 -0
  291. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/observability/drift.py +0 -0
  292. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/observability/logging.py +0 -0
  293. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/observability/retrospective.py +0 -0
  294. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/__init__.py +0 -0
  295. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/adapter.py +0 -0
  296. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/capabilities.py +0 -0
  297. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/codex_cli_runtime.py +0 -0
  298. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/command_dispatcher.py +0 -0
  299. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/control_plane.py +0 -0
  300. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/coordinator.py +0 -0
  301. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/dependency_analyzer.py +0 -0
  302. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/events.py +0 -0
  303. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/execution_runtime_scope.py +0 -0
  304. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/execution_strategy.py +0 -0
  305. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/heartbeat.py +0 -0
  306. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/level_context.py +0 -0
  307. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/mcp_config.py +0 -0
  308. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/mcp_tools.py +0 -0
  309. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/opencode_event_normalizer.py +0 -0
  310. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/opencode_runtime.py +0 -0
  311. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/parallel_executor.py +0 -0
  312. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/parallel_executor_models.py +0 -0
  313. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/policy.py +0 -0
  314. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/runner.py +0 -0
  315. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/runtime_factory.py +0 -0
  316. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/runtime_message_projection.py +0 -0
  317. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/session.py +0 -0
  318. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/orchestrator/workflow_state.py +0 -0
  319. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/persistence/__init__.py +0 -0
  320. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/persistence/brownfield.py +0 -0
  321. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/persistence/checkpoint.py +0 -0
  322. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/persistence/event_store.py +0 -0
  323. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/persistence/migrations/__init__.py +0 -0
  324. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/persistence/migrations/runner.py +0 -0
  325. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/persistence/migrations/scripts/001_initial.sql +0 -0
  326. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/persistence/migrations/scripts/002_brownfield.sql +0 -0
  327. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/persistence/schema.py +0 -0
  328. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/persistence/uow.py +0 -0
  329. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/plugin/__init__.py +0 -0
  330. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/plugin/agents/__init__.py +0 -0
  331. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/plugin/agents/pool.py +0 -0
  332. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/plugin/agents/registry.py +0 -0
  333. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/plugin/orchestration/__init__.py +0 -0
  334. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/plugin/orchestration/router.py +0 -0
  335. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/plugin/orchestration/scheduler.py +0 -0
  336. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/plugin/skills/__init__.py +0 -0
  337. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/plugin/skills/docs.py +0 -0
  338. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/plugin/skills/executor.py +0 -0
  339. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/plugin/skills/keywords.py +0 -0
  340. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/plugin/skills/registry.py +0 -0
  341. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/pm/__init__.py +0 -0
  342. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/pm/handoff.py +0 -0
  343. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/pm/renderer.py +0 -0
  344. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/providers/__init__.py +0 -0
  345. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/providers/anthropic_adapter.py +0 -0
  346. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/providers/base.py +0 -0
  347. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/providers/claude_code_adapter.py +0 -0
  348. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/providers/codex_cli_adapter.py +0 -0
  349. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/providers/codex_cli_stream.py +0 -0
  350. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/providers/factory.py +0 -0
  351. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/providers/gemini_cli_adapter.py +0 -0
  352. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/providers/litellm_adapter.py +0 -0
  353. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/providers/opencode_adapter.py +0 -0
  354. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/py.typed +0 -0
  355. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/resilience/__init__.py +0 -0
  356. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/resilience/lateral.py +0 -0
  357. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/resilience/stagnation.py +0 -0
  358. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/routing/__init__.py +0 -0
  359. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/routing/complexity.py +0 -0
  360. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/routing/downgrade.py +0 -0
  361. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/routing/escalation.py +0 -0
  362. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/routing/router.py +0 -0
  363. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/routing/tiers.py +0 -0
  364. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/secondary/__init__.py +0 -0
  365. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/secondary/scheduler.py +0 -0
  366. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/secondary/todo_registry.py +0 -0
  367. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/strategies/__init__.py +0 -0
  368. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/strategies/devil_advocate.py +0 -0
  369. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/__init__.py +0 -0
  370. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/app.py +0 -0
  371. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/components/__init__.py +0 -0
  372. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/components/agents_panel.py +0 -0
  373. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/components/event_log.py +0 -0
  374. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/components/progress.py +0 -0
  375. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/components/token_tracker.py +0 -0
  376. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/events.py +0 -0
  377. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/screens/__init__.py +0 -0
  378. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/screens/confirm_rewind.py +0 -0
  379. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/screens/dashboard.py +0 -0
  380. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/screens/dashboard_v2.py +0 -0
  381. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/screens/dashboard_v3.py +0 -0
  382. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/screens/debug.py +0 -0
  383. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/screens/execution.py +0 -0
  384. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/screens/hud_dashboard.py +0 -0
  385. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/screens/lineage_detail.py +0 -0
  386. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/screens/lineage_selector.py +0 -0
  387. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/screens/logs.py +0 -0
  388. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/screens/session_selector.py +0 -0
  389. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/widgets/__init__.py +0 -0
  390. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/widgets/ac_progress.py +0 -0
  391. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/widgets/ac_tree.py +0 -0
  392. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/widgets/agent_activity.py +0 -0
  393. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/widgets/cost_tracker.py +0 -0
  394. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/widgets/drift_meter.py +0 -0
  395. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/widgets/lineage_tree.py +0 -0
  396. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/widgets/parallel_graph.py +0 -0
  397. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/tui/widgets/phase_progress.py +0 -0
  398. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/verification/__init__.py +0 -0
  399. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/verification/extractor.py +0 -0
  400. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/verification/models.py +0 -0
  401. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/src/ouroboros/verification/verifier.py +0 -0
  402. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/__init__.py +0 -0
  403. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/conftest.py +0 -0
  404. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/e2e/__init__.py +0 -0
  405. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/e2e/conftest.py +0 -0
  406. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/e2e/mcp_bridge_test_config.yaml +0 -0
  407. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/e2e/test_cli_commands.py +0 -0
  408. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/e2e/test_full_workflow.py +0 -0
  409. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/e2e/test_session_persistence.py +0 -0
  410. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/fixtures/test_atomicity_seed.yml +0 -0
  411. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/__init__.py +0 -0
  412. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/conftest.py +0 -0
  413. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/mcp/__init__.py +0 -0
  414. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/mcp/bridge/__init__.py +0 -0
  415. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/mcp/bridge/test_bridge_server_to_server.py +0 -0
  416. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/mcp/conftest.py +0 -0
  417. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/mcp/test_client_adapter.py +0 -0
  418. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/mcp/test_client_manager.py +0 -0
  419. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/plugin/test_orchestration.py +0 -0
  420. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/test_codex_cli_passthrough_smoke.py +0 -0
  421. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/test_codex_skill_fallback.py +0 -0
  422. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/test_codex_skill_smoke.py +0 -0
  423. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/integration/test_entry_point.py +0 -0
  424. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/__init__.py +0 -0
  425. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/agents/__init__.py +0 -0
  426. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/agents/test_loader.py +0 -0
  427. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/__init__.py +0 -0
  428. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_ambiguity.py +0 -0
  429. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_brownfield.py +0 -0
  430. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_classifier_context.py +0 -0
  431. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_decide_later_items.py +0 -0
  432. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_explore.py +0 -0
  433. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_interview.py +0 -0
  434. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_interview_async_io.py +0 -0
  435. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_interview_no_web_search_hint.py +0 -0
  436. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_interview_research_prefix.py +0 -0
  437. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_pm_completion.py +0 -0
  438. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_pm_document_generator.py +0 -0
  439. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_pm_document_writer.py +0 -0
  440. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_pm_interview.py +0 -0
  441. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_pm_interview_brownfield_db.py +0 -0
  442. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_pm_seed_ac12.py +0 -0
  443. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_pm_seed_save.py +0 -0
  444. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_question_classifier.py +0 -0
  445. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/bigbang/test_seed_generator.py +0 -0
  446. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/__init__.py +0 -0
  447. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/commands/test_tui_command.py +0 -0
  448. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/formatters/__init__.py +0 -0
  449. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/formatters/test_console.py +0 -0
  450. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/formatters/test_panels.py +0 -0
  451. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/formatters/test_progress.py +0 -0
  452. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/formatters/test_prompting.py +0 -0
  453. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/formatters/test_tables.py +0 -0
  454. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/formatters/test_workflow_display.py +0 -0
  455. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_cancel.py +0 -0
  456. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_config.py +0 -0
  457. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_init_pm_seed_detection.py +0 -0
  458. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_init_runtime.py +0 -0
  459. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_jsonc.py +0 -0
  460. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_main.py +0 -0
  461. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_mcp_nested_guard.py +0 -0
  462. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_mcp_startup_cleanup.py +0 -0
  463. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_pm.py +0 -0
  464. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_pm_brownfield.py +0 -0
  465. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_pm_completion.py +0 -0
  466. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_pm_interactive_logging.py +0 -0
  467. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_pm_missing_litellm.py +0 -0
  468. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_pm_overwrite.py +0 -0
  469. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_pm_runtime_adapter.py +0 -0
  470. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_pm_select_repos.py +0 -0
  471. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_run_qa.py +0 -0
  472. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_setup.py +0 -0
  473. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/cli/test_uninstall.py +0 -0
  474. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/config/__init__.py +0 -0
  475. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/config/test_loader.py +0 -0
  476. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/config/test_loader_env.py +0 -0
  477. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/config/test_models.py +0 -0
  478. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/__init__.py +0 -0
  479. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_ac_tree.py +0 -0
  480. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_context.py +0 -0
  481. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_errors.py +0 -0
  482. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_file_lock.py +0 -0
  483. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_git_workflow.py +0 -0
  484. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_initial_context.py +0 -0
  485. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_lineage.py +0 -0
  486. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_ontology_aspect.py +0 -0
  487. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_ontology_questions.py +0 -0
  488. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_retry.py +0 -0
  489. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_security.py +0 -0
  490. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_seed.py +0 -0
  491. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_ttl_cache.py +0 -0
  492. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_types.py +0 -0
  493. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/core/test_worktree.py +0 -0
  494. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/__init__.py +0 -0
  495. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/test_artifact_collector_file_prefix.py +0 -0
  496. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/test_consensus.py +0 -0
  497. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/test_json_utils.py +0 -0
  498. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/test_languages.py +0 -0
  499. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/test_mechanical.py +0 -0
  500. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/test_models.py +0 -0
  501. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/test_pipeline_trigger_consensus.py +0 -0
  502. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/test_review_fixes.py +0 -0
  503. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/test_semantic.py +0 -0
  504. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/test_trigger.py +0 -0
  505. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/test_trigger_consensus.py +0 -0
  506. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evaluation/test_verification_artifacts.py +0 -0
  507. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/events/__init__.py +0 -0
  508. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/events/test_base.py +0 -0
  509. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/events/test_decomposition_events.py +0 -0
  510. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/evolution/test_wonder_scope.py +0 -0
  511. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/execution/__init__.py +0 -0
  512. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/execution/test_atomicity.py +0 -0
  513. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/execution/test_decomposition.py +0 -0
  514. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/execution/test_double_diamond.py +0 -0
  515. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/execution/test_subagent_isolation.py +0 -0
  516. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/__init__.py +0 -0
  517. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/bridge/__init__.py +0 -0
  518. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/bridge/test_bridge.py +0 -0
  519. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/bridge/test_config.py +0 -0
  520. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/bridge/test_factory.py +0 -0
  521. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/bridge/test_handler_wiring.py +0 -0
  522. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/bridge/test_stability.py +0 -0
  523. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/client/__init__.py +0 -0
  524. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/client/test_adapter.py +0 -0
  525. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/client/test_adapter_transport_lifecycle.py +0 -0
  526. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/client/test_manager.py +0 -0
  527. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/conftest.py +0 -0
  528. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/server/__init__.py +0 -0
  529. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/server/test_adapter.py +0 -0
  530. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/server/test_security.py +0 -0
  531. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/test_errors.py +0 -0
  532. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/test_job_manager.py +0 -0
  533. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/test_types.py +0 -0
  534. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/__init__.py +0 -0
  535. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/conftest.py +0 -0
  536. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_ac_tree_hud_footer.py +0 -0
  537. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_ac_tree_hud_handler.py +0 -0
  538. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_ac_tree_hud_handler_completed.py +0 -0
  539. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_ac_tree_hud_handler_cursor_changed.py +0 -0
  540. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_ac_tree_hud_handler_invalid_session.py +0 -0
  541. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_ac_tree_hud_handler_no_execution.py +0 -0
  542. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_ac_tree_hud_handler_waiting.py +0 -0
  543. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_ac_tree_hud_max_nodes.py +0 -0
  544. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_ac_tree_hud_render_depth2.py +0 -0
  545. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_ac_tree_hud_render_depth3.py +0 -0
  546. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_ac_tree_hud_status_icons.py +0 -0
  547. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_ac_tree_hud_truncation.py +0 -0
  548. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_brownfield_handler.py +0 -0
  549. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_evaluation_handler.py +0 -0
  550. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_interview_parallel_scoring.py +0 -0
  551. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_interview_scoring_guard.py +0 -0
  552. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_mcp_manager_wiring.py +0 -0
  553. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_pm_handler.py +0 -0
  554. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_pm_handler_generate.py +0 -0
  555. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_pm_handler_pending_reframe.py +0 -0
  556. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_qa_integration.py +0 -0
  557. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_qa_parser.py +0 -0
  558. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_registry.py +0 -0
  559. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/mcp/tools/test_traceback_reporting.py +0 -0
  560. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/observability/__init__.py +0 -0
  561. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/observability/test_drift.py +0 -0
  562. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/observability/test_logging.py +0 -0
  563. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/observability/test_retrospective.py +0 -0
  564. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/__init__.py +0 -0
  565. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_adapter.py +0 -0
  566. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_capabilities.py +0 -0
  567. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_codex_cli_runtime.py +0 -0
  568. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_codex_recursion_guard.py +0 -0
  569. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_command_dispatcher.py +0 -0
  570. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_control_plane.py +0 -0
  571. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_coordinator.py +0 -0
  572. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_dependency_analyzer.py +0 -0
  573. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_events.py +0 -0
  574. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_execution_runtime_scope.py +0 -0
  575. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_execution_strategy.py +0 -0
  576. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_inflight_cancellation.py +0 -0
  577. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_level_context.py +0 -0
  578. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_mcp_config.py +0 -0
  579. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_mcp_tools.py +0 -0
  580. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_opencode_runtime.py +0 -0
  581. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_parallel_executor.py +0 -0
  582. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_parallel_executor_atomic_judgment.py +0 -0
  583. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_parallel_executor_recursive_depth.py +0 -0
  584. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_parallel_executor_retry_resume.py +0 -0
  585. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_policy.py +0 -0
  586. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_runner.py +0 -0
  587. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_runner_cancellation.py +0 -0
  588. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_runtime_factory.py +0 -0
  589. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_runtime_message_projection.py +0 -0
  590. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_session.py +0 -0
  591. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/orchestrator/test_workflow_state.py +0 -0
  592. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/persistence/__init__.py +0 -0
  593. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/persistence/test_brownfield_store.py +0 -0
  594. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/persistence/test_checkpoint.py +0 -0
  595. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/persistence/test_event_store.py +0 -0
  596. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/persistence/test_schema.py +0 -0
  597. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/persistence/test_uow.py +0 -0
  598. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/plugin/__init__.py +0 -0
  599. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/plugin/agents/__init__.py +0 -0
  600. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/plugin/agents/test_registry.py +0 -0
  601. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/plugin/orchestration/__init__.py +0 -0
  602. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/plugin/orchestration/test_model_router.py +0 -0
  603. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/plugin/skills/__init__.py +0 -0
  604. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/plugin/skills/test_keywords.py +0 -0
  605. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/plugin/skills/test_registry.py +0 -0
  606. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/pm/__init__.py +0 -0
  607. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/pm/test_renderer.py +0 -0
  608. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/providers/__init__.py +0 -0
  609. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/providers/test_base.py +0 -0
  610. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/providers/test_claude_code_adapter.py +0 -0
  611. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/providers/test_codex_cli_adapter.py +0 -0
  612. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/providers/test_factory.py +0 -0
  613. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/providers/test_gemini_cli_adapter.py +0 -0
  614. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/providers/test_litellm_adapter.py +0 -0
  615. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/providers/test_opencode_adapter.py +0 -0
  616. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/resilience/__init__.py +0 -0
  617. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/resilience/test_lateral.py +0 -0
  618. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/resilience/test_stagnation.py +0 -0
  619. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/routing/__init__.py +0 -0
  620. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/routing/test_complexity.py +0 -0
  621. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/routing/test_downgrade.py +0 -0
  622. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/routing/test_escalation.py +0 -0
  623. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/routing/test_router.py +0 -0
  624. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/routing/test_tiers.py +0 -0
  625. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/scripts/test_keyword_detector.py +0 -0
  626. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/scripts/test_session_start.py +0 -0
  627. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/scripts/test_version_check.py +0 -0
  628. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/secondary/__init__.py +0 -0
  629. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/secondary/test_scheduler.py +0 -0
  630. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/secondary/test_todo_registry.py +0 -0
  631. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_artifact_collector.py +0 -0
  632. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_codex_artifacts.py +0 -0
  633. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_convergence.py +0 -0
  634. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_dashboard.py +0 -0
  635. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_dependencies_configured.py +0 -0
  636. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_evolve_rewind.py +0 -0
  637. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_evolve_step.py +0 -0
  638. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_graceful_shutdown.py +0 -0
  639. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_main_entry_point.py +0 -0
  640. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_module_structure.py +0 -0
  641. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_project_initialization.py +0 -0
  642. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_projector_rewind.py +0 -0
  643. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_ralph_parser.py +0 -0
  644. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_ralph_rewind.py +0 -0
  645. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_regression.py +0 -0
  646. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_tooling_configuration.py +0 -0
  647. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/test_verification.py +0 -0
  648. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/tui/__init__.py +0 -0
  649. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/tui/test_app.py +0 -0
  650. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/tui/test_cancelled_display.py +0 -0
  651. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/tui/test_events.py +0 -0
  652. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/tui/test_lineage_viewer.py +0 -0
  653. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/tui/test_screens.py +0 -0
  654. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/tui/test_session_selector_replay.py +0 -0
  655. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tests/unit/tui/test_widgets.py +0 -0
  656. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/tools/sync_github_project.py +0 -0
  657. {ouroboros_ai-0.27.3.dev4 → ouroboros_ai-0.27.3.dev6}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ouroboros-ai
3
- Version: 0.27.3.dev4
3
+ Version: 0.27.3.dev6
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
@@ -144,6 +144,13 @@ Legacy compatibility: `ouroboros-ai[dashboard]` is still accepted as a compatibi
144
144
 
145
145
  See runtime guides: [Claude Code](./docs/runtime-guides/claude-code.md) · [Codex CLI](./docs/runtime-guides/codex.md)
146
146
 
147
+ Chat platform integration (OpenClaw / Slack / Discord):
148
+ ```bash
149
+ clawhub install ouroboros # install OpenClaw skill
150
+ openclaw mcp set ouroboros '{"command":"uvx","args":["--from","ouroboros-ai","ouroboros","mcp","serve"]}'
151
+ ```
152
+ Guide: [Channel workflow integration](./docs/guides/openclaw-channel-workflow.md)
153
+
147
154
  </details>
148
155
 
149
156
  <details>
@@ -105,6 +105,13 @@ Legacy compatibility: `ouroboros-ai[dashboard]` is still accepted as a compatibi
105
105
 
106
106
  See runtime guides: [Claude Code](./docs/runtime-guides/claude-code.md) · [Codex CLI](./docs/runtime-guides/codex.md)
107
107
 
108
+ Chat platform integration (OpenClaw / Slack / Discord):
109
+ ```bash
110
+ clawhub install ouroboros # install OpenClaw skill
111
+ openclaw mcp set ouroboros '{"command":"uvx","args":["--from","ouroboros-ai","ouroboros","mcp","serve"]}'
112
+ ```
113
+ Guide: [Channel workflow integration](./docs/guides/openclaw-channel-workflow.md)
114
+
108
115
  </details>
109
116
 
110
117
  <details>
@@ -247,6 +247,94 @@ class MCPServerInfo:
247
247
 
248
248
  ---
249
249
 
250
+ ## Ouroboros MCP Tools
251
+
252
+ ### Tool: `ouroboros_channel_workflow`
253
+
254
+ Channel-native workflow orchestration surface intended for OpenClaw/Discord-style
255
+ message transports.
256
+
257
+ This tool wraps:
258
+
259
+ - per-channel queueing
260
+ - default repository mapping
261
+ - input-detected entry points
262
+ - interview / seed / execution handoff
263
+ - execution status inspection
264
+ - change-driven execution waiting
265
+
266
+ #### Supported actions
267
+
268
+ | Action | Purpose |
269
+ |--------|---------|
270
+ | `message` | Submit a new message or continue an interview |
271
+ | `set_repo` | Configure the default repo for a channel |
272
+ | `status` | Inspect current channel workflow state |
273
+ | `poll` | Read the current active workflow state immediately |
274
+ | `wait` | Wait for execution state to change via job wait |
275
+
276
+ #### Parameters
277
+
278
+ | Name | Type | Required | Notes |
279
+ |------|------|----------|------|
280
+ | `channel_id` | `string` | yes | Originating channel identifier |
281
+ | `guild_id` | `string` | no | Optional guild/server identifier |
282
+ | `user_id` | `string` | no | Optional caller/user identifier |
283
+ | `message` | `string` | no | Channel message content or interview answer |
284
+ | `repo` | `string` | no | Explicit repo override |
285
+ | `seed_content` | `string` | no | Inline seed/spec payload |
286
+ | `seed_path` | `string` | no | Seed path |
287
+ | `action` | `string` | no | `message`, `set_repo`, `status`, `poll`, `wait` |
288
+ | `mode` | `string` | no | For `message`: `auto`, `new`, `answer` |
289
+ | `timeout_seconds` | `integer` | no | For `wait`: maximum wait duration |
290
+
291
+ #### Stable response metadata
292
+
293
+ The tool emits a stable metadata envelope with these keys:
294
+
295
+ | Key | Meaning |
296
+ |-----|---------|
297
+ | `action` | Action that produced the response |
298
+ | `channel_key` | Normalized channel key (`guild_id:channel_id` or `channel_id`) |
299
+ | `workflow_id` | Workflow identifier when available |
300
+ | `stage` | Workflow stage when available |
301
+ | `entry_point` | Detected entry point (`interview` / `execution`) |
302
+ | `repo` | Target repository when available |
303
+ | `session_id` | Interview/runtime session identifier |
304
+ | `execution_id` | Execution identifier |
305
+ | `job_id` | Background job identifier |
306
+ | `seed_id` | Generated seed identifier |
307
+ | `pr_url` | Draft PR URL on success |
308
+ | `job_status` | Underlying job status when waiting/running |
309
+ | `cursor` | Last seen job cursor for wait semantics |
310
+ | `changed` | Whether a `wait` call observed a change |
311
+ | `ambiguity_score` | Interview ambiguity score when available |
312
+ | `seed_ready` | Whether interview output is ready for seed generation |
313
+ | `next_workflow_started` | Whether queue advancement started the next workflow |
314
+ | `duplicate_delivery` | True when an inbound message was treated as a redelivery |
315
+ | `duplicate_of` | Existing workflow ID reused for a duplicate delivery |
316
+ | `active` | Used by `status` / `poll` / `wait` summaries when no active workflow exists |
317
+
318
+ #### Example
319
+
320
+ ```python
321
+ result = await client.call_tool(
322
+ "ouroboros_channel_workflow",
323
+ {
324
+ "action": "message",
325
+ "channel_id": "123",
326
+ "guild_id": "guild-1",
327
+ "user_id": "user-42",
328
+ "message": "work on issue #320",
329
+ },
330
+ )
331
+
332
+ print(result.value.text_content)
333
+ print(result.value.meta["workflow_id"])
334
+ ```
335
+
336
+ ---
337
+
250
338
  ## Error Hierarchy
251
339
 
252
340
  All MCP-specific exceptions inherit from `MCPError`, which inherits from `OuroborosError`.
@@ -0,0 +1,53 @@
1
+ # OpenClaw Workflow Current Baseline
2
+
3
+ This note records the current verification baseline while the OpenClaw channel
4
+ workflow work is still in progress.
5
+
6
+ ## What is green
7
+
8
+ The OpenClaw-focused scope currently passes targeted verification:
9
+
10
+ - `ruff` for the OpenClaw-related files
11
+ - `mypy` for `src/ouroboros/openclaw` and `channel_workflow_handler.py`
12
+ - targeted OpenClaw unit/integration suites
13
+
14
+ Examples of green scope:
15
+
16
+ - contracts
17
+ - command parsing
18
+ - workflow state / queue logic
19
+ - duplicate-delivery protection
20
+ - wait-driven orchestration
21
+ - transport bridge
22
+ - MCP server wiring for `ouroboros_channel_workflow`
23
+
24
+ ## What is not yet green
25
+
26
+ The full repository-wide test suite is not currently all-green.
27
+ When last checked, the failing set was dominated by existing non-OpenClaw areas such as:
28
+
29
+ - orchestrator runner / cancellation
30
+ - full workflow e2e
31
+ - session persistence e2e
32
+ - unrelated event tests present in the working tree
33
+
34
+ These failures should not be interpreted as evidence that the OpenClaw workflow
35
+ scaffold itself is broken. They indicate that the repository baseline is broader
36
+ than the current OpenClaw change set.
37
+
38
+ ## Recommended verification posture for this work
39
+
40
+ Until the broader suite is stabilized, treat this as the primary confidence bar:
41
+
42
+ 1. targeted OpenClaw tests must remain green
43
+ 2. ruff + mypy on OpenClaw-related files must remain green
44
+ 3. transport-facing contracts and metadata shape should stay stable
45
+
46
+ ## Why this note exists
47
+
48
+ This project currently has a mismatch between:
49
+
50
+ - "OpenClaw-specific work is passing"
51
+ - "the entire repository test suite is green"
52
+
53
+ Writing that down explicitly reduces confusion during ongoing iteration.
@@ -0,0 +1,152 @@
1
+ # Channel Workflow Integration
2
+
3
+ This guide explains how to connect a chat platform (OpenClaw, Slack, Discord,
4
+ or any MCP-capable client) to the Ouroboros `ouroboros_channel_workflow` MCP
5
+ tool for channel-native workflow orchestration.
6
+
7
+ ## What this tool does
8
+
9
+ `ouroboros_channel_workflow` provides a transport-agnostic orchestration layer for:
10
+
11
+ - per-channel queueing
12
+ - default repository mapping per channel
13
+ - input-detected entry points (interview vs. direct execution)
14
+ - in-channel interview bridging
15
+ - change-driven execution waiting and result reporting
16
+
17
+ ## Setup
18
+
19
+ ### 1. Install Ouroboros
20
+
21
+ ```bash
22
+ pip install ouroboros-ai
23
+ # or
24
+ uv tool install ouroboros-ai
25
+ ```
26
+
27
+ ### 2. Register Ouroboros MCP server in OpenClaw
28
+
29
+ ```bash
30
+ openclaw mcp set ouroboros '{"command":"uvx","args":["--from","ouroboros-ai","ouroboros","mcp","serve"]}'
31
+ ```
32
+
33
+ Verify the registration:
34
+
35
+ ```bash
36
+ openclaw mcp list
37
+ openclaw mcp show ouroboros
38
+ ```
39
+
40
+ ### 3. Install the OpenClaw skill
41
+
42
+ From ClawHub:
43
+
44
+ ```bash
45
+ clawhub install ouroboros
46
+ ```
47
+
48
+ Or manually copy `skills/ouroboros/SKILL.md` into your OpenClaw skills directory.
49
+
50
+ ### 4. Test the connection
51
+
52
+ ```bash
53
+ # Using mcporter (ad-hoc MCP tool call)
54
+ mcporter call ouroboros.ouroboros_channel_workflow \
55
+ action=status channel_id=test
56
+
57
+ # Or via OpenClaw agent — prefix with ooo in any channel:
58
+ # ooo interview add dark mode to settings
59
+ ```
60
+
61
+ ### Usage
62
+
63
+ All commands are prefixed with `ooo`:
64
+
65
+ ```
66
+ ooo interview <request> Start a requirements interview
67
+ ooo seed Generate seed from current interview
68
+ ooo run <description> Start execution
69
+ ooo eval Evaluate current execution
70
+ ooo status Check workflow state
71
+ ooo poll Poll execution progress
72
+ ooo wait Long-poll for changes
73
+ ooo repo <path> Set default repo for channel
74
+ ooo <answer text> Answer an interview question
75
+ ```
76
+
77
+ ## Supported actions
78
+
79
+ ### `action="set_repo"`
80
+
81
+ Configure the default repo for a channel.
82
+
83
+ | Parameter | Required | Description |
84
+ |-----------|----------|-------------|
85
+ | `channel_id` | yes | Channel identifier |
86
+ | `guild_id` | no | Guild/server identifier |
87
+ | `repo` | yes | Repository path |
88
+
89
+ ### `action="message"`
90
+
91
+ Handle a user message — starts interview or execution based on input detection.
92
+
93
+ | Parameter | Required | Description |
94
+ |-----------|----------|-------------|
95
+ | `channel_id` | yes | Channel identifier |
96
+ | `message` | yes | User message content |
97
+ | `guild_id` | no | Guild/server identifier |
98
+ | `user_id` | no | Caller identifier |
99
+ | `repo` | no | Explicit repo override |
100
+ | `seed_content` | no | Inline seed/spec YAML |
101
+ | `seed_path` | no | Path to seed file |
102
+ | `mode` | no | `auto`, `new`, or `answer` |
103
+ | `message_id` | no | Transport message ID for dedup |
104
+ | `event_id` | no | Transport event ID for dedup |
105
+
106
+ ### `action="status"`
107
+
108
+ Inspect current channel workflow state.
109
+
110
+ ### `action="poll"`
111
+
112
+ Read the current active workflow state immediately.
113
+
114
+ ### `action="wait"`
115
+
116
+ Wait for execution state to change (long-poll).
117
+
118
+ | Parameter | Required | Description |
119
+ |-----------|----------|-------------|
120
+ | `timeout_seconds` | no | Max wait duration (default: 30) |
121
+
122
+ ## Entry point detection
123
+
124
+ The tool automatically detects the appropriate starting stage:
125
+
126
+ - **Vague natural-language request** → starts an interview
127
+ - **Issue / feature discussion** → starts an interview
128
+ - **Seed/spec-like YAML payload** → skips to execution
129
+
130
+ ## Queue behavior
131
+
132
+ - One active workflow per channel
133
+ - Additional requests are queued
134
+ - Workflows in other channels remain independent
135
+ - Queue advances automatically when a workflow completes or fails
136
+
137
+ ## Response metadata
138
+
139
+ Every response includes a stable metadata envelope:
140
+
141
+ | Key | Description |
142
+ |-----|-------------|
143
+ | `action` | Action that produced the response |
144
+ | `channel_key` | Normalized channel key |
145
+ | `workflow_id` | Workflow identifier |
146
+ | `stage` | Current workflow stage |
147
+ | `entry_point` | Detected entry point (`interview` / `execution`) |
148
+ | `repo` | Target repository |
149
+ | `session_id` | Interview/runtime session ID |
150
+ | `job_id` | Background job ID |
151
+ | `job_status` | Underlying job status |
152
+ | `duplicate_delivery` | True if message was a redelivery |
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: ouroboros
3
+ description: "When user message starts with 'ooo', call ouroboros_channel_workflow MCP tool. Do NOT answer the request yourself. Do NOT generate code. Do NOT summarize. Just call the tool and relay the response."
4
+ metadata:
5
+ {
6
+ "openclaw":
7
+ {
8
+ "emoji": "🐍",
9
+ "requires": { "mcp": ["ouroboros"] },
10
+ },
11
+ }
12
+ ---
13
+
14
+ # Ouroboros
15
+
16
+ ## Rule
17
+
18
+ When a user message starts with `ooo`, you MUST:
19
+
20
+ 1. Call `ouroboros_channel_workflow` MCP tool
21
+ 2. Relay the tool response back to the channel
22
+ 3. Do NOTHING else
23
+
24
+ Do NOT:
25
+ - Answer the request yourself
26
+ - Generate code or specs
27
+ - Summarize or reinterpret the request
28
+ - Offer alternatives or next steps
29
+ - Ask clarifying questions yourself
30
+
31
+ The Ouroboros MCP server handles all logic: interviewing, seed generation,
32
+ execution, and status tracking. Your only job is to be a relay.
33
+
34
+ ## Setup
35
+
36
+ ```bash
37
+ openclaw mcp set ouroboros '{"command":"uvx","args":["--from","ouroboros-ai","ouroboros","mcp","serve"]}'
38
+ ```
39
+
40
+ ## Routing
41
+
42
+ Strip `ooo ` prefix. Match the first word:
43
+
44
+ | First word | Tool arguments |
45
+ |---|---|
46
+ | `interview <text>` | `action: "message", mode: "new", message: "<text>"` |
47
+ | `seed` | `action: "message", mode: "new", message: "generate seed"` |
48
+ | `run <text>` | `action: "message", mode: "new", message: "<text>"` |
49
+ | `eval` | `action: "message", mode: "new", message: "evaluate"` |
50
+ | `status` | `action: "status"` |
51
+ | `poll` | `action: "poll"` |
52
+ | `wait` | `action: "wait", timeout_seconds: 30` |
53
+ | `repo <path>` | `action: "set_repo", repo: "<path>"` |
54
+ | anything else | `action: "message", mode: "answer", message: "<full text>"` |
55
+
56
+ Always include `channel_id`, `guild_id`, `user_id` from message context.
57
+ Always include `message_id` for dedup when available.
58
+
59
+ ## Example
60
+
61
+ User: `ooo add dark mode to settings`
62
+
63
+ You call:
64
+
65
+ ```json
66
+ {
67
+ "tool": "ouroboros_channel_workflow",
68
+ "arguments": {
69
+ "action": "message",
70
+ "channel_id": "C123",
71
+ "guild_id": "G456",
72
+ "user_id": "U789",
73
+ "message": "add dark mode to settings",
74
+ "mode": "new"
75
+ }
76
+ }
77
+ ```
78
+
79
+ Then post the tool response text to the channel. Nothing more.
80
+
81
+ User: `ooo yes use CSS variables`
82
+
83
+ You call:
84
+
85
+ ```json
86
+ {
87
+ "tool": "ouroboros_channel_workflow",
88
+ "arguments": {
89
+ "action": "message",
90
+ "channel_id": "C123",
91
+ "guild_id": "G456",
92
+ "user_id": "U789",
93
+ "message": "yes use CSS variables",
94
+ "mode": "answer"
95
+ }
96
+ }
97
+ ```
98
+
99
+ Then post the tool response text to the channel. Nothing more.
@@ -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.27.3.dev4'
22
- __version_tuple__ = version_tuple = (0, 27, 3, 'dev4')
21
+ __version__ = version = '0.27.3.dev6'
22
+ __version_tuple__ = version_tuple = (0, 27, 3, 'dev6')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -735,6 +735,7 @@ def create_ouroboros_server(
735
735
  ACDashboardHandler,
736
736
  CancelExecutionHandler,
737
737
  CancelJobHandler,
738
+ ChannelWorkflowHandler,
738
739
  EvaluateHandler,
739
740
  EvolveRewindHandler,
740
741
  EvolveStepHandler,
@@ -755,6 +756,7 @@ def create_ouroboros_server(
755
756
  from ouroboros.mcp.tools.pm_handler import PMInterviewHandler
756
757
  from ouroboros.mcp.tools.qa import QAHandler
757
758
  from ouroboros.mcp.tools.registry import ToolRegistry
759
+ from ouroboros.openclaw.workflow import ChannelRepoRegistry, ChannelWorkflowManager
758
760
  from ouroboros.orchestrator import create_agent_runtime, resolve_agent_runtime_backend
759
761
  from ouroboros.orchestrator.runner import (
760
762
  OrchestratorRunner,
@@ -788,8 +790,8 @@ def create_ouroboros_server(
788
790
 
789
791
  # Create state directory for interviews
790
792
  if state_dir is None:
791
- state_dir = Path.home() / ".ouroboros" / "data"
792
- state_dir.mkdir(parents=True, exist_ok=True)
793
+ state_dir = Path.cwd() / ".ouroboros" / "data"
794
+ state_dir.mkdir(parents=True, exist_ok=True)
793
795
 
794
796
  # Create core service instances
795
797
  interview_engine = InterviewEngine(
@@ -1255,6 +1257,9 @@ def create_ouroboros_server(
1255
1257
  validator=_evolution_validator,
1256
1258
  )
1257
1259
  job_manager = JobManager(event_store)
1260
+ openclaw_db_path = state_dir / "openclaw.db"
1261
+ workflow_manager = ChannelWorkflowManager(openclaw_db_path)
1262
+ repo_registry = ChannelRepoRegistry(openclaw_db_path)
1258
1263
 
1259
1264
  # Create tool registry for dependency injection
1260
1265
  registry = ToolRegistry()
@@ -1319,6 +1324,39 @@ def create_ouroboros_server(
1319
1324
  llm_backend=llm_backend,
1320
1325
  ),
1321
1326
  BrownfieldHandler(),
1327
+ ChannelWorkflowHandler(
1328
+ workflow_manager=workflow_manager,
1329
+ repo_registry=repo_registry,
1330
+ interview_handler=InterviewHandler(
1331
+ interview_engine=interview_engine,
1332
+ event_store=event_store,
1333
+ llm_adapter=llm_adapter,
1334
+ llm_backend=llm_backend,
1335
+ ),
1336
+ generate_seed_handler=GenerateSeedHandler(
1337
+ interview_engine=interview_engine,
1338
+ seed_generator=seed_generator,
1339
+ llm_adapter=llm_adapter,
1340
+ llm_backend=llm_backend,
1341
+ ),
1342
+ start_execute_seed_handler=StartExecuteSeedHandler(
1343
+ execute_handler=execute_seed,
1344
+ event_store=event_store,
1345
+ job_manager=job_manager,
1346
+ ),
1347
+ job_status_handler=JobStatusHandler(
1348
+ event_store=event_store,
1349
+ job_manager=job_manager,
1350
+ ),
1351
+ job_wait_handler=JobWaitHandler(
1352
+ event_store=event_store,
1353
+ job_manager=job_manager,
1354
+ ),
1355
+ job_result_handler=JobResultHandler(
1356
+ event_store=event_store,
1357
+ job_manager=job_manager,
1358
+ ),
1359
+ ),
1322
1360
  EvaluateHandler(
1323
1361
  event_store=event_store,
1324
1362
  llm_adapter=llm_adapter,
@@ -14,6 +14,7 @@ from ouroboros.mcp.tools.definitions import (
14
14
  ACTreeHUDHandler,
15
15
  CancelExecutionHandler,
16
16
  CancelJobHandler,
17
+ ChannelWorkflowHandler,
17
18
  EvaluateHandler,
18
19
  EvolveRewindHandler,
19
20
  EvolveStepHandler,
@@ -32,6 +33,7 @@ from ouroboros.mcp.tools.definitions import (
32
33
  StartExecuteSeedHandler,
33
34
  ac_tree_hud_handler,
34
35
  cancel_job_handler,
36
+ channel_workflow_handler,
35
37
  evaluate_handler,
36
38
  evolve_rewind_handler,
37
39
  evolve_step_handler,
@@ -58,6 +60,7 @@ __all__ = [
58
60
  "BrownfieldHandler",
59
61
  "CancelExecutionHandler",
60
62
  "CancelJobHandler",
63
+ "ChannelWorkflowHandler",
61
64
  "EvaluateHandler",
62
65
  "EvolveRewindHandler",
63
66
  "EvolveStepHandler",
@@ -78,6 +81,7 @@ __all__ = [
78
81
  "ToolRegistry",
79
82
  "ac_tree_hud_handler",
80
83
  "cancel_job_handler",
84
+ "channel_workflow_handler",
81
85
  "evaluate_handler",
82
86
  "evolve_rewind_handler",
83
87
  "evolve_step_handler",