agentdeck-sdk 5.1.0__tar.gz → 5.2.0__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.
- agentdeck_sdk-5.2.0/.agents/skills/release/SKILL.md +49 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/agents/deck-dev.md +3 -1
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/agents/deck-reviewer.md +3 -1
- agentdeck_sdk-5.2.0/.claude/skills/release/SKILL.md +49 -0
- agentdeck_sdk-5.2.0/.codex/agents/deck-dev.toml +5 -0
- agentdeck_sdk-5.2.0/.codex/agents/deck-reviewer.toml +5 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/PULL_REQUEST_TEMPLATE.md +2 -1
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/workflows/ci.yml +4 -1
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/workflows/docs-impact.yml +3 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/workflows/issue-hygiene.yml +6 -1
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.gitignore +3 -0
- agentdeck_sdk-5.2.0/.import_linter_cache/agentdeck.meta.json +1 -0
- agentdeck_sdk-5.2.0/.import_linter_cache/cc0de4ae2e5697bf7cf3a0b9c3aff14b2ece24cd.data.json +1 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/CHANGELOG.md +18 -1
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/Makefile +3 -1
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/PKG-INFO +1 -1
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/native/executor.py +1 -1
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/native.py +1 -1
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/tools.py +2 -2
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/context.py +7 -10
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/reporting.py +21 -63
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/workers.py +2 -4
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/context7.json +1 -1
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/_meta.ts +1 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/context.mdx +25 -4
- agentdeck_sdk-5.2.0/docs-site/content/operate/_meta.ts +3 -0
- agentdeck_sdk-5.2.0/docs-site/content/operate/deployment.mdx +131 -0
- agentdeck_sdk-5.2.0/docs-site/content/resources/changelog.mdx +64 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/resources/known-issues.mdx +11 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/llms-full.txt +174 -64
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/llms.txt +1 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/README.md +3 -3
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/pyproject.toml +1 -1
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/context_subjects.py +1 -1
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/test_reporting.py +47 -44
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_governance_workflows.py +16 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_run_reporting.py +8 -11
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_runtime_service.py +6 -6
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/uv.lock +1 -1
- agentdeck_sdk-5.1.0/.agents/skills/release/SKILL.md +0 -24
- agentdeck_sdk-5.1.0/.claude/skills/release/SKILL.md +0 -24
- agentdeck_sdk-5.1.0/.codex/agents/deck-dev.toml +0 -5
- agentdeck_sdk-5.1.0/.codex/agents/deck-reviewer.toml +0 -5
- agentdeck_sdk-5.1.0/.import_linter_cache/agentdeck.meta.json +0 -1
- agentdeck_sdk-5.1.0/.import_linter_cache/cc0de4ae2e5697bf7cf3a0b9c3aff14b2ece24cd.data.json +0 -1
- agentdeck_sdk-5.1.0/docs-site/content/resources/changelog.mdx +0 -112
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.agentdeck/agents/greeter/agent.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.agents/skills/deck-cleanup/SKILL.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.agents/skills/deck-cleanup/agents/openai.yaml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.agents/skills/deck-cleanup/references/narrative-prose.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.agents/skills/open-issue/SKILL.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.agents/skills/ship-issue/SKILL.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/agents/deck-cleanup.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/agents/docs-reviewer.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/agents/docs-writer.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/settings.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/milestone-retro/SKILL.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/milestone-retro/references/judging.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/milestone-retro/references/queries.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/open-issue/SKILL.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/review-pr/SKILL.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/review-pr/references/attack.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/review-pr/references/classify.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/review-pr/references/craft.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/review-pr/references/templates.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/ship-issue/SKILL.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/ship-pr/SKILL.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/ship-pr/references/design.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/ship-pr/references/implement.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.claude/skills/ship-pr/references/self-review.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.codex/agents/deck-cleanup.toml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.codex/agents/docs-reviewer.toml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.codex/agents/docs-writer.toml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.dockerignore +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.env.example +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.gitattributes +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/CODEOWNERS +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/ISSUE_TEMPLATE/docs_contribution.yml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/ISSUE_TEMPLATE/finding.yml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/assets/contributors/merged.png +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/assets/contributors/welcome.png +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/dependabot.yml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/workflows/docs-check.yml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/workflows/docs-pages.yml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/workflows/first-contribution.yml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.github/workflows/release.yml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.import_linter_cache/.gitignore +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.import_linter_cache/CACHEDIR.TAG +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.importlinter +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/.pre-commit-config.yaml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/AGENTS.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/CLAUDE.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/CODE_OF_CONDUCT.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/CONTRIBUTING.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/Dockerfile +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/LICENSE +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/README.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/SECURITY.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/README.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/control/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/control/memory/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/control/memory/port.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/control/sqlite/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/control/sqlite/port.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/native/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/openai_agents/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/openai_agents/executor.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/openai_agents/reconcile.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/openai_agents/runconfig.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/openai_agents/sessions.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/openai_agents/translate.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/stub/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/stub/executor.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/leases/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/leases/memory/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/leases/memory/port.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/leases/sqlite/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/leases/sqlite/port.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/memory/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/memory/store.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/postgres/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/postgres/store.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/redis/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/redis/store.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/sqlite/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/sqlite/store.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/telemetry/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/telemetry/langfuse/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/telemetry/langfuse/client.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/telemetry/langfuse/sink.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/telemetry/langfuse/trace.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/tools/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/tools/mcp/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/tools/mcp/lifecycle.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/tools/mcp/source.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/tools/mcp/transport.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/adapters/tools/mcp/wiring.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/agent.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/compile.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/hooks.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/injection.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/instructions.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/interrupts.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/runners/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/runners/agent.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/skills.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/authoring/web_search.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/cli.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/composition.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/base.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/content.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/control.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/errors.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/events.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/invocable.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/control.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/executor.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/lease.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/sink.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/store.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/tools.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/core/status.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/deck.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/errors.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/mcp.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/observers.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/py.typed +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/runtime/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/runtime/capture.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/runtime/discovery.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/runtime/dispatch.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/runtime/registry.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/runtime/service.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/runtime/settings.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/serve.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/skills/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/skills/bundle.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/surfaces/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/surfaces/cli/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/surfaces/cli/chat.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/surfaces/serve/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/surfaces/serve/app.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/surfaces/serve/compat.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/testing.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/agentdeck/views.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docker-compose.yml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/00-project-index.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/agentdeck-prd.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/ai-agents/ai_agent_repository_alignment_research.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/ai-agents/harness_change_log.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/ai-agents/solutions_for_aligning_ai_agents.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/ai-agents/sota_style_alignment_findings.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/README.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/components/card.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/components/spark.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/components/wordmark.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/contributor-merged.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/contributor-welcome.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/favicon.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/logo-black.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/logo-blue.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/logo-full.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/logo-mark.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/logo-traced-original.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/logo-white.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/logo.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/brand/social-card.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/beta-user-report-v3.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/decision-v3-entry-point.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/deck-capability-wrapper-pattern.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/discoverability-baseline.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/docs-site-plan.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/epic-agentdeck-v2-core.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/findings-register.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/milestone-0-findings.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/milestone-0-walking-skeleton.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/plan-166-delivery.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/plan-219-delivery.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/plan-adoption.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/plan-context-injection.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/plan-docs-ia.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/plan-jack-eval.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/plan-multimodal.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/plan-phase4-deck.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/plan-provider-credential-validation.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/plan-skills.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/plan-slop-comment-ratio.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/plan-v2-cutover.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/review-context-injection.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/review-phase4-deck.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/review-v3-outsider.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/roadmap-v3.1.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/roadmap-v3.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/delivery/workflow.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/design/adr-d11-store-assigns-seq-and-time.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/design/adr-d5-two-stores.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/design/agentdeck-v2-architecture.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/design/event-store-claims.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/design/execution-api-source.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/design/execution-api.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/design/run-identity.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/design/run-lifecycle.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/design/run-operations.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/design/sink-dispatch.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/design-system.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/engineering/README.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/engineering/architecture.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/engineering/coding-agents.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/engineering/coding-standards.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/engineering/dependencies.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/engineering/import-boundaries.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/engineering/principles.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/engineering/repository-policy.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/engineering/runtime-contracts.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/engineering/testing.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/patterns/README.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/patterns/comments.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/patterns/errors.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/patterns/lifecycle.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/patterns/tests.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/project-brief.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/prompts/pr0-baseline-prompt.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/prompts/pr0-review-prompt.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/prompts/pr1-event-schema-prompt.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs/spec.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/.env.development +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/.env.production +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/.gitignore +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/README.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/[[...mdxPath]]/page.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/brand-icons.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/brand.css +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/callout.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/contribute.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/deck-figure.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/design-system.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/diagram.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/docs-slugs.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/hero.css +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/hero.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/icon.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/install-line.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/jack-answer-link.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/jack-citations.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/jack-live.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/jack-stream.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/jack.css +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/jack.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/kind-icons.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/landing-components.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/landing.css +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/layout.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/mark.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/not-found.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/robots.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/site.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/app/sitemap.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/_meta.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/agents.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/deck.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/skills.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/tools.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/workflows.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/examples/_meta.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/examples/index.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/index.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/integrations/_meta.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/integrations/existing-agents.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/integrations/mcp.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/integrations/openai-agents-sdk.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/jack/_meta.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/jack/notes.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/jack.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/meet-agentdeck/_meta.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/meet-agentdeck/mental-model.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/meet-agentdeck/overview.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/meet-agentdeck/quickstart.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/reference/_meta.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/reference/cli.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/reference/deck.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/reference/events.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/reference/python-api.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/reference/run.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/reference/settings.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/resources/_meta.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/resources/migration-guides.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/resources/troubleshooting.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/_meta.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/events.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/human-input.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/lifecycle-and-control.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/pause-resume.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/runs.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/sessions.mdx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/mdx-components.tsx +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/next-env.d.ts +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/next.config.mjs +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/package-lock.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/package.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/card.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/contributor-merged.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/contributor-welcome.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/favicon.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo-black.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo-blue.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo-full.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo-mark.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo-traced-original.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo-white.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/social-card.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/spark.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/public/brand/wordmark.svg +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/docs-site/tsconfig.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/agent-with-a-skill/.agentdeck/agents/handover_desk/agent.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/agent-with-a-skill/.agentdeck/skills/shift-notes/SKILL.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/agent-with-a-skill/README.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/agent-with-a-skill/run.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/chat-agent-with-a-tool/.agentdeck/agents/order_desk/agent.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/chat-agent-with-a-tool/README.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/chat-agent-with-a-tool/run.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/cloudflared.yml +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/eval.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/evals/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/evals/judge.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/evals/metrics.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/evals/run.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/evalset.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/jack/__init__.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/jack/agent.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/jack/corpus.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/jack/server.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/jack/session.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/examples/jack/run.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/scripts/check_commit_hygiene.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/scripts/check_docs_impact.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/scripts/concept_budget.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/scripts/generate_docs_reference.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/scripts/quality_delta.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/scripts/repomap.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/scripts/slopcheck.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/scripts/sync_claude_to_codex.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/scripts/sync_roadmap.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/concurrency_worker.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/conftest.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/context_injection_subjects.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/case_types.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/conftest.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/contract_cases.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/live_stores.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/never_yields.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/openai_agents_cases.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/test_context_parity.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/test_control.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/test_control_port.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/test_event_stream.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/test_lease.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/test_resume.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/contract/test_store.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/conftest.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/agent.changed.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/answer.refused.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/artifact.created.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/control.observed.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/control.requested.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/custom.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/input.appended.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/message.completed.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/report.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.cancelled.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.completed.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.failed.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.interrupted.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.paused.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.resumed.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.started.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/text.delta.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/thought.delta.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/tool.call.completed.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/tool.call.started.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/snapshots/usage.reported.json +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/test_content.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/test_context.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/test_continuation.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/test_events.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/test_golden_json.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/test_import_law.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/test_model_config.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/test_old_reader_block_compat.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/test_old_reader_compat.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/test_run_lifecycle_tables.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/core/test_vocabularies_agree.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/crash_worker.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/event_log_checks.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/golden/README.md +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/golden/conftest.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/golden/fixture_project/.agentdeck/agents/greeter/agent.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/golden/snapshots/01_health.http +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/golden/snapshots/02_chat.http +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/golden/snapshots/03_chat_stream.http +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/golden/snapshots/04_chat_missing_field.http +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/golden/snapshots/05_agent_unknown.http +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/golden/test_golden_wire.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/plays.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/project_executors.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_agent_changed.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_agent_model_resolution.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_authoring.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_brand_assets.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_changelog.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_child_runs.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_cli.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_cli_render.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_commit_hygiene.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_composition.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_context_injection.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_context_validation.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_crash_reconciliation.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_deck.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_docs_examples.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_docs_impact.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_docs_site.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_errors.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_examples.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_executor_plays.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_generated_reference.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_handoff_ends_on_user_turn.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_handoff_round_trip.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_handoffs.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_instructions_and_hooks.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_invocable_registry.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_jack.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_jack_server.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_langfuse_sink.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_langfuse_tracer.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_mcp.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_mcp_tool_source.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_memory_store.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_model_providers.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_multiprocess_concurrency.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_native_workflow.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_observability.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_openai_agents_engine.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_openai_agents_reconcile.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_openai_agents_sessions.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_openai_agents_tool_failure.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_package.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_postgres_store.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_redis_store.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_run_config_parity.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_run_control.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_serve.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_serve_compat.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_serve_session_claim.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_settings.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_sink_dispatch.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_skills.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_sqlite_control_port.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_sqlite_store.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_streaming.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_subagents.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_sync_tool_workers.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_tool_compilation.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_uc1_handoff.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_uc3_slowpoke.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_views.py +0 -0
- {agentdeck_sdk-5.1.0 → agentdeck_sdk-5.2.0}/tests/test_web_search.py +0 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release
|
|
3
|
+
description: Cut an agentdeck release - bump version, update CHANGELOG, merge dev to main, and tag vX.Y.Z.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Release agentdeck
|
|
7
|
+
|
|
8
|
+
Follow the release process strictly. All work starts on `dev`; `main` is release-only,
|
|
9
|
+
and `dev` is the repository's default branch.
|
|
10
|
+
|
|
11
|
+
## Two PRs, two issues
|
|
12
|
+
|
|
13
|
+
A release needs two labeled `chore` issues and two PRs, not one of each.
|
|
14
|
+
|
|
15
|
+
| PR | base | issue | closing keyword |
|
|
16
|
+
|---|---|---|---|
|
|
17
|
+
| bump | `dev` | its own labeled `chore` issue | `Closes #N`, works: `dev` is default |
|
|
18
|
+
| promotion | `main` | its own labeled `chore` issue | `Refs #N` only, close by hand: `main` is not default, so GitHub never creates the closing reference |
|
|
19
|
+
|
|
20
|
+
`git push origin dev` is rejected directly ("push declined due to repository rule violations").
|
|
21
|
+
The bump goes through its own PR into `dev`.
|
|
22
|
+
|
|
23
|
+
## Release Steps
|
|
24
|
+
|
|
25
|
+
1. **Version:** Confirm SemVer bump (`pyproject.toml` and `CHANGELOG.md`).
|
|
26
|
+
2. **Preflight:** Verify clean working tree, non-empty `[Unreleased]` section, and `make check`
|
|
27
|
+
is 100% green. Run it unpiped (`make check`, not `make check | tail`) so its own exit code is
|
|
28
|
+
what you read; a pipe reports the last command's status, not the gate's.
|
|
29
|
+
3. **Bump PR into `dev`:**
|
|
30
|
+
- Update `version` in `pyproject.toml`.
|
|
31
|
+
- Move Unreleased entries to `## [X.Y.Z] - YYYY-MM-DD` in `CHANGELOG.md` with compare links.
|
|
32
|
+
- Run `python scripts/generate_docs_reference.py` once, then verify
|
|
33
|
+
`python scripts/generate_docs_reference.py --check`.
|
|
34
|
+
- Commit: `chore(release): vX.Y.Z`. Open the PR against the labeled bump issue
|
|
35
|
+
(`Closes #N`), wait for every required check, merge.
|
|
36
|
+
4. **Promotion PR, `dev` to `main`:** Open it against the labeled promotion issue (`Refs #N`).
|
|
37
|
+
`Issue hygiene`, `slop`, and `Check affected documentation` skip themselves on a `main`-based
|
|
38
|
+
PR: each already ran the real per-PR version of itself against `dev` at merge time, and this
|
|
39
|
+
diff is the whole release cycle re-evaluated, not a new change. Wait for `check` and
|
|
40
|
+
`Build documentation`, then merge and close the promotion issue by hand.
|
|
41
|
+
5. **Tag:** `git tag vX.Y.Z && git push origin vX.Y.Z`. `release.yml` publishes to PyPI on this
|
|
42
|
+
push; there is no undo once the tag lands.
|
|
43
|
+
6. **Deploy:** In the `prod/` worktree (detached on a tag on purpose, so the public only sees
|
|
44
|
+
something released), run `./deploy-prod.sh vX.Y.Z`. It rebuilds `docs-site`, restarts
|
|
45
|
+
`agentdeck-docs-static.service`, and health-checks `127.0.0.1:4321`.
|
|
46
|
+
7. **Report:** Return the GitHub release URL.
|
|
47
|
+
|
|
48
|
+
## Ground Rules
|
|
49
|
+
- Keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
|
|
@@ -9,10 +9,12 @@ You implement one agentdeck GitHub issue end-to-end in an isolated worktree and
|
|
|
9
9
|
|
|
10
10
|
**Objective: implement the issue with the smallest coherent change.** Order of preference: reuse an existing abstraction, modify one, consolidate/delete, and only then create. Your PR will be evaluated on: reuse of existing abstractions, consistency with `docs/patterns/`, minimal new concepts, minimal public surface, no narrating comments, no structural regression.
|
|
11
11
|
|
|
12
|
-
**First action:**
|
|
12
|
+
**First action:** read `.claude/skills/ship-pr/SKILL.md` and its `references/`, and follow it. Every stage, the design gate, the self-review questions and the coverage question, the gate commands, live there. The `Skill` tool is not invocable from a subagent; read the file directly rather than calling it.
|
|
13
13
|
|
|
14
14
|
**Progress:** name each stage (Understand / Design / Implement / Self-review / Gate) as you enter it. A silent multi-stage run reads as a stall.
|
|
15
15
|
|
|
16
|
+
**Denied tool calls:** a denial is a stop to report, never an obstacle to route around through a different tool or command.
|
|
17
|
+
|
|
16
18
|
**Subagents:** any agent you spawn passes an explicit `model: "sonnet"`. Never omit it, never fable, never opus.
|
|
17
19
|
|
|
18
20
|
**Output style:** ≤25 words between tool calls; final response ≤100 words unless more detail is required.
|
|
@@ -7,10 +7,12 @@ isolation: worktree
|
|
|
7
7
|
|
|
8
8
|
You review one agentdeck PR as the merge gate. REVIEW ONLY on the code: never push a commit anywhere. You DO write review artifacts: the PR review itself, inline comments, and any DEFER, harness-note or Harvest issue.
|
|
9
9
|
|
|
10
|
-
**First action:**
|
|
10
|
+
**First action:** read `.claude/skills/review-pr/SKILL.md` and its `references/`, and follow it. Everything procedural, the phases, the finding classes, the verdict format, the delivery mechanics, lives there. The `Skill` tool is not invocable from a subagent; read the file directly rather than calling it.
|
|
11
11
|
|
|
12
12
|
**Progress:** say which phase you are entering as you enter it. A silent review reads as a stall.
|
|
13
13
|
|
|
14
|
+
**Denied tool calls:** a denial is a stop to report, never an obstacle to route around through a different tool or command.
|
|
15
|
+
|
|
14
16
|
**Subagents:** any agent you spawn passes an explicit `model: "sonnet"`. Never omit it, never fable, never opus.
|
|
15
17
|
|
|
16
18
|
**Output style:** keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release
|
|
3
|
+
description: Cut an agentdeck release - bump version, update CHANGELOG, merge dev to main, and tag vX.Y.Z.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Release agentdeck
|
|
7
|
+
|
|
8
|
+
Follow the release process strictly. All work starts on `dev`; `main` is release-only,
|
|
9
|
+
and `dev` is the repository's default branch.
|
|
10
|
+
|
|
11
|
+
## Two PRs, two issues
|
|
12
|
+
|
|
13
|
+
A release needs two labeled `chore` issues and two PRs, not one of each.
|
|
14
|
+
|
|
15
|
+
| PR | base | issue | closing keyword |
|
|
16
|
+
|---|---|---|---|
|
|
17
|
+
| bump | `dev` | its own labeled `chore` issue | `Closes #N`, works: `dev` is default |
|
|
18
|
+
| promotion | `main` | its own labeled `chore` issue | `Refs #N` only, close by hand: `main` is not default, so GitHub never creates the closing reference |
|
|
19
|
+
|
|
20
|
+
`git push origin dev` is rejected directly ("push declined due to repository rule violations").
|
|
21
|
+
The bump goes through its own PR into `dev`.
|
|
22
|
+
|
|
23
|
+
## Release Steps
|
|
24
|
+
|
|
25
|
+
1. **Version:** Confirm SemVer bump (`pyproject.toml` and `CHANGELOG.md`).
|
|
26
|
+
2. **Preflight:** Verify clean working tree, non-empty `[Unreleased]` section, and `make check`
|
|
27
|
+
is 100% green. Run it unpiped (`make check`, not `make check | tail`) so its own exit code is
|
|
28
|
+
what you read; a pipe reports the last command's status, not the gate's.
|
|
29
|
+
3. **Bump PR into `dev`:**
|
|
30
|
+
- Update `version` in `pyproject.toml`.
|
|
31
|
+
- Move Unreleased entries to `## [X.Y.Z] - YYYY-MM-DD` in `CHANGELOG.md` with compare links.
|
|
32
|
+
- Run `python scripts/generate_docs_reference.py` once, then verify
|
|
33
|
+
`python scripts/generate_docs_reference.py --check`.
|
|
34
|
+
- Commit: `chore(release): vX.Y.Z`. Open the PR against the labeled bump issue
|
|
35
|
+
(`Closes #N`), wait for every required check, merge.
|
|
36
|
+
4. **Promotion PR, `dev` to `main`:** Open it against the labeled promotion issue (`Refs #N`).
|
|
37
|
+
`Issue hygiene`, `slop`, and `Check affected documentation` skip themselves on a `main`-based
|
|
38
|
+
PR: each already ran the real per-PR version of itself against `dev` at merge time, and this
|
|
39
|
+
diff is the whole release cycle re-evaluated, not a new change. Wait for `check` and
|
|
40
|
+
`Build documentation`, then merge and close the promotion issue by hand.
|
|
41
|
+
5. **Tag:** `git tag vX.Y.Z && git push origin vX.Y.Z`. `release.yml` publishes to PyPI on this
|
|
42
|
+
push; there is no undo once the tag lands.
|
|
43
|
+
6. **Deploy:** In the `prod/` worktree (detached on a tag on purpose, so the public only sees
|
|
44
|
+
something released), run `./deploy-prod.sh vX.Y.Z`. It rebuilds `docs-site`, restarts
|
|
45
|
+
`agentdeck-docs-static.service`, and health-checks `127.0.0.1:4321`.
|
|
46
|
+
7. **Report:** Return the GitHub release URL.
|
|
47
|
+
|
|
48
|
+
## Ground Rules
|
|
49
|
+
- Keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Generated by scripts/sync_claude_to_codex.py; do not edit.
|
|
2
|
+
# Claude model "sonnet" omitted; this agent inherits the active Codex model.
|
|
3
|
+
name = "deck-dev"
|
|
4
|
+
description = "Implements a GitHub issue (feature or bug fix) for agentdeck end-to-end in an isolated worktree and opens one PR to dev."
|
|
5
|
+
developer_instructions = "You implement one agentdeck GitHub issue end-to-end in an isolated worktree and open a PR.\n\n**Objective: implement the issue with the smallest coherent change.** Order of preference: reuse an existing abstraction, modify one, consolidate/delete, and only then create. Your PR will be evaluated on: reuse of existing abstractions, consistency with `docs/patterns/`, minimal new concepts, minimal public surface, no narrating comments, no structural regression.\n\n**First action:** read `.claude/skills/ship-pr/SKILL.md` and its `references/`, and follow it. Every stage, the design gate, the self-review questions and the coverage question, the gate commands, live there. The `Skill` tool is not invocable from a subagent; read the file directly rather than calling it.\n\n**Progress:** name each stage (Understand / Design / Implement / Self-review / Gate) as you enter it. A silent multi-stage run reads as a stall.\n\n**Denied tool calls:** a denial is a stop to report, never an obstacle to route around through a different tool or command.\n\n**Subagents:** any agent you spawn passes an explicit `model: \"sonnet\"`. Never omit it, never fable, never opus.\n\n**Output style:** ≤25 words between tool calls; final response ≤100 words unless more detail is required.\n\nReturn: PR URL, one-paragraph summary, `make check` status, and declared-vs-actual concept budget.\n\nCodex compatibility:\n- Preserve worktree isolation: before changing branches or files, create and use a dedicated git worktree outside the primary checkout, and run all task commands there."
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Generated by scripts/sync_claude_to_codex.py; do not edit.
|
|
2
|
+
# Claude model "sonnet" omitted; this agent inherits the active Codex model.
|
|
3
|
+
name = "deck-reviewer"
|
|
4
|
+
description = "Review gate for an agentdeck PR before merge. Verifies correctness, spec compliance, simplicity, conciseness, and test quality against docs/engineering/."
|
|
5
|
+
developer_instructions = "You review one agentdeck PR as the merge gate. REVIEW ONLY on the code: never push a commit anywhere. You DO write review artifacts: the PR review itself, inline comments, and any DEFER, harness-note or Harvest issue.\n\n**First action:** read `.claude/skills/review-pr/SKILL.md` and its `references/`, and follow it. Everything procedural, the phases, the finding classes, the verdict format, the delivery mechanics, lives there. The `Skill` tool is not invocable from a subagent; read the file directly rather than calling it.\n\n**Progress:** say which phase you are entering as you enter it. A silent review reads as a stall.\n\n**Denied tool calls:** a denial is a stop to report, never an obstacle to route around through a different tool or command.\n\n**Subagents:** any agent you spawn passes an explicit `model: \"sonnet\"`. Never omit it, never fable, never opus.\n\n**Output style:** keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.\n\nReturn to the orchestrator: verdict, `make check` result, counts per finding class, links to the posted review and any DEFER issues.\n\nCodex compatibility:\n- Preserve worktree isolation: before changing branches or files, create and use a dedicated git worktree outside the primary checkout, and run all task commands there."
|
|
@@ -29,7 +29,8 @@ new dependencies: 0
|
|
|
29
29
|
- [ ] New behavior has a test
|
|
30
30
|
- [ ] CHANGELOG entry under **Unreleased** for every user-visible change
|
|
31
31
|
- [ ] User-visible behavior changes update the affected `docs-site/` pages in this PR
|
|
32
|
-
|
|
32
|
+
<!-- If a page above is affected but intentionally left unchanged, name it here (comma separated), the exact form `make check` reports. Delete this checklist line if none. -->
|
|
33
|
+
- [ ] Unchanged pages reviewed:
|
|
33
34
|
- [ ] Implementation diverging from a design doc amends that doc with a dated note in this PR
|
|
34
35
|
- [ ] Goldens (`tests/golden/`, `tests/core/snapshots/`) unchanged - or the change is declared and justified here
|
|
35
36
|
- [ ] Deliberate simplifications/shortcuts are marked with a comment naming the ceiling
|
|
@@ -157,8 +157,11 @@ jobs:
|
|
|
157
157
|
# The anti-slop gate for code that never went through a Claude Code hook:
|
|
158
158
|
# outside contributors, and anything written by a process the Edit|Write
|
|
159
159
|
# matcher never saw. Same scripts, PR-base-relative, stdlib only.
|
|
160
|
+
#
|
|
161
|
+
# Skipped on a `main`-based PR: that diff is the whole release cycle since main's last
|
|
162
|
+
# advance, re-flagging lines each contributing PR already passed against `dev` (#536).
|
|
160
163
|
slop:
|
|
161
|
-
if: github.event_name == 'pull_request'
|
|
164
|
+
if: github.event_name == 'pull_request' && github.base_ref != 'main'
|
|
162
165
|
runs-on: ubuntu-latest
|
|
163
166
|
timeout-minutes: 5
|
|
164
167
|
steps:
|
|
@@ -14,6 +14,9 @@ permissions:
|
|
|
14
14
|
jobs:
|
|
15
15
|
check:
|
|
16
16
|
name: Check affected documentation
|
|
17
|
+
# Skipped on a `main`-based PR: that diff re-accumulates everything merged into `dev`
|
|
18
|
+
# since main's last advance, each already reviewed against `dev` as its base (#536).
|
|
19
|
+
if: github.event.pull_request.base.ref != 'main'
|
|
17
20
|
runs-on: ubuntu-latest
|
|
18
21
|
timeout-minutes: 5
|
|
19
22
|
steps:
|
|
@@ -19,8 +19,13 @@ jobs:
|
|
|
19
19
|
runs-on: ubuntu-latest
|
|
20
20
|
timeout-minutes: 2
|
|
21
21
|
steps:
|
|
22
|
+
# GitHub creates closing references only for PRs based on the default branch, so this
|
|
23
|
+
# can never pass on a PR based on anything else (a promotion PR to `main`, a stacked
|
|
24
|
+
# PR based on a feature branch) (#486).
|
|
22
25
|
- name: Require a labeled closing issue
|
|
23
|
-
if:
|
|
26
|
+
if: >-
|
|
27
|
+
github.event.pull_request.user.login != 'dependabot[bot]' &&
|
|
28
|
+
github.event.pull_request.base.ref == github.event.repository.default_branch
|
|
24
29
|
env:
|
|
25
30
|
GH_TOKEN: ${{ github.token }}
|
|
26
31
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"agentdeck.adapters.stores.redis": 1787991318.031553, "agentdeck.adapters.executors.openai_agents.runconfig": 1787991318.0304673, "agentdeck.adapters.telemetry": 1787991318.0319402, "agentdeck.core.ports.store": 1787991318.0344682, "agentdeck.adapters.telemetry.langfuse.sink": 1787991318.0322003, "agentdeck.core.ports.executor": 1787991318.0344682, "agentdeck.skills": 1787991318.035757, "agentdeck.authoring.compile": 1787991318.0328615, "agentdeck.surfaces.serve.app": 1787991318.0367963, "agentdeck.adapters.stores": 1787991318.03117, "agentdeck.authoring.native": 1787991318.0328615, "agentdeck.mcp": 1787991318.0347571, "agentdeck.core.status": 1787991318.0344682, "agentdeck.composition": 1787991318.0334094, "agentdeck.adapters.stores.memory.store": 1787991318.03141, "agentdeck.core.ports.lease": 1787991318.0344682, "agentdeck.adapters.control.sqlite": 1787991318.0299516, "agentdeck.core.ports.control": 1787991318.0344682, "agentdeck.adapters.executors.stub.executor": 1787991318.030887, "agentdeck.adapters.tools.mcp.lifecycle": 1787991318.0325863, "agentdeck.errors": 1787991318.0347571, "agentdeck.core.base": 1787991318.0338304, "agentdeck.authoring.injection": 1787991318.0328615, "agentdeck.adapters.executors": 1787991318.0300517, "agentdeck.runtime.discovery": 1787991318.0355892, "agentdeck.adapters.control.memory": 1787991318.0299008, "agentdeck.adapters.stores.memory": 1787991318.0313525, "agentdeck.core.invocable": 1787991318.0338304, "agentdeck.adapters.executors.openai_agents.sessions": 1787991318.0304673, "agentdeck.views": 1787991318.0367963, "agentdeck.serve": 1787991318.035757, "agentdeck": 1787991318.0297182, "agentdeck.adapters.stores.sqlite.store": 1787991318.0319402, "agentdeck.core.events": 1787991318.0338304, "agentdeck.adapters.leases.sqlite.port": 1787991318.03117, "agentdeck.adapters.stores.postgres.store": 1787991318.031553, "agentdeck.authoring.agent": 1787991318.0328615, "agentdeck.adapters.tools.mcp": 1787991318.0325322, "agentdeck.core.ports.tools": 1787991318.0344682, "agentdeck.authoring": 1787991318.0325863, "agentdeck.core.ports": 1787991318.0338304, "agentdeck.adapters.executors.openai_agents.translate": 1787991318.0304673, "agentdeck.authoring.instructions": 1787991318.0328615, "agentdeck.adapters.telemetry.langfuse": 1787991318.0321436, "agentdeck.adapters.leases.sqlite": 1787991318.0310664, "agentdeck.runtime": 1787991318.0347571, "agentdeck.core.ports.sink": 1787991318.0344682, "agentdeck.adapters.executors.native.executor": 1787991318.0302494, "agentdeck.surfaces.cli": 1787991318.0366344, "agentdeck.runtime.capture": 1787991318.0355892, "agentdeck.adapters.stores.sqlite": 1787991318.0317483, "agentdeck.core.errors": 1787991318.0338304, "agentdeck.authoring.runners.agent": 1787991318.0334094, "agentdeck.core.context": 1787991318.0338304, "agentdeck.authoring.hooks": 1787991318.0328615, "agentdeck.adapters.control.sqlite.port": 1787991318.0300517, "agentdeck.core": 1787991318.0334094, "agentdeck.core.content": 1787991318.0338304, "agentdeck.core.reporting": 1787991318.0344682, "agentdeck.adapters.tools": 1787991318.0322003, "agentdeck.runtime.dispatch": 1787991318.0355892, "agentdeck.core.workers": 1787991318.0344682, "agentdeck.observers": 1787991318.0347571, "agentdeck.adapters.stores.redis.store": 1787991318.0317483, "agentdeck.adapters.control": 1787991318.0298378, "agentdeck.testing": 1787991318.0367963, "agentdeck.adapters.executors.stub": 1787991318.0304673, "agentdeck.adapters.executors.openai_agents.executor": 1787991318.0304673, "agentdeck.adapters.executors.openai_agents": 1787991318.0302494, "agentdeck.runtime.service": 1787991318.0355892, "agentdeck.adapters.executors.openai_agents.reconcile": 1787991318.0304673, "agentdeck.adapters.leases.memory": 1787991318.0310168, "agentdeck.surfaces": 1787991318.0365074, "agentdeck.adapters.tools.mcp.source": 1787991318.0325863, "agentdeck.adapters.telemetry.langfuse.trace": 1787991318.0322003, "agentdeck.core.control": 1787991318.0338304, "agentdeck.cli": 1787991318.0334094, "agentdeck.adapters.stores.postgres": 1787991318.03141, "agentdeck.authoring.runners": 1787991318.0328615, "agentdeck.adapters.tools.mcp.transport": 1787991318.0325863, "agentdeck.adapters.leases.memory.port": 1787991318.0310664, "agentdeck.surfaces.serve.compat": 1787991318.0367963, "agentdeck.authoring.tools": 1787991318.0334094, "agentdeck.adapters.leases": 1787991318.030887, "agentdeck.authoring.skills": 1787991318.0334094, "agentdeck.surfaces.cli.chat": 1787991318.0366855, "agentdeck.authoring.web_search": 1787991318.0334094, "agentdeck.runtime.registry": 1787991318.0355892, "agentdeck.adapters.telemetry.langfuse.client": 1787991318.0322003, "agentdeck.adapters.tools.mcp.wiring": 1787991318.0325863, "agentdeck.runtime.settings": 1787991318.0355892, "agentdeck.adapters": 1787991318.0297182, "agentdeck.surfaces.serve": 1787991318.0366855, "agentdeck.authoring.interrupts": 1787991318.0328615, "agentdeck.adapters.executors.native": 1787991318.0301964, "agentdeck.adapters.control.memory.port": 1787991318.0299516, "agentdeck.skills.bundle": 1787991318.0365074, "agentdeck.deck": 1787991318.0347571}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"agentdeck.core.events":[["agentdeck.core.content",37,"from agentdeck.core.content import Input # noqa: TC001 - pydantic resolves field annotations at runtime"],["typing",23,"from typing import Annotated, Any, Literal, get_args"],["pydantic",25,"from pydantic import ("],["agentdeck.core.base",36,"from agentdeck.core.base import CoreModel, JsonData"],["__future__",21,"from __future__ import annotations"]],"agentdeck.deck":[["types",45,"from types import MappingProxyType"],["agentdeck.authoring.native",55,"from agentdeck.authoring.native import NativeDefinition"],["agents",97,"from agents.memory.session import Session"],["agentdeck.authoring.agent",51,"from agentdeck.authoring.agent import Agent"],["agentdeck.authoring.injection",53,"from agentdeck.authoring.injection import declared_context_type"],["agentdeck.core.ports",76,"from agentdeck.core.ports import Observer"],["agentdeck.core.invocable",75,"from agentdeck.core.invocable import AgentInstance, InvocableKind, InvocableSpec"],["agentdeck.runtime.settings",90,"from agentdeck.runtime.settings import Settings, get_settings"],["agentdeck.core.content",100,"from agentdeck.core.content import Input"],["agentdeck.runtime.registry",89,"from agentdeck.runtime.registry import PROJECT_DIR, PluginRegistry, mount_project_dir"],["agentdeck.adapters.tools.mcp.lifecycle",50,"from agentdeck.adapters.tools.mcp.lifecycle import MCPLifecycle"],["agentdeck.authoring.interrupts",99,"from agentdeck.authoring.interrupts import InterruptResult"],["agentdeck.runtime.discovery",88,"from agentdeck.runtime.discovery import EXECUTOR_FOR_KIND, InvocableRegistry"],["agentdeck.core.ports",102,"from agentdeck.core.ports import EventStorePort, Executor"],["agentdeck.skills",91,"from agentdeck.skills import Skills"],["logging",40,"import logging"],["agentdeck.composition",57,"from agentdeck.composition import ("],["agentdeck.core.control",66,"from agentdeck.core.control import Signal"],["agentdeck.runtime.service",103,"from agentdeck.runtime.service import PendingRun, Runtime"],["agentdeck.serve",1234,"from agentdeck.serve import build_asgi_app"],["agentdeck.errors",79,"from agentdeck.errors import ("],["agentdeck.adapters.executors.native",48,"from agentdeck.adapters.executors.native import NativeExecutor"],["agentdeck.core.events",101,"from agentdeck.core.events import Event, Usage"],["functools",39,"import functools"],["contextlib",43,"from contextlib import aclosing, suppress"],["agentdeck.adapters.executors.openai_agents",49,"from agentdeck.adapters.executors.openai_agents import ExecutionStore, OpenAIAgentsExecutor, SessionFactory"],["agentdeck.authoring.compile",52,"from agentdeck.authoring.compile import compile_agent, refresh_mcp_status"],["agentdeck.core.status",77,"from agentdeck.core.status import PRECONDITIONS, SUSPENDED_KINDS, Controls, Operation, RunStatus, Verdict, can_of"],["agentdeck.core.context",65,"from agentdeck.core.context import RunContext"],["__future__",36,"from __future__ import annotations"],["uuid",41,"import uuid"],["typing",46,"from typing import TYPE_CHECKING, Any, Literal, cast"],["agentdeck.core.content",64,"from agentdeck.core.content import DataBlock, TextBlock, coerce_input"],["agentdeck.authoring.interrupts",54,"from agentdeck.authoring.interrupts import interrupt_result"],["agentdeck.authoring.skills",56,"from agentdeck.authoring.skills import skills_resolver"],["agentdeck.core.workers",78,"from agentdeck.core.workers import SyncToolWorkers"],["asyncio",38,"import asyncio"],["agentdeck.core.events",67,"from agentdeck.core.events import ("],["builtins",94,"import builtins"],["collections",42,"from collections import ChainMap"],["pathlib",44,"from pathlib import Path"],["agentdeck.mcp",87,"from agentdeck.mcp import MCP"],["collections",95,"from collections.abc import AsyncGenerator, AsyncIterator, Generator, Mapping, Sequence"]],"agentdeck.adapters.stores.postgres":[["agentdeck.adapters.stores.postgres.store",3,"from agentdeck.adapters.stores.postgres.store import PostgresEventStore"]],"agentdeck.surfaces.cli.chat":[["agentdeck.core.content",15,"from agentdeck.core.content import TextBlock"],["typing",13,"from typing import TYPE_CHECKING"],["json",12,"import json"],["__future__",10,"from __future__ import annotations"],["collections",31,"from collections.abc import AsyncIterator, Mapping"],["httpx",33,"import httpx"],["agentdeck.core.events",16,"from agentdeck.core.events import ("]],"agentdeck.adapters.leases.sqlite.port":[["sqlite3",17,"import sqlite3"],["agentdeck.errors",23,"from agentdeck.errors import StoreError"],["datetime",27,"from datetime import timedelta"],["functools",19,"from functools import partial"],["typing",20,"from typing import TYPE_CHECKING"],["agentdeck.core.ports.lease",22,"from agentdeck.core.ports.lease import LeasePort"],["contextlib",18,"from contextlib import suppress"],["asyncio",16,"import asyncio"],["collections",26,"from collections.abc import Callable, Collection"],["__future__",14,"from __future__ import annotations"],["pathlib",28,"from pathlib import Path"]],"agentdeck.composition":[["agentdeck.adapters.leases.memory",24,"from agentdeck.adapters.leases.memory import MemoryLeasePort"],["agentdeck.adapters.stores.sqlite",27,"from agentdeck.adapters.stores.sqlite import SqliteEventStore"],["agentdeck.core.ports",45,"from agentdeck.core.ports import ControlPort, EventStorePort, Executor, LeasePort, Observer"],["agentdeck.observers",112,"from agentdeck.observers import LangfuseObserver"],["agentdeck.adapters.leases.sqlite",25,"from agentdeck.adapters.leases.sqlite import SqliteLeasePort"],["typing",19,"from typing import TYPE_CHECKING"],["agentdeck.runtime.settings",31,"from agentdeck.runtime.settings import ("],["logging",18,"import logging"],["agentdeck.adapters.control.sqlite",22,"from agentdeck.adapters.control.sqlite import SqliteControlPort"],["agentdeck.runtime.service",30,"from agentdeck.runtime.service import Runtime"],["agentdeck.runtime.discovery",29,"from agentdeck.runtime.discovery import InvocableRegistry"],["agentdeck.errors",28,"from agentdeck.errors import DOCS_URL"],["agentdeck.core.invocable",44,"from agentdeck.core.invocable import InvocableSpec"],["collections",41,"from collections.abc import Mapping, Sequence"],["__future__",16,"from __future__ import annotations"],["agentdeck.adapters.stores.postgres",244,"from agentdeck.adapters.stores.postgres import PostgresEventStore"],["agentdeck.adapters.stores.memory",26,"from agentdeck.adapters.stores.memory import MemoryEventStore"],["agentdeck.adapters.stores.redis",235,"from agentdeck.adapters.stores.redis import RedisEventStore"],["datetime",42,"from datetime import timedelta"],["agentdeck.adapters.executors.openai_agents.runconfig",23,"from agentdeck.adapters.executors.openai_agents.runconfig import RunSettings"],["agentdeck.adapters.control.memory",21,"from agentdeck.adapters.control.memory import MemoryControlPort"]],"agentdeck.adapters.executors":[],"agentdeck.runtime":[],"agentdeck.adapters.tools":[],"agentdeck.runtime.registry":[["importlib",10,"from importlib.machinery import ModuleSpec"],["dataclasses",9,"from dataclasses import dataclass, field"],["__future__",3,"from __future__ import annotations"],["importlib",5,"import importlib"],["importlib",6,"import importlib.util"],["sys",7,"import sys"],["typing",12,"from typing import Generic, TypeVar"],["types",8,"import types"],["pathlib",11,"from pathlib import Path"],["agentdeck.errors",14,"from agentdeck.errors import ConfigError, NotFoundError"]],"agentdeck.adapters.stores.redis":[["agentdeck.adapters.stores.redis.store",3,"from agentdeck.adapters.stores.redis.store import RedisEventStore"]],"agentdeck.core.control":[["agentdeck.core.status",21,"from agentdeck.core.status import Action, RunStatus, decide"],["agentdeck.core.events",26,"from agentdeck.core.events import ControlVerb, KnownPayload, SafePoint"],["typing",18,"from typing import TYPE_CHECKING, ClassVar"],["__future__",13,"from __future__ import annotations"],["collections",24,"from collections.abc import Callable, Mapping"],["time",15,"import time"],["agentdeck.core.ports.control",27,"from agentdeck.core.ports.control import ControlPort"],["dataclasses",16,"from dataclasses import dataclass"],["enum",17,"from enum import StrEnum"],["agentdeck.core.events",20,"from agentdeck.core.events import ControlObserved, ControlRequested, RunCancelled, RunPaused"]],"agentdeck.adapters.stores.memory":[["agentdeck.adapters.stores.memory.store",3,"from agentdeck.adapters.stores.memory.store import MemoryEventStore"]],"agentdeck.authoring.agent":[["agents",17,"from agents.agent_output import AgentOutputSchemaBase"],["agents",18,"from agents.lifecycle import AgentHooks"],["__future__",10,"from __future__ import annotations"],["collections",15,"from collections.abc import Callable, Mapping, Sequence"],["agentdeck.authoring.runners.agent",169,"from agentdeck.authoring.runners.agent import HeadlessRunner"],["agentdeck.authoring.compile",163,"from agentdeck.authoring.compile import compile_agent"],["typing",12,"from typing import TYPE_CHECKING, Any, ClassVar"]],"agentdeck.runtime.settings":[["typing",21,"from typing import TYPE_CHECKING, Any, ClassVar, Self"],["dotenv",23,"from dotenv import load_dotenv"],["pathlib",20,"from pathlib import Path"],["__future__",13,"from __future__ import annotations"],["logging",15,"import logging"],["collections",28,"from collections.abc import Callable"],["functools",19,"from functools import lru_cache"],["collections",17,"from collections.abc import Mapping"],["pydantic",24,"from pydantic import BaseModel, ConfigDict, Field, field_validator"],["pydantic_settings",25,"from pydantic_settings import BaseSettings, SettingsConfigDict"],["os",16,"import os"],["datetime",18,"from datetime import timedelta"]],"agentdeck.adapters.executors.openai_agents.runconfig":[["agents",22,"from agents import ModelSettings, MultiProvider, OpenAIProvider, RunConfig, default_handoff_history_mapper"],["os",17,"import os"],["agents",28,"from agents.items import TResponseInputItem"],["dataclasses",18,"from dataclasses import dataclass"],["typing",19,"from typing import TYPE_CHECKING, Any, cast"],["openai",24,"from openai import AsyncOpenAI"],["agents",27,"from agents.handoffs import HandoffHistoryMapper"],["httpx",21,"import httpx"],["__future__",15,"from __future__ import annotations"],["agents",23,"from agents.models.multi_provider import MultiProviderMap"]],"agentdeck.adapters.tools.mcp.source":[["__future__",9,"from __future__ import annotations"],["agentdeck.core.ports.tools",14,"from agentdeck.core.ports.tools import ToolSet, ToolSourcePort"],["typing",11,"from typing import TYPE_CHECKING"],["agentdeck.core.invocable",17,"from agentdeck.core.invocable import InvocableSpec"],["agentdeck.adapters.tools.mcp.wiring",13,"from agentdeck.adapters.tools.mcp.wiring import mcp_status_banner, resolve_agent_mcp_status"]],"agentdeck.adapters.telemetry.langfuse.sink":[["collections",48,"from collections.abc import Mapping"],["agentdeck.core.content",51,"from agentdeck.core.content import Input"],["asyncio",23,"import asyncio"],["__future__",21,"from __future__ import annotations"],["logging",25,"import logging"],["re",26,"import re"],["agentdeck.core.events",31,"from agentdeck.core.events import ("],["json",24,"import json"],["agentdeck.adapters.telemetry.langfuse.trace",50,"from agentdeck.adapters.telemetry.langfuse.trace import Level, Observation, ObservationKind, Tracer"],["agentdeck.core.events",52,"from agentdeck.core.events import Event, Usage"],["dataclasses",27,"from dataclasses import dataclass, field"],["typing",28,"from typing import TYPE_CHECKING, Any"],["agentdeck.core.content",30,"from agentdeck.core.content import DataBlock, ImageBlock, ResourceBlock, TextBlock"],["agentdeck.core.ports",45,"from agentdeck.core.ports import Observer"]],"agentdeck.adapters.executors.openai_agents":[["agentdeck.adapters.executors.openai_agents.runconfig",6,"from agentdeck.adapters.executors.openai_agents.runconfig import RunSettings"],["agentdeck.adapters.executors.openai_agents.executor",5,"from agentdeck.adapters.executors.openai_agents.executor import OpenAIAgentsExecutor"],["__future__",3,"from __future__ import annotations"],["agentdeck.adapters.executors.openai_agents.sessions",7,"from agentdeck.adapters.executors.openai_agents.sessions import ExecutionStore, SessionFactory"]],"agentdeck.core.ports.executor":[["__future__",7,"from __future__ import annotations"],["abc",9,"from abc import ABC, abstractmethod"],["agentdeck.core.content",15,"from agentdeck.core.content import Input"],["agentdeck.core.events",17,"from agentdeck.core.events import Event, KnownPayload"],["collections",13,"from collections.abc import AsyncGenerator, Sequence"],["agentdeck.core.context",16,"from agentdeck.core.context import RunContext"],["typing",10,"from typing import TYPE_CHECKING, ClassVar"],["agentdeck.core.invocable",18,"from agentdeck.core.invocable import InvocableSpec"]],"agentdeck.adapters.leases.memory":[["agentdeck.adapters.leases.memory.port",3,"from agentdeck.adapters.leases.memory.port import MemoryLeasePort"]],"agentdeck.serve":[["agentdeck.core.content",41,"from agentdeck.core.content import coerce_input"],["agentdeck.surfaces.serve.compat",44,"from agentdeck.surfaces.serve.compat import chat_frames, chat_result"],["os",37,"import os"],["agentdeck.core.status",42,"from agentdeck.core.status import status_of"],["fastapi",77,"from fastapi import FastAPI, HTTPException, Request"],["typing",39,"from typing import TYPE_CHECKING, Any"],["agentdeck.errors",43,"from agentdeck.errors import AgentdeckError, NotFoundError, RunStateError, SessionBusyError"],["agentdeck.deck",58,"from agentdeck.deck import Deck"],["collections",47,"from collections.abc import AsyncGenerator, AsyncIterator, Awaitable, Callable"],["fastapi",49,"from fastapi import FastAPI"],["logging",36,"import logging"],["fastapi",78,"from fastapi.responses import JSONResponse, StreamingResponse"],["__future__",33,"from __future__ import annotations"],["agentdeck.deck",52,"from agentdeck.deck import Deck"],["uvicorn",285,"import uvicorn"],["contextlib",38,"from contextlib import aclosing, asynccontextmanager"],["argparse",35,"import argparse"],["agentdeck.core.events",51,"from agentdeck.core.events import Event"]],"agentdeck.core.content":[["base64",13,"import base64"],["typing",14,"from typing import Annotated, Any, Literal, get_args"],["pydantic",16,"from pydantic import ("],["agentdeck.core.base",26,"from agentdeck.core.base import CoreModel, JsonData"],["__future__",11,"from __future__ import annotations"]],"agentdeck.core.errors":[["typing",18,"from typing import Any"],["__future__",16,"from __future__ import annotations"],["agentdeck.core.status",20,"from agentdeck.core.status import RunStatus"]],"agentdeck.cli":[["asyncio",20,"import asyncio"],["agentdeck.core.control",23,"from agentdeck.core.control import Signal"],["argparse",19,"import argparse"],["agentdeck.adapters.control.sqlite",22,"from agentdeck.adapters.control.sqlite import SqliteControlPort"],["__future__",17,"from __future__ import annotations"]],"agentdeck.adapters.control.memory.port":[["__future__",5,"from __future__ import annotations"],["agentdeck.core.ports.control",8,"from agentdeck.core.ports.control import ControlPort"],["agentdeck.core.control",7,"from agentdeck.core.control import ControlSignal, Signal"]],"agentdeck.adapters.stores.postgres.store":[["agentdeck.core.status",30,"from agentdeck.core.status import LIFECYCLE_KINDS, STATES, can_resume, status_of"],["asyncio",19,"import asyncio"],["agentdeck.core.status",39,"from agentdeck.core.status import RunStatus"],["typing",21,"from typing import TYPE_CHECKING, Any"],["psycopg",25,"from psycopg import sql"],["agentdeck.core.events",28,"from agentdeck.core.events import Event"],["datetime",35,"from datetime import timedelta"],["psycopg",24,"from psycopg import errors as pg_errors"],["agentdeck.adapters.stores",27,"from agentdeck.adapters.stores import _refuse_if_cancelled"],["psycopg",23,"import psycopg"],["__future__",17,"from __future__ import annotations"],["agentdeck.core.ports",29,"from agentdeck.core.ports import EventStorePort, RunSummary, SessionClaim"],["agentdeck.errors",31,"from agentdeck.errors import DuplicateKeyError, StoreError"],["hashlib",20,"import hashlib"],["collections",34,"from collections.abc import Awaitable, Callable, Sequence"],["agentdeck.core.events",38,"from agentdeck.core.events import KnownPayload, RunResumed, RunStarted"],["agentdeck.core.context",37,"from agentdeck.core.context import RunContext"]],"agentdeck.core.base":[["__future__",7,"from __future__ import annotations"],["math",9,"from math import isfinite"],["pydantic",12,"from pydantic import AfterValidator, BaseModel, ConfigDict, JsonValue"],["typing",10,"from typing import Annotated"]],"agentdeck.adapters.leases.sqlite":[["agentdeck.adapters.leases.sqlite.port",3,"from agentdeck.adapters.leases.sqlite.port import SqliteLeasePort"]],"agentdeck.authoring.tools":[["inspect",26,"import inspect"],["agentdeck.core.workers",41,"from agentdeck.core.workers import SyncToolWorkers"],["agentdeck.errors",33,"from agentdeck.errors import ConfigError"],["typing",27,"from typing import TYPE_CHECKING, Any, get_type_hints"],["asyncio",25,"import asyncio"],["agents",38,"from agents.tool import FunctionTool"],["agents",29,"from agents import RunContextWrapper, default_tool_error_function, function_tool"],["agentdeck.core.context",32,"from agentdeck.core.context import RunContext, ToolCtx"],["__future__",23,"from __future__ import annotations"],["agentdeck.authoring.injection",40,"from agentdeck.authoring.injection import CallableAnalysis"],["collections",36,"from collections.abc import Callable"],["agentdeck.authoring.injection",31,"from agentdeck.authoring.injection import analyze_callable, check_context_type, describe_callable"]],"agentdeck.adapters.executors.stub":[["agentdeck.adapters.executors.stub.executor",3,"from agentdeck.adapters.executors.stub.executor import Step, StubExecutor, stub_spec"]],"agentdeck.adapters.control.memory":[["agentdeck.adapters.control.memory.port",3,"from agentdeck.adapters.control.memory.port import MemoryControlPort"]],"agentdeck.skills.bundle":[["agentdeck.errors",12,"from agentdeck.errors import ConfigError"],["typing",8,"from typing import Any"],["pathlib",7,"from pathlib import Path"],["yaml",10,"import yaml"],["re",5,"import re"],["__future__",3,"from __future__ import annotations"],["dataclasses",6,"from dataclasses import dataclass, field"]],"agentdeck.surfaces.serve.compat":[["json",15,"import json"],["agentdeck.core.events",25,"from agentdeck.core.events import Event"],["agentdeck.core.events",20,"from agentdeck.core.events import RunCompleted, TextDelta, UsageReported"],["__future__",13,"from __future__ import annotations"],["typing",17,"from typing import TYPE_CHECKING, Any"],["contextlib",16,"from contextlib import aclosing"],["collections",23,"from collections.abc import AsyncGenerator, AsyncIterator"],["agentdeck.core.content",19,"from agentdeck.core.content import DataBlock, TextBlock"]],"agentdeck.adapters.stores.memory.store":[["agentdeck.core.status",12,"from agentdeck.core.status import LIFECYCLE_KINDS, STATES, RunStatus, can_resume, status_of"],["datetime",6,"from datetime import UTC, datetime"],["typing",7,"from typing import TYPE_CHECKING"],["collections",16,"from collections.abc import Callable, Sequence"],["agentdeck.core.ports",11,"from agentdeck.core.ports import EventStorePort, RunSummary, SessionClaim"],["datetime",17,"from datetime import timedelta"],["__future__",3,"from __future__ import annotations"],["agentdeck.adapters.stores",9,"from agentdeck.adapters.stores import _refuse_if_cancelled"],["agentdeck.core.events",20,"from agentdeck.core.events import KnownPayload, RunResumed, RunStarted"],["agentdeck.core.context",19,"from agentdeck.core.context import RunContext"],["agentdeck.errors",13,"from agentdeck.errors import DuplicateKeyError"],["asyncio",5,"import asyncio"],["agentdeck.core.events",10,"from agentdeck.core.events import Event"]],"agentdeck.core.invocable":[["typing",11,"from typing import TYPE_CHECKING, Any, Protocol, runtime_checkable"],["collections",18,"from collections.abc import Callable"],["enum",10,"from enum import StrEnum"],["pydantic",13,"from pydantic import ConfigDict, Field"],["dataclasses",9,"from dataclasses import dataclass"],["__future__",7,"from __future__ import annotations"],["agentdeck.core.base",15,"from agentdeck.core.base import CoreModel"]],"agentdeck.surfaces.cli":[["agentdeck.surfaces.cli.chat",5,"from agentdeck.surfaces.cli.chat import render, stream_chat"],["__future__",3,"from __future__ import annotations"]],"agentdeck.adapters.tools.mcp.transport":[["contextlib",13,"from contextlib import AsyncExitStack, suppress"],["logging",12,"import logging"],["__future__",9,"from __future__ import annotations"],["collections",20,"from collections.abc import Awaitable, Callable"],["httpx",16,"import httpx"],["asyncio",11,"import asyncio"],["typing",14,"from typing import TYPE_CHECKING, Any, TypeVar"],["agents",17,"from agents.mcp import MCPServerStreamableHttp"]],"agentdeck.authoring.hooks":[["inspect",21,"import inspect"],["__future__",19,"from __future__ import annotations"],["agentdeck.core.context",27,"from agentdeck.core.context import RunContext, ToolCtx"],["typing",22,"from typing import TYPE_CHECKING, Any"],["collections",31,"from collections.abc import Callable"],["agentdeck.authoring.injection",26,"from agentdeck.authoring.injection import analyze_callable, check_context_type, describe_callable"],["agentdeck.errors",28,"from agentdeck.errors import ConfigError"],["agents",24,"from agents.lifecycle import AgentHooks"]],"agentdeck.authoring.runners":[["agentdeck.authoring.runners.agent",3,"from agentdeck.authoring.runners.agent import BaseRunner, HeadlessRunner, StreamDone"]],"agentdeck.errors":[["agentdeck.core.errors",11,"from agentdeck.core.errors import ("],["__future__",9,"from __future__ import annotations"]],"agentdeck.runtime.dispatch":[["agentdeck.core.ports",32,"from agentdeck.core.ports import Observer"],["collections",29,"from collections.abc import Callable"],["logging",24,"import logging"],["asyncio",23,"import asyncio"],["typing",26,"from typing import TYPE_CHECKING"],["time",25,"import time"],["agentdeck.core.events",31,"from agentdeck.core.events import Event"],["__future__",21,"from __future__ import annotations"]],"agentdeck.authoring.instructions":[["typing",21,"from typing import TYPE_CHECKING, Any"],["collections",28,"from collections.abc import Callable"],["agentdeck.core.context",24,"from agentdeck.core.context import RunContext, ToolCtx"],["__future__",18,"from __future__ import annotations"],["inspect",20,"import inspect"],["agentdeck.errors",25,"from agentdeck.errors import ConfigError"],["agentdeck.authoring.injection",23,"from agentdeck.authoring.injection import analyze_callable, check_context_type, describe_callable"]],"agentdeck.testing":[["openai",27,"from openai.types.responses import ("],["openai",36,"from openai.types.responses.response_usage import InputTokensDetails, OutputTokensDetails"],["agents",24,"from agents.items import ModelResponse"],["typing",21,"from typing import TYPE_CHECKING, Any"],["asyncio",16,"import asyncio"],["agents",26,"from agents.usage import Usage"],["agents",25,"from agents.models.interface import Model"],["collections",39,"from collections.abc import AsyncIterator, Callable, Iterator, Sequence"],["__future__",14,"from __future__ import annotations"],["http",20,"from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer"],["threading",18,"import threading"],["unittest",22,"from unittest.mock import patch"],["contextlib",19,"from contextlib import contextmanager"],["json",17,"import json"]],"agentdeck.skills":[["collections",19,"from collections.abc import Sequence"],["agentdeck.skills.bundle",16,"from agentdeck.skills.bundle import SKILL_MD_FILENAME, SkillBundle"],["pathlib",12,"from pathlib import Path"],["agentdeck.errors",15,"from agentdeck.errors import DOCS_URL, ConfigError, NotFoundError"],["typing",13,"from typing import TYPE_CHECKING"],["__future__",10,"from __future__ import annotations"]],"agentdeck.adapters.executors.native":[["agentdeck.adapters.executors.native.executor",3,"from agentdeck.adapters.executors.native.executor import NativeExecutor"]],"agentdeck.adapters.stores.redis.store":[["agentdeck.core.context",51,"from agentdeck.core.context import RunContext"],["agentdeck.core.status",53,"from agentdeck.core.status import RunStatus"],["datetime",32,"from datetime import UTC, datetime"],["agentdeck.core.ports",41,"from agentdeck.core.ports import EventStorePort, RunSummary, SessionClaim"],["redis",36,"from redis.asyncio import Redis"],["__future__",29,"from __future__ import annotations"],["urllib",34,"from urllib.parse import quote"],["agentdeck.core.events",40,"from agentdeck.core.events import Event"],["agentdeck.core.status",42,"from agentdeck.core.status import LIFECYCLE_KINDS, STATES, can_resume, status_of"],["agentdeck.core.events",52,"from agentdeck.core.events import KnownPayload, RunResumed, RunStarted"],["redis",49,"from redis.asyncio.client import Pipeline"],["json",31,"import json"],["collections",46,"from collections.abc import Awaitable, Callable, Iterable, Sequence"],["datetime",47,"from datetime import timedelta"],["redis",37,"from redis.exceptions import RedisError, WatchError"],["agentdeck.adapters.stores",39,"from agentdeck.adapters.stores import _refuse_if_cancelled"],["typing",33,"from typing import TYPE_CHECKING, cast"],["agentdeck.errors",43,"from agentdeck.errors import DuplicateKeyError, StoreError"]],"agentdeck.authoring.compile":[["agents",46,"from agents import Agent as SDKAgent"],["agentdeck.authoring.tools",55,"from agentdeck.authoring.tools import compile_tool"],["agents",47,"from agents import ModelSettings"],["agentdeck.core.workers",67,"from agentdeck.core.workers import SyncToolWorkers"],["agentdeck.authoring.native",53,"from agentdeck.authoring.native import NativeDefinition"],["agentdeck.core.context",66,"from agentdeck.core.context import RunContext"],["typing",44,"from typing import TYPE_CHECKING, Any, get_args, get_origin"],["agentdeck.runtime.settings",58,"from agentdeck.runtime.settings import get_settings"],["collections",61,"from collections.abc import Awaitable, Callable, Mapping, Sequence"],["agentdeck.authoring.hooks",51,"from agentdeck.authoring.hooks import compile_hooks"],["agentdeck.errors",57,"from agentdeck.errors import ConfigError, NotFoundError"],["agentdeck.authoring.native",54,"from agentdeck.authoring.native import tool as _native_tool"],["agents",63,"from agents.tool import FunctionTool"],["agentdeck.core.context",56,"from agentdeck.core.context import ToolCtx # noqa: TC001 - a subagent tool's own annotation, resolved at runtime"],["agentdeck.authoring.agent",217,"from agentdeck.authoring.agent import Agent as AuthoringAgent"],["re",43,"import re"],["agents",48,"from agents import Tool as SDKTool"],["agentdeck.authoring.agent",65,"from agentdeck.authoring.agent import Agent"],["__future__",41,"from __future__ import annotations"],["agentdeck.authoring.instructions",52,"from agentdeck.authoring.instructions import compile_instructions"],["agentdeck.adapters.tools.mcp.wiring",50,"from agentdeck.adapters.tools.mcp.wiring import mcp_status_banner, resolve_agent_mcp_status"]],"agentdeck.core.status":[["dataclasses",19,"from dataclasses import dataclass"],["collections",27,"from collections.abc import Mapping, Sequence"],["__future__",17,"from __future__ import annotations"],["agentdeck.core.content",23,"from agentdeck.core.content import answer_of"],["agentdeck.core.events",29,"from agentdeck.core.events import Event"],["agentdeck.core.events",24,"from agentdeck.core.events import TERMINAL_KINDS, RunInterrupted, RunResumed"],["enum",20,"from enum import StrEnum"],["typing",21,"from typing import TYPE_CHECKING, Any"]],"agentdeck.authoring.injection":[["dataclasses",31,"from dataclasses import dataclass"],["__future__",27,"from __future__ import annotations"],["agentdeck.errors",35,"from agentdeck.errors import ConfigError, ContextTypeError"],["agentdeck.core.context",34,"from agentdeck.core.context import ToolCtx, WorkflowCtx"],["inspect",29,"import inspect"],["collections",38,"from collections.abc import Callable, Iterable, Iterator, Mapping"],["types",30,"import types"],["typing",32,"from typing import TYPE_CHECKING, Any, Union, get_args, get_origin, get_type_hints"]],"agentdeck.mcp":[["agentdeck.errors",18,"from agentdeck.errors import ConfigError"],["typing",14,"from typing import Any"],["json",12,"import json"],["pydantic",16,"from pydantic import BaseModel, ConfigDict, Field"],["pathlib",13,"from pathlib import Path"],["__future__",10,"from __future__ import annotations"]],"agentdeck.surfaces.serve.app":[["typing",9,"from typing import TYPE_CHECKING, Any"],["fastapi",11,"from fastapi import FastAPI"],["agentdeck.errors",16,"from agentdeck.errors import SessionBusyError"],["agentdeck.core.events",21,"from agentdeck.core.events import Event"],["pydantic",13,"from pydantic import BaseModel, Field"],["fastapi",12,"from fastapi.responses import JSONResponse, StreamingResponse"],["collections",19,"from collections.abc import AsyncIterator"],["agentdeck.runtime.service",22,"from agentdeck.runtime.service import Runtime"],["agentdeck.core.content",15,"from agentdeck.core.content import coerce_input"],["__future__",6,"from __future__ import annotations"],["http",8,"from http import HTTPStatus"]],"agentdeck.authoring.web_search":[["__future__",10,"from __future__ import annotations"],["agentdeck.runtime.settings",15,"from agentdeck.runtime.settings import get_settings"],["httpx",12,"import httpx"],["agents",13,"from agents import function_tool"]],"agentdeck.adapters.tools.mcp":[["agentdeck.adapters.tools.mcp.wiring",8,"from agentdeck.adapters.tools.mcp.wiring import mcp_status_banner, resolve_agent_mcp_servers, resolve_agent_mcp_status"],["agentdeck.adapters.tools.mcp.transport",7,"from agentdeck.adapters.tools.mcp.transport import MCPServerStreamableHttpResilient"],["__future__",3,"from __future__ import annotations"],["agentdeck.adapters.tools.mcp.lifecycle",5,"from agentdeck.adapters.tools.mcp.lifecycle import MCPLifecycle"],["agentdeck.adapters.tools.mcp.source",6,"from agentdeck.adapters.tools.mcp.source import MCP_SERVER_NAMES_KEY, MCPToolSource"]],"agentdeck.surfaces":[],"agentdeck.adapters.leases":[],"agentdeck.runtime.discovery":[["agentdeck.authoring.compile",15,"from agentdeck.authoring.compile import compile_agent, link_handoffs"],["agentdeck.authoring.compile",27,"from agentdeck.authoring.compile import Delegate"],["collections",22,"from collections.abc import Callable, Mapping, Sequence"],["agentdeck.errors",18,"from agentdeck.errors import ConfigError"],["agents",25,"from agents.tool import FunctionTool"],["agentdeck.authoring.agent",14,"from agentdeck.authoring.agent import Agent"],["__future__",10,"from __future__ import annotations"],["agentdeck.core.workers",29,"from agentdeck.core.workers import SyncToolWorkers"],["typing",12,"from typing import TYPE_CHECKING, Any, Final"],["agentdeck.authoring.native",16,"from agentdeck.authoring.native import NativeDefinition"],["agentdeck.runtime.registry",19,"from agentdeck.runtime.registry import PluginRegistry, mount_project_dir"],["agentdeck.core.ports",28,"from agentdeck.core.ports import Executor"],["agentdeck.core.invocable",17,"from agentdeck.core.invocable import AgentInstance, InvocableKind, InvocableSpec"],["agents",24,"from agents import Agent as SDKAgent"]],"agentdeck.core.ports.lease":[["typing",17,"from typing import TYPE_CHECKING"],["collections",20,"from collections.abc import Collection"],["__future__",14,"from __future__ import annotations"],["datetime",21,"from datetime import timedelta"],["abc",16,"from abc import ABC, abstractmethod"]],"agentdeck.adapters.executors.native.executor":[["agentdeck.core.events",19,"from agentdeck.core.events import RunCompleted, Usage"],["agentdeck.core.events",30,"from agentdeck.core.events import Event, KnownPayload"],["agentdeck.core.content",16,"from agentdeck.core.content import DataBlock, TextBlock, answer_of"],["asyncio",11,"import asyncio"],["agentdeck.core.context",17,"from agentdeck.core.context import WorkflowCtx"],["agentdeck.core.invocable",20,"from agentdeck.core.invocable import NativeExecution, NativeInvocable"],["agentdeck.core.workers",33,"from agentdeck.core.workers import SyncToolWorkers"],["agentdeck.core.control",18,"from agentdeck.core.control import ControlSignalled"],["__future__",9,"from __future__ import annotations"],["typing",14,"from typing import TYPE_CHECKING, Any, ClassVar"],["agentdeck.core.status",32,"from agentdeck.core.status import Continuation"],["agentdeck.core.ports",21,"from agentdeck.core.ports import Executor"],["dataclasses",13,"from dataclasses import dataclass, field"],["agentdeck.core.content",28,"from agentdeck.core.content import Input"],["contextlib",12,"from contextlib import suppress"],["agentdeck.core.invocable",31,"from agentdeck.core.invocable import InvocableSpec"],["agentdeck.errors",23,"from agentdeck.errors import ConfigError"],["agentdeck.core.status",22,"from agentdeck.core.status import SUSPENDED_KINDS, Play, continuation_of"],["collections",26,"from collections.abc import AsyncGenerator, Sequence"],["agentdeck.core.context",29,"from agentdeck.core.context import Agents, Invoker, RunContext"]],"agentdeck.surfaces.serve":[["agentdeck.surfaces.serve.app",5,"from agentdeck.surfaces.serve.app import build_app"],["__future__",3,"from __future__ import annotations"]],"agentdeck.authoring.native":[["collections",20,"from collections.abc import Callable"],["agentdeck.errors",17,"from agentdeck.errors import ConfigError"],["typing",12,"from typing import TYPE_CHECKING, Any"],["agentdeck.authoring.injection",22,"from agentdeck.authoring.injection import CallableAnalysis"],["agentdeck.core.context",15,"from agentdeck.core.context import ToolCtx, WorkflowCtx"],["dataclasses",11,"from dataclasses import dataclass"],["agentdeck.authoring.injection",14,"from agentdeck.authoring.injection import analyze_callable, describe_callable"],["__future__",8,"from __future__ import annotations"],["inspect",10,"import inspect"],["agentdeck.core.invocable",16,"from agentdeck.core.invocable import InvocableKind, NativeExecution"]],"agentdeck.adapters.executors.stub.executor":[["typing",16,"from typing import TYPE_CHECKING, ClassVar"],["agentdeck.core.invocable",20,"from agentdeck.core.invocable import InvocableKind, InvocableSpec"],["agentdeck.core.content",28,"from agentdeck.core.content import Input"],["__future__",13,"from __future__ import annotations"],["agentdeck.core.control",18,"from agentdeck.core.control import ControlSignalled"],["agentdeck.core.events",30,"from agentdeck.core.events import Event, KnownPayload"],["agentdeck.core.context",29,"from agentdeck.core.context import RunContext"],["collections",15,"from collections.abc import Sequence"],["collections",26,"from collections.abc import AsyncGenerator"],["agentdeck.core.status",22,"from agentdeck.core.status import Play, continuation_of"],["agentdeck.core.events",19,"from agentdeck.core.events import RunInterrupted"],["agentdeck.core.ports",21,"from agentdeck.core.ports import Executor"],["agentdeck.errors",23,"from agentdeck.errors import ConfigError"]],"agentdeck.adapters.tools.mcp.lifecycle":[["__future__",17,"from __future__ import annotations"],["asyncio",19,"import asyncio"],["logging",20,"import logging"],["agents",29,"from agents.mcp import MCPServer"],["typing",21,"from typing import TYPE_CHECKING, Any"],["agentdeck.errors",24,"from agentdeck.errors import ConfigError"],["collections",27,"from collections.abc import Sequence"],["agentdeck.adapters.tools.mcp.transport",23,"from agentdeck.adapters.tools.mcp.transport import MCPServerStreamableHttpResilient"]],"agentdeck.authoring.skills":[["typing",11,"from typing import TYPE_CHECKING"],["agents",18,"from agents.tool import FunctionTool"],["collections",16,"from collections.abc import Callable, Sequence"],["__future__",9,"from __future__ import annotations"],["agents",13,"from agents import function_tool"],["agentdeck.skills",20,"from agentdeck.skills import Skills"]],"agentdeck.adapters.stores.sqlite":[["agentdeck.adapters.stores.sqlite.store",3,"from agentdeck.adapters.stores.sqlite.store import SqliteEventStore"]],"agentdeck.adapters.stores":[["agentdeck.core.context",11,"from agentdeck.core.context import RunContext"],["__future__",3,"from __future__ import annotations"],["agentdeck.core.status",7,"from agentdeck.core.status import RunStatus"],["typing",5,"from typing import TYPE_CHECKING"],["agentdeck.errors",8,"from agentdeck.errors import RunStateError"]],"agentdeck.adapters.tools.mcp.wiring":[["agents",17,"from agents.mcp import MCPServer"],["__future__",8,"from __future__ import annotations"],["agentdeck.adapters.tools.mcp.lifecycle",12,"from agentdeck.adapters.tools.mcp.lifecycle import MCPLifecycle"],["typing",10,"from typing import TYPE_CHECKING"],["collections",15,"from collections.abc import Iterable, Sequence"]],"agentdeck.authoring.interrupts":[["typing",10,"from typing import Any, Literal, NotRequired, TypedDict"],["__future__",8,"from __future__ import annotations"]],"agentdeck.core.ports":[["agentdeck.core.ports.tools",16,"from agentdeck.core.ports.tools import ToolSet, ToolSourcePort"],["agentdeck.core.ports.sink",14,"from agentdeck.core.ports.sink import Observer"],["agentdeck.core.ports.executor",12,"from agentdeck.core.ports.executor import Executor"],["agentdeck.core.ports.store",15,"from agentdeck.core.ports.store import EventStorePort, RunSummary, SessionClaim"],["agentdeck.core.ports.control",11,"from agentdeck.core.ports.control import ControlPort"],["agentdeck.core.ports.lease",13,"from agentdeck.core.ports.lease import LeasePort"]],"agentdeck.core.ports.tools":[["agentdeck.core.base",19,"from agentdeck.core.base import CoreModel"],["typing",15,"from typing import TYPE_CHECKING, Any"],["pydantic",17,"from pydantic import ConfigDict"],["abc",14,"from abc import ABC, abstractmethod"],["__future__",12,"from __future__ import annotations"],["agentdeck.core.invocable",22,"from agentdeck.core.invocable import InvocableSpec"]],"agentdeck.core.ports.store":[["__future__",7,"from __future__ import annotations"],["collections",16,"from collections.abc import Sequence"],["agentdeck.core.status",13,"from agentdeck.core.status import RunStatus, status_of"],["datetime",17,"from datetime import timedelta"],["agentdeck.core.events",20,"from agentdeck.core.events import Event, KnownPayload, RunResumed, RunStarted"],["abc",9,"from abc import ABC, abstractmethod"],["agentdeck.core.context",19,"from agentdeck.core.context import RunContext"],["typing",11,"from typing import TYPE_CHECKING"],["dataclasses",10,"from dataclasses import dataclass"]],"agentdeck.adapters.telemetry.langfuse.trace":[["__future__",13,"from __future__ import annotations"],["typing",15,"from typing import TYPE_CHECKING, Any, Literal, Protocol"],["collections",18,"from collections.abc import Mapping"],["agentdeck.core.events",20,"from agentdeck.core.events import Usage"]],"agentdeck.adapters.leases.memory.port":[["typing",13,"from typing import TYPE_CHECKING"],["datetime",19,"from datetime import timedelta"],["agentdeck.core.ports.lease",15,"from agentdeck.core.ports.lease import LeasePort"],["datetime",12,"from datetime import UTC, datetime"],["collections",18,"from collections.abc import Callable, Collection"],["__future__",10,"from __future__ import annotations"]],"agentdeck.core.reporting":[["__future__",12,"from __future__ import annotations"],["agentdeck.core.events",24,"from agentdeck.core.events import KnownPayload"],["agentdeck.core.base",23,"from agentdeck.core.base import JsonData"],["threading",15,"import threading"],["logging",14,"import logging"],["agentdeck.core.events",18,"from agentdeck.core.events import Reported"],["typing",16,"from typing import TYPE_CHECKING"],["collections",21,"from collections import deque"]],"agentdeck.observers":[["pathlib",18,"from pathlib import Path"],["agentdeck.core.events",26,"from agentdeck.core.events import Event"],["agentdeck.views",27,"from agentdeck.views import View"],["typing",19,"from typing import TYPE_CHECKING"],["__future__",16,"from __future__ import annotations"],["openinference",42,"from openinference.instrumentation.openai_agents import ( # ty: ignore[unresolved-import] - [observability] extra"],["agentdeck.core.ports",21,"from agentdeck.core.ports import Observer"],["agents",41,"from agents import set_trace_processors"],["agentdeck.adapters.telemetry.langfuse.client",116,"from agentdeck.adapters.telemetry.langfuse.client import langfuse_sink"],["agentdeck.runtime.settings",23,"from agentdeck.runtime.settings import get_settings"],["agentdeck.errors",22,"from agentdeck.errors import ConfigError"]],"agentdeck.adapters.executors.openai_agents.reconcile":[["typing",29,"from typing import TYPE_CHECKING, Any, Literal"],["agentdeck.core.content",32,"from agentdeck.core.content import DataBlock, TextBlock"],["agents",38,"from agents.items import TResponseInputItem"],["agentdeck.core.events",33,"from agentdeck.core.events import Custom, InputAppended, MessageCompleted, RunCancelled, RunStarted"],["agentdeck.core.content",41,"from agentdeck.core.content import Input"],["weakref",30,"from weakref import WeakKeyDictionary"],["agentdeck.core.events",42,"from agentdeck.core.events import Event"],["agents",39,"from agents.memory.session import Session"],["__future__",24,"from __future__ import annotations"],["asyncio",26,"import asyncio"],["collections",36,"from collections.abc import Iterable, Sequence"],["json",27,"import json"],["logging",28,"import logging"]],"agentdeck.adapters.telemetry":[],"agentdeck.adapters.executors.openai_agents.sessions":[["agentdeck.runtime.settings",30,"from agentdeck.runtime.settings import SessionSettings"],["agentdeck.core.context",29,"from agentdeck.core.context import RunContext"],["agents",26,"from agents.memory.session import Session"],["typing",21,"from typing import TYPE_CHECKING"],["agents",23,"from agents import SQLiteSession"],["redis",27,"from redis.asyncio import Redis"],["redis",53,"from redis.asyncio import Redis"],["__future__",19,"from __future__ import annotations"],["agents",68,"from agents.extensions.memory import RedisSession"]],"agentdeck.adapters":[],"agentdeck.adapters.stores.sqlite.store":[["agentdeck.errors",23,"from agentdeck.errors import DuplicateKeyError, StoreError"],["contextlib",14,"from contextlib import suppress"],["pathlib",28,"from pathlib import Path"],["agentdeck.core.events",20,"from agentdeck.core.events import Event"],["sqlite3",13,"import sqlite3"],["datetime",27,"from datetime import timedelta"],["agentdeck.core.events",31,"from agentdeck.core.events import KnownPayload, RunResumed, RunStarted"],["json",12,"import json"],["datetime",15,"from datetime import datetime"],["collections",26,"from collections.abc import Callable, Sequence"],["agentdeck.core.context",30,"from agentdeck.core.context import RunContext"],["__future__",9,"from __future__ import annotations"],["agentdeck.core.status",32,"from agentdeck.core.status import RunStatus"],["typing",17,"from typing import TYPE_CHECKING"],["agentdeck.core.status",22,"from agentdeck.core.status import LIFECYCLE_KINDS, STATES, can_resume, status_of"],["agentdeck.adapters.stores",19,"from agentdeck.adapters.stores import _refuse_if_cancelled"],["functools",16,"from functools import partial"],["agentdeck.core.ports",21,"from agentdeck.core.ports import EventStorePort, RunSummary, SessionClaim"],["asyncio",11,"import asyncio"]],"agentdeck.runtime.capture":[["__future__",12,"from __future__ import annotations"],["enum",14,"from enum import StrEnum"],["pydantic",16,"from pydantic import BaseModel"]],"agentdeck.adapters.control.sqlite.port":[["agentdeck.core.control",15,"from agentdeck.core.control import ControlSignal, Signal"],["__future__",7,"from __future__ import annotations"],["agentdeck.errors",17,"from agentdeck.errors import StoreError"],["agentdeck.core.ports.control",16,"from agentdeck.core.ports.control import ControlPort"],["contextlib",11,"from contextlib import suppress"],["typing",13,"from typing import TYPE_CHECKING"],["collections",20,"from collections.abc import Callable"],["sqlite3",10,"import sqlite3"],["asyncio",9,"import asyncio"],["functools",12,"from functools import partial"],["pathlib",21,"from pathlib import Path"]],"agentdeck.adapters.telemetry.langfuse":[["agentdeck.adapters.telemetry.langfuse.sink",4,"from agentdeck.adapters.telemetry.langfuse.sink import MAX_OPEN_CALLS, MAX_OPEN_RUNS, LangfuseSink"],["agentdeck.adapters.telemetry.langfuse.client",3,"from agentdeck.adapters.telemetry.langfuse.client import LangfuseTracer, build_client, langfuse_sink"],["agentdeck.adapters.telemetry.langfuse.trace",5,"from agentdeck.adapters.telemetry.langfuse.trace import Level, Observation, ObservationKind, Tracer"]],"agentdeck":[["agentdeck.deck",27,"from agentdeck.deck import Deck, Run, TurnResult"],["agentdeck.core.ports",26,"from agentdeck.core.ports import Observer"],["agentdeck.core.content",16,"from agentdeck.core.content import ("],["agentdeck.views",13,"from agentdeck import views"],["agentdeck.authoring.native",15,"from agentdeck.authoring.native import tool, workflow"],["agentdeck.core.invocable",25,"from agentdeck.core.invocable import AgentInstance"],["agentdeck.errors",28,"from agentdeck.errors import ("],["importlib",11,"from importlib.metadata import version as _version"],["importlib",10,"from importlib.metadata import PackageNotFoundError"],["agentdeck.authoring",14,"from agentdeck.authoring import Agent"],["agentdeck.core.context",24,"from agentdeck.core.context import ToolCtx, WorkflowCtx"]],"agentdeck.adapters.executors.openai_agents.executor":[["agentdeck.core.content",50,"from agentdeck.core.content import AudioBlock, DataBlock, ImageBlock, ResourceBlock, TextBlock, coerce_input"],["json",37,"import json"],["contextlib",39,"from contextlib import AbstractAsyncContextManager, aclosing, asynccontextmanager, nullcontext"],["agentdeck.adapters.executors.openai_agents.runconfig",47,"from agentdeck.adapters.executors.openai_agents.runconfig import RunSettings, build_run_config"],["agents",60,"from agents.items import TResponseInputItem"],["agents",63,"from agents.usage import Usage as SDKUsage"],["dataclasses",40,"from dataclasses import dataclass"],["agentdeck.adapters.executors.openai_agents.translate",49,"from agentdeck.adapters.executors.openai_agents.translate import translate"],["pydantic",44,"from pydantic import BaseModel"],["agentdeck.core.events",67,"from agentdeck.core.events import Event, KnownPayload"],["agentdeck.adapters.executors.openai_agents.reconcile",46,"from agentdeck.adapters.executors.openai_agents.reconcile import reconcile, render_data_block"],["dataclasses",36,"import dataclasses"],["agents",62,"from agents.result import RunResultStreaming"],["agentdeck.errors",55,"from agentdeck.errors import ConfigError"],["collections",58,"from collections.abc import AsyncGenerator, AsyncIterator, Sequence"],["collections",38,"from collections.abc import Callable"],["agentdeck.core.invocable",68,"from agentdeck.core.invocable import InvocableSpec"],["agentdeck.core.ports",53,"from agentdeck.core.ports import Executor"],["agentdeck.core.context",66,"from agentdeck.core.context import RunContext"],["__future__",34,"from __future__ import annotations"],["agentdeck.core.control",51,"from agentdeck.core.control import ControlSignalled"],["agentdeck.core.events",52,"from agentdeck.core.events import RunCompleted, Usage, UsageReported"],["agentdeck.core.content",65,"from agentdeck.core.content import ContentBlock, Input"],["agents",43,"from agents import Agent, Runner"],["agentdeck.adapters.executors.openai_agents.sessions",48,"from agentdeck.adapters.executors.openai_agents.sessions import ExecutionStore"],["agents",61,"from agents.memory.session import Session"],["typing",41,"from typing import TYPE_CHECKING, Any, ClassVar, cast"],["agentdeck.core.status",54,"from agentdeck.core.status import Play, continuation_of"]],"agentdeck.core.workers":[["typing",14,"from typing import TYPE_CHECKING, Any"],["concurrent",13,"from concurrent.futures import Future, ThreadPoolExecutor"],["collections",17,"from collections.abc import Callable"],["asyncio",12,"import asyncio"],["__future__",10,"from __future__ import annotations"]],"agentdeck.runtime.service":[["__future__",13,"from __future__ import annotations"],["collections",17,"from collections import deque"],["dataclasses",19,"from dataclasses import dataclass, replace"],["agentdeck.core.events",61,"from agentdeck.core.events import InterruptReason, KnownPayload"],["agentdeck.errors",52,"from agentdeck.errors import DOCS_URL, ConfigError, NotFoundError, RunStateError, SessionBusyError, StoreError"],["agentdeck.core.ports.store",64,"from agentdeck.core.ports.store import RunSummary"],["asyncio",15,"import asyncio"],["agentdeck.runtime.dispatch",53,"from agentdeck.runtime.dispatch import SinkDispatch"],["agentdeck.core.context",25,"from agentdeck.core.context import RunContext"],["agentdeck.core.ports",63,"from agentdeck.core.ports import ControlPort, EventStorePort, Executor, LeasePort, Observer"],["agentdeck.core.content",24,"from agentdeck.core.content import as_answer"],["logging",16,"import logging"],["agentdeck.core.content",59,"from agentdeck.core.content import Input"],["agentdeck.core.status",41,"from agentdeck.core.status import ("],["typing",57,"from typing import Any"],["agentdeck.core.events",27,"from agentdeck.core.events import ("],["typing",21,"from typing import TYPE_CHECKING, Final"],["agentdeck.core.invocable",62,"from agentdeck.core.invocable import InvocableSpec"],["collections",56,"from collections.abc import AsyncGenerator, AsyncIterator, Mapping, Sequence"],["agentdeck.core.control",26,"from agentdeck.core.control import CONTROL_POLL_INTERVAL, Gate, Signal"],["agentdeck.core.reporting",40,"from agentdeck.core.reporting import Reporter"],["contextlib",18,"from contextlib import aclosing, asynccontextmanager, suppress"],["datetime",20,"from datetime import timedelta"],["uuid",22,"from uuid import uuid4"],["agentdeck.core.control",60,"from agentdeck.core.control import ControlSignal"]],"agentdeck.views":[["agentdeck.core.events",23,"from agentdeck.core.events import Event"],["typing",16,"from typing import TYPE_CHECKING"],["agentdeck.core.status",18,"from agentdeck.core.status import LIFECYCLE_KINDS"],["collections",21,"from collections.abc import Callable"],["__future__",14,"from __future__ import annotations"]],"agentdeck.adapters.control.sqlite":[["agentdeck.adapters.control.sqlite.port",3,"from agentdeck.adapters.control.sqlite.port import SqliteControlPort"]],"agentdeck.core":[["agentdeck.core.content",7,"from agentdeck.core.content import ("],["agentdeck.core.reporting",56,"from agentdeck.core.reporting import Reporter"],["agentdeck.core.status",57,"from agentdeck.core.status import RunStatus, can_resume, status_of"],["agentdeck.core.invocable",55,"from agentdeck.core.invocable import InvocableKind, InvocableSpec"],["agentdeck.core.events",21,"from agentdeck.core.events import ("],["agentdeck.core.context",20,"from agentdeck.core.context import RunContext"]],"agentdeck.authoring":[["agentdeck.authoring.interrupts",8,"from agentdeck.authoring.interrupts import InterruptResult"],["agentdeck.authoring.agent",7,"from agentdeck.authoring.agent import Agent, AgentDeclaration"]],"agentdeck.core.context":[["inspect",21,"import inspect"],["collections",37,"from collections.abc import Callable, Coroutine"],["agentdeck.core.invocable",40,"from agentdeck.core.invocable import AgentInstance"],["agentdeck.core.base",39,"from agentdeck.core.base import JsonData"],["uuid",25,"from uuid import uuid4"],["typing",24,"from typing import TYPE_CHECKING, Any, NoReturn, Protocol, cast, runtime_checkable"],["dataclasses",23,"from dataclasses import dataclass, field"],["agentdeck.core.reporting",30,"from agentdeck.core.reporting import Reporter"],["agentdeck.core.control",27,"from agentdeck.core.control import Gate, RunPausedError"],["logging",22,"import logging"],["asyncio",36,"from asyncio import AbstractEventLoop"],["agentdeck.core.errors",28,"from agentdeck.core.errors import DOCS_URL, ConfigError"],["__future__",18,"from __future__ import annotations"],["agentdeck.core.status",31,"from agentdeck.core.status import RunStatus"],["asyncio",20,"import asyncio"],["agentdeck.core.events",29,"from agentdeck.core.events import KnownPayload, RunInterrupted"]],"agentdeck.authoring.runners.agent":[["__future__",15,"from __future__ import annotations"],["typing",19,"from typing import TYPE_CHECKING, Any, Self, cast"],["dataclasses",18,"from dataclasses import dataclass, field"],["collections",27,"from collections.abc import AsyncGenerator, AsyncIterator"],["contextlib",17,"from contextlib import aclosing"],["agentdeck.runtime.settings",24,"from agentdeck.runtime.settings import Settings, default_use_responses, get_settings"],["agents",21,"from agents import Agent, RunConfig, Runner, RunResult"],["agentdeck.adapters.executors.openai_agents.runconfig",23,"from agentdeck.adapters.executors.openai_agents.runconfig import RunSettings, build_run_config"]],"agentdeck.adapters.control":[],"agentdeck.adapters.telemetry.langfuse.client":[["agentdeck.adapters.telemetry.langfuse.sink",19,"from agentdeck.adapters.telemetry.langfuse.sink import LangfuseSink"],["langfuse",102,"from langfuse import propagate_attributes # ty: ignore[unresolved-import] - [observability] extra"],["agentdeck.core.events",25,"from agentdeck.core.events import Usage"],["__future__",13,"from __future__ import annotations"],["agentdeck.adapters.telemetry.langfuse.trace",24,"from agentdeck.adapters.telemetry.langfuse.trace import Level, Observation, ObservationKind"],["agentdeck.runtime.settings",26,"from agentdeck.runtime.settings import LangfuseSettings"],["langfuse",60,"from langfuse import Langfuse # ty: ignore[unresolved-import] - [observability] extra"],["collections",22,"from collections.abc import Mapping"],["typing",17,"from typing import TYPE_CHECKING, Any"],["logging",15,"import logging"],["os",16,"import os"]],"agentdeck.adapters.executors.openai_agents.translate":[["json",14,"import json"],["agentdeck.core.events",18,"from agentdeck.core.events import ("],["__future__",11,"from __future__ import annotations"],["logging",15,"import logging"],["hashlib",13,"import hashlib"],["typing",16,"from typing import Any"]],"agentdeck.core.ports.sink":[["__future__",7,"from __future__ import annotations"],["agentdeck.core.events",13,"from agentdeck.core.events import Event"],["typing",10,"from typing import TYPE_CHECKING"],["abc",9,"from abc import ABC, abstractmethod"]],"agentdeck.core.ports.control":[["agentdeck.core.control",20,"from agentdeck.core.control import ControlSignal, Signal"],["abc",16,"from abc import ABC, abstractmethod"],["typing",17,"from typing import TYPE_CHECKING"],["__future__",14,"from __future__ import annotations"]]}
|
|
@@ -8,6 +8,22 @@ Fixed / Security` order - and are written to be attached to a release as-is.
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [5.2.0] - 2026-08-29
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- **A deployment guide for running a Deck as a service** (#353): the
|
|
16
|
+
`AGENTDECK_EVENTS`/`AGENTDECK_CONTROL`/`AGENTDECK_SESSION` durability defaults, a systemd unit,
|
|
17
|
+
`aclose()` on `SIGTERM`, uvicorn's graceful-shutdown behavior against an open SSE connection,
|
|
18
|
+
and reverse-proxy buffering. See [Deployment](https://agentdecksdk.com/operate/deployment).
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **`Reporter` is always synchronous.** `ctx.reporter.info()`/`.warning()`/`.error()`/`.report()`
|
|
23
|
+
are plain methods now, not coroutines - drop the `await` at every call site. `SyncReporter` is
|
|
24
|
+
gone; `ToolCtx.reporter` returns the same `Reporter` whether the body runs on the event loop or
|
|
25
|
+
a worker thread. The buffer it enqueues into is thread-safe either way.
|
|
26
|
+
|
|
11
27
|
## [5.1.0] - 2026-08-28
|
|
12
28
|
|
|
13
29
|
### Added
|
|
@@ -2557,7 +2573,8 @@ documentation platform and its CI.
|
|
|
2557
2573
|
`runtime/tools.py`, `PluginRegistry.pick`, `skill_runtime` LLM/batch
|
|
2558
2574
|
helpers; deps typer, rich, prompt-toolkit.
|
|
2559
2575
|
|
|
2560
|
-
[Unreleased]: https://github.com/agentdecksdk/agentdeck/compare/v5.
|
|
2576
|
+
[Unreleased]: https://github.com/agentdecksdk/agentdeck/compare/v5.2.0...HEAD
|
|
2577
|
+
[5.2.0]: https://github.com/agentdecksdk/agentdeck/compare/v5.1.0...v5.2.0
|
|
2561
2578
|
[5.1.0]: https://github.com/agentdecksdk/agentdeck/compare/v5.0.3...v5.1.0
|
|
2562
2579
|
[5.0.3]: https://github.com/agentdecksdk/agentdeck/compare/v5.0.0...v5.0.3
|
|
2563
2580
|
[5.0.0]: https://github.com/agentdecksdk/agentdeck/compare/v4.0.5...v5.0.0
|
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
# carry, and pytest's default traceback buries the assertion under frames nobody reads.
|
|
6
6
|
# `make check V=1` restores every tool's own full output.
|
|
7
7
|
V ?= 0
|
|
8
|
-
|
|
8
|
+
# In-repo, not /tmp: two worktrees running `make check` at once each get their own tree, so the
|
|
9
|
+
# log can never interleave with another checkout's (#518).
|
|
10
|
+
LOG = $(CURDIR)/.make-$@.log
|
|
9
11
|
ifeq ($(V),0)
|
|
10
12
|
E = @
|
|
11
13
|
PYTEST_ARGS = -q --no-header --tb=line -rf
|
|
@@ -283,7 +283,7 @@ def _context_for(
|
|
|
283
283
|
|
|
284
284
|
Only a workflow gets the invoker and the agent mint - a tool that could start another run is
|
|
285
285
|
no longer a leaf. A THREAD-executed tool's context also carries the running loop, which
|
|
286
|
-
switches its ``
|
|
286
|
+
switches its ``safepoint`` to a refusal.
|
|
287
287
|
"""
|
|
288
288
|
context_class = definition.context_class
|
|
289
289
|
if context_class is None:
|
|
@@ -63,7 +63,7 @@ def tool(target: Callable[..., Any] | None = None, *, name: str | None = None, d
|
|
|
63
63
|
|
|
64
64
|
@tool
|
|
65
65
|
async def search(ctx: ToolCtx[Corpus], query: str) -> list[str]:
|
|
66
|
-
|
|
66
|
+
ctx.reporter.info("Searching", query=query)
|
|
67
67
|
return await ctx.data.search(query)
|
|
68
68
|
|
|
69
69
|
The context parameter is injected by the runtime and is absent from the schema the model is
|
|
@@ -153,8 +153,8 @@ def _bridge(analysis: CallableAnalysis, workers: SyncToolWorkers | None) -> Call
|
|
|
153
153
|
f"{type(run).__name__} rather than an AgentDeck run context - a tool compiled by "
|
|
154
154
|
"AgentDeck has to be played by an AgentDeck run."
|
|
155
155
|
)
|
|
156
|
-
# Absent for an awaited body: it never leaves this loop, so it never needs
|
|
157
|
-
#
|
|
156
|
+
# Absent for an awaited body: it never leaves this loop, so it never needs safepoint()'s
|
|
157
|
+
# refusal to guard an await point it can reach the ordinary way.
|
|
158
158
|
tool_ctx = ToolCtx(run, _loop=None if awaits else asyncio.get_running_loop())
|
|
159
159
|
bound = visible_signature.bind(*supplied, **kwargs)
|
|
160
160
|
# `BoundArguments` already knows how to split a name -> value mapping back into positional
|
|
@@ -27,7 +27,7 @@ from uuid import uuid4
|
|
|
27
27
|
from agentdeck.core.control import Gate, RunPausedError
|
|
28
28
|
from agentdeck.core.errors import DOCS_URL, ConfigError
|
|
29
29
|
from agentdeck.core.events import KnownPayload, RunInterrupted
|
|
30
|
-
from agentdeck.core.reporting import Reporter
|
|
30
|
+
from agentdeck.core.reporting import Reporter
|
|
31
31
|
from agentdeck.core.status import RunStatus
|
|
32
32
|
|
|
33
33
|
logger = logging.getLogger(__name__)
|
|
@@ -168,8 +168,8 @@ class ToolCtx[T]:
|
|
|
168
168
|
A view over :class:`RunContext`, not a copy: ``data`` is the caller's own object, by
|
|
169
169
|
reference, never serialized into a prompt. ``_channel`` is present only where the executor
|
|
170
170
|
playing this body can park it in place; ``_loop`` only when it runs on a worker thread, which
|
|
171
|
-
|
|
172
|
-
|
|
171
|
+
makes :meth:`safepoint` refuse. Orchestration (``invoke``, ``parallel``, ``ask``, ``approve``)
|
|
172
|
+
is :class:`WorkflowCtx`'s alone.
|
|
173
173
|
"""
|
|
174
174
|
|
|
175
175
|
_run: RunContext
|
|
@@ -194,13 +194,10 @@ class ToolCtx[T]:
|
|
|
194
194
|
return cast("AgentInstance | None", self._run.agent)
|
|
195
195
|
|
|
196
196
|
@property
|
|
197
|
-
def reporter(self) -> Reporter
|
|
198
|
-
"""The run's report channel:
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
if self._loop is None:
|
|
202
|
-
return self._run.reporter
|
|
203
|
-
return SyncReporter(self._run.reporter, self._loop)
|
|
197
|
+
def reporter(self) -> Reporter:
|
|
198
|
+
"""The run's report channel: always synchronous, so a THREAD-executed body calls it the
|
|
199
|
+
same way an ASYNC one does."""
|
|
200
|
+
return self._run.reporter
|
|
204
201
|
|
|
205
202
|
@property
|
|
206
203
|
def run_id(self) -> str:
|