ouroboros-ai 0.26.2.dev21__tar.gz → 0.26.2.dev26__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.
- ouroboros_ai-0.26.2.dev26/.github/ISSUE_TEMPLATE/bug_report.yml +106 -0
- ouroboros_ai-0.26.2.dev26/.github/ISSUE_TEMPLATE/config.yml +8 -0
- ouroboros_ai-0.26.2.dev26/.github/ISSUE_TEMPLATE/feature_request.yml +114 -0
- ouroboros_ai-0.26.2.dev26/.github/ISSUE_TEMPLATE/question.yml +58 -0
- ouroboros_ai-0.26.2.dev26/CODE_OF_CONDUCT.md +33 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/CONTRIBUTING.md +38 -12
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/PKG-INFO +1 -1
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/README.md +2 -0
- ouroboros_ai-0.26.2.dev26/docs/contributing/issue-quality-policy.md +29 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/_version.py +2 -2
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.claude/settings.json +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.claude-plugin/.mcp.json +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.claude-plugin/marketplace.json +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.claude-plugin/plugin.json +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.env.example +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.github/workflows/dev-publish.yml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.github/workflows/lint.yml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.github/workflows/release.yml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.github/workflows/test.yml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.gitignore +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.mcp.json +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.ouroboros/mechanical.toml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.pre-commit-config.yaml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/.python-version +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/CHANGELOG.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/CLAUDE.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/HANDOFF.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/LICENSE +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/README.ko.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/README.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/SECURITY.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/cancel.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/evaluate.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/evolve.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/help.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/interview.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/ralph.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/run.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/seed.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/setup.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/status.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/tutorial.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/unstuck.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/commands/welcome.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/.gitignore +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/Cargo.lock +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/Cargo.toml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/README.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/db.rs +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/main.rs +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/mock.rs +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/state.rs +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/views/dashboard.rs +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/views/execution.rs +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/views/lineage.rs +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/views/logs.rs +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/views/mod.rs +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/views/session_selector.rs +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/api/README.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/api/core.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/api/mcp.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/architecture.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/cli-reference.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/config-reference.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/contributing/architecture-overview.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/contributing/findings-registry.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/contributing/key-patterns.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/contributing/testing-guide.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/examples/mcp-config.yaml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/getting-started.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/guides/evaluation-pipeline.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/guides/evolution-loop.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/guides/issue-176-subagent-mcp-inheritance.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/guides/seed-authoring.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/guides/tui-usage.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/images/PLACEHOLDER_README.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/images/ouroboros.png +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/platform-support.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/runtime-capability-matrix.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/runtime-guides/claude-code.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/runtime-guides/codex.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/examples/coordinator_test_seed.yaml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/examples/dummy_seed.yaml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/examples/parallel_subac_test_seed.yaml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/examples/subac_test_seed.yaml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/examples/task_manager/README.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/examples/task_manager/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/examples/task_manager/__main__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/examples/task_manager/cli.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/examples/task_manager/models.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/examples/task_manager/storage.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/examples/test_display.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/hooks/hooks.json +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/llms-full.txt +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/llms.txt +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/project-context.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/pyproject.toml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/scripts/drift-monitor.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/scripts/install.sh +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/scripts/keyword-detector.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/scripts/mcp-serve.sh +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/scripts/ralph-rewind.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/scripts/ralph.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/scripts/ralph.sh +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/scripts/session-start.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/scripts/sync-plugin-version.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/scripts/version-check.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/brownfield/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/cancel/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/evaluate/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/evolve/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/help/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/interview/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/pm/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/qa/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/ralph/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/run/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/seed/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/setup/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/status/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/tutorial/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/unstuck/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/update/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/skills/welcome/SKILL.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/__main__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/advocate.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/analysis-agent.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/architect.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/breadth-keeper.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/code-executor.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/codebase-explorer.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/consensus-reviewer.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/contrarian.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/evaluator.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/hacker.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/judge.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/loader.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/ontologist.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/ontology-analyst.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/qa-judge.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/research-agent.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/researcher.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/seed-architect.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/seed-closer.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/semantic-evaluator.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/simplifier.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/agents/socratic-interviewer.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/bigbang/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/bigbang/ambiguity.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/bigbang/brownfield.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/bigbang/explore.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/bigbang/interview.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/bigbang/pm_document.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/bigbang/pm_interview.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/bigbang/pm_seed.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/bigbang/question_classifier.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/bigbang/seed_generator.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/commands/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/commands/cancel.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/commands/config.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/commands/init.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/commands/mcp.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/commands/pm.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/commands/run.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/commands/setup.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/commands/status.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/commands/tui.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/formatters/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/formatters/panels.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/formatters/progress.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/formatters/tables.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/formatters/workflow_display.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/cli/main.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/codex/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/codex/artifacts.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/codex/ouroboros.md +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/codex_permissions.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/config/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/config/loader.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/config/models.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/ac_tree.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/context.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/errors.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/file_lock.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/git_workflow.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/lineage.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/ontology_aspect.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/ontology_questions.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/security.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/seed.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/text.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/core/types.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evaluation/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evaluation/artifact_collector.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evaluation/consensus.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evaluation/json_utils.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evaluation/languages.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evaluation/mechanical.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evaluation/models.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evaluation/pipeline.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evaluation/semantic.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evaluation/trigger.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/events/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/events/base.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/events/decomposition.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/events/evaluation.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/events/interview.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/events/lineage.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/events/ontology.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evolution/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evolution/convergence.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evolution/loop.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evolution/projector.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evolution/reflect.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evolution/regression.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/evolution/wonder.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/execution/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/execution/atomicity.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/execution/decomposition.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/execution/double_diamond.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/execution/subagent.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/client/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/client/adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/client/manager.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/client/protocol.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/errors.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/job_manager.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/resources/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/resources/handlers.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/server/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/server/adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/server/protocol.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/server/security.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/authoring_handlers.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/brownfield_handler.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/dashboard.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/definitions.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/evaluation_handlers.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/evolution_handlers.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/execution_handlers.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/job_handlers.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/pm_handler.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/qa.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/query_handlers.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/tools/registry.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/mcp/types.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/observability/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/observability/drift.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/observability/logging.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/observability/retrospective.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/codex_cli_runtime.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/command_dispatcher.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/coordinator.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/dependency_analyzer.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/events.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/execution_runtime_scope.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/execution_strategy.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/heartbeat.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/level_context.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/mcp_config.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/mcp_tools.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/parallel_executor.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/parallel_executor_models.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/runner.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/runtime_factory.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/runtime_message_projection.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/session.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/orchestrator/workflow_state.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/persistence/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/persistence/brownfield.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/persistence/checkpoint.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/persistence/event_store.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/persistence/migrations/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/persistence/migrations/runner.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/persistence/migrations/scripts/001_initial.sql +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/persistence/migrations/scripts/002_brownfield.sql +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/persistence/schema.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/persistence/uow.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/plugin/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/plugin/agents/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/plugin/agents/pool.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/plugin/agents/registry.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/plugin/orchestration/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/plugin/orchestration/router.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/plugin/orchestration/scheduler.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/plugin/skills/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/plugin/skills/docs.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/plugin/skills/executor.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/plugin/skills/keywords.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/plugin/skills/registry.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/pm/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/pm/renderer.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/providers/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/providers/anthropic_adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/providers/base.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/providers/claude_code_adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/providers/codex_cli_adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/providers/codex_cli_stream.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/providers/factory.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/providers/litellm_adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/py.typed +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/resilience/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/resilience/lateral.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/resilience/stagnation.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/routing/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/routing/complexity.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/routing/downgrade.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/routing/escalation.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/routing/router.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/routing/tiers.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/secondary/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/secondary/scheduler.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/secondary/todo_registry.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/strategies/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/strategies/devil_advocate.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/app.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/components/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/components/agents_panel.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/components/event_log.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/components/progress.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/components/token_tracker.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/events.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/screens/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/screens/confirm_rewind.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/screens/dashboard.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/screens/dashboard_v2.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/screens/dashboard_v3.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/screens/debug.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/screens/execution.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/screens/hud_dashboard.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/screens/lineage_detail.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/screens/lineage_selector.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/screens/logs.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/screens/session_selector.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/widgets/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/widgets/ac_progress.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/widgets/ac_tree.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/widgets/agent_activity.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/widgets/cost_tracker.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/widgets/drift_meter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/widgets/lineage_tree.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/widgets/parallel_graph.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/tui/widgets/phase_progress.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/verification/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/verification/extractor.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/verification/models.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/src/ouroboros/verification/verifier.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/conftest.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/e2e/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/e2e/conftest.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/e2e/test_cli_commands.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/e2e/test_full_workflow.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/e2e/test_session_persistence.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/fixtures/test_atomicity_seed.yml +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/integration/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/integration/conftest.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/integration/mcp/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/integration/mcp/conftest.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/integration/mcp/test_client_adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/integration/mcp/test_client_manager.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/integration/mcp/test_server_adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/integration/plugin/test_orchestration.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/integration/test_codex_cli_passthrough_smoke.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/integration/test_codex_skill_fallback.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/integration/test_codex_skill_smoke.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/integration/test_entry_point.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/agents/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/agents/test_loader.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_ambiguity.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_brownfield.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_classifier_context.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_decide_later_items.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_explore.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_interview.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_pm_document_generator.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_pm_document_writer.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_pm_interview.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_pm_interview_brownfield_db.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_pm_seed_ac12.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_pm_seed_save.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_question_classifier.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/bigbang/test_seed_generator.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/formatters/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/formatters/test_console.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/formatters/test_panels.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/formatters/test_progress.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/formatters/test_tables.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/formatters/test_workflow_display.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/test_cancel.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/test_init_pm_seed_detection.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/test_init_runtime.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/test_main.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/test_mcp_nested_guard.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/test_mcp_startup_cleanup.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/test_pm_brownfield.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/test_pm_overwrite.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/test_pm_select_repos.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/cli/test_setup.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/config/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/config/test_loader.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/config/test_models.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/core/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/core/test_ac_tree.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/core/test_context.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/core/test_errors.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/core/test_git_workflow.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/core/test_lineage.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/core/test_ontology_aspect.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/core/test_ontology_questions.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/core/test_security.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/core/test_seed.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/core/test_types.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/evaluation/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/evaluation/test_consensus.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/evaluation/test_json_utils.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/evaluation/test_languages.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/evaluation/test_mechanical.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/evaluation/test_models.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/evaluation/test_semantic.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/evaluation/test_trigger.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/events/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/events/test_base.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/events/test_decomposition_events.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/evolution/test_wonder_scope.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/execution/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/execution/test_atomicity.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/execution/test_decomposition.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/execution/test_double_diamond.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/execution/test_subagent_isolation.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/client/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/client/test_adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/client/test_manager.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/conftest.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/server/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/server/test_adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/server/test_security.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/test_errors.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/test_job_manager.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/test_types.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/tools/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/tools/conftest.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/tools/test_brownfield_handler.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/tools/test_definitions.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/tools/test_pm_handler.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/tools/test_pm_handler_generate.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/tools/test_pm_handler_pending_reframe.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/tools/test_qa_integration.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/mcp/tools/test_registry.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/observability/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/observability/test_drift.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/observability/test_logging.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/observability/test_retrospective.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_codex_cli_runtime.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_codex_recursion_guard.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_command_dispatcher.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_coordinator.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_dependency_analyzer.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_events.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_execution_runtime_scope.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_execution_strategy.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_inflight_cancellation.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_level_context.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_mcp_config.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_mcp_tools.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_parallel_executor.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_parallel_executor_retry_resume.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_runner.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_runner_cancellation.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_runtime_factory.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_runtime_message_projection.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_session.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/orchestrator/test_workflow_state.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/persistence/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/persistence/test_brownfield_store.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/persistence/test_checkpoint.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/persistence/test_event_store.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/persistence/test_schema.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/persistence/test_uow.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/plugin/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/plugin/agents/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/plugin/agents/test_registry.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/plugin/orchestration/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/plugin/orchestration/test_model_router.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/plugin/skills/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/plugin/skills/test_keywords.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/plugin/skills/test_registry.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/pm/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/pm/test_renderer.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/providers/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/providers/test_base.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/providers/test_claude_code_adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/providers/test_codex_cli_adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/providers/test_factory.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/providers/test_litellm_adapter.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/resilience/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/resilience/test_lateral.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/resilience/test_stagnation.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/routing/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/routing/test_complexity.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/routing/test_downgrade.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/routing/test_escalation.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/routing/test_router.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/routing/test_tiers.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/scripts/test_keyword_detector.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/scripts/test_version_check.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/secondary/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/secondary/test_scheduler.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/secondary/test_todo_registry.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_artifact_collector.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_codex_artifacts.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_convergence.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_dashboard.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_dependencies_configured.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_evolve_rewind.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_evolve_step.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_graceful_shutdown.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_main_entry_point.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_module_structure.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_project_initialization.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_projector_rewind.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_ralph_parser.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_ralph_rewind.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_regression.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_tooling_configuration.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/test_verification.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/tui/__init__.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/tui/test_app.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/tui/test_cancelled_display.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/tui/test_events.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/tui/test_lineage_viewer.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/tui/test_screens.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/tui/test_session_selector_replay.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tests/unit/tui/test_widgets.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/tools/sync_github_project.py +0 -0
- {ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/uv.lock +0 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
name: Bug report
|
|
2
|
+
description: Report a reproducible problem in Ouroboros
|
|
3
|
+
title: "[Bug] "
|
|
4
|
+
labels:
|
|
5
|
+
- bug
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Actionable bug issues in Ouroboros should be detailed enough for someone else to reproduce and verify a fix.
|
|
11
|
+
- type: textarea
|
|
12
|
+
id: summary
|
|
13
|
+
attributes:
|
|
14
|
+
label: Summary
|
|
15
|
+
description: Describe the bug in one or two sentences.
|
|
16
|
+
placeholder: What is broken?
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
- type: textarea
|
|
20
|
+
id: impact
|
|
21
|
+
attributes:
|
|
22
|
+
label: Impact
|
|
23
|
+
description: Explain why this matters and who or what is blocked, broken, or confused by it.
|
|
24
|
+
placeholder: Why does this bug matter?
|
|
25
|
+
validations:
|
|
26
|
+
required: true
|
|
27
|
+
- type: textarea
|
|
28
|
+
id: environment
|
|
29
|
+
attributes:
|
|
30
|
+
label: Environment
|
|
31
|
+
description: Include the environment details needed to reason about the bug.
|
|
32
|
+
placeholder: |
|
|
33
|
+
- Ouroboros version (ouroboros --version):
|
|
34
|
+
- OS:
|
|
35
|
+
- Python version:
|
|
36
|
+
- Installation method:
|
|
37
|
+
- Model/provider:
|
|
38
|
+
- Relevant flags or config:
|
|
39
|
+
validations:
|
|
40
|
+
required: true
|
|
41
|
+
- type: textarea
|
|
42
|
+
id: steps
|
|
43
|
+
attributes:
|
|
44
|
+
label: Steps to reproduce
|
|
45
|
+
description: Provide a clear sequence someone else can follow.
|
|
46
|
+
placeholder: |
|
|
47
|
+
1.
|
|
48
|
+
2.
|
|
49
|
+
3.
|
|
50
|
+
validations:
|
|
51
|
+
required: true
|
|
52
|
+
- type: textarea
|
|
53
|
+
id: expected
|
|
54
|
+
attributes:
|
|
55
|
+
label: Expected behavior
|
|
56
|
+
description: Describe what should happen.
|
|
57
|
+
placeholder: What did you expect instead?
|
|
58
|
+
validations:
|
|
59
|
+
required: true
|
|
60
|
+
- type: textarea
|
|
61
|
+
id: actual
|
|
62
|
+
attributes:
|
|
63
|
+
label: Actual behavior
|
|
64
|
+
description: Describe what happened instead.
|
|
65
|
+
placeholder: What actually happened?
|
|
66
|
+
validations:
|
|
67
|
+
required: true
|
|
68
|
+
- type: textarea
|
|
69
|
+
id: logs
|
|
70
|
+
attributes:
|
|
71
|
+
label: Logs or error output
|
|
72
|
+
description: Paste the most relevant output here.
|
|
73
|
+
render: text
|
|
74
|
+
validations:
|
|
75
|
+
required: false
|
|
76
|
+
- type: textarea
|
|
77
|
+
id: repro
|
|
78
|
+
attributes:
|
|
79
|
+
label: Minimal reproduction
|
|
80
|
+
description: Include the smallest seed, command, or config needed to reproduce the issue if possible.
|
|
81
|
+
placeholder: Minimal repro steps, config, or seed
|
|
82
|
+
validations:
|
|
83
|
+
required: false
|
|
84
|
+
- type: textarea
|
|
85
|
+
id: acceptance
|
|
86
|
+
attributes:
|
|
87
|
+
label: Acceptance criteria for fix
|
|
88
|
+
description: List the concrete conditions that will be true once this bug is fixed.
|
|
89
|
+
placeholder: |
|
|
90
|
+
- [ ]
|
|
91
|
+
- [ ]
|
|
92
|
+
validations:
|
|
93
|
+
required: false
|
|
94
|
+
- type: checkboxes
|
|
95
|
+
id: checklist
|
|
96
|
+
attributes:
|
|
97
|
+
label: Checklist
|
|
98
|
+
options:
|
|
99
|
+
- label: I searched existing issues before opening this report.
|
|
100
|
+
required: true
|
|
101
|
+
- label: I can reproduce this on the latest main branch or latest release.
|
|
102
|
+
required: true
|
|
103
|
+
- label: I included clear reproduction steps.
|
|
104
|
+
required: true
|
|
105
|
+
- label: I included enough detail for someone else to verify the fix.
|
|
106
|
+
required: true
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
blank_issues_enabled: true
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: GitHub Discussions
|
|
4
|
+
url: https://github.com/Q00/ouroboros/discussions
|
|
5
|
+
about: Ask questions, share ideas, or start open-ended conversations here.
|
|
6
|
+
- name: Discord
|
|
7
|
+
url: https://discord.gg/8cW7Wfxnpu
|
|
8
|
+
about: Chat with the community and maintainers in real time.
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
name: Feature request
|
|
2
|
+
description: Propose a new feature or workflow improvement
|
|
3
|
+
title: "[Feature] "
|
|
4
|
+
labels:
|
|
5
|
+
- enhancement
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
Lightweight structure helps both humans and tooling understand a proposal quickly.
|
|
11
|
+
- type: textarea
|
|
12
|
+
id: problem
|
|
13
|
+
attributes:
|
|
14
|
+
label: Problem
|
|
15
|
+
description: Describe the user, maintainer, or workflow problem that exists today.
|
|
16
|
+
placeholder: What problem exists right now?
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
- type: textarea
|
|
20
|
+
id: why-now
|
|
21
|
+
attributes:
|
|
22
|
+
label: Why now
|
|
23
|
+
description: Explain why this is worth doing now.
|
|
24
|
+
placeholder: Why is this worth doing now?
|
|
25
|
+
validations:
|
|
26
|
+
required: false
|
|
27
|
+
- type: textarea
|
|
28
|
+
id: persona
|
|
29
|
+
attributes:
|
|
30
|
+
label: User / persona
|
|
31
|
+
description: Describe who is affected by this problem.
|
|
32
|
+
placeholder: Who is affected?
|
|
33
|
+
validations:
|
|
34
|
+
required: false
|
|
35
|
+
- type: textarea
|
|
36
|
+
id: current
|
|
37
|
+
attributes:
|
|
38
|
+
label: Current behavior
|
|
39
|
+
description: Describe what happens today.
|
|
40
|
+
placeholder: What happens today?
|
|
41
|
+
validations:
|
|
42
|
+
required: false
|
|
43
|
+
- type: textarea
|
|
44
|
+
id: desired
|
|
45
|
+
attributes:
|
|
46
|
+
label: Desired behavior
|
|
47
|
+
description: Describe what should happen instead.
|
|
48
|
+
placeholder: What should happen instead?
|
|
49
|
+
validations:
|
|
50
|
+
required: true
|
|
51
|
+
- type: textarea
|
|
52
|
+
id: solution
|
|
53
|
+
attributes:
|
|
54
|
+
label: Proposed solution
|
|
55
|
+
description: Explain how you think this should work.
|
|
56
|
+
placeholder: What is your proposed solution?
|
|
57
|
+
validations:
|
|
58
|
+
required: false
|
|
59
|
+
- type: textarea
|
|
60
|
+
id: constraints
|
|
61
|
+
attributes:
|
|
62
|
+
label: Constraints
|
|
63
|
+
description: List technical, UX, policy, cost, or compatibility constraints.
|
|
64
|
+
placeholder: What boundaries or constraints matter here?
|
|
65
|
+
validations:
|
|
66
|
+
required: false
|
|
67
|
+
- type: textarea
|
|
68
|
+
id: non-goals
|
|
69
|
+
attributes:
|
|
70
|
+
label: Non-goals
|
|
71
|
+
description: Explain what is explicitly out of scope for this issue.
|
|
72
|
+
placeholder: What is this issue not trying to solve?
|
|
73
|
+
validations:
|
|
74
|
+
required: false
|
|
75
|
+
- type: textarea
|
|
76
|
+
id: alternatives
|
|
77
|
+
attributes:
|
|
78
|
+
label: Alternatives considered
|
|
79
|
+
description: List other approaches you considered.
|
|
80
|
+
placeholder: What other approaches did you consider?
|
|
81
|
+
validations:
|
|
82
|
+
required: false
|
|
83
|
+
- type: textarea
|
|
84
|
+
id: acceptance
|
|
85
|
+
attributes:
|
|
86
|
+
label: Acceptance criteria
|
|
87
|
+
description: List specific, testable statements that define done.
|
|
88
|
+
placeholder: |
|
|
89
|
+
- [ ]
|
|
90
|
+
- [ ]
|
|
91
|
+
- [ ]
|
|
92
|
+
validations:
|
|
93
|
+
required: true
|
|
94
|
+
- type: textarea
|
|
95
|
+
id: references
|
|
96
|
+
attributes:
|
|
97
|
+
label: References
|
|
98
|
+
description: Add mockups, examples, related issues, PRs, docs, or screenshots.
|
|
99
|
+
placeholder: Links, screenshots, references, or related issues
|
|
100
|
+
validations:
|
|
101
|
+
required: false
|
|
102
|
+
- type: checkboxes
|
|
103
|
+
id: checklist
|
|
104
|
+
attributes:
|
|
105
|
+
label: Checklist
|
|
106
|
+
options:
|
|
107
|
+
- label: I searched existing issues and discussions first.
|
|
108
|
+
required: true
|
|
109
|
+
- label: I explained the problem, not just the solution.
|
|
110
|
+
required: false
|
|
111
|
+
- label: I included clear scope boundaries and non-goals.
|
|
112
|
+
required: false
|
|
113
|
+
- label: I listed concrete acceptance criteria.
|
|
114
|
+
required: true
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
name: Question or usage help
|
|
2
|
+
description: Ask an actionable question when GitHub Discussions is not a better fit
|
|
3
|
+
title: "[Question] "
|
|
4
|
+
labels:
|
|
5
|
+
- question
|
|
6
|
+
body:
|
|
7
|
+
- type: markdown
|
|
8
|
+
attributes:
|
|
9
|
+
value: |
|
|
10
|
+
For open-ended discussion or general community chat, prefer GitHub Discussions or Discord.
|
|
11
|
+
- type: textarea
|
|
12
|
+
id: question
|
|
13
|
+
attributes:
|
|
14
|
+
label: Question
|
|
15
|
+
description: Explain what you are trying to do.
|
|
16
|
+
placeholder: What are you trying to do?
|
|
17
|
+
validations:
|
|
18
|
+
required: true
|
|
19
|
+
- type: textarea
|
|
20
|
+
id: context
|
|
21
|
+
attributes:
|
|
22
|
+
label: Context
|
|
23
|
+
description: Include the details needed for someone else to help.
|
|
24
|
+
placeholder: |
|
|
25
|
+
- Command or workflow:
|
|
26
|
+
- Seed or config involved:
|
|
27
|
+
- Expected outcome:
|
|
28
|
+
- What you already tried:
|
|
29
|
+
validations:
|
|
30
|
+
required: true
|
|
31
|
+
- type: textarea
|
|
32
|
+
id: output
|
|
33
|
+
attributes:
|
|
34
|
+
label: Relevant output
|
|
35
|
+
description: Paste any relevant output, errors, or logs.
|
|
36
|
+
render: text
|
|
37
|
+
validations:
|
|
38
|
+
required: false
|
|
39
|
+
- type: textarea
|
|
40
|
+
id: actionable
|
|
41
|
+
attributes:
|
|
42
|
+
label: Why this should be a GitHub issue
|
|
43
|
+
description: Explain why this looks actionable for maintainers rather than a general discussion question.
|
|
44
|
+
placeholder: Why should maintainers track this as an issue?
|
|
45
|
+
validations:
|
|
46
|
+
required: true
|
|
47
|
+
- type: checkboxes
|
|
48
|
+
id: checklist
|
|
49
|
+
attributes:
|
|
50
|
+
label: Checklist
|
|
51
|
+
options:
|
|
52
|
+
- label: I checked the README and docs first.
|
|
53
|
+
required: true
|
|
54
|
+
- label: I searched existing issues and discussions.
|
|
55
|
+
required: true
|
|
56
|
+
- label: I included enough context for someone else to help.
|
|
57
|
+
required: true
|
|
58
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Code of Conduct
|
|
2
|
+
|
|
3
|
+
Ouroboros is built around rigorous thinking, iteration, and care. We want the community to feel precise without becoming hostile.
|
|
4
|
+
|
|
5
|
+
## Core expectations
|
|
6
|
+
|
|
7
|
+
- Question assumptions, not people.
|
|
8
|
+
- Seek clarity without humiliation.
|
|
9
|
+
- Prefer root causes over blame.
|
|
10
|
+
- Critique ideas with precision and care.
|
|
11
|
+
- Leave each cycle better than you found it.
|
|
12
|
+
|
|
13
|
+
## Unacceptable behavior
|
|
14
|
+
|
|
15
|
+
- Harassment, intimidation, or abuse
|
|
16
|
+
- Personal attacks or demeaning language
|
|
17
|
+
- Publishing private information without permission
|
|
18
|
+
- Dogpiling, baiting, or repeated bad-faith engagement
|
|
19
|
+
- Conduct that makes the project unsafe for contributors or users
|
|
20
|
+
|
|
21
|
+
## Enforcement
|
|
22
|
+
|
|
23
|
+
Project maintainers may remove, edit, or reject comments, commits, code, issues, pull requests, and other contributions that do not align with this Code of Conduct.
|
|
24
|
+
|
|
25
|
+
## Reporting
|
|
26
|
+
|
|
27
|
+
For conduct-sensitive reports, email **jqyu.lee@gmail.com** directly. This is the private reporting path.
|
|
28
|
+
|
|
29
|
+
If no private path is available, open a GitHub issue titled "Conduct report" and include only the minimum information needed to route the report. Do **not** include private personal details, doxxing content, or anything that would further harm the affected person.
|
|
30
|
+
|
|
31
|
+
## Scope
|
|
32
|
+
|
|
33
|
+
This Code of Conduct applies to repository discussions, issues, pull requests, code review, and related community spaces associated with Ouroboros.
|
|
@@ -52,6 +52,7 @@ uv run pytest tests/unit/ -q # run tests
|
|
|
52
52
|
- Check [GitHub Issues](https://github.com/Q00/ouroboros/issues) for open tasks
|
|
53
53
|
- For new features, open an issue first to discuss the approach
|
|
54
54
|
- Label your issue with appropriate tags: `bug`, `enhancement`, `documentation`, etc.
|
|
55
|
+
- Treat actionable issues as structured work artifacts, not casual notes. See [Issue Quality Policy](./docs/contributing/issue-quality-policy.md).
|
|
55
56
|
|
|
56
57
|
### 2. Branch
|
|
57
58
|
|
|
@@ -114,13 +115,20 @@ uv run mypy src/ouroboros
|
|
|
114
115
|
Found a bug? Please open an issue with:
|
|
115
116
|
|
|
116
117
|
1. **Clear title**: Summarize the bug
|
|
117
|
-
2. **
|
|
118
|
-
3. **
|
|
119
|
-
4. **
|
|
118
|
+
2. **Impact**: Explain what is blocked or broken
|
|
119
|
+
3. **Description**: Steps to reproduce, expected vs actual behavior
|
|
120
|
+
4. **Acceptance criteria**: State what will be true once fixed
|
|
121
|
+
5. **Environment**: Python version, OS, `uv run ouroboros --version`
|
|
122
|
+
6. **Logs**: Relevant error messages or stack traces
|
|
120
123
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
+
See the [Issue Quality Policy](./docs/contributing/issue-quality-policy.md) for the full bug issue standard.
|
|
125
|
+
|
|
126
|
+
````markdown
|
|
127
|
+
## Summary
|
|
128
|
+
[What is broken]
|
|
129
|
+
|
|
130
|
+
## Impact
|
|
131
|
+
[Why this matters]
|
|
124
132
|
|
|
125
133
|
## Steps to Reproduce
|
|
126
134
|
1. Run `ooo interview "test"`
|
|
@@ -130,6 +138,12 @@ Found a bug? Please open an issue with:
|
|
|
130
138
|
## Expected Behavior
|
|
131
139
|
[What should happen]
|
|
132
140
|
|
|
141
|
+
## Actual Behavior
|
|
142
|
+
[What happens instead]
|
|
143
|
+
|
|
144
|
+
## Acceptance Criteria for Fix
|
|
145
|
+
- [ ] [Condition that proves the bug is fixed]
|
|
146
|
+
|
|
133
147
|
## Environment
|
|
134
148
|
- Python: 3.12+
|
|
135
149
|
- Ouroboros: v0.9.0
|
|
@@ -139,16 +153,24 @@ Found a bug? Please open an issue with:
|
|
|
139
153
|
```
|
|
140
154
|
[paste error output]
|
|
141
155
|
```
|
|
142
|
-
|
|
156
|
+
````
|
|
143
157
|
|
|
144
158
|
### Feature Proposals
|
|
145
159
|
|
|
146
|
-
Have an idea? Open an issue
|
|
160
|
+
Have an idea? Open an issue only when it is structured enough to act on.
|
|
147
161
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
162
|
+
Feature issues should be written in a **PRD-lite** format with:
|
|
163
|
+
|
|
164
|
+
1. **Problem**: What problem exists today?
|
|
165
|
+
2. **Why now**: Why is this worth doing now?
|
|
166
|
+
3. **User / persona**: Who is affected?
|
|
167
|
+
4. **Current vs desired behavior**: What changes?
|
|
168
|
+
5. **Constraints and non-goals**: What boundaries matter?
|
|
169
|
+
6. **Acceptance criteria**: What would make this done?
|
|
170
|
+
|
|
171
|
+
If the idea is still fuzzy, use GitHub Discussions or Discord first, then turn it into a structured issue.
|
|
172
|
+
|
|
173
|
+
See the [Issue Quality Policy](./docs/contributing/issue-quality-policy.md) for the full feature issue standard.
|
|
152
174
|
|
|
153
175
|
### Pull Requests
|
|
154
176
|
|
|
@@ -721,11 +743,15 @@ ls skills/*.yaml 2>/dev/null || echo "No skill YAML files found"
|
|
|
721
743
|
|
|
722
744
|
- **GitHub Issues**: [Report bugs or request features](https://github.com/Q00/ouroboros/issues)
|
|
723
745
|
- **GitHub Discussions**: [Ask questions or share ideas](https://github.com/Q00/ouroboros/discussions)
|
|
746
|
+
- **Security Reports**: See [SECURITY.md](./SECURITY.md) before reporting vulnerabilities
|
|
747
|
+
- **Community Conduct**: See [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)
|
|
724
748
|
|
|
725
749
|
---
|
|
726
750
|
|
|
727
751
|
## Code of Conduct
|
|
728
752
|
|
|
753
|
+
The canonical community rules live in [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md).
|
|
754
|
+
|
|
729
755
|
### Our Pledge
|
|
730
756
|
|
|
731
757
|
We pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
|
@@ -43,6 +43,8 @@ Ouroboros is a specification-first workflow engine for AI coding agents. It tran
|
|
|
43
43
|
- [Testing Guide](./contributing/testing-guide.md) - Writing and running tests
|
|
44
44
|
- [Key Patterns](./contributing/key-patterns.md) - Result type, immutability, event sourcing, protocols
|
|
45
45
|
- [Findings Registry](./contributing/findings-registry.md) - Documentation audit findings registry
|
|
46
|
+
- [Issue Quality Policy](./contributing/issue-quality-policy.md) - Quality bar for actionable issues and PRD-lite feature requests
|
|
47
|
+
|
|
46
48
|
|
|
47
49
|
## Key Concepts
|
|
48
50
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Issue Quality Policy
|
|
2
|
+
|
|
3
|
+
This document explains why Ouroboros prefers structured GitHub issues.
|
|
4
|
+
|
|
5
|
+
GitHub is the source of truth for actionable work. Clear issues help maintainers, contributors, and future tooling understand what problem exists, what success looks like, and whether something is ready to implement.
|
|
6
|
+
|
|
7
|
+
## What we prefer
|
|
8
|
+
|
|
9
|
+
- Bug reports should make reproduction and verification possible.
|
|
10
|
+
- Feature requests should explain the problem, the desired outcome, and what “done” looks like.
|
|
11
|
+
- Exploratory ideas should usually start in Discussions or Discord before becoming implementation issues.
|
|
12
|
+
|
|
13
|
+
## Why this matters
|
|
14
|
+
|
|
15
|
+
- Better issue quality reduces clarification churn and off-target PRs.
|
|
16
|
+
- Structured issues are easier for both humans and tooling to read.
|
|
17
|
+
- Ambiguous issues are hard to review, scope, and verify safely.
|
|
18
|
+
|
|
19
|
+
## Practical guidance
|
|
20
|
+
|
|
21
|
+
- For bugs, include enough detail for someone else to reproduce the problem.
|
|
22
|
+
- For features, focus on the problem and acceptance criteria before debating implementation details.
|
|
23
|
+
- If an idea is still fuzzy, discuss it first and turn it into a GitHub issue once it is actionable.
|
|
24
|
+
|
|
25
|
+
## Maintainer guidance
|
|
26
|
+
|
|
27
|
+
- Ask for the minimum missing structure rather than rejecting an idea outright.
|
|
28
|
+
- Redirect open-ended brainstorming to Discussions or Discord when needed.
|
|
29
|
+
- Avoid starting implementation from issues that are too vague to verify.
|
|
@@ -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.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 26, 2, '
|
|
21
|
+
__version__ = version = '0.26.2.dev26'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 26, 2, 'dev26')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/views/dashboard.rs
RENAMED
|
File without changes
|
{ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/views/execution.rs
RENAMED
|
File without changes
|
{ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/views/lineage.rs
RENAMED
|
File without changes
|
{ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/views/logs.rs
RENAMED
|
File without changes
|
{ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/crates/ouroboros-tui/src/views/mod.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/contributing/architecture-overview.md
RENAMED
|
File without changes
|
{ouroboros_ai-0.26.2.dev21 → ouroboros_ai-0.26.2.dev26}/docs/contributing/findings-registry.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|