ouroboros-ai 0.43.3.dev18__tar.gz → 0.43.4.dev2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/marketplace.json +1 -1
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/plugin.json +1 -1
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/brownfield/SKILL.md +6 -6
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/evaluate/SKILL.md +6 -6
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/evolve/SKILL.md +6 -6
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/interview/SKILL.md +4 -3
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/pm/SKILL.md +3 -3
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/qa/SKILL.md +3 -3
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/ralph/SKILL.md +3 -3
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/run/SKILL.md +6 -6
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/seed/SKILL.md +2 -2
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/setup/SKILL.md +4 -4
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/status/SKILL.md +4 -4
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/unstuck/SKILL.md +4 -4
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/PKG-INFO +1 -1
- ouroboros_ai-0.43.4.dev2/scripts/deleak_toolsearch.py +92 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/brownfield/SKILL.md +6 -6
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/evaluate/SKILL.md +6 -6
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/evolve/SKILL.md +6 -6
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/interview/SKILL.md +4 -3
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/pm/SKILL.md +3 -3
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/qa/SKILL.md +3 -3
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/ralph/SKILL.md +3 -3
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/run/SKILL.md +6 -6
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/seed/SKILL.md +2 -2
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/setup/SKILL.md +5 -5
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/status/SKILL.md +4 -4
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/unstuck/SKILL.md +4 -4
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/_version.py +2 -2
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/backends/__init__.py +6 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/backends/capabilities.py +102 -3
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/plugin_dispatch.py +5 -5
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/seed.py +65 -3
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/server/adapter.py +14 -2
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/backends/test_capabilities.py +59 -1
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_plugin_dispatch.py +60 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_seed.py +75 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/server/test_adapter.py +7 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/skills/test_skill_artifacts.py +33 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude/settings.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/.mcp.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/SKILL_CAPABILITY_GUIDE.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/auto/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/cancel/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/help/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/publish/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/resume-session/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/tutorial/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/update/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/welcome/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.codex/config.toml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.codex/hooks.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.env.example +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/ISSUE_TEMPLATE/question.yml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/dependabot.yml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/workflows/auto-boundary.yml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/workflows/auto-perf-budget.yml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/workflows/dev-publish.yml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/workflows/lint.yml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/workflows/max-turns-envelope.yml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/workflows/release.yml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.github/workflows/test.yml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.gitignore +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.mcp.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.ouroboros/mechanical.toml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.ouroboros/seeds/seed_73827177a2a3.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.ouroboros/seeds/seed_78c8e6e41813.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.pre-commit-config.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.python-version +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/AGENTS.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/CHANGELOG.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/CLAUDE.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/CODE_OF_CONDUCT.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/CONTRIBUTING.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/Code-Review-Claude.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/Code-Review-Codex.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/HANDOFF.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/LICENSE +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/README.ko.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/README.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/README.zh-CN.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/SECURITY.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/UNINSTALL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/cancel.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/evaluate.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/evolve.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/help.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/interview.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/ralph.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/run.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/seed.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/setup.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/status.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/tutorial.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/unstuck.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/commands/welcome.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/.gitignore +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/Cargo.lock +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/Cargo.toml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/README.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/src/db.rs +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/src/main.rs +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/src/mock.rs +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/src/state.rs +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/src/views/dashboard.rs +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/src/views/execution.rs +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/src/views/lineage.rs +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/src/views/logs.rs +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/src/views/mod.rs +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/crates/ouroboros-tui/src/views/session_selector.rs +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/README.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/agentos/control-journal.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/agentos/fat-harness-baseline-metrics.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/agentos/issue-sequencing-graph.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/agentos/profile-taxonomy.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/agentos/projection-followups.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/agentos/projection-v1-scope.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/agentos/release-readiness.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/agentos/runtime-contract.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/agentos/traceguard-observation-protocol.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/agentos/traceguard-vs-legacy-benchmark.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/agentos/workflow-ir-projection-mapping.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/agentos/workflow-ir-v1.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/api/README.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/api/core.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/api/mcp.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/architecture.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/auto-interview-convergence-contract.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/auto-runtime-semantics.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/cli-reference.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/config-reference.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/contributing/agent-os-kernel-terminology.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/contributing/architecture-overview.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/contributing/control-contract.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/contributing/control-plane-followups.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/contributing/findings-registry.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/contributing/issue-quality-policy.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/contributing/key-patterns.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/contributing/testing-guide.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/contributing/verifier-evidence-policy.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/contributing/watchdog-cancellation.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/events.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/examples/mcp-config.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/examples/workflows/design-code-verify.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/examples/workflows/high-context-inverted-interview.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/examples/workflows/research-to-deliverable.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/getting-started.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/agent-process-lifecycle.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/evaluation-pipeline.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/evolution-loop.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/execution-vs-evaluation.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/issue-176-subagent-mcp-inheritance.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/mcp-best-practices.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/mcp-bridge.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/ooo-skill-dispatch-router.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/opencode-subagent-bridge.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/qa-backends.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/safe-but-wrong-output.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/seed-authoring.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/tui-usage.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/guides/windows-wsl-troubleshooting.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/images/PLACEHOLDER_README.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/images/ouroboros.png +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/interview-advisory-fanout-comparison.html +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/ooo-auto-analysis.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/ooo-auto-evolution-plan.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/platform-support.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/config-coherence.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/context-first-inverted-interview.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/contract-ledger.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/decomposition-reliability.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/disposable-memory.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/frugality-control-loop.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/frugality-proof-producers.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/interview-hardening.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/interview-milestone-lateral-contract.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/inverted-interview-intent-preservation.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/mesh.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/plugin-artifact-state-hook-contract.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/plugin-tool-call-hook-contract.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/runtime-delegation-contract.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/runtime-timeout-contract.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/spend-actuator-effort-dial.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/spend-estimator.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/transparency-breadcrumb-tui.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/userlevel-plugins.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/rfc/verdict-envelope-v1.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/runtime-capability-matrix.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/runtime-guides/claude-code.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/runtime-guides/codex.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/runtime-guides/copilot.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/runtime-guides/gemini.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/runtime-guides/gjc.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/runtime-guides/goose.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/runtime-guides/hermes.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/runtime-guides/kiro.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/runtime-guides/opencode.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/runtime-guides/pi.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/docs/runtime-guides/skill-capability-guides.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/examples/coordinator_test_seed.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/examples/dummy_seed.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/examples/parallel_subac_test_seed.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/examples/subac_test_seed.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/examples/task_manager/README.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/examples/task_manager/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/examples/task_manager/__main__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/examples/task_manager/cli.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/examples/task_manager/models.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/examples/task_manager/storage.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/examples/test_display.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/hooks/hooks.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/llms-full.txt +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/llms.txt +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/project-context.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/pyproject.toml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/check-auto-boundary.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/check-auto-perf-budget.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/check-max-turns-envelope.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/drift-monitor.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/install.sh +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/keyword-detector.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/mcp-serve.sh +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/ralph-rewind.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/ralph.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/ralph.sh +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/session-start.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/sync-plugin-version.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/scripts/version-check.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/auto/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/cancel/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/config/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/help/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/publish/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/resume-session/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/tutorial/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/update/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/skills/welcome/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/__main__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/advocate.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/analysis-agent.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/architect.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/breadth-keeper.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/code-executor.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/codebase-explorer.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/consensus-reviewer.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/contrarian.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/evaluator.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/hacker.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/judge.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/loader.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/ontologist.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/ontology-analyst.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/qa-judge.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/research-agent.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/researcher.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/seed-architect.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/seed-closer.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/semantic-evaluator.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/simplifier.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/agents/socratic-interviewer.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/adapters.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/answerer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/auto_fill.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/blocker_attribution.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/checkpoint_commits.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/domain_inference.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/domain_profile.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/execution_acceptance.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/gap_detector.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/grading.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/handoff_contract.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/intent_guard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/interview_driver.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/lateral_routing.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/ledger.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/ledger_seed.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/listeners.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/pipeline.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/policies.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/profiles/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/profiles/coding.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/profiles/research.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/progress.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/provenance.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/recovery_plan.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/repo_context.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/resume_render.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/runtime_routing.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/safe_defaults.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/seed_repairer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/seed_reviewer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/state.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/task_class_application.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/task_classes.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/auto/worktree.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/backends/model_catalog.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/bigbang/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/bigbang/ambiguity.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/bigbang/brownfield.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/bigbang/explore.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/bigbang/interview.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/bigbang/pm_completion.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/bigbang/pm_document.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/bigbang/pm_interview.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/bigbang/pm_seed.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/bigbang/question_classifier.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/bigbang/seed_generator.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/claude_permissions.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/auto.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/cancel.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/codex.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/config.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/detect.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/dispatch.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/init.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/job.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/mcp.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/mcp_doctor.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/plugin.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/pm.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/qa.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/resume.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/run.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/setup.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/status.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/tui.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/uninstall.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/commands/workflow_ir.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/formatters/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/formatters/panels.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/formatters/progress.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/formatters/prompting.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/formatters/tables.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/formatters/workflow_display.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/jsonc.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/main.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/cli/opencode_config.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/codex/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/codex/artifacts.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/codex/cli_policy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/codex/ouroboros.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/codex/runtime_profile.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/codex_permissions.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/config/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/config/_model_defaults.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/config/loader.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/config/models.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/config_tui/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/config_tui/__main__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/config_tui/app.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/config_tui/fields.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/config_tui/launcher.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/config_tui/persistence.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/copilot/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/copilot/cli_policy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/copilot/model_discovery.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/copilot/runtime_profile.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/copilot_permissions.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/ac_tree.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/context.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/control_contract.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/directive.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/errors.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/file_lock.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/git_workflow.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/hitl_contract.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/hitl_resume.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/hitl_state.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/initial_context.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/json_utils.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/lineage.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/ontology_aspect.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/ontology_questions.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/project_paths.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/retry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/runtime_transition.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/security.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/seed_contract.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/seed_contract_prompt.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/text.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/ttl_cache.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/types.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/core/worktree.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/artifact_collector.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/checklist.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/consensus.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/detector.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/json_utils.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/languages.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/mechanical.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/models.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/pipeline.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/semantic.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/trigger.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evaluation/verification_artifacts.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/events/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/events/base.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/events/control.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/events/evaluation.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/events/hitl.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/events/interview.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/events/io.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/events/io_recorder.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/events/lineage.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/events/ontology.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evolution/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evolution/convergence.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evolution/directive_mapping.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evolution/loop.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evolution/material_progress.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evolution/projector.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evolution/reflect.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evolution/regression.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evolution/watchdog.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/evolution/wonder.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/gjc_bridge/index.ts +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/harness/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/harness/claim_term_guard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/harness/deliver_gate.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/harness/deliver_routing.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/harness/journal.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/harness/projection.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/harness/projection_builder.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/harness/run_snapshot.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/hermes/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/hermes/artifacts.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/kiro/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/kiro/cli_policy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/bridge/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/bridge/bridge.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/bridge/config.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/bridge/factory.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/client/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/client/adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/client/manager.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/client/protocol.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/errors.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/job_manager.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/resources/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/resources/handlers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/server/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/server/protocol.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/server/security.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/ac_tree_hud_handler.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/ac_tree_hud_render.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/authoring_handlers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/auto_handler.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/background.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/bridge_mixin.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/brownfield_handler.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/dashboard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/definitions.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/evaluation_handlers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/evolution_handlers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/execution_handlers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/job_handlers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/pm_handler.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/projection_handlers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/qa.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/query_handlers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/ralph_handlers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/registry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/tools/subagent.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/mcp/types.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/observability/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/observability/drift.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/observability/logging.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/observability/retrospective.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/opencode/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/opencode/plugin/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/opencode/plugin/opencode-plugin.d.ts +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/opencode/plugin/ouroboros-bridge.test.ts +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/opencode/plugin/ouroboros-bridge.ts +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/opencode/plugin/package.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/opencode/plugin/tsconfig.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/agent_process.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/agent_runtime_context.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/backend_limits.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/baseline_metrics.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/baseline_metrics_capture.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/baseline_metrics_format.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/capabilities.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/codex_cli_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/command_dispatcher.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/context_governor.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/control_bus.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/control_plane.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/coordinator.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/copilot_cli_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/decomposition_params.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/dependency_analyzer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/effort_routing.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/events.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/evidence_schema.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/execution_runtime_scope.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/execution_strategy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/failure_taxonomy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/frugality_proof.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/gemini_cli_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/gjc_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/goose_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/heartbeat.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/hermes_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/kiro_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/level_context.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/mcp_config.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/mcp_tools.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/opencode_event_normalizer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/opencode_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/parallel_executor.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/parallel_executor_models.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/phase_wrappers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/pi_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/policy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/profile_loader.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/profile_strategy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/rate_limit.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/runner.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/runtime_error.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/runtime_evidence.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/runtime_factory.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/runtime_message_projection.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/runtime_param_negotiation.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/session.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/skill_intercept.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/skill_tool_mapping.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/stage.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/traceguard_benchmark_capture.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/verifier.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/workflow_ir.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/workflow_ir_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/workflow_lifecycle.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator/workflow_state.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/orchestrator_stage.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/persistence/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/persistence/brownfield.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/persistence/checkpoint.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/persistence/event_store.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/persistence/migrations/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/persistence/migrations/runner.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/persistence/migrations/scripts/001_initial.sql +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/persistence/migrations/scripts/002_brownfield.sql +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/persistence/schema.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/persistence/uow.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/agents/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/agents/pool.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/agents/registry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/digest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/firewall.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/hooks.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/ledger_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/lockfile.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/manifest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/schemas/0.1/_source.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/schemas/0.1/audit-event.schema.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/schemas/0.1/plugin.schema.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/schemas/0.2/_source.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/schemas/0.2/audit-event.schema.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/schemas/0.2/plugin.schema.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/schemas/0.3/_source.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/schemas/0.3/audit-event.schema.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/schemas/0.3/plugin.schema.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/schemas/0.4/_source.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/schemas/0.4/audit-event.schema.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/schemas/0.4/plugin.schema.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/skills/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/skills/docs.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/skills/executor.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/skills/keywords.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/skills/registry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/trust_store.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/plugin/userlevel_registry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/pm/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/pm/handoff.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/pm/renderer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/profiles/analysis.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/profiles/code.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/profiles/research.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/anthropic_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/base.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/claude_code_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/codex_cli_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/codex_cli_stream.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/copilot_cli_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/factory.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/gemini_cli_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/gemini_event_normalizer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/gjc_llm_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/gjc_rpc_protocol.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/goose_cli_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/hermes_cli_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/kiro_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/litellm_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/opencode_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/ourocode_acp_client.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/ourocode_llm_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/pi_llm_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/profiles.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/providers/tool_use_diagnostics.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/py.typed +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/ralph_loop.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/resilience/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/resilience/lateral.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/resilience/recovery.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/resilience/stagnation.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/router/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/router/command_parser.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/router/dispatch.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/router/registry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/router/types.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/runtime/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/runtime/child_env.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/runtime/controls.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/runtime/watchdog.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/runtime_instruction_artifacts.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/sandbox.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/skills/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/skills/artifacts.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/strategies/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/strategies/devil_advocate.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/app.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/components/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/components/agents_panel.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/components/event_log.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/components/progress.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/components/token_tracker.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/events.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/screens/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/screens/confirm_rewind.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/screens/dashboard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/screens/dashboard_v2.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/screens/dashboard_v3.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/screens/debug.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/screens/execution.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/screens/hud_dashboard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/screens/lineage_detail.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/screens/lineage_selector.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/screens/logs.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/screens/session_selector.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/widgets/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/widgets/ac_progress.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/widgets/ac_tree.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/widgets/agent_activity.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/widgets/cost_tracker.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/widgets/drift_meter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/widgets/lineage_tree.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/widgets/parallel_graph.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/tui/widgets/phase_progress.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/verification/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/verification/extractor.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/verification/models.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/src/ouroboros/verification/verifier.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/_envelope_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/canonical/README.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/canonical/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/canonical/cli-todo/expected.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/canonical/cli-todo/goal.txt +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/canonical/conftest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/canonical/test_canonical.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/canonical/test_conftest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/conformance/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/conformance/workflow_ir/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/conformance/workflow_ir/fixtures.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/conformance/workflow_ir/test_negative_fixtures.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/conformance/workflow_ir/test_plugin_firewall_contract.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/conformance/workflow_ir/test_positive_fixtures.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/conftest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/e2e/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/e2e/conftest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/e2e/mcp_bridge_test_config.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/e2e/test_cli_commands.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/e2e/test_full_workflow.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/e2e/test_session_persistence.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/fixtures/fake_ourocode_acp.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/fixtures/plugins-fixture/README.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/fixtures/plugins-fixture/plugins/github-pr-ops/github_pr_ops/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/fixtures/plugins-fixture/plugins/github-pr-ops/github_pr_ops/__main__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/fixtures/plugins-fixture/plugins/github-pr-ops/ouroboros.plugin.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/fixtures/projection/mechanical_evaluation_events.json +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/fixtures/router/skills/frontmatter-body/run/SKILL.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/fixtures/seeds/mechanical-eval-minimal.yaml +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/auto/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/auto/test_dispatch_to_seed_e2e.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/auto/test_domain_profile_plurality.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/auto/test_end_to_end_product.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/auto/test_interview_deadline_partial_product_regression.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/auto/test_status_unified.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/conftest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/mcp/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/mcp/bridge/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/mcp/bridge/test_bridge_server_to_server.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/mcp/conftest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/mcp/test_client_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/mcp/test_client_manager.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/mcp/test_server_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/orchestrator/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/orchestrator/test_agent_process_three_surface_acceptance.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/plugin/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/plugin/test_e2e.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/plugin/test_orchestration.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/plugin/test_wheel_packaging.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/test_cancel_subprocess_termination.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/test_codex_cli_passthrough_smoke.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/test_codex_skill_fallback.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/test_codex_skill_smoke.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/test_copilot_cli_smoke.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/test_entry_point.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/test_ir_projection_consistency.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/test_mechanical_eval_projection.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/integration/test_pi_native_smoke.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/test-execution-plan.md +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/agents/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/agents/test_loader.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/conftest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_821_acceptance_matrix.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_adapters_client_gates.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_adapters_ralph_poller.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_answer_refiner_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_answer_source_log.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_answerer_via_domain_profile.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_auto_fill.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_auto_policies.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_auto_worktree.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_blocker_attribution.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_checkpoint_commits.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_cli_progress.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_domain_inference.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_domain_profile_coding_parity.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_domain_profile_contracts.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_execution_acceptance.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_handoff_contract.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_intent_guard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_interview_answer_refiner.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_interview_driver_event_store_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_interview_pipeline.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_interview_stagnation_lateral.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_inverted_interview_intent_guard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_lateral_routing_safe_default.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_ledger_committed_decisions.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_ledger_grading_answerer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_ledger_seed.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_deadline.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_defaulted_sections_surface.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_domain_profile.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_evaluate.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_interview_deadline_closure.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_interview_observer_drain.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_lateral.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_oscillation_lateral.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_partial_product_terminal.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_provenance.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_ralph_handoff.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_runtime_probe_envelope.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_task_class_envelope.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_pipeline_watchdog_integration.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_progress.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_recovery_plan.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_research_profile.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_run_starter_idempotency.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_runtime_routing.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_runtime_semantics.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_safe_default_lateral_escalation.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_safe_default_observability.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_safe_defaults_domain_profile.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_safe_defaults_freedom_policy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_safe_defaults_prompt_non_goals.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_seed_repairer_bounded.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_state.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_state_provenance.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_stop_reason_code.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_surface.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_task_class_application.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_task_classes.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/auto/test_user_preference_and_floor.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/backends/test_model_catalog.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_ambiguity.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_brownfield.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_classifier_context.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_decide_later_items.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_explore.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_interview.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_interview_async_io.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_interview_no_web_search_hint.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_interview_research_prefix.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_interview_start_persist_failure.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_pm_completion.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_pm_document_generator.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_pm_document_writer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_pm_interview.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_pm_interview_brownfield_db.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_pm_seed_ac12.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_pm_seed_save.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_question_classifier.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/bigbang/test_seed_generator.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/commands/test_config_bare_dispatch.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/commands/test_tui_command.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/conftest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/formatters/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/formatters/test_console.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/formatters/test_panels.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/formatters/test_progress.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/formatters/test_prompting.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/formatters/test_tables.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/formatters/test_workflow_display.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_auto_command.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_auto_domain_activation.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_auto_provenance.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_auto_runtime_dispatch.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_bridge_plugin_hardening.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_bridge_plugin_lifecycle.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_cancel.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_codex_command.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_config.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_debug_tool_started_callbacks.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_detached_auto_wait_command.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_detect_allowed_tools_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_dispatch_command.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_doc_commands.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_init_hitl.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_init_pm_seed_detection.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_init_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_job_command.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_jsonc.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_main.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_mcp_doctor.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_mcp_nested_guard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_mcp_pid_registry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_mcp_shell_env.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_mcp_shutdown_drain.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_mcp_startup_cleanup.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_mcp_validate_transport_stderr.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_opencode_config.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_plugin_command.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_plugin_command_mutating.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_pm.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_pm_brownfield.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_pm_completion.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_pm_interactive_logging.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_pm_missing_litellm.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_pm_overwrite.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_pm_runtime_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_pm_select_repos.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_resume.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_run_qa.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_run_runtime_routing.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_setup.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_status.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_status_run.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/cli/test_uninstall.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/codex/test_cli_policy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/config/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/config/test_loader.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/config/test_loader_env.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/config/test_models.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/config_tui/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/config_tui/test_app.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/config_tui/test_fields.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/config_tui/test_launcher.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/config_tui/test_persistence.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/copilot/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/copilot/test_cli_policy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/copilot/test_model_discovery.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/copilot/test_permissions.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_ac_tree.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_context.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_control_contract.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_directive.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_errors.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_file_lock.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_git_workflow.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_hitl_contract.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_hitl_resume.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_hitl_state.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_initial_context.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_lineage.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_ontology_aspect.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_ontology_questions.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_project_paths.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_retry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_runtime_transition.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_security.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_seed_project_path_callers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_ttl_cache.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_types.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/core/test_worktree.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_artifact_collector_file_prefix.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_checklist.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_consensus.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_detector.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_json_utils.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_languages.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_mechanical.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_models.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_pipeline_stage1_reuse.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_pipeline_trigger_consensus.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_review_fixes.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_semantic.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_trigger.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_trigger_consensus.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_verification_artifacts.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evaluation/test_verification_artifacts_allowed_tools_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/events/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/events/test_base.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/events/test_control_events.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/events/test_hitl_events.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/events/test_io_events.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/events/test_io_recorder.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evolution/test_backend_drift.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evolution/test_directive_mapping.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evolution/test_evolve_step_agent_process_integration.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evolution/test_generation_watchdog.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evolution/test_material_progress.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/evolution/test_wonder_scope.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/harness/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/harness/test_claim_term_guard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/harness/test_deliver_gate.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/harness/test_deliver_routing.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/harness/test_journal_normalizer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/harness/test_projection_builder.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/harness/test_projection_records.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/harness/test_run_snapshot.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/hermes/test_artifacts.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/bridge/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/bridge/test_bridge.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/bridge/test_config.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/bridge/test_factory.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/bridge/test_handler_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/bridge/test_stability.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/client/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/client/test_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/client/test_adapter_transport_lifecycle.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/client/test_manager.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/conftest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/resources/test_handlers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/server/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/server/test_adapter_max_turns_envelope_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/server/test_security.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/test_errors.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/test_job_manager.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/test_job_manager_drain.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/test_types.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/conftest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_footer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_handler.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_handler_completed.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_handler_cursor_changed.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_handler_invalid_session.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_handler_no_execution.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_handler_waiting.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_max_nodes.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_render_depth2.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_render_depth3.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_status_icons.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ac_tree_hud_truncation.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_authoring_allowed_tools_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_auto_handler_ralph_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_auto_handler_resume_lines.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_auto_interview_construction.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_bridge_mixin_runtime_context.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_brownfield_handler.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_checklist_verify.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_client_gates.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_definitions.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_definitions_runtime_context.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_evaluate_multi_ac.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_evolve_checkpoint_commits.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_evolve_step_bridge_aware.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_execute_seed_path_resolution.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_generate_seed_force_flag.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_handler_subagent_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_interview_allowed_tools_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_interview_completion_signal_prefix_guard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_interview_done_streak.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_interview_intent_guard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_interview_lateral_review_advisory.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_interview_length_guard_envelope.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_interview_persists_session_on_failure.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_interview_reopen_seed_ready.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_interview_response_diagnostics.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_interview_strict_mcp_config_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_job_instance_cancel_keys.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_job_invalid_arguments.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_lateral_think_handler.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_mcp_manager_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_pm_handler.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_pm_handler_allowed_tools_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_pm_handler_pending_reframe.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_qa_allowed_tools_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_qa_parser.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_ralph_handler.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_registry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_round5_fixes.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_start_auto.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_start_evaluate.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_start_execute_seed_idempotency.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_subagent.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/mcp/tools/test_unstuck_bridge_aware.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/observability/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/observability/test_drift.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/observability/test_logging.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/observability/test_retrospective.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_agent_process.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_agent_runtime_context.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_backend_limits.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_baseline_metrics.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_baseline_metrics_capture.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_baseline_metrics_format.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_capabilities.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_codex_cli_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_codex_recursion_guard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_command_dispatcher.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_context_governor.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_control_bus.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_control_plane.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_coordinator.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_copilot_cli_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_dead_router_removed.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_decomposition_params.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_dependency_analyzer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_effort_routed_event.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_effort_routing.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_events.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_evidence_schema.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_execution_runtime_scope.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_execution_strategy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_failure_taxonomy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_frugality_proof.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_gemini_cli_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_gjc_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_goose_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_hermes_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_inflight_cancellation.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_level_context.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_mcp_config.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_mcp_tools.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_opencode_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_parallel_executor.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_parallel_executor_atomic_judgment.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_parallel_executor_recursive_depth.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_parallel_executor_retry_resume.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_phase_wrappers.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_pi_runtime.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_policy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_profile_loader.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_profile_strategy.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_rate_limit.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_reasoning_effort_routing.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_rfc_v2_integration.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_runner.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_runner_allowed_tools_wiring.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_runner_cancellation.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_runtime_error.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_runtime_evidence.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_runtime_factory.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_runtime_message_projection.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_runtime_param_negotiation.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_sandbox_class.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_seed_prompt.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_session.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_skill_tool_mapping.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_stage_resolution.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_traceguard_benchmark_capture.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_verifier.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_workflow_ir.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_workflow_ir_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_workflow_ir_plugin_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_workflow_lifecycle.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_workflow_lifecycle_conformance.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_workflow_lifecycle_events.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_workflow_projection_boundary.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/test_workflow_state.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/orchestrator/workflow_ir_conformance_fixtures.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/persistence/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/persistence/test_brownfield_store.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/persistence/test_checkpoint.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/persistence/test_event_store.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/persistence/test_schema.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/persistence/test_uow.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/agents/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/agents/test_registry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/skills/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/skills/test_keywords.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/skills/test_registry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_digest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_firewall.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_firewall_tool_call_dispatch.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_hook_permission_scopes.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_hooks_contract.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_ledger_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_lifecycle_observability.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_lockfile.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_manifest.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_manifest_descriptor.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_manifest_hook_validation.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_manifest_schema_0_3.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_manifest_schema_0_4.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_trust_store.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/plugin/test_userlevel_registry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/pm/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/pm/test_renderer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_anthropic_adapter_io_recorder.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_base.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_claude_code_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_codex_cli_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_copilot_cli_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_factory.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_factory_copilot.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_gemini_cli_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_gjc_llm_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_goose_cli_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_hermes_cli_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_litellm_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_litellm_adapter_io_recorder.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_opencode_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_ourocode_acp_client.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_ourocode_llm_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_pi_llm_adapter.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_profiles.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_public_exports.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/providers/test_tool_use_diagnostics.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/resilience/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/resilience/test_lateral.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/resilience/test_recovery.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/resilience/test_stagnation.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_command_parser.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_dispatch.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_dispatch_result_shapes.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_extract_first_argument.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_invalid_dispatch_input_types.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_malformed_unknown_dispatch_errors.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_not_handled_resolution.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_packaged_auto_dispatch.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_registry.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_repository_dispatch_guard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_router_resolution_pipeline.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_typed_frontmatter_fields.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/router/test_valid_dispatch_normalization.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/runtime/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/runtime/test_controls.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/runtime/test_watchdog.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/scripts/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/scripts/test_check_auto_boundary.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/scripts/test_check_auto_perf_budget.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/scripts/test_check_max_turns_envelope.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/scripts/test_claude_hook_settings.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/scripts/test_hook_script_stdio.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/scripts/test_install_runtime_selection.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/scripts/test_keyword_detector.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/scripts/test_ralph_shell_project_dir.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/scripts/test_session_start.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/scripts/test_sync_plugin_version.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/scripts/test_version_check.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/skills/test_breadcrumb_footer_contract.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_artifact_collector.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_claude_plugin_skill_guide.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_codex_artifacts.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_convergence.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_dashboard.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_dependencies_configured.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_detached_auto_docs.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_evolve_rewind.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_evolve_step.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_graceful_shutdown.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_kiro_adapters.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_lineage.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_main_entry_point.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_module_structure.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_project_initialization.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_projector_directives.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_projector_rewind.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_ralph_loop_budget.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_ralph_loop_progress.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_ralph_loop_timeout.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_ralph_parser.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_ralph_rewind.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_ralph_shell.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_regression.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_runtime_instruction_artifacts.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_runtime_skill_capability_docs.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_tooling_configuration.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/test_verification.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/tui/__init__.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/tui/test_app.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/tui/test_cancelled_display.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/tui/test_events.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/tui/test_lineage_viewer.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/tui/test_screens.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/tui/test_session_selector_replay.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tests/unit/tui/test_widgets.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/tools/sync_github_project.py +0 -0
- {ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/uv.lock +0 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
{
|
|
11
11
|
"name": "ouroboros",
|
|
12
12
|
"description": "Transform vague ideas into validated seed specifications through Socratic questioning and ontological analysis",
|
|
13
|
-
"version": "0.43.
|
|
13
|
+
"version": "0.43.4",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "Q00",
|
|
16
16
|
"email": "jqyu.lee@gmail.com"
|
{ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/brownfield/SKILL.md
RENAMED
|
@@ -45,11 +45,11 @@ This may take a moment...
|
|
|
45
45
|
This skill can call `ouroboros_brownfield` across multiple turns (`scan`,
|
|
46
46
|
`set_defaults`, `defaults`, and `set`). A deferred schema loaded for one turn is
|
|
47
47
|
NOT guaranteed to remain loaded for the next. Immediately before EVERY
|
|
48
|
-
`ouroboros_brownfield` call, re-run `
|
|
49
|
-
(idempotent — a no-op when already loaded). If the load returns no matching tool,
|
|
48
|
+
`ouroboros_brownfield` call, re-run `tool discovery query: "+ouroboros brownfield"`
|
|
49
|
+
(idempotent — a no-op when already loaded). If the load returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence),
|
|
50
50
|
stop with the MCP-not-available message instead of retrying the failing call.
|
|
51
51
|
|
|
52
|
-
1. Load the brownfield MCP tool: `
|
|
52
|
+
1. Load the brownfield MCP tool: `tool discovery query: "+ouroboros brownfield"`
|
|
53
53
|
2. Call scan+register:
|
|
54
54
|
```
|
|
55
55
|
Tool: ouroboros_brownfield
|
|
@@ -125,7 +125,7 @@ Then stop.
|
|
|
125
125
|
|
|
126
126
|
The user can select the recommended defaults (if any), choose "None", or type custom numbers.
|
|
127
127
|
|
|
128
|
-
After the user responds, re-run `
|
|
128
|
+
After the user responds, re-run `tool discovery query: "+ouroboros brownfield"`, then use ONE MCP call to update all defaults at once:
|
|
129
129
|
|
|
130
130
|
```
|
|
131
131
|
Tool: ouroboros_brownfield
|
|
@@ -163,7 +163,7 @@ Scan only, no default selection prompt. Show the numbered list and stop.
|
|
|
163
163
|
|
|
164
164
|
### Subcommand: `defaults`
|
|
165
165
|
|
|
166
|
-
Re-run `
|
|
166
|
+
Re-run `tool discovery query: "+ouroboros brownfield"`, then call:
|
|
167
167
|
```
|
|
168
168
|
Tool: ouroboros_brownfield
|
|
169
169
|
Arguments: { "action": "scan" }
|
|
@@ -178,7 +178,7 @@ No default repos set. Run 'ooo brownfield' to configure.
|
|
|
178
178
|
|
|
179
179
|
### Subcommand: `set <indices>`
|
|
180
180
|
|
|
181
|
-
Directly set defaults without scanning. Parse the comma-separated indices from the user's input, re-run `
|
|
181
|
+
Directly set defaults without scanning. Parse the comma-separated indices from the user's input, re-run `tool discovery query: "+ouroboros brownfield"`, and call:
|
|
182
182
|
|
|
183
183
|
```
|
|
184
184
|
Tool: ouroboros_brownfield
|
{ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/evaluate/SKILL.md
RENAMED
|
@@ -43,12 +43,12 @@ When the user invokes this skill:
|
|
|
43
43
|
|
|
44
44
|
The Ouroboros MCP tools are often registered as **deferred tools** that must be explicitly loaded before use. **You MUST perform this step before proceeding.**
|
|
45
45
|
|
|
46
|
-
1. Use the
|
|
46
|
+
1. Use the active runtime's tool-discovery capability to find and load the evaluate MCP tool:
|
|
47
47
|
```
|
|
48
|
-
|
|
48
|
+
tool discovery query: "+ouroboros evaluate"
|
|
49
49
|
```
|
|
50
|
-
2. The tool will typically be named `mcp__plugin_ouroboros_ouroboros__ouroboros_evaluate` (with a plugin prefix). After
|
|
51
|
-
3. If
|
|
50
|
+
2. The tool will typically be named `mcp__plugin_ouroboros_ouroboros__ouroboros_evaluate` (with a plugin prefix). After runtime tool discovery returns, the tool becomes callable.
|
|
51
|
+
3. If the tool is callable — already exposed, or loaded by discovery — proceed with the MCP-based evaluation below. An empty discovery result for an already-exposed tool is expected, not a failure. Skip to the **Fallback** section only if the tool is genuinely absent (no Ouroboros MCP server).
|
|
52
52
|
|
|
53
53
|
**IMPORTANT**: Do NOT skip this step. Do NOT assume MCP tools are unavailable just because they don't appear in your immediate tool list. They are almost always available as deferred tools that need to be loaded first.
|
|
54
54
|
|
|
@@ -58,8 +58,8 @@ schema loaded on one turn is NOT guaranteed to still be loaded on the next. If
|
|
|
58
58
|
you call it while its schema is not loaded in the **current** turn, the runtime
|
|
59
59
|
rejects the call with **"Invalid tool parameters"** before it reaches the server.
|
|
60
60
|
Therefore: **immediately before EVERY `ouroboros_evaluate` call in this skill,
|
|
61
|
-
re-run `
|
|
62
|
-
already loaded). If the load returns no matching tool, switch to the documented
|
|
61
|
+
re-run `tool discovery query: "+ouroboros evaluate"`** (idempotent — a no-op when
|
|
62
|
+
already loaded). If the load returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence), switch to the documented
|
|
63
63
|
fallback instead of retrying the failing call.
|
|
64
64
|
|
|
65
65
|
### Evaluation Steps
|
{ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/evolve/SKILL.md
RENAMED
|
@@ -45,12 +45,12 @@ ooo evolve --rewind <lineage_id> <generation_number>
|
|
|
45
45
|
|
|
46
46
|
The Ouroboros MCP tools are often registered as **deferred tools** that must be explicitly loaded before use. **You MUST perform this step before deciding between Path A and Path B.**
|
|
47
47
|
|
|
48
|
-
1. Use the
|
|
48
|
+
1. Use the active runtime's tool-discovery capability to find and load the evolve MCP tools:
|
|
49
49
|
```
|
|
50
|
-
|
|
50
|
+
tool discovery query: "+ouroboros evolve"
|
|
51
51
|
```
|
|
52
|
-
2. The tools will typically be named with prefix `mcp__plugin_ouroboros_ouroboros__` (e.g., `ouroboros_evolve_step`, `ouroboros_interview`, `ouroboros_generate_seed`). After
|
|
53
|
-
3. If
|
|
52
|
+
2. The tools will typically be named with prefix `mcp__plugin_ouroboros_ouroboros__` (e.g., `ouroboros_evolve_step`, `ouroboros_interview`, `ouroboros_generate_seed`). After runtime tool discovery returns, the tools become callable.
|
|
53
|
+
3. If the tools are callable — already exposed, or loaded by discovery — proceed to **Path A**. An empty discovery result for already-exposed tools is expected, not a failure. Proceed to **Path B** only if they are genuinely absent (no Ouroboros MCP server).
|
|
54
54
|
|
|
55
55
|
**IMPORTANT**: Do NOT skip this step. Do NOT assume MCP tools are unavailable just because they don't appear in your immediate tool list. They are almost always available as deferred tools that need to be loaded first.
|
|
56
56
|
|
|
@@ -66,10 +66,10 @@ you are about to call**. Use `"+ouroboros evolve"` for `ouroboros_evolve_step`,
|
|
|
66
66
|
`ouroboros_lineage_status`, and the evolve flow's documented tool family;
|
|
67
67
|
use `"+ouroboros interview"` before `ouroboros_interview`, `"+ouroboros seed"`
|
|
68
68
|
before `ouroboros_generate_seed`, and `"+ouroboros lateral"` before
|
|
69
|
-
`ouroboros_lateral_think`. If a load returns no matching tool, switch to the
|
|
69
|
+
`ouroboros_lateral_think`. If a load returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence), switch to the
|
|
70
70
|
documented fallback / Path B instead of retrying the failing call.
|
|
71
71
|
|
|
72
|
-
### Path A: MCP Available (loaded via
|
|
72
|
+
### Path A: MCP Available (loaded via runtime tool discovery above)
|
|
73
73
|
|
|
74
74
|
**Starting a new evolutionary loop:**
|
|
75
75
|
1. Parse the user's input as `initial_context`
|
{ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/interview/SKILL.md
RENAMED
|
@@ -99,8 +99,9 @@ The Ouroboros MCP tools are often registered as **deferred tools** that must be
|
|
|
99
99
|
|
|
100
100
|
2. The tool will typically be named `mcp__plugin_ouroboros_ouroboros__ouroboros_interview` (with a plugin prefix). After runtime tool discovery returns, the tool becomes callable.
|
|
101
101
|
|
|
102
|
-
3. If
|
|
103
|
-
|
|
102
|
+
3. If the tool is callable — already exposed, or loaded by discovery — proceed to **Path A**.
|
|
103
|
+
An empty discovery result for an already-exposed tool is expected, not a failure.
|
|
104
|
+
Proceed to **Path B** only if the tool is genuinely absent (no Ouroboros MCP server).
|
|
104
105
|
|
|
105
106
|
**IMPORTANT**: Do NOT skip this step. Do NOT assume MCP tools are unavailable just because they don't appear in your immediate tool list. They are almost always available as deferred tools that need to be loaded first.
|
|
106
107
|
|
|
@@ -115,7 +116,7 @@ the tool-discovery load query for the specific MCP tool you are about to call**
|
|
|
115
116
|
(idempotent — a no-op when the schema is already loaded) so the correct schema is
|
|
116
117
|
guaranteed present for that call. Use `"+ouroboros interview"` before
|
|
117
118
|
`ouroboros_interview` and `"+ouroboros lateral"` before
|
|
118
|
-
`ouroboros_lateral_think`. If a load ever returns no matching tool, switch to the
|
|
119
|
+
`ouroboros_lateral_think`. If a load ever returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence), switch to the
|
|
119
120
|
documented fallback / Path B instead of retrying the failing call.
|
|
120
121
|
|
|
121
122
|
### Path A: MCP Mode (Preferred)
|
|
@@ -12,7 +12,7 @@ PM-focused Socratic interview that produces a Product Requirements Document.
|
|
|
12
12
|
### Step 1: Load MCP Tool
|
|
13
13
|
|
|
14
14
|
```
|
|
15
|
-
|
|
15
|
+
tool discovery query: "+ouroboros pm_interview"
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
**CRITICAL — deferred-schema guard (prevents "Invalid tool parameters"):**
|
|
@@ -20,9 +20,9 @@ This is a multi-turn loop and each turn runs in a fresh tool context. A deferred
|
|
|
20
20
|
tool's schema loaded on one turn is NOT guaranteed to still be loaded on the next.
|
|
21
21
|
Calling `ouroboros_pm_interview` while its schema is unloaded in the **current**
|
|
22
22
|
turn makes the runtime reject it with **"Invalid tool parameters"** every message.
|
|
23
|
-
Therefore **re-run `
|
|
23
|
+
Therefore **re-run `tool discovery query: "+ouroboros pm_interview"` immediately before
|
|
24
24
|
EVERY `ouroboros_pm_interview` call** below (idempotent — a no-op if already
|
|
25
|
-
loaded). If the load ever returns no matching tool, follow the not-found diagnosis
|
|
25
|
+
loaded). If the load ever returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence), follow the not-found diagnosis
|
|
26
26
|
below instead of retrying the failing call.
|
|
27
27
|
|
|
28
28
|
If not found → **diagnose before telling user to run setup**:
|
|
@@ -42,13 +42,13 @@ When the user invokes this skill:
|
|
|
42
42
|
|
|
43
43
|
This skill works in two modes. Determine which one **before** attempting any tool calls:
|
|
44
44
|
|
|
45
|
-
- **MCP mode** — If
|
|
45
|
+
- **MCP mode** — If the QA MCP tool is available (already exposed, or loadable via discovery), use it:
|
|
46
46
|
```
|
|
47
|
-
|
|
47
|
+
tool discovery query: "+ouroboros qa"
|
|
48
48
|
```
|
|
49
49
|
If found (typically named `mcp__plugin_ouroboros_ouroboros__ouroboros_qa`), proceed with **QA Steps** below.
|
|
50
50
|
|
|
51
|
-
- **Fallback mode** —
|
|
51
|
+
- **Fallback mode** — Only if the QA MCP tool is genuinely absent (no Ouroboros MCP server) skip to the **Fallback** section; an empty discovery result for an already-exposed tool is expected — call it directly rather than falling back. This skill is designed to work without MCP setup.
|
|
52
52
|
|
|
53
53
|
### QA Steps (MCP mode)
|
|
54
54
|
|
|
@@ -52,13 +52,13 @@ When the user invokes this skill:
|
|
|
52
52
|
The Ouroboros MCP tools are often registered as deferred tools that must be
|
|
53
53
|
explicitly loaded before use. Do this before preparing input or calling Ralph:
|
|
54
54
|
|
|
55
|
-
1. Use the
|
|
55
|
+
1. Use the active runtime's tool-discovery capability to find and load the Ralph/job MCP tools:
|
|
56
56
|
```
|
|
57
|
-
|
|
57
|
+
tool discovery query: "+ouroboros ralph job"
|
|
58
58
|
```
|
|
59
59
|
2. The loaded tools may be exposed under plugin-prefixed names such as
|
|
60
60
|
`mcp__plugin_ouroboros_ouroboros__ouroboros_ralph`. Use the actual tool
|
|
61
|
-
names returned by
|
|
61
|
+
names returned by runtime tool discovery; the bare names below are the canonical MCP
|
|
62
62
|
tool names for documentation.
|
|
63
63
|
3. Confirm that `ouroboros_ralph` and the job tools (`ouroboros_job_wait`,
|
|
64
64
|
`ouroboros_job_status`, `ouroboros_job_result`, and
|
|
@@ -35,12 +35,12 @@ When the user invokes this skill:
|
|
|
35
35
|
|
|
36
36
|
The Ouroboros MCP tools are often registered as **deferred tools** that must be explicitly loaded before use. **You MUST perform this step before proceeding.**
|
|
37
37
|
|
|
38
|
-
1. Use the
|
|
38
|
+
1. Use the active runtime's tool-discovery capability to find and load the execution MCP tools:
|
|
39
39
|
```
|
|
40
|
-
|
|
40
|
+
tool discovery query: "+ouroboros execute"
|
|
41
41
|
```
|
|
42
|
-
2. The tools will typically be named with prefix `mcp__plugin_ouroboros_ouroboros__` (e.g., `ouroboros_execute_seed`, `ouroboros_session_status`). After
|
|
43
|
-
3. If
|
|
42
|
+
2. The tools will typically be named with prefix `mcp__plugin_ouroboros_ouroboros__` (e.g., `ouroboros_execute_seed`, `ouroboros_session_status`). After runtime tool discovery returns, the tools become callable.
|
|
43
|
+
3. If the tools are callable — already exposed, or loaded by discovery — proceed with the steps below. An empty discovery result for already-exposed tools is expected, not a failure. Skip to the **Fallback** section only if they are genuinely absent (no Ouroboros MCP server).
|
|
44
44
|
|
|
45
45
|
**IMPORTANT**: Do NOT skip this step. Do NOT assume MCP tools are unavailable just because they don't appear in your immediate tool list. They are almost always available as deferred tools that need to be loaded first.
|
|
46
46
|
|
|
@@ -51,10 +51,10 @@ guaranteed to still be loaded on the next. If you call any execution `ouroboros_
|
|
|
51
51
|
MCP tool while its schema is not loaded in the **current** turn, the runtime
|
|
52
52
|
rejects the call with **"Invalid tool parameters"** before it reaches the server.
|
|
53
53
|
Therefore: **immediately before EVERY execution MCP call in this skill, re-run
|
|
54
|
-
`
|
|
54
|
+
`tool discovery query: "+ouroboros execute"`** to reload the execution tool family,
|
|
55
55
|
including `ouroboros_start_execute_seed`, `ouroboros_job_wait`,
|
|
56
56
|
`ouroboros_ac_tree_hud`, and `ouroboros_job_result` (idempotent — a no-op when
|
|
57
|
-
already loaded). If the load returns no matching tool, switch to the documented
|
|
57
|
+
already loaded). If the load returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence), switch to the documented
|
|
58
58
|
fallback instead of retrying the failing call.
|
|
59
59
|
|
|
60
60
|
### Execution Steps
|
|
@@ -41,7 +41,7 @@ The Ouroboros MCP tools are often registered as **deferred tools** that must be
|
|
|
41
41
|
tool discovery query: "+ouroboros seed"
|
|
42
42
|
```
|
|
43
43
|
2. The tool will typically be named `mcp__plugin_ouroboros_ouroboros__ouroboros_generate_seed` (with a plugin prefix). After runtime tool discovery returns, the tool becomes callable through the active runtime's `call_mcp` capability.
|
|
44
|
-
3. If
|
|
44
|
+
3. If the tool is callable — already exposed, or loaded by discovery — proceed to **Path A**. An empty discovery result for an already-exposed tool is expected, not a failure. Proceed to **Path B** only if the tool is genuinely absent (no Ouroboros MCP server).
|
|
45
45
|
|
|
46
46
|
**IMPORTANT**: Do NOT skip this step. Do NOT assume MCP tools are unavailable just because they don't appear in your immediate tool list. They are almost always available as deferred tools that need to be loaded first.
|
|
47
47
|
|
|
@@ -57,7 +57,7 @@ the tool-discovery load query for the specific MCP tool you are about to call**
|
|
|
57
57
|
guaranteed present for that call. Use `"+ouroboros seed"` before
|
|
58
58
|
`ouroboros_generate_seed`, `"+ouroboros qa"` before `ouroboros_qa`, and
|
|
59
59
|
`"+ouroboros lateral"` before `ouroboros_lateral_think`. If a load ever returns
|
|
60
|
-
no matching tool, switch to the documented fallback / Path B instead of retrying
|
|
60
|
+
no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence), switch to the documented fallback / Path B instead of retrying
|
|
61
61
|
the failing call.
|
|
62
62
|
|
|
63
63
|
### Path A: MCP Mode (Preferred)
|
|
@@ -425,11 +425,11 @@ This may take a moment...
|
|
|
425
425
|
`setup` can call `ouroboros_brownfield` before and after a user-selection turn.
|
|
426
426
|
A deferred schema loaded before scan is NOT guaranteed to remain loaded for the
|
|
427
427
|
later `set_defaults` call. Immediately before EVERY `ouroboros_brownfield` call
|
|
428
|
-
in this section, re-run `
|
|
429
|
-
a no-op when already loaded). If the load returns no matching tool, use the
|
|
428
|
+
in this section, re-run `tool discovery query: "+ouroboros brownfield"` (idempotent —
|
|
429
|
+
a no-op when already loaded). If the load returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence), use the
|
|
430
430
|
non-MCP setup fallback instead of retrying the failing call.
|
|
431
431
|
|
|
432
|
-
1. Load the brownfield MCP tool: `
|
|
432
|
+
1. Load the brownfield MCP tool: `tool discovery query: "+ouroboros brownfield"`
|
|
433
433
|
2. Call scan+register:
|
|
434
434
|
```
|
|
435
435
|
Tool: ouroboros_brownfield
|
|
@@ -501,7 +501,7 @@ Use `AskUserQuestion` with the current default numbers from the scan response.
|
|
|
501
501
|
|
|
502
502
|
The user can select the recommended defaults (if any), choose "None", or type custom numbers.
|
|
503
503
|
|
|
504
|
-
After the user responds, re-run `
|
|
504
|
+
After the user responds, re-run `tool discovery query: "+ouroboros brownfield"`, then use ONE MCP call to update all defaults at once:
|
|
505
505
|
|
|
506
506
|
```
|
|
507
507
|
Tool: ouroboros_brownfield
|
{ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/status/SKILL.md
RENAMED
|
@@ -31,12 +31,12 @@ When the user invokes this skill:
|
|
|
31
31
|
|
|
32
32
|
The Ouroboros MCP tools are often registered as **deferred tools** that must be explicitly loaded before use. **You MUST perform this step before proceeding.**
|
|
33
33
|
|
|
34
|
-
1. Use the
|
|
34
|
+
1. Use the active runtime's tool-discovery capability to find and load the status MCP tools:
|
|
35
35
|
```
|
|
36
|
-
|
|
36
|
+
tool discovery query: "+ouroboros session status"
|
|
37
37
|
```
|
|
38
|
-
2. The tools will typically be named with prefix `mcp__plugin_ouroboros_ouroboros__` (e.g., `ouroboros_session_status`, `ouroboros_measure_drift`). After
|
|
39
|
-
3. If
|
|
38
|
+
2. The tools will typically be named with prefix `mcp__plugin_ouroboros_ouroboros__` (e.g., `ouroboros_session_status`, `ouroboros_measure_drift`). After runtime tool discovery returns, the tools become callable.
|
|
39
|
+
3. If the tools are callable — already exposed, or loaded by discovery — proceed with the steps below. An empty discovery result for already-exposed tools is expected, not a failure. Skip to the **Fallback** section only if they are genuinely absent (no Ouroboros MCP server).
|
|
40
40
|
|
|
41
41
|
**IMPORTANT**: Do NOT skip this step. Do NOT assume MCP tools are unavailable just because they don't appear in your immediate tool list. They are almost always available as deferred tools that need to be loaded first.
|
|
42
42
|
|
{ouroboros_ai-0.43.3.dev18 → ouroboros_ai-0.43.4.dev2}/.claude-plugin/skills/unstuck/SKILL.md
RENAMED
|
@@ -76,11 +76,11 @@ This pre-call branch applies to solo *and* debate. Skipping it makes `ooo latera
|
|
|
76
76
|
|
|
77
77
|
Per the `ooo` routing contract in `src/ouroboros/codex/ouroboros.md`, every `ooo lateral` invocation MUST route through the MCP tool — solo *and* debate, in every runtime. This SKILL never substitutes a direct sub-agent fan-out for the MCP call.
|
|
78
78
|
|
|
79
|
-
1.
|
|
79
|
+
1. Use the active runtime's tool-discovery capability with query `"+ouroboros lateral"` to load `ouroboros_lateral_think` (often prefixed, e.g., `mcp__plugin_ouroboros_ouroboros__ouroboros_lateral_think`). Deferred tools won't appear until runtime tool discovery runs.
|
|
80
80
|
2. Invoke the tool with the parsed mode and the context from Step 2:
|
|
81
81
|
- **Solo**: `persona=<one>`, `problem_context`, `current_approach`, `failed_attempts`.
|
|
82
82
|
- **Debate**: `personas=[...]`, `problem_context`, `current_approach`, `failed_attempts`.
|
|
83
|
-
3. If
|
|
83
|
+
3. If the tool is not callable even after discovery — neither already exposed nor loadable (an empty discovery result for an already-exposed tool is expected, not a failure) — **stop and report that the MCP dispatch surface is broken** — same rule the contract applies to `ooo auto`. Do not improvise a sub-agent fan-out as a workaround; that bypasses the contract the bot review explicitly flagged.
|
|
84
84
|
|
|
85
85
|
The MCP call is cheap. The handler's inline path is a *deterministic prompt builder* — it constructs per-persona reframing prompts via `LateralThinker.generate_alternative` (`src/ouroboros/mcp/tools/evaluation_handlers.py:1444+`); it does not run an LLM rollout.
|
|
86
86
|
|
|
@@ -198,7 +198,7 @@ You only need this if a parent SKILL or the user explicitly requests *one* perso
|
|
|
198
198
|
|
|
199
199
|
## When MCP is unavailable
|
|
200
200
|
|
|
201
|
-
The contract is "fail loud, don't substitute": if `ouroboros_lateral_think`
|
|
201
|
+
The contract is "fail loud, don't substitute": if `ouroboros_lateral_think` is not callable at all — neither already exposed nor loadable via discovery — stop and report that the MCP dispatch surface is broken. Do not improvise either solo or debate by reading persona files directly when MCP-driven invocation was requested — that re-introduces the contract bypass the bot review flagged.
|
|
202
202
|
|
|
203
203
|
The one exception, retained for documented offline use: a parent SKILL operating in degraded-offline mode that has *already* announced it cannot reach MCP MAY read `src/ouroboros/agents/<persona>.md` and adopt that persona inline for solo reframing. This is not a fallback for `ooo lateral`; it's a degraded helper for a parent SKILL that has already given up on MCP. Debate has no offline equivalent — report the broken surface and stop.
|
|
204
204
|
|
|
@@ -222,7 +222,7 @@ with 2 tables, you haven't found the core feature yet.
|
|
|
222
222
|
|
|
223
223
|
[Step 2: Confirm problem_context + current_approach are present;
|
|
224
224
|
ask the user one short combined question if not]
|
|
225
|
-
[
|
|
225
|
+
[runtime tool discovery loads ouroboros_lateral_think]
|
|
226
226
|
[Call ouroboros_lateral_think(personas=[hacker,researcher,simplifier,architect,contrarian], ...)]
|
|
227
227
|
[Handler returns: content = N persona blocks joined by ---,
|
|
228
228
|
followed by hidden <!-- ouroboros-lateral-inline-dispatch-v1 base64
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""De-leak Claude-specific `ToolSearch` from shared SKILL.md prose.
|
|
3
|
+
|
|
4
|
+
Replaces the concrete runtime tool name `ToolSearch` with runtime-agnostic
|
|
5
|
+
"tool discovery" phrasing (matching the already-migrated seed/interview
|
|
6
|
+
template), while PRESERVING verbatim: the `+ouroboros X` discovery queries, the
|
|
7
|
+
`ouroboros_*` MCP tool names, the `deferred-schema guard` strings, and the
|
|
8
|
+
unstuck fail-loud contract meaning. The ubiquitous-language convention now lives
|
|
9
|
+
in the MCP server `instructions` field, so each runtime maps "tool discovery" to
|
|
10
|
+
its own mechanism (Claude -> ToolSearch) without the shared prose naming one.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from __future__ import annotations
|
|
14
|
+
|
|
15
|
+
from pathlib import Path
|
|
16
|
+
|
|
17
|
+
REPO = Path(__file__).resolve().parents[1]
|
|
18
|
+
|
|
19
|
+
# Laggard skills still hardcoding ToolSearch (seed/interview already migrated).
|
|
20
|
+
SKILLS = [
|
|
21
|
+
"evaluate",
|
|
22
|
+
"run",
|
|
23
|
+
"status",
|
|
24
|
+
"evolve",
|
|
25
|
+
"qa",
|
|
26
|
+
"ralph",
|
|
27
|
+
"pm",
|
|
28
|
+
"setup",
|
|
29
|
+
"brownfield",
|
|
30
|
+
"unstuck",
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
# Ordered, literal replacements. Specific multi-word phrases first; a catch-all
|
|
34
|
+
# last guarantees no stray `ToolSearch` survives.
|
|
35
|
+
REPLACEMENTS: list[tuple[str, str]] = [
|
|
36
|
+
(
|
|
37
|
+
"Use the `ToolSearch` tool to find and load",
|
|
38
|
+
"Use the active runtime's tool-discovery capability to find and load",
|
|
39
|
+
),
|
|
40
|
+
("If `ToolSearch` is not available", "If runtime tool discovery is not available"),
|
|
41
|
+
("If `ToolSearch` is available", "If runtime tool discovery is available"),
|
|
42
|
+
("After ToolSearch returns", "After runtime tool discovery returns"),
|
|
43
|
+
("If ToolSearch finds", "If runtime tool discovery finds"),
|
|
44
|
+
("loaded via ToolSearch above", "loaded via runtime tool discovery above"),
|
|
45
|
+
("names returned by `ToolSearch`", "names returned by runtime tool discovery"),
|
|
46
|
+
(
|
|
47
|
+
"Call `ToolSearch` with query",
|
|
48
|
+
"Use the active runtime's tool-discovery capability with query",
|
|
49
|
+
),
|
|
50
|
+
("until `ToolSearch` runs", "until runtime tool discovery runs"),
|
|
51
|
+
("If `ToolSearch` cannot load", "If runtime tool discovery cannot load"),
|
|
52
|
+
("cannot be loaded via `ToolSearch`", "cannot be loaded via runtime tool discovery"),
|
|
53
|
+
("[ToolSearch loads", "[runtime tool discovery loads"),
|
|
54
|
+
("ToolSearch query:", "tool discovery query:"),
|
|
55
|
+
# Catch-all stragglers (backticked then bare).
|
|
56
|
+
("`ToolSearch`", "runtime tool discovery"),
|
|
57
|
+
("ToolSearch", "runtime tool discovery"),
|
|
58
|
+
]
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def main() -> int:
|
|
62
|
+
trees = [REPO / "skills", REPO / ".claude-plugin" / "skills"]
|
|
63
|
+
total_changed = 0
|
|
64
|
+
leftovers: list[str] = []
|
|
65
|
+
for tree in trees:
|
|
66
|
+
for skill in SKILLS:
|
|
67
|
+
path = tree / skill / "SKILL.md"
|
|
68
|
+
if not path.exists():
|
|
69
|
+
print(f" SKIP (absent): {path}")
|
|
70
|
+
continue
|
|
71
|
+
text = path.read_text(encoding="utf-8")
|
|
72
|
+
before = text.count("ToolSearch")
|
|
73
|
+
for old, new in REPLACEMENTS:
|
|
74
|
+
text = text.replace(old, new)
|
|
75
|
+
after = text.count("ToolSearch")
|
|
76
|
+
if after:
|
|
77
|
+
leftovers.append(f"{path}: {after} ToolSearch remain")
|
|
78
|
+
if before:
|
|
79
|
+
path.write_text(text, encoding="utf-8")
|
|
80
|
+
total_changed += 1
|
|
81
|
+
print(f" {path.relative_to(REPO)}: {before} -> {after}")
|
|
82
|
+
print(f"\nFiles changed: {total_changed}")
|
|
83
|
+
if leftovers:
|
|
84
|
+
print("LEFTOVERS:")
|
|
85
|
+
for line in leftovers:
|
|
86
|
+
print(f" {line}")
|
|
87
|
+
return 1
|
|
88
|
+
return 0
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
if __name__ == "__main__":
|
|
92
|
+
raise SystemExit(main())
|
|
@@ -45,11 +45,11 @@ This may take a moment...
|
|
|
45
45
|
This skill can call `ouroboros_brownfield` across multiple turns (`scan`,
|
|
46
46
|
`set_defaults`, `defaults`, and `set`). A deferred schema loaded for one turn is
|
|
47
47
|
NOT guaranteed to remain loaded for the next. Immediately before EVERY
|
|
48
|
-
`ouroboros_brownfield` call, re-run `
|
|
49
|
-
(idempotent — a no-op when already loaded). If the load returns no matching tool,
|
|
48
|
+
`ouroboros_brownfield` call, re-run `tool discovery query: "+ouroboros brownfield"`
|
|
49
|
+
(idempotent — a no-op when already loaded). If the load returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence),
|
|
50
50
|
stop with the MCP-not-available message instead of retrying the failing call.
|
|
51
51
|
|
|
52
|
-
1. Load the brownfield MCP tool: `
|
|
52
|
+
1. Load the brownfield MCP tool: `tool discovery query: "+ouroboros brownfield"`
|
|
53
53
|
2. Call scan+register:
|
|
54
54
|
```
|
|
55
55
|
Tool: ouroboros_brownfield
|
|
@@ -125,7 +125,7 @@ Then stop.
|
|
|
125
125
|
|
|
126
126
|
The user can select the recommended defaults (if any), choose "None", or type custom numbers.
|
|
127
127
|
|
|
128
|
-
After the user responds, re-run `
|
|
128
|
+
After the user responds, re-run `tool discovery query: "+ouroboros brownfield"`, then use ONE MCP call to update all defaults at once:
|
|
129
129
|
|
|
130
130
|
```
|
|
131
131
|
Tool: ouroboros_brownfield
|
|
@@ -163,7 +163,7 @@ Scan only, no default selection prompt. Show the numbered list and stop.
|
|
|
163
163
|
|
|
164
164
|
### Subcommand: `defaults`
|
|
165
165
|
|
|
166
|
-
Re-run `
|
|
166
|
+
Re-run `tool discovery query: "+ouroboros brownfield"`, then call:
|
|
167
167
|
```
|
|
168
168
|
Tool: ouroboros_brownfield
|
|
169
169
|
Arguments: { "action": "scan" }
|
|
@@ -178,7 +178,7 @@ No default repos set. Run 'ooo brownfield' to configure.
|
|
|
178
178
|
|
|
179
179
|
### Subcommand: `set <indices>`
|
|
180
180
|
|
|
181
|
-
Directly set defaults without scanning. Parse the comma-separated indices from the user's input, re-run `
|
|
181
|
+
Directly set defaults without scanning. Parse the comma-separated indices from the user's input, re-run `tool discovery query: "+ouroboros brownfield"`, and call:
|
|
182
182
|
|
|
183
183
|
```
|
|
184
184
|
Tool: ouroboros_brownfield
|
|
@@ -43,12 +43,12 @@ When the user invokes this skill:
|
|
|
43
43
|
|
|
44
44
|
The Ouroboros MCP tools are often registered as **deferred tools** that must be explicitly loaded before use. **You MUST perform this step before proceeding.**
|
|
45
45
|
|
|
46
|
-
1. Use the
|
|
46
|
+
1. Use the active runtime's tool-discovery capability to find and load the evaluate MCP tool:
|
|
47
47
|
```
|
|
48
|
-
|
|
48
|
+
tool discovery query: "+ouroboros evaluate"
|
|
49
49
|
```
|
|
50
|
-
2. The tool will typically be named `mcp__plugin_ouroboros_ouroboros__ouroboros_evaluate` (with a plugin prefix). After
|
|
51
|
-
3. If
|
|
50
|
+
2. The tool will typically be named `mcp__plugin_ouroboros_ouroboros__ouroboros_evaluate` (with a plugin prefix). After runtime tool discovery returns, the tool becomes callable.
|
|
51
|
+
3. If the tool is callable — already exposed, or loaded by discovery — proceed with the MCP-based evaluation below. An empty discovery result for an already-exposed tool is expected, not a failure. Skip to the **Fallback** section only if the tool is genuinely absent (no Ouroboros MCP server).
|
|
52
52
|
|
|
53
53
|
**IMPORTANT**: Do NOT skip this step. Do NOT assume MCP tools are unavailable just because they don't appear in your immediate tool list. They are almost always available as deferred tools that need to be loaded first.
|
|
54
54
|
|
|
@@ -58,8 +58,8 @@ schema loaded on one turn is NOT guaranteed to still be loaded on the next. If
|
|
|
58
58
|
you call it while its schema is not loaded in the **current** turn, the runtime
|
|
59
59
|
rejects the call with **"Invalid tool parameters"** before it reaches the server.
|
|
60
60
|
Therefore: **immediately before EVERY `ouroboros_evaluate` call in this skill,
|
|
61
|
-
re-run `
|
|
62
|
-
already loaded). If the load returns no matching tool, switch to the documented
|
|
61
|
+
re-run `tool discovery query: "+ouroboros evaluate"`** (idempotent — a no-op when
|
|
62
|
+
already loaded). If the load returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence), switch to the documented
|
|
63
63
|
fallback instead of retrying the failing call.
|
|
64
64
|
|
|
65
65
|
### Evaluation Steps
|
|
@@ -45,12 +45,12 @@ ooo evolve --rewind <lineage_id> <generation_number>
|
|
|
45
45
|
|
|
46
46
|
The Ouroboros MCP tools are often registered as **deferred tools** that must be explicitly loaded before use. **You MUST perform this step before deciding between Path A and Path B.**
|
|
47
47
|
|
|
48
|
-
1. Use the
|
|
48
|
+
1. Use the active runtime's tool-discovery capability to find and load the evolve MCP tools:
|
|
49
49
|
```
|
|
50
|
-
|
|
50
|
+
tool discovery query: "+ouroboros evolve"
|
|
51
51
|
```
|
|
52
|
-
2. The tools will typically be named with prefix `mcp__plugin_ouroboros_ouroboros__` (e.g., `ouroboros_evolve_step`, `ouroboros_interview`, `ouroboros_generate_seed`). After
|
|
53
|
-
3. If
|
|
52
|
+
2. The tools will typically be named with prefix `mcp__plugin_ouroboros_ouroboros__` (e.g., `ouroboros_evolve_step`, `ouroboros_interview`, `ouroboros_generate_seed`). After runtime tool discovery returns, the tools become callable.
|
|
53
|
+
3. If the tools are callable — already exposed, or loaded by discovery — proceed to **Path A**. An empty discovery result for already-exposed tools is expected, not a failure. Proceed to **Path B** only if they are genuinely absent (no Ouroboros MCP server).
|
|
54
54
|
|
|
55
55
|
**IMPORTANT**: Do NOT skip this step. Do NOT assume MCP tools are unavailable just because they don't appear in your immediate tool list. They are almost always available as deferred tools that need to be loaded first.
|
|
56
56
|
|
|
@@ -66,10 +66,10 @@ you are about to call**. Use `"+ouroboros evolve"` for `ouroboros_evolve_step`,
|
|
|
66
66
|
`ouroboros_lineage_status`, and the evolve flow's documented tool family;
|
|
67
67
|
use `"+ouroboros interview"` before `ouroboros_interview`, `"+ouroboros seed"`
|
|
68
68
|
before `ouroboros_generate_seed`, and `"+ouroboros lateral"` before
|
|
69
|
-
`ouroboros_lateral_think`. If a load returns no matching tool, switch to the
|
|
69
|
+
`ouroboros_lateral_think`. If a load returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence), switch to the
|
|
70
70
|
documented fallback / Path B instead of retrying the failing call.
|
|
71
71
|
|
|
72
|
-
### Path A: MCP Available (loaded via
|
|
72
|
+
### Path A: MCP Available (loaded via runtime tool discovery above)
|
|
73
73
|
|
|
74
74
|
**Starting a new evolutionary loop:**
|
|
75
75
|
1. Parse the user's input as `initial_context`
|
|
@@ -99,8 +99,9 @@ The Ouroboros MCP tools are often registered as **deferred tools** that must be
|
|
|
99
99
|
|
|
100
100
|
2. The tool will typically be named `mcp__plugin_ouroboros_ouroboros__ouroboros_interview` (with a plugin prefix). After runtime tool discovery returns, the tool becomes callable.
|
|
101
101
|
|
|
102
|
-
3. If
|
|
103
|
-
|
|
102
|
+
3. If the tool is callable — already exposed, or loaded by discovery — proceed to **Path A**.
|
|
103
|
+
An empty discovery result for an already-exposed tool is expected, not a failure.
|
|
104
|
+
Proceed to **Path B** only if the tool is genuinely absent (no Ouroboros MCP server).
|
|
104
105
|
|
|
105
106
|
**IMPORTANT**: Do NOT skip this step. Do NOT assume MCP tools are unavailable just because they don't appear in your immediate tool list. They are almost always available as deferred tools that need to be loaded first.
|
|
106
107
|
|
|
@@ -115,7 +116,7 @@ the tool-discovery load query for the specific MCP tool you are about to call**
|
|
|
115
116
|
(idempotent — a no-op when the schema is already loaded) so the correct schema is
|
|
116
117
|
guaranteed present for that call. Use `"+ouroboros interview"` before
|
|
117
118
|
`ouroboros_interview` and `"+ouroboros lateral"` before
|
|
118
|
-
`ouroboros_lateral_think`. If a load ever returns no matching tool, switch to the
|
|
119
|
+
`ouroboros_lateral_think`. If a load ever returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence), switch to the
|
|
119
120
|
documented fallback / Path B instead of retrying the failing call.
|
|
120
121
|
|
|
121
122
|
### Path A: MCP Mode (Preferred)
|
|
@@ -12,7 +12,7 @@ PM-focused Socratic interview that produces a Product Requirements Document.
|
|
|
12
12
|
### Step 1: Load MCP Tool
|
|
13
13
|
|
|
14
14
|
```
|
|
15
|
-
|
|
15
|
+
tool discovery query: "+ouroboros pm_interview"
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
**CRITICAL — deferred-schema guard (prevents "Invalid tool parameters"):**
|
|
@@ -20,9 +20,9 @@ This is a multi-turn loop and each turn runs in a fresh tool context. A deferred
|
|
|
20
20
|
tool's schema loaded on one turn is NOT guaranteed to still be loaded on the next.
|
|
21
21
|
Calling `ouroboros_pm_interview` while its schema is unloaded in the **current**
|
|
22
22
|
turn makes the runtime reject it with **"Invalid tool parameters"** every message.
|
|
23
|
-
Therefore **re-run `
|
|
23
|
+
Therefore **re-run `tool discovery query: "+ouroboros pm_interview"` immediately before
|
|
24
24
|
EVERY `ouroboros_pm_interview` call** below (idempotent — a no-op if already
|
|
25
|
-
loaded). If the load ever returns no matching tool, follow the not-found diagnosis
|
|
25
|
+
loaded). If the load ever returns no matching tool (and the tool is not already callable — an empty load for an already-exposed tool is an expected no-op, not absence), follow the not-found diagnosis
|
|
26
26
|
below instead of retrying the failing call.
|
|
27
27
|
|
|
28
28
|
If not found → **diagnose before telling user to run setup**:
|
|
@@ -42,13 +42,13 @@ When the user invokes this skill:
|
|
|
42
42
|
|
|
43
43
|
This skill works in two modes. Determine which one **before** attempting any tool calls:
|
|
44
44
|
|
|
45
|
-
- **MCP mode** — If
|
|
45
|
+
- **MCP mode** — If the QA MCP tool is available (already exposed, or loadable via discovery), use it:
|
|
46
46
|
```
|
|
47
|
-
|
|
47
|
+
tool discovery query: "+ouroboros qa"
|
|
48
48
|
```
|
|
49
49
|
If found (typically named `mcp__plugin_ouroboros_ouroboros__ouroboros_qa`), proceed with **QA Steps** below.
|
|
50
50
|
|
|
51
|
-
- **Fallback mode** —
|
|
51
|
+
- **Fallback mode** — Only if the QA MCP tool is genuinely absent (no Ouroboros MCP server) skip to the **Fallback** section; an empty discovery result for an already-exposed tool is expected — call it directly rather than falling back. This skill is designed to work without MCP setup.
|
|
52
52
|
|
|
53
53
|
### QA Steps (MCP mode)
|
|
54
54
|
|