ouroboros-ai 0.2.0__tar.gz → 0.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (202) hide show
  1. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/PKG-INFO +1 -1
  2. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/pyproject.toml +1 -1
  3. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/bigbang/ambiguity.py +6 -4
  4. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/bigbang/test_ambiguity.py +8 -8
  5. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/uv.lock +1 -1
  6. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/.gitignore +0 -0
  7. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/.pre-commit-config.yaml +0 -0
  8. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/.python-version +0 -0
  9. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/CHANGELOG.md +0 -0
  10. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/LICENSE +0 -0
  11. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/PR-43-CODE-REVIEW-REPORT.md +0 -0
  12. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/README.md +0 -0
  13. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/github-issue-mapping.yaml +0 -0
  14. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/sprint-status.yaml +0 -0
  15. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/0-1-project-initialization-with-uv.md +0 -0
  16. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/0-2-core-types-and-error-handling.md +0 -0
  17. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/0-3-event-store-with-sqlalchemy-core.md +0 -0
  18. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/0-4-configuration-and-credentials-management.md +0 -0
  19. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/0-5-llm-provider-adapter-with-litellm.md +0 -0
  20. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/0-6-cli-skeleton-with-typer-and-rich.md +0 -0
  21. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/0-7-structured-logging-with-structlog.md +0 -0
  22. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/0-8-checkpoint-and-recovery-system.md +0 -0
  23. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/0-9-context-compression-engine.md +0 -0
  24. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/1-1-interview-protocol-engine.md +0 -0
  25. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/1-2-ambiguity-score-calculation.md +0 -0
  26. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/1-3-immutable-seed-generation.md +0 -0
  27. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/2-1-three-tier-model-configuration.md +0 -0
  28. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/2-2-complexity-based-routing.md +0 -0
  29. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/2-3-escalation-on-failure.md +0 -0
  30. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/2-4-downgrade-on-success.md +0 -0
  31. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/3-1-double-diamond-cycle-implementation.md +0 -0
  32. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/3-2-hierarchical-ac-decomposition.md +0 -0
  33. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/3-3-atomicity-detection.md +0 -0
  34. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/3-4-subagent-isolation.md +0 -0
  35. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/4-1-stagnation-detection-4-patterns.md +0 -0
  36. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/4-2-lateral-thinking-personas.md +0 -0
  37. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/4-3-persona-rotation-strategy.md +0 -0
  38. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/5-1-stage-1-mechanical-verification.md +0 -0
  39. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/5-2-stage-2-semantic-evaluation.md +0 -0
  40. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/5-3-stage-3-multi-model-consensus.md +0 -0
  41. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/5-4-consensus-trigger-matrix.md +0 -0
  42. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/6-1-drift-measurement-engine.md +0 -0
  43. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/6-2-automatic-retrospective.md +0 -0
  44. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/7-1-todo-registry.md +0 -0
  45. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/implementation-artifacts/stories/7-2-secondary-loop-batch-processing.md +0 -0
  46. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/planning-artifacts/architecture.md +0 -0
  47. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/planning-artifacts/bmm-workflow-status.yaml +0 -0
  48. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/planning-artifacts/epics.md +0 -0
  49. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/_bmad-output/update-stories.sh +0 -0
  50. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/docs/running-with-claude-code.md +0 -0
  51. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/project-context.md +0 -0
  52. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/requirement/1_EXECUTIVE_SUMMARY.md +0 -0
  53. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/requirement/2_FULL_SPECIFICATION.md +0 -0
  54. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/requirement/3_CONFIG_TEMPLATE.yaml +0 -0
  55. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/requirement/4_REDDIT_EXAMPLE.md +0 -0
  56. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/__init__.py +0 -0
  57. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/__main__.py +0 -0
  58. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/bigbang/__init__.py +0 -0
  59. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/bigbang/interview.py +0 -0
  60. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/bigbang/seed_generator.py +0 -0
  61. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/cli/__init__.py +0 -0
  62. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/cli/commands/__init__.py +0 -0
  63. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/cli/commands/config.py +0 -0
  64. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/cli/commands/init.py +0 -0
  65. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/cli/commands/run.py +0 -0
  66. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/cli/commands/status.py +0 -0
  67. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/cli/formatters/__init__.py +0 -0
  68. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/cli/formatters/panels.py +0 -0
  69. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/cli/formatters/progress.py +0 -0
  70. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/cli/formatters/tables.py +0 -0
  71. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/cli/main.py +0 -0
  72. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/config/__init__.py +0 -0
  73. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/config/loader.py +0 -0
  74. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/config/models.py +0 -0
  75. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/core/__init__.py +0 -0
  76. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/core/ac_tree.py +0 -0
  77. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/core/context.py +0 -0
  78. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/core/errors.py +0 -0
  79. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/core/security.py +0 -0
  80. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/core/seed.py +0 -0
  81. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/core/types.py +0 -0
  82. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/evaluation/__init__.py +0 -0
  83. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/evaluation/consensus.py +0 -0
  84. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/evaluation/mechanical.py +0 -0
  85. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/evaluation/models.py +0 -0
  86. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/evaluation/pipeline.py +0 -0
  87. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/evaluation/semantic.py +0 -0
  88. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/evaluation/trigger.py +0 -0
  89. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/events/__init__.py +0 -0
  90. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/events/base.py +0 -0
  91. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/events/decomposition.py +0 -0
  92. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/events/evaluation.py +0 -0
  93. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/execution/__init__.py +0 -0
  94. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/execution/atomicity.py +0 -0
  95. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/execution/decomposition.py +0 -0
  96. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/execution/double_diamond.py +0 -0
  97. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/execution/subagent.py +0 -0
  98. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/observability/__init__.py +0 -0
  99. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/observability/drift.py +0 -0
  100. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/observability/logging.py +0 -0
  101. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/observability/retrospective.py +0 -0
  102. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/orchestrator/__init__.py +0 -0
  103. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/orchestrator/adapter.py +0 -0
  104. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/orchestrator/events.py +0 -0
  105. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/orchestrator/runner.py +0 -0
  106. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/orchestrator/session.py +0 -0
  107. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/persistence/__init__.py +0 -0
  108. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/persistence/checkpoint.py +0 -0
  109. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/persistence/event_store.py +0 -0
  110. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/persistence/migrations/__init__.py +0 -0
  111. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/persistence/migrations/runner.py +0 -0
  112. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/persistence/migrations/scripts/001_initial.sql +0 -0
  113. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/persistence/schema.py +0 -0
  114. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/persistence/uow.py +0 -0
  115. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/providers/__init__.py +0 -0
  116. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/providers/base.py +0 -0
  117. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/providers/claude_code_adapter.py +0 -0
  118. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/providers/litellm_adapter.py +0 -0
  119. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/py.typed +0 -0
  120. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/resilience/__init__.py +0 -0
  121. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/resilience/lateral.py +0 -0
  122. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/resilience/stagnation.py +0 -0
  123. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/routing/__init__.py +0 -0
  124. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/routing/complexity.py +0 -0
  125. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/routing/downgrade.py +0 -0
  126. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/routing/escalation.py +0 -0
  127. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/routing/router.py +0 -0
  128. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/routing/tiers.py +0 -0
  129. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/secondary/__init__.py +0 -0
  130. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/secondary/scheduler.py +0 -0
  131. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/src/ouroboros/secondary/todo_registry.py +0 -0
  132. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/conftest.py +0 -0
  133. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/integration/test_entry_point.py +0 -0
  134. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/bigbang/__init__.py +0 -0
  135. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/bigbang/test_interview.py +0 -0
  136. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/bigbang/test_seed_generator.py +0 -0
  137. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/cli/__init__.py +0 -0
  138. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/cli/formatters/__init__.py +0 -0
  139. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/cli/formatters/test_console.py +0 -0
  140. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/cli/formatters/test_panels.py +0 -0
  141. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/cli/formatters/test_progress.py +0 -0
  142. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/cli/formatters/test_tables.py +0 -0
  143. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/cli/test_main.py +0 -0
  144. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/config/__init__.py +0 -0
  145. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/config/test_loader.py +0 -0
  146. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/config/test_models.py +0 -0
  147. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/core/__init__.py +0 -0
  148. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/core/test_ac_tree.py +0 -0
  149. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/core/test_context.py +0 -0
  150. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/core/test_errors.py +0 -0
  151. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/core/test_security.py +0 -0
  152. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/core/test_seed.py +0 -0
  153. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/core/test_types.py +0 -0
  154. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/evaluation/__init__.py +0 -0
  155. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/evaluation/test_consensus.py +0 -0
  156. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/evaluation/test_mechanical.py +0 -0
  157. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/evaluation/test_models.py +0 -0
  158. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/evaluation/test_semantic.py +0 -0
  159. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/evaluation/test_trigger.py +0 -0
  160. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/events/__init__.py +0 -0
  161. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/events/test_base.py +0 -0
  162. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/events/test_decomposition_events.py +0 -0
  163. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/execution/__init__.py +0 -0
  164. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/execution/test_atomicity.py +0 -0
  165. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/execution/test_decomposition.py +0 -0
  166. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/execution/test_double_diamond.py +0 -0
  167. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/execution/test_subagent_isolation.py +0 -0
  168. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/observability/__init__.py +0 -0
  169. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/observability/test_drift.py +0 -0
  170. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/observability/test_logging.py +0 -0
  171. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/observability/test_retrospective.py +0 -0
  172. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/orchestrator/__init__.py +0 -0
  173. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/orchestrator/test_adapter.py +0 -0
  174. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/orchestrator/test_events.py +0 -0
  175. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/orchestrator/test_runner.py +0 -0
  176. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/orchestrator/test_session.py +0 -0
  177. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/persistence/__init__.py +0 -0
  178. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/persistence/test_checkpoint.py +0 -0
  179. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/persistence/test_event_store.py +0 -0
  180. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/persistence/test_schema.py +0 -0
  181. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/persistence/test_uow.py +0 -0
  182. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/providers/__init__.py +0 -0
  183. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/providers/test_base.py +0 -0
  184. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/providers/test_litellm_adapter.py +0 -0
  185. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/resilience/__init__.py +0 -0
  186. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/resilience/test_lateral.py +0 -0
  187. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/resilience/test_stagnation.py +0 -0
  188. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/routing/__init__.py +0 -0
  189. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/routing/test_complexity.py +0 -0
  190. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/routing/test_downgrade.py +0 -0
  191. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/routing/test_escalation.py +0 -0
  192. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/routing/test_router.py +0 -0
  193. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/routing/test_tiers.py +0 -0
  194. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/secondary/__init__.py +0 -0
  195. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/secondary/test_scheduler.py +0 -0
  196. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/secondary/test_todo_registry.py +0 -0
  197. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/test_dependencies_configured.py +0 -0
  198. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/test_main_entry_point.py +0 -0
  199. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/test_module_structure.py +0 -0
  200. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/test_project_initialization.py +0 -0
  201. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tests/unit/test_tooling_configuration.py +0 -0
  202. {ouroboros_ai-0.2.0 → ouroboros_ai-0.2.1}/tools/sync_github_project.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ouroboros-ai
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: Self-Improving AI Workflow System
5
5
  Author-email: Q00 <jqyu.lee@gmail.com>
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ouroboros-ai"
3
- version = "0.2.0"
3
+ version = "0.2.1"
4
4
  description = "Self-Improving AI Workflow System"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -36,8 +36,8 @@ DEFAULT_MODEL = "openrouter/google/gemini-2.0-flash-001"
36
36
  # Temperature for reproducible scoring
37
37
  SCORING_TEMPERATURE = 0.1
38
38
 
39
- # Maximum token limit to prevent cost explosion
40
- MAX_TOKEN_LIMIT = 8192
39
+ # Maximum token limit (None = no limit, rely on model's context window)
40
+ MAX_TOKEN_LIMIT: int | None = None
41
41
 
42
42
 
43
43
  class ComponentScore(BaseModel):
@@ -234,8 +234,10 @@ class AmbiguityScorer:
234
234
  is_truncated = result.value.finish_reason == "length"
235
235
 
236
236
  if is_truncated:
237
- # Fix #1: Cap token growth with MAX_TOKEN_LIMIT
238
- next_tokens = min(current_max_tokens * 2, MAX_TOKEN_LIMIT)
237
+ # Double tokens on truncation (no upper limit)
238
+ next_tokens = current_max_tokens * 2
239
+ if MAX_TOKEN_LIMIT is not None:
240
+ next_tokens = min(next_tokens, MAX_TOKEN_LIMIT)
239
241
  log.warning(
240
242
  "ambiguity.scoring.truncated_retrying",
241
243
  interview_id=state.interview_id,
@@ -1078,13 +1078,13 @@ class TestMaxTokenLimit:
1078
1078
  """Test MAX_TOKEN_LIMIT constant."""
1079
1079
 
1080
1080
  def test_max_token_limit_value(self) -> None:
1081
- """MAX_TOKEN_LIMIT prevents unbounded token growth."""
1082
- assert MAX_TOKEN_LIMIT == 8192
1081
+ """MAX_TOKEN_LIMIT is None (no limit, rely on model's context window)."""
1082
+ assert MAX_TOKEN_LIMIT is None
1083
1083
 
1084
- async def test_token_growth_capped_at_max_limit(self) -> None:
1085
- """Token growth is capped at MAX_TOKEN_LIMIT even with repeated truncation."""
1084
+ async def test_token_growth_unbounded_when_no_limit(self) -> None:
1085
+ """Token growth doubles without cap when MAX_TOKEN_LIMIT is None."""
1086
1086
  mock_adapter = MagicMock()
1087
- # All calls fail with truncation - tokens should cap at MAX_TOKEN_LIMIT
1087
+ # All calls fail with truncation - tokens should keep doubling
1088
1088
  mock_adapter.complete = AsyncMock(
1089
1089
  return_value=Result.ok(
1090
1090
  create_mock_completion_response(
@@ -1094,7 +1094,7 @@ class TestMaxTokenLimit:
1094
1094
  )
1095
1095
  )
1096
1096
 
1097
- # Start with 4096, should try 4096 -> 8192 -> 8192 (capped)
1097
+ # Start with 4096, should try 4096 -> 8192 -> 16384 (no cap)
1098
1098
  scorer = AmbiguityScorer(
1099
1099
  llm_adapter=mock_adapter, initial_max_tokens=4096, max_retries=3
1100
1100
  )
@@ -1104,8 +1104,8 @@ class TestMaxTokenLimit:
1104
1104
 
1105
1105
  assert result.is_err # All retries fail
1106
1106
  assert mock_adapter.complete.call_count == 3
1107
- # Verify token progression: 4096 -> 8192 -> 8192 (capped at MAX_TOKEN_LIMIT)
1107
+ # Verify token progression: 4096 -> 8192 -> 16384 (no cap)
1108
1108
  configs = [call[0][1] for call in mock_adapter.complete.call_args_list]
1109
1109
  assert configs[0].max_tokens == 4096
1110
1110
  assert configs[1].max_tokens == 8192 # Doubled
1111
- assert configs[2].max_tokens == 8192 # Capped, not 16384
1111
+ assert configs[2].max_tokens == 16384 # Doubled again, no cap
@@ -892,7 +892,7 @@ wheels = [
892
892
 
893
893
  [[package]]
894
894
  name = "ouroboros-ai"
895
- version = "0.2.0"
895
+ version = "0.2.1"
896
896
  source = { editable = "." }
897
897
  dependencies = [
898
898
  { name = "aiosqlite" },
File without changes
File without changes
File without changes
File without changes