Agent OS: Stop prompting. Start specifying.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution ×2 in Q00/ouroboros
transport stdio · streamable-http · sse counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
no tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed analyzer v18 · 10h ago
skills & prompt files 45
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/auto/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/brownfield/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/cancel/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/evaluate/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/evolve/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/help/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/interview/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/pm/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/publish/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/qa/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/ralph/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/resume-session/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/run/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/seed/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/setup/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/status/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/tutorial/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/unstuck/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/update/SKILL.md
- skillQ00-ouroboros-f6697da/.claude-plugin/skills/welcome/SKILL.md
- agent-rulesQ00-ouroboros-f6697da/AGENTS.md
- agent-rulesQ00-ouroboros-f6697da/CLAUDE.md
- agent-rulesQ00-ouroboros-f6697da/docs/runtime-guides/gemini.md
- skillQ00-ouroboros-f6697da/skills/auto/SKILL.md
- skillQ00-ouroboros-f6697da/skills/brownfield/SKILL.md
- skillQ00-ouroboros-f6697da/skills/cancel/SKILL.md
- skillQ00-ouroboros-f6697da/skills/config/SKILL.md
- skillQ00-ouroboros-f6697da/skills/evaluate/SKILL.md
- skillQ00-ouroboros-f6697da/skills/evolve/SKILL.md
- skillQ00-ouroboros-f6697da/skills/help/SKILL.md
- skillQ00-ouroboros-f6697da/skills/interview/SKILL.md
- skillQ00-ouroboros-f6697da/skills/pm/SKILL.md
- skillQ00-ouroboros-f6697da/skills/publish/SKILL.md
- skillQ00-ouroboros-f6697da/skills/qa/SKILL.md
- skillQ00-ouroboros-f6697da/skills/ralph/SKILL.md
- skillQ00-ouroboros-f6697da/skills/resume-session/SKILL.md
- skillQ00-ouroboros-f6697da/skills/run/SKILL.md
- skillQ00-ouroboros-f6697da/skills/seed/SKILL.md
- skillQ00-ouroboros-f6697da/skills/setup/SKILL.md
- skillQ00-ouroboros-f6697da/skills/status/SKILL.md
- skillQ00-ouroboros-f6697da/skills/tutorial/SKILL.md
- skillQ00-ouroboros-f6697da/skills/unstuck/SKILL.md
- skillQ00-ouroboros-f6697da/skills/update/SKILL.md
- skillQ00-ouroboros-f6697da/skills/welcome/SKILL.md
- skillQ00-ouroboros-f6697da/tests/fixtures/router/skills/frontmatter-body/run/SKILL.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
last analysis: fetch-failed · showing evidence from the last successful analysis (3d ago)
filesystem 129
- fs Q00-ouroboros-f6697da/scripts/check-auto-boundary.py :78
from pathlib import Path - fs Q00-ouroboros-f6697da/scripts/check-auto-perf-budget.py :35
from pathlib import Path - fs Q00-ouroboros-f6697da/scripts/check-max-turns-envelope.py :48
from pathlib import Path - fs Q00-ouroboros-f6697da/scripts/drift-monitor.py :14
from pathlib import Path - fs Q00-ouroboros-f6697da/scripts/keyword-detector.py :16
from pathlib import Path - fs Q00-ouroboros-f6697da/scripts/ralph.py :20
from pathlib import Path - fs Q00-ouroboros-f6697da/scripts/session-start.py :10
from pathlib import Path - fs Q00-ouroboros-f6697da/scripts/sync-plugin-version.py :12
from pathlib import Path - fs Q00-ouroboros-f6697da/scripts/version-check.py :12
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/agents/loader.py :19
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/auto/adapters.py :11
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/auto/checkpoint_commits.py :6
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/auto/domain_profile.py :22
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/auto/profiles/coding.py :12
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/auto/profiles/research.py :11
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/auto/repo_context.py :5
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/auto/state.py :11
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/backends/model_catalog.py :25
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/bigbang/brownfield.py :19
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/bigbang/explore.py :17
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/bigbang/interview.py :12
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/bigbang/pm_document.py :15
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/bigbang/pm_interview.py :21
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/bigbang/seed_generator.py :15
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/auto.py :8
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/codex.py :11
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/config.py :8
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/detect.py :17
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/dispatch.py :7
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/init.py :10
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/mcp.py :13
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/mcp_doctor.py :18
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/plugin.py :22
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/plugin_dispatch.py :29
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/pm.py :13
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/qa.py :10
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/resume.py :17
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/run.py :10
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/setup.py :20
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/status.py :9
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/tui.py :10
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/uninstall.py :18
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/commands/workflow_ir.py :6
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/cli/opencode_config.py :12
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/codex/artifacts.py :10
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/codex/cli_policy.py :8
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/config/loader.py :39
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/config/models.py :24
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/copilot/cli_policy.py :14
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/copilot/model_discovery.py :29
import shutil - fs Q00-ouroboros-f6697da/src/ouroboros/core/file_lock.py :8
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/core/git_workflow.py :11
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/core/initial_context.py :5
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/core/project_paths.py :6
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/core/security.py :14
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/core/worktree.py :9
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/evaluation/artifact_collector.py :332
with open(file_path, encoding="utf-8", errors="replace") as f: - fs Q00-ouroboros-f6697da/src/ouroboros/evaluation/detector.py :25
from pathlib import Path, PureWindowsPath - fs Q00-ouroboros-f6697da/src/ouroboros/evaluation/languages.py :21
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/evaluation/mechanical.py :16
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/evaluation/verification_artifacts.py :14
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/hermes/artifacts.py :8
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/kiro/cli_policy.py :14
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/bridge/bridge.py :6
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/bridge/config.py :7
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/bridge/factory.py :5
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/resources/handlers.py :13
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/server/adapter.py :13
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/server/security.py :510
"open(", - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/authoring_handlers.py :11
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/auto_handler.py :12
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/brownfield_handler.py :20
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/evaluation_handlers.py :12
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/evolution_handlers.py :12
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/execution_handlers.py :12
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/mcp/tools/pm_handler.py :24
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/observability/logging.py :47
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/adapter.py :26
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/backend_limits.py :36
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/capabilities.py :11
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/codex_cli_runtime.py :13
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/command_dispatcher.py :8
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/copilot_cli_runtime.py :25
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/gemini_cli_runtime.py :20
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/gjc_runtime.py :12
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/goose_runtime.py :16
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/heartbeat.py :20
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/hermes_runtime.py :17
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/kiro_adapter.py :15
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/level_context.py :76
with open(resolved) as f: - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/mcp_config.py :32
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/opencode_runtime.py :28
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/parallel_executor.py :35
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/pi_runtime.py :17
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/profile_loader.py :22
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/runtime_evidence.py :35
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/runtime_factory.py :5
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/skill_intercept.py :27
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/orchestrator/skill_tool_mapping.py :15
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/persistence/brownfield.py :12
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/persistence/checkpoint.py :19
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/persistence/event_store.py :13
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/persistence/migrations/runner.py :8
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/plugin/agents/registry.py :24
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/plugin/digest.py :34
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/plugin/firewall.py :39
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/plugin/lockfile.py :24
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/plugin/manifest.py :30
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/plugin/skills/registry.py :18
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/plugin/trust_store.py :30
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/pm/handoff.py :5
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/providers/claude_code_adapter.py :37
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/providers/codex_cli_adapter.py :15
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/providers/copilot_cli_adapter.py :28
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/providers/factory.py :6
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/providers/gemini_cli_adapter.py :33
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/providers/gjc_llm_adapter.py :9
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/providers/goose_cli_adapter.py :13
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/providers/hermes_cli_adapter.py :7
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/providers/kiro_adapter.py :13
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/providers/opencode_adapter.py :39
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/providers/pi_llm_adapter.py :7
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/router/dispatch.py :22
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/router/registry.py :15
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/router/types.py :8
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/runtime/controls.py :18
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/runtime_instruction_artifacts.py :7
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/skills/artifacts.py :8
from pathlib import Path - fs Q00-ouroboros-f6697da/src/ouroboros/verification/verifier.py :262
with open(file_path, encoding="utf-8", errors="replace") as f:
shell / exec 25
- shell Q00-ouroboros-f6697da/scripts/check-auto-perf-budget.py :37
import subprocess - shell Q00-ouroboros-f6697da/scripts/ralph-rewind.py :20
import subprocess - shell Q00-ouroboros-f6697da/scripts/ralph.py :60
import subprocess - shell Q00-ouroboros-f6697da/scripts/sync-plugin-version.py :14
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/auto/checkpoint_commits.py :8
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/backends/model_catalog.py :27
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/bigbang/brownfield.py :20
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/cli/commands/mcp.py :15
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/cli/commands/mcp_doctor.py :347
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/cli/commands/plugin.py :25
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/cli/commands/setup.py :22
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/cli/commands/tui.py :97
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/cli/opencode_config.py :13
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/copilot/model_discovery.py :30
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/core/git_workflow.py :126
import subprocess # noqa: S404 - shell Q00-ouroboros-f6697da/src/ouroboros/core/worktree.py :12
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/mcp/server/adapter.py :1569
import subprocess # noqa: S404 # nosec - shell Q00-ouroboros-f6697da/src/ouroboros/orchestrator/heartbeat.py :42
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/orchestrator/kiro_adapter.py :71
# Session ids flow from subprocess output into argv on the next resume turn; - shell Q00-ouroboros-f6697da/src/ouroboros/orchestrator/opencode_runtime.py :31
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/orchestrator/parallel_executor.py :39
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/orchestrator/runtime_evidence.py :37
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/orchestrator/verifier.py :38
import subprocess - shell Q00-ouroboros-f6697da/src/ouroboros/plugin/firewall.py :42
import subprocess - shell Q00-ouroboros-f6697da/tools/sync_github_project.py :18
import subprocess
network 8
- net Q00-ouroboros-f6697da/scripts/version-check.py :63
import urllib.request - net Q00-ouroboros-f6697da/src/ouroboros/bigbang/brownfield.py :21
from urllib.parse import urlparse - net Q00-ouroboros-f6697da/src/ouroboros/config_tui/launcher.py :16
import socket - net Q00-ouroboros-f6697da/src/ouroboros/copilot/model_discovery.py :32
import urllib.error - net Q00-ouroboros-f6697da/src/ouroboros/core/worktree.py :11
import socket - net Q00-ouroboros-f6697da/src/ouroboros/mcp/client/adapter.py :259
import httpx - net Q00-ouroboros-f6697da/src/ouroboros/mcp/types.py :13
import socket - net Q00-ouroboros-f6697da/tools/sync_github_project.py :20
import urllib.error
secrets 7
- secrets Q00-ouroboros-f6697da/src/ouroboros/cli/commands/mcp.py :284
if os.environ.get("ANTHROPIC_API_KEY"): - secrets Q00-ouroboros-f6697da/src/ouroboros/cli/commands/mcp_doctor.py :247
openai_key_present = bool(os.environ.get("OPENAI_API_KEY", "").strip()) - secrets Q00-ouroboros-f6697da/src/ouroboros/cli/commands/status.py :489
if os.environ.get("OPENAI_API_KEY", "").strip(): - secrets Q00-ouroboros-f6697da/src/ouroboros/evaluation/consensus.py :89
key = os.environ.get("OPENROUTER_API_KEY", "") - secrets Q00-ouroboros-f6697da/src/ouroboros/providers/anthropic_adapter.py :109
self._api_key = api_key or os.environ.get("ANTHROPIC_API_KEY") - secrets Q00-ouroboros-f6697da/src/ouroboros/providers/codex_cli_adapter.py :564
"openai_api_key_present": cls._redact_env_presence(os.environ.get("OPENAI_API_KEY")), - secrets Q00-ouroboros-f6697da/src/ouroboros/providers/litellm_adapter.py :205
env_key = self._normalize_api_key(os.environ.get("OPENROUTER_API_KEY"))
database 4
- db Q00-ouroboros-f6697da/src/ouroboros/persistence/brownfield.py :15
from sqlalchemy import delete, literal_column, select, update - db Q00-ouroboros-f6697da/src/ouroboros/persistence/event_store.py :16
from sqlalchemy import and_, event, func, or_, select, text - db Q00-ouroboros-f6697da/src/ouroboros/persistence/migrations/runner.py :10
from sqlalchemy import text - db Q00-ouroboros-f6697da/src/ouroboros/persistence/schema.py :15
from sqlalchemy import (
declared dependencies 8
- aiosqlite@>=0.20.0,<1.0.0
- anyio@>=4.0.0,<5.0.0
- click@>=8.1.0,<9.0.0
- jsonschema@>=4.21.0,<5.0.0
- pydantic@>=2.0.0,<3.0.0
- prompt-toolkit@>=3.0.0,<4.0.0
- pyyaml@>=6.0.0,<7.0.0
- rich@>=13.0.0,<16.0.0