ouroboros-ai 0.26.2.dev37__tar.gz → 0.26.3.dev1__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 (562) hide show
  1. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.claude-plugin/marketplace.json +1 -1
  2. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.claude-plugin/plugin.json +1 -1
  3. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/PKG-INFO +12 -1
  4. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/README.ko.md +11 -0
  5. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/README.md +11 -0
  6. ouroboros_ai-0.26.3.dev1/UNINSTALL.md +66 -0
  7. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/cli-reference.md +92 -12
  8. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/scripts/install.sh +5 -7
  9. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/pm/SKILL.md +20 -1
  10. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/setup/SKILL.md +40 -11
  11. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/update/SKILL.md +31 -9
  12. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/_version.py +2 -2
  13. ouroboros_ai-0.26.3.dev1/src/ouroboros/cli/commands/config.py +441 -0
  14. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/commands/setup.py +126 -55
  15. ouroboros_ai-0.26.3.dev1/src/ouroboros/cli/commands/uninstall.py +396 -0
  16. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/main.py +2 -1
  17. ouroboros_ai-0.26.3.dev1/tests/unit/cli/test_config.py +347 -0
  18. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/test_setup.py +164 -0
  19. ouroboros_ai-0.26.3.dev1/tests/unit/cli/test_uninstall.py +329 -0
  20. ouroboros_ai-0.26.2.dev37/src/ouroboros/cli/commands/config.py +0 -79
  21. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.claude/settings.json +0 -0
  22. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.claude-plugin/.mcp.json +0 -0
  23. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.env.example +0 -0
  24. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  25. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  26. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  27. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.github/ISSUE_TEMPLATE/question.yml +0 -0
  28. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.github/workflows/dev-publish.yml +0 -0
  29. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.github/workflows/lint.yml +0 -0
  30. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.github/workflows/release.yml +0 -0
  31. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.github/workflows/test.yml +0 -0
  32. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.gitignore +0 -0
  33. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.mcp.json +0 -0
  34. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.ouroboros/mechanical.toml +0 -0
  35. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.pre-commit-config.yaml +0 -0
  36. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/.python-version +0 -0
  37. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/CHANGELOG.md +0 -0
  38. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/CLAUDE.md +0 -0
  39. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/CODE_OF_CONDUCT.md +0 -0
  40. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/CONTRIBUTING.md +0 -0
  41. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/HANDOFF.md +0 -0
  42. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/LICENSE +0 -0
  43. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/SECURITY.md +0 -0
  44. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/cancel.md +0 -0
  45. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/evaluate.md +0 -0
  46. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/evolve.md +0 -0
  47. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/help.md +0 -0
  48. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/interview.md +0 -0
  49. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/ralph.md +0 -0
  50. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/run.md +0 -0
  51. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/seed.md +0 -0
  52. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/setup.md +0 -0
  53. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/status.md +0 -0
  54. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/tutorial.md +0 -0
  55. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/unstuck.md +0 -0
  56. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/commands/welcome.md +0 -0
  57. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/.gitignore +0 -0
  58. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/Cargo.lock +0 -0
  59. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/Cargo.toml +0 -0
  60. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/README.md +0 -0
  61. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/src/db.rs +0 -0
  62. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/src/main.rs +0 -0
  63. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/src/mock.rs +0 -0
  64. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/src/state.rs +0 -0
  65. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/src/views/dashboard.rs +0 -0
  66. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/src/views/execution.rs +0 -0
  67. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/src/views/lineage.rs +0 -0
  68. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/src/views/logs.rs +0 -0
  69. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/src/views/mod.rs +0 -0
  70. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/crates/ouroboros-tui/src/views/session_selector.rs +0 -0
  71. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/README.md +0 -0
  72. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/api/README.md +0 -0
  73. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/api/core.md +0 -0
  74. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/api/mcp.md +0 -0
  75. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/architecture.md +0 -0
  76. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/config-reference.md +0 -0
  77. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/contributing/architecture-overview.md +0 -0
  78. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/contributing/findings-registry.md +0 -0
  79. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/contributing/issue-quality-policy.md +0 -0
  80. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/contributing/key-patterns.md +0 -0
  81. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/contributing/testing-guide.md +0 -0
  82. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/examples/mcp-config.yaml +0 -0
  83. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/getting-started.md +0 -0
  84. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/guides/evaluation-pipeline.md +0 -0
  85. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/guides/evolution-loop.md +0 -0
  86. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/guides/issue-176-subagent-mcp-inheritance.md +0 -0
  87. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/guides/seed-authoring.md +0 -0
  88. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/guides/tui-usage.md +0 -0
  89. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/images/PLACEHOLDER_README.md +0 -0
  90. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/images/ouroboros.png +0 -0
  91. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/platform-support.md +0 -0
  92. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/runtime-capability-matrix.md +0 -0
  93. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/runtime-guides/claude-code.md +0 -0
  94. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/docs/runtime-guides/codex.md +0 -0
  95. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/examples/coordinator_test_seed.yaml +0 -0
  96. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/examples/dummy_seed.yaml +0 -0
  97. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/examples/parallel_subac_test_seed.yaml +0 -0
  98. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/examples/subac_test_seed.yaml +0 -0
  99. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/examples/task_manager/README.md +0 -0
  100. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/examples/task_manager/__init__.py +0 -0
  101. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/examples/task_manager/__main__.py +0 -0
  102. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/examples/task_manager/cli.py +0 -0
  103. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/examples/task_manager/models.py +0 -0
  104. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/examples/task_manager/storage.py +0 -0
  105. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/examples/test_display.py +0 -0
  106. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/hooks/hooks.json +0 -0
  107. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/llms-full.txt +0 -0
  108. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/llms.txt +0 -0
  109. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/project-context.md +0 -0
  110. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/pyproject.toml +0 -0
  111. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/scripts/drift-monitor.py +0 -0
  112. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/scripts/keyword-detector.py +0 -0
  113. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/scripts/mcp-serve.sh +0 -0
  114. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/scripts/ralph-rewind.py +0 -0
  115. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/scripts/ralph.py +0 -0
  116. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/scripts/ralph.sh +0 -0
  117. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/scripts/session-start.py +0 -0
  118. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/scripts/sync-plugin-version.py +0 -0
  119. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/scripts/version-check.py +0 -0
  120. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/brownfield/SKILL.md +0 -0
  121. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/cancel/SKILL.md +0 -0
  122. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/evaluate/SKILL.md +0 -0
  123. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/evolve/SKILL.md +0 -0
  124. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/help/SKILL.md +0 -0
  125. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/interview/SKILL.md +0 -0
  126. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/qa/SKILL.md +0 -0
  127. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/ralph/SKILL.md +0 -0
  128. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/run/SKILL.md +0 -0
  129. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/seed/SKILL.md +0 -0
  130. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/status/SKILL.md +0 -0
  131. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/tutorial/SKILL.md +0 -0
  132. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/unstuck/SKILL.md +0 -0
  133. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/skills/welcome/SKILL.md +0 -0
  134. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/__init__.py +0 -0
  135. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/__main__.py +0 -0
  136. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/__init__.py +0 -0
  137. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/advocate.md +0 -0
  138. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/analysis-agent.md +0 -0
  139. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/architect.md +0 -0
  140. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/breadth-keeper.md +0 -0
  141. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/code-executor.md +0 -0
  142. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/codebase-explorer.md +0 -0
  143. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/consensus-reviewer.md +0 -0
  144. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/contrarian.md +0 -0
  145. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/evaluator.md +0 -0
  146. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/hacker.md +0 -0
  147. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/judge.md +0 -0
  148. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/loader.py +0 -0
  149. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/ontologist.md +0 -0
  150. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/ontology-analyst.md +0 -0
  151. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/qa-judge.md +0 -0
  152. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/research-agent.md +0 -0
  153. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/researcher.md +0 -0
  154. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/seed-architect.md +0 -0
  155. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/seed-closer.md +0 -0
  156. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/semantic-evaluator.md +0 -0
  157. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/simplifier.md +0 -0
  158. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/agents/socratic-interviewer.md +0 -0
  159. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/bigbang/__init__.py +0 -0
  160. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/bigbang/ambiguity.py +0 -0
  161. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/bigbang/brownfield.py +0 -0
  162. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/bigbang/explore.py +0 -0
  163. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/bigbang/interview.py +0 -0
  164. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/bigbang/pm_document.py +0 -0
  165. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/bigbang/pm_interview.py +0 -0
  166. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/bigbang/pm_seed.py +0 -0
  167. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/bigbang/question_classifier.py +0 -0
  168. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/bigbang/seed_generator.py +0 -0
  169. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/__init__.py +0 -0
  170. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/commands/__init__.py +0 -0
  171. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/commands/cancel.py +0 -0
  172. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/commands/init.py +0 -0
  173. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/commands/mcp.py +0 -0
  174. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/commands/pm.py +0 -0
  175. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/commands/run.py +0 -0
  176. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/commands/status.py +0 -0
  177. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/commands/tui.py +0 -0
  178. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/formatters/__init__.py +0 -0
  179. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/formatters/panels.py +0 -0
  180. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/formatters/progress.py +0 -0
  181. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/formatters/tables.py +0 -0
  182. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/cli/formatters/workflow_display.py +0 -0
  183. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/codex/__init__.py +0 -0
  184. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/codex/artifacts.py +0 -0
  185. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/codex/ouroboros.md +0 -0
  186. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/codex_permissions.py +0 -0
  187. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/config/__init__.py +0 -0
  188. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/config/loader.py +0 -0
  189. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/config/models.py +0 -0
  190. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/__init__.py +0 -0
  191. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/ac_tree.py +0 -0
  192. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/context.py +0 -0
  193. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/errors.py +0 -0
  194. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/file_lock.py +0 -0
  195. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/git_workflow.py +0 -0
  196. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/lineage.py +0 -0
  197. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/ontology_aspect.py +0 -0
  198. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/ontology_questions.py +0 -0
  199. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/project_paths.py +0 -0
  200. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/security.py +0 -0
  201. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/seed.py +0 -0
  202. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/text.py +0 -0
  203. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/types.py +0 -0
  204. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/core/worktree.py +0 -0
  205. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evaluation/__init__.py +0 -0
  206. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evaluation/artifact_collector.py +0 -0
  207. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evaluation/consensus.py +0 -0
  208. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evaluation/json_utils.py +0 -0
  209. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evaluation/languages.py +0 -0
  210. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evaluation/mechanical.py +0 -0
  211. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evaluation/models.py +0 -0
  212. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evaluation/pipeline.py +0 -0
  213. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evaluation/semantic.py +0 -0
  214. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evaluation/trigger.py +0 -0
  215. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evaluation/verification_artifacts.py +0 -0
  216. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/events/__init__.py +0 -0
  217. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/events/base.py +0 -0
  218. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/events/decomposition.py +0 -0
  219. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/events/evaluation.py +0 -0
  220. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/events/interview.py +0 -0
  221. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/events/lineage.py +0 -0
  222. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/events/ontology.py +0 -0
  223. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evolution/__init__.py +0 -0
  224. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evolution/convergence.py +0 -0
  225. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evolution/loop.py +0 -0
  226. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evolution/projector.py +0 -0
  227. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evolution/reflect.py +0 -0
  228. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evolution/regression.py +0 -0
  229. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/evolution/wonder.py +0 -0
  230. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/execution/__init__.py +0 -0
  231. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/execution/atomicity.py +0 -0
  232. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/execution/decomposition.py +0 -0
  233. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/execution/double_diamond.py +0 -0
  234. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/execution/subagent.py +0 -0
  235. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/__init__.py +0 -0
  236. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/client/__init__.py +0 -0
  237. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/client/adapter.py +0 -0
  238. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/client/manager.py +0 -0
  239. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/client/protocol.py +0 -0
  240. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/errors.py +0 -0
  241. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/job_manager.py +0 -0
  242. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/resources/__init__.py +0 -0
  243. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/resources/handlers.py +0 -0
  244. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/server/__init__.py +0 -0
  245. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/server/adapter.py +0 -0
  246. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/server/protocol.py +0 -0
  247. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/server/security.py +0 -0
  248. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/__init__.py +0 -0
  249. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/authoring_handlers.py +0 -0
  250. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/brownfield_handler.py +0 -0
  251. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/dashboard.py +0 -0
  252. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/definitions.py +0 -0
  253. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/evaluation_handlers.py +0 -0
  254. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/evolution_handlers.py +0 -0
  255. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/execution_handlers.py +0 -0
  256. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/job_handlers.py +0 -0
  257. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/pm_handler.py +0 -0
  258. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/qa.py +0 -0
  259. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/query_handlers.py +0 -0
  260. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/tools/registry.py +0 -0
  261. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/mcp/types.py +0 -0
  262. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/observability/__init__.py +0 -0
  263. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/observability/drift.py +0 -0
  264. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/observability/logging.py +0 -0
  265. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/observability/retrospective.py +0 -0
  266. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/__init__.py +0 -0
  267. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/adapter.py +0 -0
  268. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/codex_cli_runtime.py +0 -0
  269. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/command_dispatcher.py +0 -0
  270. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/coordinator.py +0 -0
  271. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/dependency_analyzer.py +0 -0
  272. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/events.py +0 -0
  273. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/execution_runtime_scope.py +0 -0
  274. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/execution_strategy.py +0 -0
  275. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/heartbeat.py +0 -0
  276. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/level_context.py +0 -0
  277. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/mcp_config.py +0 -0
  278. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/mcp_tools.py +0 -0
  279. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/parallel_executor.py +0 -0
  280. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/parallel_executor_models.py +0 -0
  281. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/runner.py +0 -0
  282. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/runtime_factory.py +0 -0
  283. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/runtime_message_projection.py +0 -0
  284. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/session.py +0 -0
  285. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/orchestrator/workflow_state.py +0 -0
  286. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/persistence/__init__.py +0 -0
  287. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/persistence/brownfield.py +0 -0
  288. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/persistence/checkpoint.py +0 -0
  289. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/persistence/event_store.py +0 -0
  290. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/persistence/migrations/__init__.py +0 -0
  291. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/persistence/migrations/runner.py +0 -0
  292. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/persistence/migrations/scripts/001_initial.sql +0 -0
  293. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/persistence/migrations/scripts/002_brownfield.sql +0 -0
  294. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/persistence/schema.py +0 -0
  295. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/persistence/uow.py +0 -0
  296. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/plugin/__init__.py +0 -0
  297. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/plugin/agents/__init__.py +0 -0
  298. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/plugin/agents/pool.py +0 -0
  299. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/plugin/agents/registry.py +0 -0
  300. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/plugin/orchestration/__init__.py +0 -0
  301. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/plugin/orchestration/router.py +0 -0
  302. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/plugin/orchestration/scheduler.py +0 -0
  303. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/plugin/skills/__init__.py +0 -0
  304. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/plugin/skills/docs.py +0 -0
  305. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/plugin/skills/executor.py +0 -0
  306. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/plugin/skills/keywords.py +0 -0
  307. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/plugin/skills/registry.py +0 -0
  308. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/pm/__init__.py +0 -0
  309. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/pm/renderer.py +0 -0
  310. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/providers/__init__.py +0 -0
  311. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/providers/anthropic_adapter.py +0 -0
  312. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/providers/base.py +0 -0
  313. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/providers/claude_code_adapter.py +0 -0
  314. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/providers/codex_cli_adapter.py +0 -0
  315. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/providers/codex_cli_stream.py +0 -0
  316. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/providers/factory.py +0 -0
  317. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/providers/litellm_adapter.py +0 -0
  318. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/py.typed +0 -0
  319. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/resilience/__init__.py +0 -0
  320. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/resilience/lateral.py +0 -0
  321. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/resilience/stagnation.py +0 -0
  322. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/routing/__init__.py +0 -0
  323. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/routing/complexity.py +0 -0
  324. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/routing/downgrade.py +0 -0
  325. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/routing/escalation.py +0 -0
  326. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/routing/router.py +0 -0
  327. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/routing/tiers.py +0 -0
  328. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/secondary/__init__.py +0 -0
  329. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/secondary/scheduler.py +0 -0
  330. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/secondary/todo_registry.py +0 -0
  331. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/strategies/__init__.py +0 -0
  332. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/strategies/devil_advocate.py +0 -0
  333. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/__init__.py +0 -0
  334. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/app.py +0 -0
  335. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/components/__init__.py +0 -0
  336. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/components/agents_panel.py +0 -0
  337. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/components/event_log.py +0 -0
  338. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/components/progress.py +0 -0
  339. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/components/token_tracker.py +0 -0
  340. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/events.py +0 -0
  341. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/screens/__init__.py +0 -0
  342. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/screens/confirm_rewind.py +0 -0
  343. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/screens/dashboard.py +0 -0
  344. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/screens/dashboard_v2.py +0 -0
  345. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/screens/dashboard_v3.py +0 -0
  346. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/screens/debug.py +0 -0
  347. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/screens/execution.py +0 -0
  348. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/screens/hud_dashboard.py +0 -0
  349. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/screens/lineage_detail.py +0 -0
  350. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/screens/lineage_selector.py +0 -0
  351. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/screens/logs.py +0 -0
  352. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/screens/session_selector.py +0 -0
  353. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/widgets/__init__.py +0 -0
  354. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/widgets/ac_progress.py +0 -0
  355. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/widgets/ac_tree.py +0 -0
  356. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/widgets/agent_activity.py +0 -0
  357. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/widgets/cost_tracker.py +0 -0
  358. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/widgets/drift_meter.py +0 -0
  359. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/widgets/lineage_tree.py +0 -0
  360. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/widgets/parallel_graph.py +0 -0
  361. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/tui/widgets/phase_progress.py +0 -0
  362. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/verification/__init__.py +0 -0
  363. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/verification/extractor.py +0 -0
  364. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/verification/models.py +0 -0
  365. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/src/ouroboros/verification/verifier.py +0 -0
  366. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/__init__.py +0 -0
  367. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/conftest.py +0 -0
  368. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/e2e/__init__.py +0 -0
  369. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/e2e/conftest.py +0 -0
  370. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/e2e/test_cli_commands.py +0 -0
  371. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/e2e/test_full_workflow.py +0 -0
  372. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/e2e/test_session_persistence.py +0 -0
  373. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/fixtures/test_atomicity_seed.yml +0 -0
  374. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/integration/__init__.py +0 -0
  375. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/integration/conftest.py +0 -0
  376. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/integration/mcp/__init__.py +0 -0
  377. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/integration/mcp/conftest.py +0 -0
  378. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/integration/mcp/test_client_adapter.py +0 -0
  379. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/integration/mcp/test_client_manager.py +0 -0
  380. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/integration/mcp/test_server_adapter.py +0 -0
  381. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/integration/plugin/test_orchestration.py +0 -0
  382. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/integration/test_codex_cli_passthrough_smoke.py +0 -0
  383. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/integration/test_codex_skill_fallback.py +0 -0
  384. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/integration/test_codex_skill_smoke.py +0 -0
  385. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/integration/test_entry_point.py +0 -0
  386. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/__init__.py +0 -0
  387. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/agents/__init__.py +0 -0
  388. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/agents/test_loader.py +0 -0
  389. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/__init__.py +0 -0
  390. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_ambiguity.py +0 -0
  391. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_brownfield.py +0 -0
  392. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_classifier_context.py +0 -0
  393. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_decide_later_items.py +0 -0
  394. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_explore.py +0 -0
  395. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_interview.py +0 -0
  396. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_pm_document_generator.py +0 -0
  397. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_pm_document_writer.py +0 -0
  398. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_pm_interview.py +0 -0
  399. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_pm_interview_brownfield_db.py +0 -0
  400. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_pm_seed_ac12.py +0 -0
  401. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_pm_seed_save.py +0 -0
  402. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_question_classifier.py +0 -0
  403. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/bigbang/test_seed_generator.py +0 -0
  404. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/__init__.py +0 -0
  405. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/formatters/__init__.py +0 -0
  406. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/formatters/test_console.py +0 -0
  407. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/formatters/test_panels.py +0 -0
  408. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/formatters/test_progress.py +0 -0
  409. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/formatters/test_tables.py +0 -0
  410. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/formatters/test_workflow_display.py +0 -0
  411. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/test_cancel.py +0 -0
  412. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/test_init_pm_seed_detection.py +0 -0
  413. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/test_init_runtime.py +0 -0
  414. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/test_main.py +0 -0
  415. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/test_mcp_nested_guard.py +0 -0
  416. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/test_mcp_startup_cleanup.py +0 -0
  417. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/test_pm_brownfield.py +0 -0
  418. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/test_pm_overwrite.py +0 -0
  419. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/test_pm_select_repos.py +0 -0
  420. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/cli/test_run_qa.py +0 -0
  421. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/config/__init__.py +0 -0
  422. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/config/test_loader.py +0 -0
  423. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/config/test_models.py +0 -0
  424. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/core/__init__.py +0 -0
  425. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/core/test_ac_tree.py +0 -0
  426. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/core/test_context.py +0 -0
  427. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/core/test_errors.py +0 -0
  428. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/core/test_git_workflow.py +0 -0
  429. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/core/test_lineage.py +0 -0
  430. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/core/test_ontology_aspect.py +0 -0
  431. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/core/test_ontology_questions.py +0 -0
  432. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/core/test_security.py +0 -0
  433. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/core/test_seed.py +0 -0
  434. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/core/test_types.py +0 -0
  435. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/core/test_worktree.py +0 -0
  436. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/evaluation/__init__.py +0 -0
  437. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/evaluation/test_consensus.py +0 -0
  438. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/evaluation/test_json_utils.py +0 -0
  439. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/evaluation/test_languages.py +0 -0
  440. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/evaluation/test_mechanical.py +0 -0
  441. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/evaluation/test_models.py +0 -0
  442. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/evaluation/test_semantic.py +0 -0
  443. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/evaluation/test_trigger.py +0 -0
  444. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/evaluation/test_verification_artifacts.py +0 -0
  445. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/events/__init__.py +0 -0
  446. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/events/test_base.py +0 -0
  447. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/events/test_decomposition_events.py +0 -0
  448. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/evolution/test_wonder_scope.py +0 -0
  449. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/execution/__init__.py +0 -0
  450. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/execution/test_atomicity.py +0 -0
  451. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/execution/test_decomposition.py +0 -0
  452. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/execution/test_double_diamond.py +0 -0
  453. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/execution/test_subagent_isolation.py +0 -0
  454. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/__init__.py +0 -0
  455. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/client/__init__.py +0 -0
  456. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/client/test_adapter.py +0 -0
  457. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/client/test_manager.py +0 -0
  458. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/conftest.py +0 -0
  459. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/server/__init__.py +0 -0
  460. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/server/test_adapter.py +0 -0
  461. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/server/test_security.py +0 -0
  462. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/test_errors.py +0 -0
  463. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/test_job_manager.py +0 -0
  464. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/test_types.py +0 -0
  465. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/tools/__init__.py +0 -0
  466. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/tools/conftest.py +0 -0
  467. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/tools/test_brownfield_handler.py +0 -0
  468. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/tools/test_definitions.py +0 -0
  469. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/tools/test_pm_handler.py +0 -0
  470. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/tools/test_pm_handler_generate.py +0 -0
  471. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/tools/test_pm_handler_pending_reframe.py +0 -0
  472. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/tools/test_qa_integration.py +0 -0
  473. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/mcp/tools/test_registry.py +0 -0
  474. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/observability/__init__.py +0 -0
  475. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/observability/test_drift.py +0 -0
  476. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/observability/test_logging.py +0 -0
  477. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/observability/test_retrospective.py +0 -0
  478. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/__init__.py +0 -0
  479. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_adapter.py +0 -0
  480. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_codex_cli_runtime.py +0 -0
  481. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_codex_recursion_guard.py +0 -0
  482. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_command_dispatcher.py +0 -0
  483. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_coordinator.py +0 -0
  484. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_dependency_analyzer.py +0 -0
  485. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_events.py +0 -0
  486. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_execution_runtime_scope.py +0 -0
  487. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_execution_strategy.py +0 -0
  488. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_inflight_cancellation.py +0 -0
  489. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_level_context.py +0 -0
  490. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_mcp_config.py +0 -0
  491. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_mcp_tools.py +0 -0
  492. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_parallel_executor.py +0 -0
  493. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_parallel_executor_retry_resume.py +0 -0
  494. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_runner.py +0 -0
  495. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_runner_cancellation.py +0 -0
  496. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_runtime_factory.py +0 -0
  497. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_runtime_message_projection.py +0 -0
  498. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_session.py +0 -0
  499. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/orchestrator/test_workflow_state.py +0 -0
  500. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/persistence/__init__.py +0 -0
  501. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/persistence/test_brownfield_store.py +0 -0
  502. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/persistence/test_checkpoint.py +0 -0
  503. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/persistence/test_event_store.py +0 -0
  504. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/persistence/test_schema.py +0 -0
  505. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/persistence/test_uow.py +0 -0
  506. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/plugin/__init__.py +0 -0
  507. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/plugin/agents/__init__.py +0 -0
  508. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/plugin/agents/test_registry.py +0 -0
  509. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/plugin/orchestration/__init__.py +0 -0
  510. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/plugin/orchestration/test_model_router.py +0 -0
  511. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/plugin/skills/__init__.py +0 -0
  512. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/plugin/skills/test_keywords.py +0 -0
  513. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/plugin/skills/test_registry.py +0 -0
  514. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/pm/__init__.py +0 -0
  515. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/pm/test_renderer.py +0 -0
  516. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/providers/__init__.py +0 -0
  517. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/providers/test_base.py +0 -0
  518. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/providers/test_claude_code_adapter.py +0 -0
  519. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/providers/test_codex_cli_adapter.py +0 -0
  520. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/providers/test_factory.py +0 -0
  521. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/providers/test_litellm_adapter.py +0 -0
  522. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/resilience/__init__.py +0 -0
  523. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/resilience/test_lateral.py +0 -0
  524. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/resilience/test_stagnation.py +0 -0
  525. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/routing/__init__.py +0 -0
  526. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/routing/test_complexity.py +0 -0
  527. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/routing/test_downgrade.py +0 -0
  528. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/routing/test_escalation.py +0 -0
  529. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/routing/test_router.py +0 -0
  530. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/routing/test_tiers.py +0 -0
  531. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/scripts/test_keyword_detector.py +0 -0
  532. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/scripts/test_version_check.py +0 -0
  533. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/secondary/__init__.py +0 -0
  534. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/secondary/test_scheduler.py +0 -0
  535. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/secondary/test_todo_registry.py +0 -0
  536. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_artifact_collector.py +0 -0
  537. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_codex_artifacts.py +0 -0
  538. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_convergence.py +0 -0
  539. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_dashboard.py +0 -0
  540. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_dependencies_configured.py +0 -0
  541. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_evolve_rewind.py +0 -0
  542. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_evolve_step.py +0 -0
  543. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_graceful_shutdown.py +0 -0
  544. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_main_entry_point.py +0 -0
  545. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_module_structure.py +0 -0
  546. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_project_initialization.py +0 -0
  547. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_projector_rewind.py +0 -0
  548. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_ralph_parser.py +0 -0
  549. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_ralph_rewind.py +0 -0
  550. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_regression.py +0 -0
  551. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_tooling_configuration.py +0 -0
  552. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/test_verification.py +0 -0
  553. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/tui/__init__.py +0 -0
  554. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/tui/test_app.py +0 -0
  555. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/tui/test_cancelled_display.py +0 -0
  556. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/tui/test_events.py +0 -0
  557. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/tui/test_lineage_viewer.py +0 -0
  558. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/tui/test_screens.py +0 -0
  559. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/tui/test_session_selector_replay.py +0 -0
  560. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tests/unit/tui/test_widgets.py +0 -0
  561. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/tools/sync_github_project.py +0 -0
  562. {ouroboros_ai-0.26.2.dev37 → ouroboros_ai-0.26.3.dev1}/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.26.1",
13
+ "version": "0.26.2",
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.26.1",
3
+ "version": "0.26.2",
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",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ouroboros-ai
3
- Version: 0.26.2.dev37
3
+ Version: 0.26.3.dev1
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
@@ -143,6 +143,17 @@ See runtime guides: [Claude Code](./docs/runtime-guides/claude-code.md) · [Code
143
143
 
144
144
  </details>
145
145
 
146
+ <details>
147
+ <summary><strong>Uninstall</strong></summary>
148
+
149
+ ```bash
150
+ ouroboros uninstall
151
+ ```
152
+
153
+ Removes all configuration, MCP registration, and data. See [UNINSTALL.md](./UNINSTALL.md) for details.
154
+
155
+ </details>
156
+
146
157
  > **Python >= 3.12 required.** See [pyproject.toml](./pyproject.toml) for the full dependency list.
147
158
 
148
159
  ---
@@ -127,6 +127,17 @@ ouroboros setup # 런타임 설정
127
127
 
128
128
  </details>
129
129
 
130
+ <details>
131
+ <summary><strong>완전 삭제</strong></summary>
132
+
133
+ ```bash
134
+ ouroboros uninstall
135
+ ```
136
+
137
+ 모든 설정, MCP 등록, 데이터를 제거합니다. 자세한 내용은 [UNINSTALL.md](./UNINSTALL.md)를 참고하세요.
138
+
139
+ </details>
140
+
130
141
  <details>
131
142
  <summary><strong>무슨 일이 일어났나요?</strong></summary>
132
143
 
@@ -103,6 +103,17 @@ See runtime guides: [Claude Code](./docs/runtime-guides/claude-code.md) · [Code
103
103
 
104
104
  </details>
105
105
 
106
+ <details>
107
+ <summary><strong>Uninstall</strong></summary>
108
+
109
+ ```bash
110
+ ouroboros uninstall
111
+ ```
112
+
113
+ Removes all configuration, MCP registration, and data. See [UNINSTALL.md](./UNINSTALL.md) for details.
114
+
115
+ </details>
116
+
106
117
  > **Python >= 3.12 required.** See [pyproject.toml](./pyproject.toml) for the full dependency list.
107
118
 
108
119
  ---
@@ -0,0 +1,66 @@
1
+ # Clean Uninstall Guide
2
+
3
+ ## One Command
4
+
5
+ ```bash
6
+ ouroboros uninstall
7
+ ```
8
+
9
+ This interactively removes all Ouroboros configuration:
10
+ - MCP server registration (`~/.claude/mcp.json`, `~/.codex/config.toml`)
11
+ - CLAUDE.md integration block (`<!-- ooo:START -->` ... `<!-- ooo:END -->`)
12
+ - Codex rules and skills (`~/.codex/rules/ouroboros.md`, `~/.codex/skills/ouroboros/`)
13
+ - Project-level config (`.ouroboros/`)
14
+ - Data directory (`~/.ouroboros/` — config, credentials, DB, seeds, logs, locks, prefs)
15
+
16
+ Then finish with:
17
+
18
+ ```bash
19
+ uv tool uninstall ouroboros-ai # or: pip uninstall ouroboros-ai
20
+ claude plugin uninstall ouroboros # if using Claude Code plugin
21
+ ```
22
+
23
+ ### Options
24
+
25
+ | Flag | Effect |
26
+ |:-----|:-------|
27
+ | `-y`, `--yes` | Skip confirmation prompt |
28
+ | `--dry-run` | Preview what would be removed, change nothing |
29
+ | `--keep-data` | Keep entire `~/.ouroboros/` (config, credentials, seeds, DB, logs) |
30
+
31
+ ### Inside Claude Code
32
+
33
+ Inside an active Claude Code session, type:
34
+
35
+ ```
36
+ /ouroboros:setup --uninstall
37
+ ```
38
+
39
+ This is a **skill command** (not a CLI flag) that removes MCP registration and the CLAUDE.md block interactively.
40
+
41
+ ---
42
+
43
+ ## What Lives Where
44
+
45
+ | Path | Created by | Contents |
46
+ |:-----|:-----------|:---------|
47
+ | `~/.claude/mcp.json` | `ooo setup` / `ouroboros setup` | MCP server entry |
48
+ | `~/.codex/config.toml` | `ouroboros setup --runtime codex` | Codex MCP section |
49
+ | `~/.codex/rules/ouroboros.md` | `ouroboros setup --runtime codex` | Codex rules |
50
+ | `~/.codex/skills/ouroboros/` | `ouroboros setup --runtime codex` | Codex skills |
51
+ | `CLAUDE.md` | `ooo setup` | Command reference block |
52
+ | `~/.ouroboros/config.yaml` | `ouroboros setup` | Runtime configuration |
53
+ | `~/.ouroboros/credentials.yaml` | `ouroboros setup` | API credentials |
54
+ | `~/.ouroboros/ouroboros.db` | First run | Event store + brownfield registry |
55
+ | `~/.ouroboros/seeds/` | `ooo seed` / `ooo interview` | Generated seed specs |
56
+ | `~/.ouroboros/data/` | `ooo interview` | Interview state |
57
+ | `~/.ouroboros/logs/` | Any run | Log files |
58
+ | `~/.ouroboros/locks/` | `ooo run` | Heartbeat locks |
59
+ | `~/.ouroboros/prefs.json` | `ooo setup` | Preferences |
60
+ | `.ouroboros/` (project) | `ooo evaluate` | Mechanical eval config |
61
+
62
+ ## What Is NOT Removed
63
+
64
+ - Your project source code and git history
65
+ - Generated seed YAML files copied outside `~/.ouroboros/seeds/`
66
+ - Package manager caches (run `uv cache clean ouroboros-ai` or `pip cache purge` if needed)
@@ -42,7 +42,8 @@ ouroboros [OPTIONS] COMMAND [ARGS]...
42
42
  | `init` | Start interactive interview to refine requirements |
43
43
  | `run` | Execute Ouroboros workflows |
44
44
  | `cancel` | Cancel stuck or orphaned executions |
45
- | `config` | Manage Ouroboros configuration |
45
+ | `config` | Manage Ouroboros configuration (show, switch backend, set values) |
46
+ | `uninstall` | Cleanly remove all Ouroboros configuration from your system |
46
47
  | `status` | Check Ouroboros system status |
47
48
  | `tui` | Interactive TUI monitor for real-time workflow monitoring |
48
49
  | `monitor` | Shorthand for `tui monitor` |
@@ -311,11 +312,9 @@ ouroboros cancel execution orch_abc123 --reason "Stuck for 2 hours"
311
312
 
312
313
  Manage Ouroboros configuration.
313
314
 
314
- > **Current state:** the `config` subcommands are scaffolding. They currently print placeholder output and do not mutate `~/.ouroboros/config.yaml`. Use `ouroboros setup` for initial runtime setup, then edit `~/.ouroboros/config.yaml` directly for manual changes.
315
-
316
315
  ### `config show`
317
316
 
318
- Display current configuration.
317
+ Display current configuration summary, or a specific section.
319
318
 
320
319
  ```bash
321
320
  ouroboros config show [SECTION]
@@ -325,16 +324,43 @@ ouroboros config show [SECTION]
325
324
 
326
325
  | Argument | Description |
327
326
  |----------|-------------|
328
- | `SECTION` | Configuration section to display (e.g., `providers`) |
327
+ | `SECTION` | Configuration section to display (e.g., `orchestrator`, `llm`, `consensus`) |
329
328
 
330
329
  **Examples:**
331
330
 
332
331
  ```bash
333
- # Show all configuration
332
+ # Show configuration summary (backend, CLI path, DB, log level)
334
333
  ouroboros config show
335
334
 
336
- # Show only providers section
337
- ouroboros config show providers
335
+ # Show only orchestrator section
336
+ ouroboros config show orchestrator
337
+ ```
338
+
339
+ ### `config backend`
340
+
341
+ Show or switch the runtime backend. This sets both `orchestrator.runtime_backend` and `llm.backend` together — they are always kept in sync for simplicity. Advanced users can decouple them with `config set`.
342
+
343
+ ```bash
344
+ ouroboros config backend [BACKEND]
345
+ ```
346
+
347
+ **Arguments:**
348
+
349
+ | Argument | Description |
350
+ |----------|-------------|
351
+ | `BACKEND` | Backend to switch to: `claude` or `codex`. Omit to show current |
352
+
353
+ **Examples:**
354
+
355
+ ```bash
356
+ # Show current backend
357
+ ouroboros config backend
358
+
359
+ # Switch to Codex CLI
360
+ ouroboros config backend codex
361
+
362
+ # Switch to Claude Code
363
+ ouroboros config backend claude
338
364
  ```
339
365
 
340
366
  ### `config init`
@@ -349,7 +375,7 @@ Creates `~/.ouroboros/config.yaml` and `~/.ouroboros/credentials.yaml` with defa
349
375
 
350
376
  ### `config set`
351
377
 
352
- Set a configuration value.
378
+ Set a configuration value using dot notation.
353
379
 
354
380
  ```bash
355
381
  ouroboros config set KEY VALUE
@@ -365,13 +391,16 @@ ouroboros config set KEY VALUE
365
391
  **Examples:**
366
392
 
367
393
  ```bash
368
- # Placeholder command surface (does not yet write files)
369
- ouroboros config set orchestrator.runtime_backend codex
394
+ # Change log level
395
+ ouroboros config set logging.level debug
396
+
397
+ # Override LLM backend separately from runtime backend
398
+ ouroboros config set llm.backend litellm
370
399
  ```
371
400
 
372
401
  ### `config validate`
373
402
 
374
- Validate current configuration.
403
+ Validate current configuration. Checks that the runtime backend is supported and the CLI binary path exists.
375
404
 
376
405
  ```bash
377
406
  ouroboros config validate
@@ -379,6 +408,57 @@ ouroboros config validate
379
408
 
380
409
  ---
381
410
 
411
+ ## `ouroboros uninstall`
412
+
413
+ Cleanly remove all Ouroboros configuration from your system. Reverses everything `ouroboros setup` did.
414
+
415
+ ```bash
416
+ ouroboros uninstall [OPTIONS]
417
+ ```
418
+
419
+ **Options:**
420
+
421
+ | Option | Description |
422
+ |--------|-------------|
423
+ | `--keep-data` | Keep entire `~/.ouroboros/` directory (config, credentials, seeds, logs, DB) |
424
+ | `--dry-run` | Show what would be removed without actually deleting |
425
+ | `-y, --yes` | Skip confirmation prompt |
426
+
427
+ **Examples:**
428
+
429
+ ```bash
430
+ # Interactive uninstall (shows what will be removed, asks for confirmation)
431
+ ouroboros uninstall
432
+
433
+ # Non-interactive
434
+ ouroboros uninstall -y
435
+
436
+ # Preview only
437
+ ouroboros uninstall --dry-run
438
+
439
+ # Remove MCP/artifacts but keep ~/.ouroboros/
440
+ ouroboros uninstall --keep-data
441
+ ```
442
+
443
+ **What it removes:**
444
+
445
+ - `ouroboros` entry from `~/.claude/mcp.json`
446
+ - `[mcp_servers.ouroboros]` section from `~/.codex/config.toml`
447
+ - `~/.codex/rules/ouroboros.md` and `~/.codex/skills/ouroboros/`
448
+ - `<!-- ooo:START -->` … `<!-- ooo:END -->` block from `CLAUDE.md`
449
+ - `.ouroboros/` directory in the current project
450
+ - `~/.ouroboros/` directory (unless `--keep-data`)
451
+
452
+ **What it does NOT remove:**
453
+
454
+ - The Python package — run `pip uninstall ouroboros-ai` or `uv tool uninstall ouroboros-ai` separately
455
+ - The Claude Code plugin — run `claude plugin uninstall ouroboros` separately
456
+ - Your project source code or git history
457
+
458
+ See [UNINSTALL.md](../UNINSTALL.md) for the full guide.
459
+
460
+ ---
461
+
382
462
  ## `ouroboros status`
383
463
 
384
464
  Check Ouroboros system status.
@@ -140,11 +140,9 @@ if [ "$HAS_UV" = true ]; then
140
140
  elif [ "$HAS_PIPX" = true ]; then
141
141
  INSTALL_METHOD="pipx"
142
142
  if [ -n "$PRE_FLAG" ]; then
143
- pipx install --pip-args='--pre' "$INSTALL_SPEC" 2>/dev/null \
144
- || pipx upgrade --pip-args='--pre' "$INSTALL_SPEC"
143
+ pipx install --force --pip-args='--pre' "$INSTALL_SPEC"
145
144
  else
146
- pipx install "$INSTALL_SPEC" 2>/dev/null \
147
- || pipx upgrade "$INSTALL_SPEC"
145
+ pipx install --force "$INSTALL_SPEC"
148
146
  fi
149
147
  else
150
148
  INSTALL_METHOD="pip"
@@ -184,11 +182,11 @@ if command -v claude &>/dev/null; then
184
182
 
185
183
  # MCP command matches the installer that actually ran in step 3
186
184
  if [ "$INSTALL_METHOD" = "uv" ]; then
187
- OUROBOROS_ENTRY='{"command":"uvx","args":["--from","ouroboros-ai[claude]","ouroboros","mcp","serve"],"timeout":600}'
185
+ OUROBOROS_ENTRY='{"command":"uvx","args":["--from","ouroboros-ai[claude]","ouroboros","mcp","serve"]}'
188
186
  elif [ "$INSTALL_METHOD" = "pipx" ]; then
189
- OUROBOROS_ENTRY='{"command":"ouroboros","args":["mcp","serve"],"timeout":600}'
187
+ OUROBOROS_ENTRY='{"command":"ouroboros","args":["mcp","serve"]}'
190
188
  else
191
- OUROBOROS_ENTRY='{"command":"python3","args":["-m","ouroboros","mcp","serve"],"timeout":600}'
189
+ OUROBOROS_ENTRY='{"command":"python3","args":["-m","ouroboros","mcp","serve"]}'
192
190
  fi
193
191
 
194
192
  # Find a working Python: system python3, or uv-managed python
@@ -15,7 +15,26 @@ PM-focused Socratic interview that produces a Product Requirements Document.
15
15
  ToolSearch query: "+ouroboros pm_interview"
16
16
  ```
17
17
 
18
- If not found → tell user to run `ooo setup` first. Stop.
18
+ If not found → **diagnose before telling user to run setup**:
19
+
20
+ 1. Check if MCP is already configured:
21
+ ```bash
22
+ grep -q '"ouroboros"' ~/.claude/mcp.json 2>/dev/null && echo "CONFIGURED" || echo "NOT_CONFIGURED"
23
+ ```
24
+
25
+ 2. **If NOT_CONFIGURED** → tell user to run `ooo setup` first. Stop.
26
+
27
+ 3. **If CONFIGURED** → MCP is registered but the server isn't connecting. Do NOT tell the user to run `ooo setup` again. Instead show:
28
+ ```
29
+ Ouroboros MCP is configured but not connected.
30
+
31
+ Try these steps in order:
32
+ 1. Restart Claude Code (Cmd+Shift+P → "Reload Window" or close/reopen terminal)
33
+ 2. Check MCP status: type /mcp in Claude Code
34
+ 3. If ouroboros shows "error", try: ooo update
35
+ 4. If still failing, re-run: ooo setup
36
+ ```
37
+ Stop.
19
38
 
20
39
  ### Step 2: Start Interview
21
40
 
@@ -123,16 +123,44 @@ Runtime backend [✓] Detected
123
123
 
124
124
  | Environment | Mode | Action |
125
125
  |:------------|:-----|:-------|
126
- | uvx + uv Python >= 3.12 | **Ready** | Proceed to MCP registration |
127
- | System Python >= 3.12 | **Ready** | Proceed to MCP registration |
126
+ | uvx + Python >= 3.12 | **Ready** | Proceed to MCP registration (uvx mode — extras always included) |
127
+ | No uvx + `ouroboros` binary in PATH | **Check deps** | Verify `[claude]` extras, then proceed (binary mode) |
128
+ | No uvx + Python >= 3.12 + `python3 -m ouroboros` works | **Check deps** | Verify `[claude]` extras, then proceed (pip mode) |
128
129
  | uvx + Python < 3.12 only | **Install needed** | Run `uv python install 3.12` then proceed |
129
- | No uvx | **Install needed** | Run `curl -LsSf https://astral.sh/uv/install.sh \| sh` then `uv python install 3.12` |
130
+ | No uvx + no ouroboros binary + no pip package | **Install needed** | Install uv first, then proceed |
130
131
 
131
- **IMPORTANT**: If Python >= 3.12 is not available, DO NOT skip to "Plugin-Only mode". Guide the user to install the prerequisites. MCP is required for the full Ouroboros experience.
132
+ **For binary/pip modes — verify `[claude]` extras are installed:**
133
+
134
+ Check method depends on how ouroboros was installed:
135
+ ```bash
136
+ # Detect install method
137
+ pipx list 2>/dev/null | grep -q ouroboros && echo "PIPX" || echo "NOT_PIPX"
138
+ ```
139
+
140
+ - **pipx users** (binary mode, installed via pipx):
141
+ ```bash
142
+ pipx runpip ouroboros-ai show claude-agent-sdk 2>/dev/null && echo "DEPS_OK" || echo "DEPS_MISSING"
143
+ ```
144
+ If `DEPS_MISSING`: `pipx install --force ouroboros-ai[claude]`
145
+
146
+ - **pip users** (pip mode):
147
+ ```bash
148
+ python3 -c "import claude_agent_sdk" 2>/dev/null && echo "DEPS_OK" || echo "DEPS_MISSING"
149
+ ```
150
+ If `DEPS_MISSING`: `python3 -m pip install ouroboros-ai[claude]`
151
+
152
+ If deps are missing and the user doesn't want to fix manually, recommend uvx:
153
+ ```
154
+ Or install uvx (recommended — handles deps automatically):
155
+ curl -LsSf https://astral.sh/uv/install.sh | sh
156
+ Then re-run: ooo setup
157
+ ```
158
+
159
+ **IMPORTANT**: The MCP server requires one of: (1) uvx, (2) ouroboros binary in PATH, or (3) ouroboros pip-installed. For options 2 and 3, the `[claude]` extra must also be installed. If none are available, guide the user to install uv — do NOT write a non-working fallback to mcp.json.
132
160
 
133
161
  **If prerequisites are missing, show:**
134
162
  ```
135
- Ouroboros requires Python >= 3.12 for the MCP server.
163
+ Ouroboros requires uvx (recommended) or the ouroboros package installed.
136
164
 
137
165
  Quick install (< 1 minute):
138
166
  curl -LsSf https://astral.sh/uv/install.sh | sh
@@ -173,12 +201,13 @@ This enables:
173
201
 
174
202
  **Automatically create or update `~/.claude/mcp.json`** (user-level, works across all projects).
175
203
 
176
- Choose the MCP command based on how ouroboros is installed:
177
- - If `uvx` is available: `{"command": "uvx", "args": ["--from", "ouroboros-ai[claude]", "ouroboros", "mcp", "serve"], "timeout": 600}`
178
- - If `ouroboros` binary is in PATH (pipx install): `{"command": "ouroboros", "args": ["mcp", "serve"], "timeout": 600}`
179
- - Fallback (pip install): `{"command": "python3", "args": ["-m", "ouroboros", "mcp", "serve"], "timeout": 600}`
204
+ Choose the MCP command based on how ouroboros is installed (check in order):
205
+ 1. If `which uvx` succeeds: `{"command": "uvx", "args": ["--from", "ouroboros-ai[claude]", "ouroboros", "mcp", "serve"]}`
206
+ 2. If `which ouroboros` succeeds: `{"command": "ouroboros", "args": ["mcp", "serve"]}`
207
+ 3. If `python3 -c "import ouroboros"` succeeds: `{"command": "python3", "args": ["-m", "ouroboros", "mcp", "serve"]}`
208
+ 4. If none of the above → **do NOT write to mcp.json**. Instead show the prerequisites message from Step 1 and stop.
180
209
 
181
- If `~/.claude/mcp.json` already exists, merge intelligently (preserve other servers).
210
+ If `~/.claude/mcp.json` already exists, read it, **always overwrite the `ouroboros` key** with the entry above (to fix stale args from older versions), and preserve all other server entries.
182
211
 
183
212
  **Celebration Checkpoint 2:**
184
213
  ```
@@ -217,7 +246,7 @@ A backup will be created: CLAUDE.md.bak
217
246
  **If "Preview first", show:**
218
247
  ````markdown
219
248
  <!-- ooo:START -->
220
- <!-- ooo:VERSION:0.26.1 -->
249
+ <!-- ooo:VERSION:0.26.2 -->
221
250
  # Ouroboros — Specification-First AI Development
222
251
 
223
252
  > Before telling AI what to build, define what should be built.
@@ -80,38 +80,46 @@ When the user invokes this skill:
80
80
 
81
81
  4. **Run update** (if user chose to update):
82
82
 
83
- a. **Update PyPI package** — detect the original install method and use the same one:
83
+ a. **Update PyPI package** — detect the original install method and preserve `[claude]` extras:
84
84
 
85
- Check which installer was used (in priority order):
85
+ Check which installer was used:
86
86
  ```bash
87
87
  uv tool list 2>/dev/null | grep -q ouroboros && echo "uv"
88
88
  pipx list 2>/dev/null | grep -q ouroboros && echo "pipx"
89
89
  ```
90
90
 
91
+ > This skill runs inside Claude Code, so always use `ouroboros-ai[claude]`
92
+ > (includes `claude-agent-sdk` and `anthropic` required for MCP tools).
93
+
91
94
  - If installed via **uv tool** (most common with install.sh):
92
95
  ```bash
93
96
  # For pre-release targets:
94
- uv tool install --upgrade --prerelease=allow ouroboros-ai
97
+ uv tool install --upgrade --prerelease=allow ouroboros-ai[claude]
95
98
  # For stable targets:
96
- uv tool install --upgrade ouroboros-ai
99
+ uv tool install --upgrade ouroboros-ai[claude]
97
100
  ```
98
101
 
99
102
  - If installed via **pipx**:
103
+ > `pipx upgrade` cannot add extras to an existing venv — use `install --force` to reinstall with extras.
100
104
  ```bash
101
105
  # For pre-release targets:
102
- pipx upgrade --pip-args='--pre' ouroboros-ai
106
+ pipx install --force --pip-args='--pre' ouroboros-ai[claude]
103
107
  # For stable targets:
104
- pipx upgrade ouroboros-ai
108
+ pipx install --force ouroboros-ai[claude]
105
109
  ```
106
110
 
107
111
  - If installed via **pip** (fallback):
108
112
  ```bash
109
113
  # For pre-release targets:
110
- python3 -m pip install --upgrade --pre ouroboros-ai
114
+ python3 -m pip install --upgrade --pre ouroboros-ai[claude]
111
115
  # For stable targets:
112
- python3 -m pip install --upgrade ouroboros-ai
116
+ python3 -m pip install --upgrade ouroboros-ai[claude]
113
117
  ```
114
118
 
119
+ > **Note**: The `[claude]` extra is critical — it installs `claude-agent-sdk` and
120
+ > `anthropic` which are required for MCP tool execution. Omitting it causes MCP
121
+ > tools to fail silently at call time.
122
+
115
123
  b. **Update runtime integration**:
116
124
 
117
125
  For Claude Code:
@@ -125,7 +133,21 @@ When the user invokes this skill:
125
133
  ouroboros setup --runtime codex --non-interactive
126
134
  ```
127
135
 
128
- c. **Verify and update CLAUDE.md version marker**:
136
+ c. **Refresh MCP server config** (fixes stale args from older versions):
137
+
138
+ Run the same setup command used in step b to ensure MCP config is current:
139
+
140
+ For Claude Code:
141
+ ```bash
142
+ ouroboros setup --runtime claude --non-interactive
143
+ ```
144
+
145
+ For Codex CLI (already handled by step b above — skip this step).
146
+
147
+ This ensures `~/.claude/mcp.json` has the latest MCP command and args
148
+ (e.g., `ouroboros-ai[claude]` extras). Skips if already up to date.
149
+
150
+ d. **Verify and update CLAUDE.md version marker**:
129
151
  ```bash
130
152
  NEW_VERSION=$(ouroboros --version 2>/dev/null | grep -oE '[0-9]+\.[0-9]+\.[0-9]+[a-z0-9.]*')
131
153
  echo "Installed: v$NEW_VERSION"
@@ -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.26.2.dev37'
22
- __version_tuple__ = version_tuple = (0, 26, 2, 'dev37')
21
+ __version__ = version = '0.26.3.dev1'
22
+ __version_tuple__ = version_tuple = (0, 26, 3, 'dev1')
23
23
 
24
24
  __commit_id__ = commit_id = None