agentdeck-sdk 5.2.0__tar.gz → 5.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentdeck_sdk-5.2.0/.claude → agentdeck_sdk-5.2.1/.agents}/skills/release/SKILL.md +20 -8
- {agentdeck_sdk-5.2.0/.agents → agentdeck_sdk-5.2.1/.claude}/skills/release/SKILL.md +20 -8
- agentdeck_sdk-5.2.1/.import_linter_cache/agentdeck.meta.json +1 -0
- agentdeck_sdk-5.2.1/.import_linter_cache/cc0de4ae2e5697bf7cf3a0b9c3aff14b2ece24cd.data.json +1 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/CHANGELOG.md +9 -1
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/PKG-INFO +1 -1
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/engineering/coding-agents.md +3 -0
- agentdeck_sdk-5.2.1/docs-site/app/generated-version.ts +2 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/landing-components.tsx +2 -3
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/layout.tsx +2 -1
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/resources/changelog.mdx +5 -13
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/llms-full.txt +5 -13
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/pyproject.toml +1 -1
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/scripts/generate_docs_reference.py +14 -0
- agentdeck_sdk-5.2.1/scripts/release_bump.py +208 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_generated_reference.py +14 -6
- agentdeck_sdk-5.2.1/tests/test_release_bump.py +183 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/uv.lock +1 -1
- agentdeck_sdk-5.2.0/.import_linter_cache/agentdeck.meta.json +0 -1
- agentdeck_sdk-5.2.0/.import_linter_cache/cc0de4ae2e5697bf7cf3a0b9c3aff14b2ece24cd.data.json +0 -1
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.agentdeck/agents/greeter/agent.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.agents/skills/deck-cleanup/SKILL.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.agents/skills/deck-cleanup/agents/openai.yaml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.agents/skills/deck-cleanup/references/narrative-prose.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.agents/skills/open-issue/SKILL.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.agents/skills/ship-issue/SKILL.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/agents/deck-cleanup.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/agents/deck-dev.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/agents/deck-reviewer.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/agents/docs-reviewer.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/agents/docs-writer.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/settings.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/milestone-retro/SKILL.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/milestone-retro/references/judging.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/milestone-retro/references/queries.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/open-issue/SKILL.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/review-pr/SKILL.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/review-pr/references/attack.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/review-pr/references/classify.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/review-pr/references/craft.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/review-pr/references/templates.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/ship-issue/SKILL.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/ship-pr/SKILL.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/ship-pr/references/design.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/ship-pr/references/implement.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.claude/skills/ship-pr/references/self-review.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.codex/agents/deck-cleanup.toml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.codex/agents/deck-dev.toml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.codex/agents/deck-reviewer.toml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.codex/agents/docs-reviewer.toml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.codex/agents/docs-writer.toml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.dockerignore +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.env.example +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.gitattributes +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/CODEOWNERS +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/ISSUE_TEMPLATE/docs_contribution.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/ISSUE_TEMPLATE/finding.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/assets/contributors/merged.png +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/assets/contributors/welcome.png +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/dependabot.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/workflows/ci.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/workflows/docs-check.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/workflows/docs-impact.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/workflows/docs-pages.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/workflows/first-contribution.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/workflows/issue-hygiene.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.github/workflows/release.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.gitignore +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.import_linter_cache/.gitignore +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.import_linter_cache/CACHEDIR.TAG +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.importlinter +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/.pre-commit-config.yaml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/AGENTS.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/CLAUDE.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/CODE_OF_CONDUCT.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/CONTRIBUTING.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/Dockerfile +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/LICENSE +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/Makefile +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/README.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/SECURITY.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/README.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/control/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/control/memory/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/control/memory/port.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/control/sqlite/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/control/sqlite/port.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/executors/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/executors/native/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/executors/native/executor.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/executors/openai_agents/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/executors/openai_agents/executor.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/executors/openai_agents/reconcile.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/executors/openai_agents/runconfig.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/executors/openai_agents/sessions.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/executors/openai_agents/translate.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/executors/stub/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/executors/stub/executor.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/leases/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/leases/memory/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/leases/memory/port.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/leases/sqlite/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/leases/sqlite/port.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/stores/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/stores/memory/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/stores/memory/store.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/stores/postgres/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/stores/postgres/store.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/stores/redis/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/stores/redis/store.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/stores/sqlite/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/stores/sqlite/store.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/telemetry/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/telemetry/langfuse/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/telemetry/langfuse/client.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/telemetry/langfuse/sink.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/telemetry/langfuse/trace.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/tools/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/tools/mcp/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/tools/mcp/lifecycle.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/tools/mcp/source.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/tools/mcp/transport.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/adapters/tools/mcp/wiring.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/agent.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/compile.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/hooks.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/injection.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/instructions.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/interrupts.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/native.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/runners/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/runners/agent.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/skills.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/tools.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/authoring/web_search.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/cli.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/composition.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/base.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/content.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/context.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/control.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/errors.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/events.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/invocable.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/ports/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/ports/control.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/ports/executor.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/ports/lease.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/ports/sink.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/ports/store.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/ports/tools.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/reporting.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/status.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/core/workers.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/deck.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/errors.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/mcp.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/observers.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/py.typed +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/runtime/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/runtime/capture.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/runtime/discovery.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/runtime/dispatch.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/runtime/registry.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/runtime/service.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/runtime/settings.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/serve.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/skills/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/skills/bundle.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/surfaces/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/surfaces/cli/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/surfaces/cli/chat.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/surfaces/serve/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/surfaces/serve/app.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/surfaces/serve/compat.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/testing.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/agentdeck/views.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/context7.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docker-compose.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/00-project-index.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/agentdeck-prd.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/ai-agents/ai_agent_repository_alignment_research.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/ai-agents/harness_change_log.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/ai-agents/solutions_for_aligning_ai_agents.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/ai-agents/sota_style_alignment_findings.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/README.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/components/card.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/components/spark.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/components/wordmark.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/contributor-merged.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/contributor-welcome.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/favicon.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/logo-black.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/logo-blue.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/logo-full.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/logo-mark.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/logo-traced-original.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/logo-white.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/logo.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/brand/social-card.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/beta-user-report-v3.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/decision-v3-entry-point.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/deck-capability-wrapper-pattern.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/discoverability-baseline.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/docs-site-plan.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/epic-agentdeck-v2-core.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/findings-register.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/milestone-0-findings.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/milestone-0-walking-skeleton.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/plan-166-delivery.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/plan-219-delivery.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/plan-adoption.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/plan-context-injection.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/plan-docs-ia.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/plan-jack-eval.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/plan-multimodal.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/plan-phase4-deck.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/plan-provider-credential-validation.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/plan-skills.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/plan-slop-comment-ratio.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/plan-v2-cutover.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/review-context-injection.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/review-phase4-deck.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/review-v3-outsider.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/roadmap-v3.1.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/roadmap-v3.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/delivery/workflow.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/design/adr-d11-store-assigns-seq-and-time.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/design/adr-d5-two-stores.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/design/agentdeck-v2-architecture.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/design/event-store-claims.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/design/execution-api-source.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/design/execution-api.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/design/run-identity.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/design/run-lifecycle.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/design/run-operations.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/design/sink-dispatch.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/design-system.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/engineering/README.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/engineering/architecture.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/engineering/coding-standards.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/engineering/dependencies.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/engineering/import-boundaries.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/engineering/principles.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/engineering/repository-policy.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/engineering/runtime-contracts.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/engineering/testing.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/patterns/README.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/patterns/comments.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/patterns/errors.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/patterns/lifecycle.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/patterns/tests.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/project-brief.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/prompts/pr0-baseline-prompt.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/prompts/pr0-review-prompt.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/prompts/pr1-event-schema-prompt.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs/spec.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/.env.development +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/.env.production +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/.gitignore +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/README.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/[[...mdxPath]]/page.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/brand-icons.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/brand.css +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/callout.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/contribute.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/deck-figure.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/design-system.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/diagram.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/docs-slugs.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/hero.css +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/hero.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/icon.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/install-line.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/jack-answer-link.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/jack-citations.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/jack-live.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/jack-stream.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/jack.css +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/jack.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/kind-icons.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/landing.css +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/mark.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/not-found.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/robots.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/site.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/app/sitemap.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/_meta.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/build-your-deck/_meta.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/build-your-deck/agents.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/build-your-deck/context.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/build-your-deck/deck.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/build-your-deck/skills.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/build-your-deck/tools.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/build-your-deck/workflows.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/examples/_meta.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/examples/index.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/index.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/integrations/_meta.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/integrations/existing-agents.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/integrations/mcp.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/integrations/openai-agents-sdk.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/jack/_meta.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/jack/notes.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/jack.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/meet-agentdeck/_meta.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/meet-agentdeck/mental-model.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/meet-agentdeck/overview.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/meet-agentdeck/quickstart.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/operate/_meta.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/operate/deployment.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/reference/_meta.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/reference/cli.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/reference/deck.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/reference/events.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/reference/python-api.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/reference/run.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/reference/settings.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/resources/_meta.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/resources/known-issues.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/resources/migration-guides.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/resources/troubleshooting.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/runs-and-control/_meta.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/runs-and-control/events.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/runs-and-control/human-input.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/runs-and-control/lifecycle-and-control.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/runs-and-control/pause-resume.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/runs-and-control/runs.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/content/runs-and-control/sessions.mdx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/mdx-components.tsx +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/next-env.d.ts +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/next.config.mjs +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/package-lock.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/package.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/card.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/contributor-merged.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/contributor-welcome.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/favicon.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/logo-black.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/logo-blue.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/logo-full.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/logo-mark.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/logo-traced-original.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/logo-white.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/logo.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/social-card.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/spark.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/brand/wordmark.svg +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/public/llms.txt +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/docs-site/tsconfig.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/agent-with-a-skill/.agentdeck/agents/handover_desk/agent.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/agent-with-a-skill/.agentdeck/skills/shift-notes/SKILL.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/agent-with-a-skill/README.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/agent-with-a-skill/run.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/chat-agent-with-a-tool/.agentdeck/agents/order_desk/agent.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/chat-agent-with-a-tool/README.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/chat-agent-with-a-tool/run.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/README.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/cloudflared.yml +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/eval.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/evals/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/evals/judge.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/evals/metrics.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/evals/run.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/evalset.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/jack/__init__.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/jack/agent.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/jack/corpus.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/jack/server.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/jack/session.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/examples/jack/run.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/scripts/check_commit_hygiene.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/scripts/check_docs_impact.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/scripts/concept_budget.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/scripts/quality_delta.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/scripts/repomap.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/scripts/slopcheck.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/scripts/sync_claude_to_codex.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/scripts/sync_roadmap.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/concurrency_worker.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/conftest.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/context_injection_subjects.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/case_types.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/conftest.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/context_subjects.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/contract_cases.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/live_stores.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/never_yields.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/openai_agents_cases.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/test_context_parity.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/test_control.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/test_control_port.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/test_event_stream.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/test_lease.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/test_resume.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/contract/test_store.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/conftest.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/agent.changed.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/answer.refused.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/artifact.created.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/control.observed.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/control.requested.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/custom.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/input.appended.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/message.completed.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/report.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/run.cancelled.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/run.completed.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/run.failed.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/run.interrupted.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/run.paused.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/run.resumed.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/run.started.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/text.delta.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/thought.delta.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/tool.call.completed.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/tool.call.started.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/snapshots/usage.reported.json +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/test_content.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/test_context.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/test_continuation.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/test_events.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/test_golden_json.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/test_import_law.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/test_model_config.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/test_old_reader_block_compat.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/test_old_reader_compat.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/test_reporting.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/test_run_lifecycle_tables.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/core/test_vocabularies_agree.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/crash_worker.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/event_log_checks.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/golden/README.md +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/golden/conftest.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/golden/fixture_project/.agentdeck/agents/greeter/agent.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/golden/snapshots/01_health.http +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/golden/snapshots/02_chat.http +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/golden/snapshots/03_chat_stream.http +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/golden/snapshots/04_chat_missing_field.http +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/golden/snapshots/05_agent_unknown.http +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/golden/test_golden_wire.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/plays.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/project_executors.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_agent_changed.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_agent_model_resolution.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_authoring.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_brand_assets.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_changelog.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_child_runs.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_cli.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_cli_render.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_commit_hygiene.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_composition.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_context_injection.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_context_validation.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_crash_reconciliation.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_deck.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_docs_examples.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_docs_impact.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_docs_site.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_errors.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_examples.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_executor_plays.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_governance_workflows.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_handoff_ends_on_user_turn.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_handoff_round_trip.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_handoffs.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_instructions_and_hooks.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_invocable_registry.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_jack.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_jack_server.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_langfuse_sink.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_langfuse_tracer.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_mcp.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_mcp_tool_source.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_memory_store.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_model_providers.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_multiprocess_concurrency.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_native_workflow.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_observability.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_openai_agents_engine.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_openai_agents_reconcile.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_openai_agents_sessions.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_openai_agents_tool_failure.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_package.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_postgres_store.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_redis_store.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_run_config_parity.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_run_control.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_run_reporting.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_runtime_service.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_serve.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_serve_compat.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_serve_session_claim.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_settings.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_sink_dispatch.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_skills.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_sqlite_control_port.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_sqlite_store.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_streaming.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_subagents.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_sync_tool_workers.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_tool_compilation.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_uc1_handoff.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_uc3_slowpoke.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_views.py +0 -0
- {agentdeck_sdk-5.2.0 → agentdeck_sdk-5.2.1}/tests/test_web_search.py +0 -0
|
@@ -20,30 +20,42 @@ A release needs two labeled `chore` issues and two PRs, not one of each.
|
|
|
20
20
|
`git push origin dev` is rejected directly ("push declined due to repository rule violations").
|
|
21
21
|
The bump goes through its own PR into `dev`.
|
|
22
22
|
|
|
23
|
+
A PR body closing more than one issue needs one `Fixes #N` (or `Closes #N`) per line: GitHub's
|
|
24
|
+
closing-keyword parser only recognizes the first reference in a comma-separated list, silently
|
|
25
|
+
leaving the rest open (#541).
|
|
26
|
+
|
|
23
27
|
## Release Steps
|
|
24
28
|
|
|
25
29
|
1. **Version:** Confirm SemVer bump (`pyproject.toml` and `CHANGELOG.md`).
|
|
26
30
|
2. **Preflight:** Verify clean working tree, non-empty `[Unreleased]` section, and `make check`
|
|
27
31
|
is 100% green. Run it unpiped (`make check`, not `make check | tail`) so its own exit code is
|
|
28
32
|
what you read; a pipe reports the last command's status, not the gate's.
|
|
29
|
-
3. **Bump
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
3. **Bump issue:** `python scripts/release_bump.py issues X.Y.Z` creates (or reuses) the `vX.Y.Z`
|
|
34
|
+
milestone, assigns it to every issue `Fixes`/`Closes`-referenced since the last tag, opens the
|
|
35
|
+
labeled `chore: cut and ship vX.Y.Z` issue, and prints its number.
|
|
36
|
+
4. **Bump PR into `dev`:**
|
|
37
|
+
- `python scripts/release_bump.py bump X.Y.Z` updates `pyproject.toml`'s version and moves
|
|
38
|
+
`CHANGELOG.md`'s `[Unreleased]` entries to a dated `## [X.Y.Z]` heading with compare links.
|
|
32
39
|
- Run `python scripts/generate_docs_reference.py` once, then verify
|
|
33
40
|
`python scripts/generate_docs_reference.py --check`.
|
|
34
|
-
- Commit: `chore(release): vX.Y.Z`. Open the PR against the
|
|
41
|
+
- Commit: `chore(release): vX.Y.Z`. Open the PR against the bump issue from step 3
|
|
35
42
|
(`Closes #N`), wait for every required check, merge.
|
|
36
|
-
|
|
43
|
+
5. **Promotion issue:** `python scripts/release_bump.py promote X.Y.Z` opens the labeled
|
|
44
|
+
`chore: release vX.Y.Z to main` issue in the same milestone and prints its number.
|
|
45
|
+
6. **Promotion PR, `dev` to `main`:** Open it against the promotion issue from step 5 (`Refs #N`).
|
|
37
46
|
`Issue hygiene`, `slop`, and `Check affected documentation` skip themselves on a `main`-based
|
|
38
47
|
PR: each already ran the real per-PR version of itself against `dev` at merge time, and this
|
|
39
48
|
diff is the whole release cycle re-evaluated, not a new change. Wait for `check` and
|
|
40
49
|
`Build documentation`, then merge and close the promotion issue by hand.
|
|
41
|
-
|
|
50
|
+
7. **Tag:** `git tag vX.Y.Z && git push origin vX.Y.Z`. `release.yml` publishes to PyPI on this
|
|
42
51
|
push; there is no undo once the tag lands.
|
|
43
|
-
|
|
52
|
+
8. **Close the milestone:** `python scripts/release_bump.py close-milestone X.Y.Z`, right after
|
|
53
|
+
the tag push. Every past release skipped this: `v5.0.0` through `v5.1.0` all shipped with 0
|
|
54
|
+
open issues but stayed open on GitHub.
|
|
55
|
+
9. **Deploy:** In the `prod/` worktree (detached on a tag on purpose, so the public only sees
|
|
44
56
|
something released), run `./deploy-prod.sh vX.Y.Z`. It rebuilds `docs-site`, restarts
|
|
45
57
|
`agentdeck-docs-static.service`, and health-checks `127.0.0.1:4321`.
|
|
46
|
-
|
|
58
|
+
10. **Report:** Return the GitHub release URL.
|
|
47
59
|
|
|
48
60
|
## Ground Rules
|
|
49
61
|
- Keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
|
|
@@ -20,30 +20,42 @@ A release needs two labeled `chore` issues and two PRs, not one of each.
|
|
|
20
20
|
`git push origin dev` is rejected directly ("push declined due to repository rule violations").
|
|
21
21
|
The bump goes through its own PR into `dev`.
|
|
22
22
|
|
|
23
|
+
A PR body closing more than one issue needs one `Fixes #N` (or `Closes #N`) per line: GitHub's
|
|
24
|
+
closing-keyword parser only recognizes the first reference in a comma-separated list, silently
|
|
25
|
+
leaving the rest open (#541).
|
|
26
|
+
|
|
23
27
|
## Release Steps
|
|
24
28
|
|
|
25
29
|
1. **Version:** Confirm SemVer bump (`pyproject.toml` and `CHANGELOG.md`).
|
|
26
30
|
2. **Preflight:** Verify clean working tree, non-empty `[Unreleased]` section, and `make check`
|
|
27
31
|
is 100% green. Run it unpiped (`make check`, not `make check | tail`) so its own exit code is
|
|
28
32
|
what you read; a pipe reports the last command's status, not the gate's.
|
|
29
|
-
3. **Bump
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
3. **Bump issue:** `python scripts/release_bump.py issues X.Y.Z` creates (or reuses) the `vX.Y.Z`
|
|
34
|
+
milestone, assigns it to every issue `Fixes`/`Closes`-referenced since the last tag, opens the
|
|
35
|
+
labeled `chore: cut and ship vX.Y.Z` issue, and prints its number.
|
|
36
|
+
4. **Bump PR into `dev`:**
|
|
37
|
+
- `python scripts/release_bump.py bump X.Y.Z` updates `pyproject.toml`'s version and moves
|
|
38
|
+
`CHANGELOG.md`'s `[Unreleased]` entries to a dated `## [X.Y.Z]` heading with compare links.
|
|
32
39
|
- Run `python scripts/generate_docs_reference.py` once, then verify
|
|
33
40
|
`python scripts/generate_docs_reference.py --check`.
|
|
34
|
-
- Commit: `chore(release): vX.Y.Z`. Open the PR against the
|
|
41
|
+
- Commit: `chore(release): vX.Y.Z`. Open the PR against the bump issue from step 3
|
|
35
42
|
(`Closes #N`), wait for every required check, merge.
|
|
36
|
-
|
|
43
|
+
5. **Promotion issue:** `python scripts/release_bump.py promote X.Y.Z` opens the labeled
|
|
44
|
+
`chore: release vX.Y.Z to main` issue in the same milestone and prints its number.
|
|
45
|
+
6. **Promotion PR, `dev` to `main`:** Open it against the promotion issue from step 5 (`Refs #N`).
|
|
37
46
|
`Issue hygiene`, `slop`, and `Check affected documentation` skip themselves on a `main`-based
|
|
38
47
|
PR: each already ran the real per-PR version of itself against `dev` at merge time, and this
|
|
39
48
|
diff is the whole release cycle re-evaluated, not a new change. Wait for `check` and
|
|
40
49
|
`Build documentation`, then merge and close the promotion issue by hand.
|
|
41
|
-
|
|
50
|
+
7. **Tag:** `git tag vX.Y.Z && git push origin vX.Y.Z`. `release.yml` publishes to PyPI on this
|
|
42
51
|
push; there is no undo once the tag lands.
|
|
43
|
-
|
|
52
|
+
8. **Close the milestone:** `python scripts/release_bump.py close-milestone X.Y.Z`, right after
|
|
53
|
+
the tag push. Every past release skipped this: `v5.0.0` through `v5.1.0` all shipped with 0
|
|
54
|
+
open issues but stayed open on GitHub.
|
|
55
|
+
9. **Deploy:** In the `prod/` worktree (detached on a tag on purpose, so the public only sees
|
|
44
56
|
something released), run `./deploy-prod.sh vX.Y.Z`. It rebuilds `docs-site`, restarts
|
|
45
57
|
`agentdeck-docs-static.service`, and health-checks `127.0.0.1:4321`.
|
|
46
|
-
|
|
58
|
+
10. **Report:** Return the GitHub release URL.
|
|
47
59
|
|
|
48
60
|
## Ground Rules
|
|
49
61
|
- Keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"agentdeck.surfaces": 1787998003.2833204, "agentdeck.core.ports.store": 1787998003.2813082, "agentdeck.adapters.leases.sqlite.port": 1787998003.2780778, "agentdeck.adapters.tools.mcp.wiring": 1787998003.279437, "agentdeck.adapters": 1787998003.2765703, "agentdeck.skills.bundle": 1787998003.2833204, "agentdeck.core.invocable": 1787998003.2806702, "agentdeck.adapters.executors.openai_agents.reconcile": 1787998003.2772937, "agentdeck.adapters.executors.openai_agents.executor": 1787998003.2772937, "agentdeck.core.ports.lease": 1787998003.2813082, "agentdeck": 1787998003.2765703, "agentdeck.authoring.instructions": 1787998003.2797065, "agentdeck.adapters.stores": 1787998003.2780778, "agentdeck.runtime.service": 1787998003.2823915, "agentdeck.adapters.tools.mcp.source": 1787998003.279437, "agentdeck.adapters.stores.sqlite": 1787998003.2786093, "agentdeck.adapters.telemetry.langfuse": 1787998003.2790496, "agentdeck.authoring": 1787998003.279437, "agentdeck.adapters.control.sqlite.port": 1787998003.276945, "agentdeck.adapters.leases.memory": 1787998003.2779217, "agentdeck.adapters.executors.stub.executor": 1787998003.2777145, "agentdeck.deck": 1787998003.2813082, "agentdeck.adapters.control.memory.port": 1787998003.2768457, "agentdeck.adapters.leases": 1787998003.2777145, "agentdeck.adapters.stores.memory.store": 1787998003.2782755, "agentdeck.surfaces.serve.compat": 1787998003.283601, "agentdeck.authoring.skills": 1787998003.2802627, "agentdeck.adapters.control": 1787998003.2766893, "agentdeck.core.content": 1787998003.2806702, "agentdeck.authoring.web_search": 1787998003.2802627, "agentdeck.errors": 1787998003.2813082, "agentdeck.authoring.tools": 1787998003.2802627, "agentdeck.core.control": 1787998003.2806702, "agentdeck.core.workers": 1787998003.2813082, "agentdeck.views": 1787998003.283601, "agentdeck.core.ports.tools": 1787998003.2813082, "agentdeck.runtime.registry": 1787998003.2823915, "agentdeck.adapters.executors.openai_agents.runconfig": 1787998003.2772937, "agentdeck.authoring.interrupts": 1787998003.2797065, "agentdeck.adapters.executors.native.executor": 1787998003.2771342, "agentdeck.core.ports.sink": 1787998003.2813082, "agentdeck.authoring.native": 1787998003.2797065, "agentdeck.authoring.compile": 1787998003.2797065, "agentdeck.adapters.executors.native": 1787998003.277085, "agentdeck.core.context": 1787998003.2806702, "agentdeck.core.base": 1787998003.2806702, "agentdeck.adapters.control.sqlite": 1787998003.2768457, "agentdeck.runtime.capture": 1787998003.2823915, "agentdeck.core.reporting": 1787998003.2813082, "agentdeck.runtime.settings": 1787998003.2823915, "agentdeck.surfaces.serve": 1787998003.2834902, "agentdeck.authoring.runners.agent": 1787998003.2802627, "agentdeck.adapters.telemetry.langfuse.sink": 1787998003.2791069, "agentdeck.runtime.dispatch": 1787998003.2823915, "agentdeck.core.ports": 1787998003.2806702, "agentdeck.authoring.injection": 1787998003.2797065, "agentdeck.adapters.telemetry": 1787998003.2788315, "agentdeck.adapters.control.memory": 1787998003.2767885, "agentdeck.adapters.stores.redis.store": 1787998003.2786093, "agentdeck.adapters.executors.openai_agents": 1787998003.2771342, "agentdeck.cli": 1787998003.2802627, "agentdeck.core.errors": 1787998003.2806702, "agentdeck.adapters.leases.memory.port": 1787998003.2779748, "agentdeck.runtime": 1787998003.2813082, "agentdeck.authoring.runners": 1787998003.2797065, "agentdeck.adapters.stores.memory": 1787998003.2782257, "agentdeck.mcp": 1787998003.2813082, "agentdeck.adapters.leases.sqlite": 1787998003.2779748, "agentdeck.adapters.tools": 1787998003.2791069, "agentdeck.adapters.tools.mcp.transport": 1787998003.279437, "agentdeck.authoring.hooks": 1787998003.2797065, "agentdeck.adapters.stores.sqlite.store": 1787998003.2788315, "agentdeck.surfaces.cli.chat": 1787998003.2834902, "agentdeck.surfaces.serve.app": 1787998003.283601, "agentdeck.adapters.stores.postgres.store": 1787998003.2784145, "agentdeck.adapters.stores.postgres": 1787998003.2782755, "agentdeck.core.ports.executor": 1787998003.2813082, "agentdeck.adapters.executors": 1787998003.276945, "agentdeck.adapters.tools.mcp": 1787998003.2793853, "agentdeck.composition": 1787998003.2802627, "agentdeck.core": 1787998003.2802627, "agentdeck.serve": 1787998003.2823915, "agentdeck.adapters.telemetry.langfuse.trace": 1787998003.2791069, "agentdeck.runtime.discovery": 1787998003.2823915, "agentdeck.adapters.executors.openai_agents.translate": 1787998003.2772937, "agentdeck.observers": 1787998003.2813082, "agentdeck.adapters.tools.mcp.lifecycle": 1787998003.279437, "agentdeck.core.events": 1787998003.2806702, "agentdeck.authoring.agent": 1787998003.2797065, "agentdeck.skills": 1787998003.2823915, "agentdeck.core.ports.control": 1787998003.2813082, "agentdeck.core.status": 1787998003.2813082, "agentdeck.adapters.executors.openai_agents.sessions": 1787998003.2772937, "agentdeck.surfaces.cli": 1787998003.2834408, "agentdeck.adapters.stores.redis": 1787998003.2784145, "agentdeck.adapters.telemetry.langfuse.client": 1787998003.2791069, "agentdeck.testing": 1787998003.283601, "agentdeck.adapters.executors.stub": 1787998003.2772937}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"agentdeck.adapters.control.sqlite.port":[["agentdeck.errors",17,"from agentdeck.errors import StoreError"],["typing",13,"from typing import TYPE_CHECKING"],["pathlib",21,"from pathlib import Path"],["sqlite3",10,"import sqlite3"],["agentdeck.core.ports.control",16,"from agentdeck.core.ports.control import ControlPort"],["functools",12,"from functools import partial"],["agentdeck.core.control",15,"from agentdeck.core.control import ControlSignal, Signal"],["__future__",7,"from __future__ import annotations"],["asyncio",9,"import asyncio"],["collections",20,"from collections.abc import Callable"],["contextlib",11,"from contextlib import suppress"]],"agentdeck.adapters.control":[],"agentdeck.adapters.executors":[],"agentdeck.authoring.interrupts":[["__future__",8,"from __future__ import annotations"],["typing",10,"from typing import Any, Literal, NotRequired, TypedDict"]],"agentdeck.runtime.service":[["agentdeck.runtime.dispatch",53,"from agentdeck.runtime.dispatch import SinkDispatch"],["agentdeck.core.events",27,"from agentdeck.core.events import ("],["asyncio",15,"import asyncio"],["agentdeck.core.status",41,"from agentdeck.core.status import ("],["dataclasses",19,"from dataclasses import dataclass, replace"],["agentdeck.core.context",25,"from agentdeck.core.context import RunContext"],["uuid",22,"from uuid import uuid4"],["agentdeck.core.control",26,"from agentdeck.core.control import CONTROL_POLL_INTERVAL, Gate, Signal"],["agentdeck.core.content",59,"from agentdeck.core.content import Input"],["logging",16,"import logging"],["agentdeck.core.content",24,"from agentdeck.core.content import as_answer"],["collections",56,"from collections.abc import AsyncGenerator, AsyncIterator, Mapping, Sequence"],["datetime",20,"from datetime import timedelta"],["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.control",60,"from agentdeck.core.control import ControlSignal"],["agentdeck.core.ports",63,"from agentdeck.core.ports import ControlPort, EventStorePort, Executor, LeasePort, Observer"],["agentdeck.core.reporting",40,"from agentdeck.core.reporting import Reporter"],["typing",57,"from typing import Any"],["collections",17,"from collections import deque"],["typing",21,"from typing import TYPE_CHECKING, Final"],["agentdeck.core.ports.store",64,"from agentdeck.core.ports.store import RunSummary"],["agentdeck.core.invocable",62,"from agentdeck.core.invocable import InvocableSpec"],["contextlib",18,"from contextlib import aclosing, asynccontextmanager, suppress"],["__future__",13,"from __future__ import annotations"]],"agentdeck.adapters.stores.postgres.store":[["psycopg",24,"from psycopg import errors as pg_errors"],["agentdeck.core.events",28,"from agentdeck.core.events import Event"],["agentdeck.core.status",39,"from agentdeck.core.status import RunStatus"],["agentdeck.core.status",30,"from agentdeck.core.status import LIFECYCLE_KINDS, STATES, can_resume, status_of"],["__future__",17,"from __future__ import annotations"],["agentdeck.core.ports",29,"from agentdeck.core.ports import EventStorePort, RunSummary, SessionClaim"],["asyncio",19,"import asyncio"],["agentdeck.core.context",37,"from agentdeck.core.context import RunContext"],["hashlib",20,"import hashlib"],["psycopg",23,"import psycopg"],["typing",21,"from typing import TYPE_CHECKING, Any"],["agentdeck.adapters.stores",27,"from agentdeck.adapters.stores import _refuse_if_cancelled"],["datetime",35,"from datetime import timedelta"],["psycopg",25,"from psycopg import sql"],["agentdeck.core.events",38,"from agentdeck.core.events import KnownPayload, RunResumed, RunStarted"],["collections",34,"from collections.abc import Awaitable, Callable, Sequence"],["agentdeck.errors",31,"from agentdeck.errors import DuplicateKeyError, StoreError"]],"agentdeck.runtime.capture":[["__future__",12,"from __future__ import annotations"],["enum",14,"from enum import StrEnum"],["pydantic",16,"from pydantic import BaseModel"]],"agentdeck.adapters.executors.native":[["agentdeck.adapters.executors.native.executor",3,"from agentdeck.adapters.executors.native.executor import NativeExecutor"]],"agentdeck.runtime.dispatch":[["agentdeck.core.events",31,"from agentdeck.core.events import Event"],["agentdeck.core.ports",32,"from agentdeck.core.ports import Observer"],["asyncio",23,"import asyncio"],["__future__",21,"from __future__ import annotations"],["logging",24,"import logging"],["typing",26,"from typing import TYPE_CHECKING"],["collections",29,"from collections.abc import Callable"],["time",25,"import time"]],"agentdeck.adapters.executors.openai_agents.sessions":[["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",53,"from redis.asyncio import Redis"],["agentdeck.runtime.settings",30,"from agentdeck.runtime.settings import SessionSettings"],["redis",27,"from redis.asyncio import Redis"],["agents",68,"from agents.extensions.memory import RedisSession"],["__future__",19,"from __future__ import annotations"]],"agentdeck.adapters.executors.openai_agents.translate":[["json",14,"import json"],["hashlib",13,"import hashlib"],["__future__",11,"from __future__ import annotations"],["agentdeck.core.events",18,"from agentdeck.core.events import ("],["typing",16,"from typing import Any"],["logging",15,"import logging"]],"agentdeck.surfaces.serve":[["__future__",3,"from __future__ import annotations"],["agentdeck.surfaces.serve.app",5,"from agentdeck.surfaces.serve.app import build_app"]],"agentdeck.core.context":[["uuid",25,"from uuid import uuid4"],["agentdeck.core.reporting",30,"from agentdeck.core.reporting import Reporter"],["agentdeck.core.control",27,"from agentdeck.core.control import Gate, RunPausedError"],["dataclasses",23,"from dataclasses import dataclass, field"],["agentdeck.core.invocable",40,"from agentdeck.core.invocable import AgentInstance"],["agentdeck.core.events",29,"from agentdeck.core.events import KnownPayload, RunInterrupted"],["asyncio",20,"import asyncio"],["asyncio",36,"from asyncio import AbstractEventLoop"],["typing",24,"from typing import TYPE_CHECKING, Any, NoReturn, Protocol, cast, runtime_checkable"],["inspect",21,"import inspect"],["collections",37,"from collections.abc import Callable, Coroutine"],["agentdeck.core.status",31,"from agentdeck.core.status import RunStatus"],["logging",22,"import logging"],["agentdeck.core.errors",28,"from agentdeck.core.errors import DOCS_URL, ConfigError"],["agentdeck.core.base",39,"from agentdeck.core.base import JsonData"],["__future__",18,"from __future__ import annotations"]],"agentdeck.core.reporting":[["typing",16,"from typing import TYPE_CHECKING"],["collections",21,"from collections import deque"],["agentdeck.core.base",23,"from agentdeck.core.base import JsonData"],["__future__",12,"from __future__ import annotations"],["threading",15,"import threading"],["agentdeck.core.events",18,"from agentdeck.core.events import Reported"],["agentdeck.core.events",24,"from agentdeck.core.events import KnownPayload"],["logging",14,"import logging"]],"agentdeck.authoring.compile":[["agentdeck.core.workers",67,"from agentdeck.core.workers import SyncToolWorkers"],["agentdeck.authoring.native",53,"from agentdeck.authoring.native import NativeDefinition"],["agents",47,"from agents import ModelSettings"],["re",43,"import re"],["typing",44,"from typing import TYPE_CHECKING, Any, get_args, get_origin"],["agents",46,"from agents import Agent as SDKAgent"],["collections",61,"from collections.abc import Awaitable, Callable, Mapping, Sequence"],["agentdeck.authoring.agent",65,"from agentdeck.authoring.agent import Agent"],["agents",48,"from agents import Tool as SDKTool"],["agentdeck.errors",57,"from agentdeck.errors import ConfigError, NotFoundError"],["__future__",41,"from __future__ import annotations"],["agentdeck.authoring.instructions",52,"from agentdeck.authoring.instructions import compile_instructions"],["agentdeck.authoring.native",54,"from agentdeck.authoring.native import tool as _native_tool"],["agentdeck.adapters.tools.mcp.wiring",50,"from agentdeck.adapters.tools.mcp.wiring import mcp_status_banner, resolve_agent_mcp_status"],["agentdeck.core.context",56,"from agentdeck.core.context import ToolCtx # noqa: TC001 - a subagent tool's own annotation, resolved at runtime"],["agents",63,"from agents.tool import FunctionTool"],["agentdeck.runtime.settings",58,"from agentdeck.runtime.settings import get_settings"],["agentdeck.authoring.agent",217,"from agentdeck.authoring.agent import Agent as AuthoringAgent"],["agentdeck.authoring.tools",55,"from agentdeck.authoring.tools import compile_tool"],["agentdeck.core.context",66,"from agentdeck.core.context import RunContext"],["agentdeck.authoring.hooks",51,"from agentdeck.authoring.hooks import compile_hooks"]],"agentdeck.adapters.telemetry":[],"agentdeck.adapters.executors.openai_agents.executor":[["agentdeck.errors",55,"from agentdeck.errors import ConfigError"],["agentdeck.core.control",51,"from agentdeck.core.control import ControlSignalled"],["json",37,"import json"],["__future__",34,"from __future__ import annotations"],["agents",60,"from agents.items import TResponseInputItem"],["agentdeck.core.invocable",68,"from agentdeck.core.invocable import InvocableSpec"],["agents",62,"from agents.result import RunResultStreaming"],["dataclasses",36,"import dataclasses"],["collections",38,"from collections.abc import Callable"],["collections",58,"from collections.abc import AsyncGenerator, AsyncIterator, Sequence"],["agentdeck.core.ports",53,"from agentdeck.core.ports import Executor"],["typing",41,"from typing import TYPE_CHECKING, Any, ClassVar, cast"],["agentdeck.adapters.executors.openai_agents.sessions",48,"from agentdeck.adapters.executors.openai_agents.sessions import ExecutionStore"],["agentdeck.adapters.executors.openai_agents.reconcile",46,"from agentdeck.adapters.executors.openai_agents.reconcile import reconcile, render_data_block"],["dataclasses",40,"from dataclasses import dataclass"],["agents",43,"from agents import Agent, Runner"],["agents",63,"from agents.usage import Usage as SDKUsage"],["agentdeck.core.content",50,"from agentdeck.core.content import AudioBlock, DataBlock, ImageBlock, ResourceBlock, TextBlock, coerce_input"],["agentdeck.core.events",67,"from agentdeck.core.events import Event, KnownPayload"],["contextlib",39,"from contextlib import AbstractAsyncContextManager, aclosing, asynccontextmanager, nullcontext"],["agentdeck.core.status",54,"from agentdeck.core.status import Play, continuation_of"],["pydantic",44,"from pydantic import BaseModel"],["agents",61,"from agents.memory.session import Session"],["agentdeck.core.context",66,"from agentdeck.core.context import RunContext"],["agentdeck.adapters.executors.openai_agents.translate",49,"from agentdeck.adapters.executors.openai_agents.translate import translate"],["agentdeck.core.events",52,"from agentdeck.core.events import RunCompleted, Usage, UsageReported"],["agentdeck.core.content",65,"from agentdeck.core.content import ContentBlock, Input"],["agentdeck.adapters.executors.openai_agents.runconfig",47,"from agentdeck.adapters.executors.openai_agents.runconfig import RunSettings, build_run_config"]],"agentdeck.surfaces.cli":[["__future__",3,"from __future__ import annotations"],["agentdeck.surfaces.cli.chat",5,"from agentdeck.surfaces.cli.chat import render, stream_chat"]],"agentdeck.adapters.telemetry.langfuse.trace":[["agentdeck.core.events",20,"from agentdeck.core.events import Usage"],["typing",15,"from typing import TYPE_CHECKING, Any, Literal, Protocol"],["__future__",13,"from __future__ import annotations"],["collections",18,"from collections.abc import Mapping"]],"agentdeck.adapters.stores.memory.store":[["agentdeck.core.status",12,"from agentdeck.core.status import LIFECYCLE_KINDS, STATES, RunStatus, can_resume, status_of"],["agentdeck.core.events",10,"from agentdeck.core.events import Event"],["collections",16,"from collections.abc import Callable, Sequence"],["datetime",17,"from datetime import timedelta"],["agentdeck.adapters.stores",9,"from agentdeck.adapters.stores import _refuse_if_cancelled"],["agentdeck.core.events",20,"from agentdeck.core.events import KnownPayload, RunResumed, RunStarted"],["__future__",3,"from __future__ import annotations"],["datetime",6,"from datetime import UTC, datetime"],["agentdeck.core.context",19,"from agentdeck.core.context import RunContext"],["typing",7,"from typing import TYPE_CHECKING"],["agentdeck.errors",13,"from agentdeck.errors import DuplicateKeyError"],["asyncio",5,"import asyncio"],["agentdeck.core.ports",11,"from agentdeck.core.ports import EventStorePort, RunSummary, SessionClaim"]],"agentdeck.runtime.registry":[["importlib",6,"import importlib.util"],["typing",12,"from typing import Generic, TypeVar"],["agentdeck.errors",14,"from agentdeck.errors import ConfigError, NotFoundError"],["types",8,"import types"],["dataclasses",9,"from dataclasses import dataclass, field"],["__future__",3,"from __future__ import annotations"],["pathlib",11,"from pathlib import Path"],["sys",7,"import sys"],["importlib",10,"from importlib.machinery import ModuleSpec"],["importlib",5,"import importlib"]],"agentdeck.adapters.tools":[],"agentdeck.adapters.executors.stub":[["agentdeck.adapters.executors.stub.executor",3,"from agentdeck.adapters.executors.stub.executor import Step, StubExecutor, stub_spec"]],"agentdeck.authoring.hooks":[["collections",31,"from collections.abc import Callable"],["agentdeck.errors",28,"from agentdeck.errors import ConfigError"],["agentdeck.authoring.injection",26,"from agentdeck.authoring.injection import analyze_callable, check_context_type, describe_callable"],["typing",22,"from typing import TYPE_CHECKING, Any"],["agents",24,"from agents.lifecycle import AgentHooks"],["agentdeck.core.context",27,"from agentdeck.core.context import RunContext, ToolCtx"],["__future__",19,"from __future__ import annotations"],["inspect",21,"import inspect"]],"agentdeck.adapters.executors.openai_agents.reconcile":[["typing",29,"from typing import TYPE_CHECKING, Any, Literal"],["collections",36,"from collections.abc import Iterable, Sequence"],["agentdeck.core.content",41,"from agentdeck.core.content import Input"],["agentdeck.core.content",32,"from agentdeck.core.content import DataBlock, TextBlock"],["agentdeck.core.events",42,"from agentdeck.core.events import Event"],["agentdeck.core.events",33,"from agentdeck.core.events import Custom, InputAppended, MessageCompleted, RunCancelled, RunStarted"],["agents",38,"from agents.items import TResponseInputItem"],["logging",28,"import logging"],["__future__",24,"from __future__ import annotations"],["agents",39,"from agents.memory.session import Session"],["asyncio",26,"import asyncio"],["weakref",30,"from weakref import WeakKeyDictionary"],["json",27,"import json"]],"agentdeck.adapters.control.memory":[["agentdeck.adapters.control.memory.port",3,"from agentdeck.adapters.control.memory.port import MemoryControlPort"]],"agentdeck.serve":[["agentdeck.core.events",51,"from agentdeck.core.events import Event"],["uvicorn",285,"import uvicorn"],["os",37,"import os"],["typing",39,"from typing import TYPE_CHECKING, Any"],["fastapi",49,"from fastapi import FastAPI"],["agentdeck.core.status",42,"from agentdeck.core.status import status_of"],["__future__",33,"from __future__ import annotations"],["agentdeck.errors",43,"from agentdeck.errors import AgentdeckError, NotFoundError, RunStateError, SessionBusyError"],["fastapi",77,"from fastapi import FastAPI, HTTPException, Request"],["agentdeck.surfaces.serve.compat",44,"from agentdeck.surfaces.serve.compat import chat_frames, chat_result"],["contextlib",38,"from contextlib import aclosing, asynccontextmanager"],["collections",47,"from collections.abc import AsyncGenerator, AsyncIterator, Awaitable, Callable"],["agentdeck.deck",58,"from agentdeck.deck import Deck"],["argparse",35,"import argparse"],["fastapi",78,"from fastapi.responses import JSONResponse, StreamingResponse"],["agentdeck.core.content",41,"from agentdeck.core.content import coerce_input"],["logging",36,"import logging"],["agentdeck.deck",52,"from agentdeck.deck import Deck"]],"agentdeck.core.ports.control":[["typing",17,"from typing import TYPE_CHECKING"],["__future__",14,"from __future__ import annotations"],["agentdeck.core.control",20,"from agentdeck.core.control import ControlSignal, Signal"],["abc",16,"from abc import ABC, abstractmethod"]],"agentdeck.runtime.discovery":[["agentdeck.authoring.native",16,"from agentdeck.authoring.native import NativeDefinition"],["__future__",10,"from __future__ import annotations"],["typing",12,"from typing import TYPE_CHECKING, Any, Final"],["agentdeck.core.ports",28,"from agentdeck.core.ports import Executor"],["agentdeck.authoring.agent",14,"from agentdeck.authoring.agent import Agent"],["agentdeck.core.invocable",17,"from agentdeck.core.invocable import AgentInstance, InvocableKind, InvocableSpec"],["agentdeck.runtime.registry",19,"from agentdeck.runtime.registry import PluginRegistry, mount_project_dir"],["agentdeck.core.workers",29,"from agentdeck.core.workers import SyncToolWorkers"],["agentdeck.authoring.compile",15,"from agentdeck.authoring.compile import compile_agent, link_handoffs"],["collections",22,"from collections.abc import Callable, Mapping, Sequence"],["agentdeck.authoring.compile",27,"from agentdeck.authoring.compile import Delegate"],["agents",25,"from agents.tool import FunctionTool"],["agents",24,"from agents import Agent as SDKAgent"],["agentdeck.errors",18,"from agentdeck.errors import ConfigError"]],"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.trace",5,"from agentdeck.adapters.telemetry.langfuse.trace import Level, Observation, ObservationKind, Tracer"],["agentdeck.adapters.telemetry.langfuse.client",3,"from agentdeck.adapters.telemetry.langfuse.client import LangfuseTracer, build_client, langfuse_sink"]],"agentdeck.adapters.executors.stub.executor":[["collections",15,"from collections.abc import Sequence"],["agentdeck.core.control",18,"from agentdeck.core.control import ControlSignalled"],["agentdeck.core.events",19,"from agentdeck.core.events import RunInterrupted"],["agentdeck.core.content",28,"from agentdeck.core.content import Input"],["agentdeck.core.invocable",20,"from agentdeck.core.invocable import InvocableKind, InvocableSpec"],["agentdeck.core.ports",21,"from agentdeck.core.ports import Executor"],["__future__",13,"from __future__ import annotations"],["collections",26,"from collections.abc import AsyncGenerator"],["agentdeck.core.events",30,"from agentdeck.core.events import Event, KnownPayload"],["agentdeck.core.status",22,"from agentdeck.core.status import Play, continuation_of"],["agentdeck.errors",23,"from agentdeck.errors import ConfigError"],["agentdeck.core.context",29,"from agentdeck.core.context import RunContext"],["typing",16,"from typing import TYPE_CHECKING, ClassVar"]],"agentdeck.core.control":[["typing",18,"from typing import TYPE_CHECKING, ClassVar"],["time",15,"import time"],["agentdeck.core.events",20,"from agentdeck.core.events import ControlObserved, ControlRequested, RunCancelled, RunPaused"],["collections",24,"from collections.abc import Callable, Mapping"],["enum",17,"from enum import StrEnum"],["dataclasses",16,"from dataclasses import dataclass"],["__future__",13,"from __future__ import annotations"],["agentdeck.core.events",26,"from agentdeck.core.events import ControlVerb, KnownPayload, SafePoint"],["agentdeck.core.ports.control",27,"from agentdeck.core.ports.control import ControlPort"],["agentdeck.core.status",21,"from agentdeck.core.status import Action, RunStatus, decide"]],"agentdeck.runtime.settings":[["pydantic",24,"from pydantic import BaseModel, ConfigDict, Field, field_validator"],["collections",17,"from collections.abc import Mapping"],["__future__",13,"from __future__ import annotations"],["os",16,"import os"],["logging",15,"import logging"],["collections",28,"from collections.abc import Callable"],["typing",21,"from typing import TYPE_CHECKING, Any, ClassVar, Self"],["datetime",18,"from datetime import timedelta"],["pydantic_settings",25,"from pydantic_settings import BaseSettings, SettingsConfigDict"],["functools",19,"from functools import lru_cache"],["pathlib",20,"from pathlib import Path"],["dotenv",23,"from dotenv import load_dotenv"]],"agentdeck.adapters.control.sqlite":[["agentdeck.adapters.control.sqlite.port",3,"from agentdeck.adapters.control.sqlite.port import SqliteControlPort"]],"agentdeck.adapters.stores.redis.store":[["agentdeck.core.ports",41,"from agentdeck.core.ports import EventStorePort, RunSummary, SessionClaim"],["agentdeck.core.events",40,"from agentdeck.core.events import Event"],["urllib",34,"from urllib.parse import quote"],["redis",37,"from redis.exceptions import RedisError, WatchError"],["agentdeck.errors",43,"from agentdeck.errors import DuplicateKeyError, StoreError"],["agentdeck.adapters.stores",39,"from agentdeck.adapters.stores import _refuse_if_cancelled"],["__future__",29,"from __future__ import annotations"],["collections",46,"from collections.abc import Awaitable, Callable, Iterable, Sequence"],["redis",36,"from redis.asyncio import Redis"],["agentdeck.core.events",52,"from agentdeck.core.events import KnownPayload, RunResumed, RunStarted"],["datetime",32,"from datetime import UTC, datetime"],["typing",33,"from typing import TYPE_CHECKING, cast"],["agentdeck.core.status",53,"from agentdeck.core.status import RunStatus"],["datetime",47,"from datetime import timedelta"],["redis",49,"from redis.asyncio.client import Pipeline"],["agentdeck.core.status",42,"from agentdeck.core.status import LIFECYCLE_KINDS, STATES, can_resume, status_of"],["agentdeck.core.context",51,"from agentdeck.core.context import RunContext"],["json",31,"import json"]],"agentdeck.authoring.skills":[["agentdeck.skills",20,"from agentdeck.skills import Skills"],["agents",13,"from agents import function_tool"],["collections",16,"from collections.abc import Callable, Sequence"],["agents",18,"from agents.tool import FunctionTool"],["__future__",9,"from __future__ import annotations"],["typing",11,"from typing import TYPE_CHECKING"]],"agentdeck.core.events":[["__future__",21,"from __future__ import annotations"],["agentdeck.core.content",37,"from agentdeck.core.content import Input # noqa: TC001 - pydantic resolves field annotations at runtime"],["agentdeck.core.base",36,"from agentdeck.core.base import CoreModel, JsonData"],["typing",23,"from typing import Annotated, Any, Literal, get_args"],["pydantic",25,"from pydantic import ("]],"agentdeck.cli":[["__future__",17,"from __future__ import annotations"],["argparse",19,"import argparse"],["agentdeck.adapters.control.sqlite",22,"from agentdeck.adapters.control.sqlite import SqliteControlPort"],["asyncio",20,"import asyncio"],["agentdeck.core.control",23,"from agentdeck.core.control import Signal"]],"agentdeck":[["agentdeck.core.context",24,"from agentdeck.core.context import ToolCtx, WorkflowCtx"],["agentdeck.core.ports",26,"from agentdeck.core.ports import Observer"],["agentdeck.authoring",14,"from agentdeck.authoring import Agent"],["importlib",11,"from importlib.metadata import version as _version"],["agentdeck.views",13,"from agentdeck import views"],["agentdeck.errors",28,"from agentdeck.errors import ("],["agentdeck.core.content",16,"from agentdeck.core.content import ("],["agentdeck.authoring.native",15,"from agentdeck.authoring.native import tool, workflow"],["agentdeck.deck",27,"from agentdeck.deck import Deck, Run, TurnResult"],["agentdeck.core.invocable",25,"from agentdeck.core.invocable import AgentInstance"],["importlib",10,"from importlib.metadata import PackageNotFoundError"]],"agentdeck.adapters.tools.mcp.wiring":[["agentdeck.adapters.tools.mcp.lifecycle",12,"from agentdeck.adapters.tools.mcp.lifecycle import MCPLifecycle"],["agents",17,"from agents.mcp import MCPServer"],["collections",15,"from collections.abc import Iterable, Sequence"],["__future__",8,"from __future__ import annotations"],["typing",10,"from typing import TYPE_CHECKING"]],"agentdeck.views":[["agentdeck.core.status",18,"from agentdeck.core.status import LIFECYCLE_KINDS"],["collections",21,"from collections.abc import Callable"],["agentdeck.core.events",23,"from agentdeck.core.events import Event"],["typing",16,"from typing import TYPE_CHECKING"],["__future__",14,"from __future__ import annotations"]],"agentdeck.core.errors":[["agentdeck.core.status",20,"from agentdeck.core.status import RunStatus"],["__future__",16,"from __future__ import annotations"],["typing",18,"from typing import Any"]],"agentdeck.adapters.stores.redis":[["agentdeck.adapters.stores.redis.store",3,"from agentdeck.adapters.stores.redis.store import RedisEventStore"]],"agentdeck.authoring.runners.agent":[["contextlib",17,"from contextlib import aclosing"],["dataclasses",18,"from dataclasses import dataclass, field"],["agentdeck.runtime.settings",24,"from agentdeck.runtime.settings import Settings, default_use_responses, get_settings"],["typing",19,"from typing import TYPE_CHECKING, Any, Self, cast"],["collections",27,"from collections.abc import AsyncGenerator, AsyncIterator"],["agents",21,"from agents import Agent, RunConfig, Runner, RunResult"],["__future__",15,"from __future__ import annotations"],["agentdeck.adapters.executors.openai_agents.runconfig",23,"from agentdeck.adapters.executors.openai_agents.runconfig import RunSettings, build_run_config"]],"agentdeck.core.ports.sink":[["typing",10,"from typing import TYPE_CHECKING"],["agentdeck.core.events",13,"from agentdeck.core.events import Event"],["__future__",7,"from __future__ import annotations"],["abc",9,"from abc import ABC, abstractmethod"]],"agentdeck.surfaces.serve.compat":[["collections",23,"from collections.abc import AsyncGenerator, AsyncIterator"],["json",15,"import json"],["contextlib",16,"from contextlib import aclosing"],["typing",17,"from typing import TYPE_CHECKING, Any"],["agentdeck.core.events",25,"from agentdeck.core.events import Event"],["agentdeck.core.events",20,"from agentdeck.core.events import RunCompleted, TextDelta, UsageReported"],["agentdeck.core.content",19,"from agentdeck.core.content import DataBlock, TextBlock"],["__future__",13,"from __future__ import annotations"]],"agentdeck.adapters.leases.memory":[["agentdeck.adapters.leases.memory.port",3,"from agentdeck.adapters.leases.memory.port import MemoryLeasePort"]],"agentdeck.surfaces.cli.chat":[["collections",31,"from collections.abc import AsyncIterator, Mapping"],["typing",13,"from typing import TYPE_CHECKING"],["agentdeck.core.content",15,"from agentdeck.core.content import TextBlock"],["httpx",33,"import httpx"],["agentdeck.core.events",16,"from agentdeck.core.events import ("],["__future__",10,"from __future__ import annotations"],["json",12,"import json"]],"agentdeck.adapters.telemetry.langfuse.client":[["collections",22,"from collections.abc import Mapping"],["agentdeck.adapters.telemetry.langfuse.sink",19,"from agentdeck.adapters.telemetry.langfuse.sink import LangfuseSink"],["typing",17,"from typing import TYPE_CHECKING, Any"],["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"],["__future__",13,"from __future__ import annotations"],["os",16,"import os"],["agentdeck.core.events",25,"from agentdeck.core.events import Usage"],["logging",15,"import logging"],["langfuse",102,"from langfuse import propagate_attributes # ty: ignore[unresolved-import] - [observability] extra"],["langfuse",60,"from langfuse import Langfuse # ty: ignore[unresolved-import] - [observability] extra"]],"agentdeck.authoring.tools":[["asyncio",25,"import asyncio"],["agents",38,"from agents.tool import FunctionTool"],["agentdeck.authoring.injection",40,"from agentdeck.authoring.injection import CallableAnalysis"],["agentdeck.errors",33,"from agentdeck.errors import ConfigError"],["agentdeck.core.workers",41,"from agentdeck.core.workers import SyncToolWorkers"],["collections",36,"from collections.abc import Callable"],["agentdeck.authoring.injection",31,"from agentdeck.authoring.injection import analyze_callable, check_context_type, describe_callable"],["__future__",23,"from __future__ import annotations"],["inspect",26,"import inspect"],["typing",27,"from typing import TYPE_CHECKING, Any, get_type_hints"],["agentdeck.core.context",32,"from agentdeck.core.context import RunContext, ToolCtx"],["agents",29,"from agents import RunContextWrapper, default_tool_error_function, function_tool"]],"agentdeck.authoring.agent":[["agentdeck.authoring.runners.agent",169,"from agentdeck.authoring.runners.agent import HeadlessRunner"],["typing",12,"from typing import TYPE_CHECKING, Any, ClassVar"],["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.compile",163,"from agentdeck.authoring.compile import compile_agent"]],"agentdeck.core.status":[["dataclasses",19,"from dataclasses import dataclass"],["typing",21,"from typing import TYPE_CHECKING, Any"],["collections",27,"from collections.abc import Mapping, Sequence"],["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"],["agentdeck.core.content",23,"from agentdeck.core.content import answer_of"],["__future__",17,"from __future__ import annotations"]],"agentdeck.core.ports":[["agentdeck.core.ports.lease",13,"from agentdeck.core.ports.lease import LeasePort"],["agentdeck.core.ports.store",15,"from agentdeck.core.ports.store import EventStorePort, RunSummary, SessionClaim"],["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.control",11,"from agentdeck.core.ports.control import ControlPort"],["agentdeck.core.ports.executor",12,"from agentdeck.core.ports.executor import Executor"]],"agentdeck.errors":[["agentdeck.core.errors",11,"from agentdeck.core.errors import ("],["__future__",9,"from __future__ import annotations"]],"agentdeck.core.workers":[["collections",17,"from collections.abc import Callable"],["__future__",10,"from __future__ import annotations"],["asyncio",12,"import asyncio"],["typing",14,"from typing import TYPE_CHECKING, Any"],["concurrent",13,"from concurrent.futures import Future, ThreadPoolExecutor"]],"agentdeck.adapters.leases.memory.port":[["collections",18,"from collections.abc import Callable, Collection"],["datetime",19,"from datetime import timedelta"],["agentdeck.core.ports.lease",15,"from agentdeck.core.ports.lease import LeasePort"],["typing",13,"from typing import TYPE_CHECKING"],["datetime",12,"from datetime import UTC, datetime"],["__future__",10,"from __future__ import annotations"]],"agentdeck.core":[["agentdeck.core.reporting",56,"from agentdeck.core.reporting import Reporter"],["agentdeck.core.context",20,"from agentdeck.core.context import RunContext"],["agentdeck.core.invocable",55,"from agentdeck.core.invocable import InvocableKind, InvocableSpec"],["agentdeck.core.content",7,"from agentdeck.core.content import ("],["agentdeck.core.status",57,"from agentdeck.core.status import RunStatus, can_resume, status_of"],["agentdeck.core.events",21,"from agentdeck.core.events import ("]],"agentdeck.core.ports.executor":[["__future__",7,"from __future__ import annotations"],["agentdeck.core.events",17,"from agentdeck.core.events import Event, KnownPayload"],["typing",10,"from typing import TYPE_CHECKING, ClassVar"],["agentdeck.core.content",15,"from agentdeck.core.content import Input"],["collections",13,"from collections.abc import AsyncGenerator, Sequence"],["agentdeck.core.invocable",18,"from agentdeck.core.invocable import InvocableSpec"],["agentdeck.core.context",16,"from agentdeck.core.context import RunContext"],["abc",9,"from abc import ABC, abstractmethod"]],"agentdeck.observers":[["agentdeck.errors",22,"from agentdeck.errors import ConfigError"],["agents",41,"from agents import set_trace_processors"],["agentdeck.core.ports",21,"from agentdeck.core.ports import Observer"],["agentdeck.views",27,"from agentdeck.views import View"],["agentdeck.adapters.telemetry.langfuse.client",116,"from agentdeck.adapters.telemetry.langfuse.client import langfuse_sink"],["__future__",16,"from __future__ import annotations"],["agentdeck.runtime.settings",23,"from agentdeck.runtime.settings import get_settings"],["typing",19,"from typing import TYPE_CHECKING"],["agentdeck.core.events",26,"from agentdeck.core.events import Event"],["pathlib",18,"from pathlib import Path"],["openinference",42,"from openinference.instrumentation.openai_agents import ( # ty: ignore[unresolved-import] - [observability] extra"]],"agentdeck.surfaces":[],"agentdeck.adapters.executors.native.executor":[["agentdeck.core.events",19,"from agentdeck.core.events import RunCompleted, Usage"],["typing",14,"from typing import TYPE_CHECKING, Any, ClassVar"],["asyncio",11,"import asyncio"],["dataclasses",13,"from dataclasses import dataclass, field"],["agentdeck.core.control",18,"from agentdeck.core.control import ControlSignalled"],["agentdeck.core.ports",21,"from agentdeck.core.ports import Executor"],["agentdeck.core.context",17,"from agentdeck.core.context import WorkflowCtx"],["agentdeck.core.content",28,"from agentdeck.core.content import Input"],["agentdeck.core.content",16,"from agentdeck.core.content import DataBlock, TextBlock, answer_of"],["agentdeck.core.context",29,"from agentdeck.core.context import Agents, Invoker, RunContext"],["contextlib",12,"from contextlib import suppress"],["agentdeck.core.workers",33,"from agentdeck.core.workers import SyncToolWorkers"],["agentdeck.core.status",22,"from agentdeck.core.status import SUSPENDED_KINDS, Play, continuation_of"],["collections",26,"from collections.abc import AsyncGenerator, Sequence"],["agentdeck.core.invocable",20,"from agentdeck.core.invocable import NativeExecution, NativeInvocable"],["agentdeck.core.events",30,"from agentdeck.core.events import Event, KnownPayload"],["__future__",9,"from __future__ import annotations"],["agentdeck.errors",23,"from agentdeck.errors import ConfigError"],["agentdeck.core.invocable",31,"from agentdeck.core.invocable import InvocableSpec"],["agentdeck.core.status",32,"from agentdeck.core.status import Continuation"]],"agentdeck.core.base":[["pydantic",12,"from pydantic import AfterValidator, BaseModel, ConfigDict, JsonValue"],["math",9,"from math import isfinite"],["__future__",7,"from __future__ import annotations"],["typing",10,"from typing import Annotated"]],"agentdeck.adapters.tools.mcp.source":[["typing",11,"from typing import TYPE_CHECKING"],["agentdeck.core.ports.tools",14,"from agentdeck.core.ports.tools import ToolSet, ToolSourcePort"],["__future__",9,"from __future__ import annotations"],["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.authoring.native":[["collections",20,"from collections.abc import Callable"],["dataclasses",11,"from dataclasses import dataclass"],["__future__",8,"from __future__ import annotations"],["agentdeck.authoring.injection",22,"from agentdeck.authoring.injection import CallableAnalysis"],["typing",12,"from typing import TYPE_CHECKING, Any"],["agentdeck.core.context",15,"from agentdeck.core.context import ToolCtx, WorkflowCtx"],["agentdeck.errors",17,"from agentdeck.errors import ConfigError"],["agentdeck.authoring.injection",14,"from agentdeck.authoring.injection import analyze_callable, describe_callable"],["agentdeck.core.invocable",16,"from agentdeck.core.invocable import InvocableKind, NativeExecution"],["inspect",10,"import inspect"]],"agentdeck.adapters":[],"agentdeck.runtime":[],"agentdeck.adapters.tools.mcp":[["agentdeck.adapters.tools.mcp.transport",7,"from agentdeck.adapters.tools.mcp.transport import MCPServerStreamableHttpResilient"],["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.adapters.tools.mcp.wiring",8,"from agentdeck.adapters.tools.mcp.wiring import mcp_status_banner, resolve_agent_mcp_servers, resolve_agent_mcp_status"],["__future__",3,"from __future__ import annotations"]],"agentdeck.adapters.leases":[],"agentdeck.adapters.telemetry.langfuse.sink":[["agentdeck.core.content",30,"from agentdeck.core.content import DataBlock, ImageBlock, ResourceBlock, TextBlock"],["re",26,"import re"],["__future__",21,"from __future__ import annotations"],["collections",48,"from collections.abc import Mapping"],["agentdeck.core.content",51,"from agentdeck.core.content import Input"],["agentdeck.core.events",31,"from agentdeck.core.events import ("],["logging",25,"import logging"],["dataclasses",27,"from dataclasses import dataclass, field"],["agentdeck.core.events",52,"from agentdeck.core.events import Event, Usage"],["agentdeck.core.ports",45,"from agentdeck.core.ports import Observer"],["agentdeck.adapters.telemetry.langfuse.trace",50,"from agentdeck.adapters.telemetry.langfuse.trace import Level, Observation, ObservationKind, Tracer"],["json",24,"import json"],["typing",28,"from typing import TYPE_CHECKING, Any"],["asyncio",23,"import asyncio"]],"agentdeck.authoring.runners":[["agentdeck.authoring.runners.agent",3,"from agentdeck.authoring.runners.agent import BaseRunner, HeadlessRunner, StreamDone"]],"agentdeck.deck":[["agentdeck.core.content",64,"from agentdeck.core.content import DataBlock, TextBlock, coerce_input"],["agentdeck.mcp",87,"from agentdeck.mcp import MCP"],["functools",39,"import functools"],["agentdeck.adapters.executors.openai_agents",49,"from agentdeck.adapters.executors.openai_agents import ExecutionStore, OpenAIAgentsExecutor, SessionFactory"],["agentdeck.runtime.service",103,"from agentdeck.runtime.service import PendingRun, Runtime"],["agentdeck.runtime.settings",90,"from agentdeck.runtime.settings import Settings, get_settings"],["agentdeck.core.events",67,"from agentdeck.core.events import ("],["agentdeck.adapters.executors.native",48,"from agentdeck.adapters.executors.native import NativeExecutor"],["agentdeck.adapters.tools.mcp.lifecycle",50,"from agentdeck.adapters.tools.mcp.lifecycle import MCPLifecycle"],["agentdeck.core.workers",78,"from agentdeck.core.workers import SyncToolWorkers"],["agentdeck.core.context",65,"from agentdeck.core.context import RunContext"],["__future__",36,"from __future__ import annotations"],["builtins",94,"import builtins"],["agentdeck.core.content",100,"from agentdeck.core.content import Input"],["agentdeck.runtime.discovery",88,"from agentdeck.runtime.discovery import EXECUTOR_FOR_KIND, InvocableRegistry"],["pathlib",44,"from pathlib import Path"],["agentdeck.core.ports",102,"from agentdeck.core.ports import EventStorePort, Executor"],["agentdeck.authoring.skills",56,"from agentdeck.authoring.skills import skills_resolver"],["agentdeck.authoring.interrupts",99,"from agentdeck.authoring.interrupts import InterruptResult"],["agentdeck.core.status",77,"from agentdeck.core.status import PRECONDITIONS, SUSPENDED_KINDS, Controls, Operation, RunStatus, Verdict, can_of"],["asyncio",38,"import asyncio"],["agentdeck.composition",57,"from agentdeck.composition import ("],["agentdeck.authoring.compile",52,"from agentdeck.authoring.compile import compile_agent, refresh_mcp_status"],["agentdeck.skills",91,"from agentdeck.skills import Skills"],["agentdeck.authoring.interrupts",54,"from agentdeck.authoring.interrupts import interrupt_result"],["agentdeck.authoring.injection",53,"from agentdeck.authoring.injection import declared_context_type"],["agentdeck.core.invocable",75,"from agentdeck.core.invocable import AgentInstance, InvocableKind, InvocableSpec"],["agentdeck.core.events",101,"from agentdeck.core.events import Event, Usage"],["uuid",41,"import uuid"],["logging",40,"import logging"],["agentdeck.runtime.registry",89,"from agentdeck.runtime.registry import PROJECT_DIR, PluginRegistry, mount_project_dir"],["collections",95,"from collections.abc import AsyncGenerator, AsyncIterator, Generator, Mapping, Sequence"],["agentdeck.authoring.native",55,"from agentdeck.authoring.native import NativeDefinition"],["agentdeck.authoring.agent",51,"from agentdeck.authoring.agent import Agent"],["agentdeck.core.control",66,"from agentdeck.core.control import Signal"],["agentdeck.errors",79,"from agentdeck.errors import ("],["agentdeck.core.ports",76,"from agentdeck.core.ports import Observer"],["types",45,"from types import MappingProxyType"],["collections",42,"from collections import ChainMap"],["typing",46,"from typing import TYPE_CHECKING, Any, Literal, cast"],["agents",97,"from agents.memory.session import Session"],["agentdeck.serve",1234,"from agentdeck.serve import build_asgi_app"],["contextlib",43,"from contextlib import aclosing, suppress"]],"agentdeck.core.invocable":[["agentdeck.core.base",15,"from agentdeck.core.base import CoreModel"],["enum",10,"from enum import StrEnum"],["dataclasses",9,"from dataclasses import dataclass"],["__future__",7,"from __future__ import annotations"],["collections",18,"from collections.abc import Callable"],["pydantic",13,"from pydantic import ConfigDict, Field"],["typing",11,"from typing import TYPE_CHECKING, Any, Protocol, runtime_checkable"]],"agentdeck.surfaces.serve.app":[["agentdeck.runtime.service",22,"from agentdeck.runtime.service import Runtime"],["http",8,"from http import HTTPStatus"],["agentdeck.core.content",15,"from agentdeck.core.content import coerce_input"],["__future__",6,"from __future__ import annotations"],["collections",19,"from collections.abc import AsyncIterator"],["agentdeck.core.events",21,"from agentdeck.core.events import Event"],["agentdeck.errors",16,"from agentdeck.errors import SessionBusyError"],["fastapi",12,"from fastapi.responses import JSONResponse, StreamingResponse"],["typing",9,"from typing import TYPE_CHECKING, Any"],["pydantic",13,"from pydantic import BaseModel, Field"],["fastapi",11,"from fastapi import FastAPI"]],"agentdeck.adapters.stores.sqlite.store":[["functools",16,"from functools import partial"],["agentdeck.core.ports",21,"from agentdeck.core.ports import EventStorePort, RunSummary, SessionClaim"],["agentdeck.core.status",32,"from agentdeck.core.status import RunStatus"],["agentdeck.core.context",30,"from agentdeck.core.context import RunContext"],["asyncio",11,"import asyncio"],["agentdeck.errors",23,"from agentdeck.errors import DuplicateKeyError, StoreError"],["datetime",27,"from datetime import timedelta"],["agentdeck.adapters.stores",19,"from agentdeck.adapters.stores import _refuse_if_cancelled"],["datetime",15,"from datetime import datetime"],["json",12,"import json"],["typing",17,"from typing import TYPE_CHECKING"],["agentdeck.core.status",22,"from agentdeck.core.status import LIFECYCLE_KINDS, STATES, can_resume, status_of"],["agentdeck.core.events",31,"from agentdeck.core.events import KnownPayload, RunResumed, RunStarted"],["pathlib",28,"from pathlib import Path"],["contextlib",14,"from contextlib import suppress"],["agentdeck.core.events",20,"from agentdeck.core.events import Event"],["collections",26,"from collections.abc import Callable, Sequence"],["sqlite3",13,"import sqlite3"],["__future__",9,"from __future__ import annotations"]],"agentdeck.adapters.stores.postgres":[["agentdeck.adapters.stores.postgres.store",3,"from agentdeck.adapters.stores.postgres.store import PostgresEventStore"]],"agentdeck.core.content":[["base64",13,"import base64"],["typing",14,"from typing import Annotated, Any, Literal, get_args"],["agentdeck.core.base",26,"from agentdeck.core.base import CoreModel, JsonData"],["__future__",11,"from __future__ import annotations"],["pydantic",16,"from pydantic import ("]],"agentdeck.skills":[["agentdeck.skills.bundle",16,"from agentdeck.skills.bundle import SKILL_MD_FILENAME, SkillBundle"],["typing",13,"from typing import TYPE_CHECKING"],["pathlib",12,"from pathlib import Path"],["agentdeck.errors",15,"from agentdeck.errors import DOCS_URL, ConfigError, NotFoundError"],["collections",19,"from collections.abc import Sequence"],["__future__",10,"from __future__ import annotations"]],"agentdeck.skills.bundle":[["yaml",10,"import yaml"],["agentdeck.errors",12,"from agentdeck.errors import ConfigError"],["__future__",3,"from __future__ import annotations"],["dataclasses",6,"from dataclasses import dataclass, field"],["typing",8,"from typing import Any"],["re",5,"import re"],["pathlib",7,"from pathlib import Path"]],"agentdeck.core.ports.tools":[["agentdeck.core.invocable",22,"from agentdeck.core.invocable import InvocableSpec"],["agentdeck.core.base",19,"from agentdeck.core.base import CoreModel"],["pydantic",17,"from pydantic import ConfigDict"],["typing",15,"from typing import TYPE_CHECKING, Any"],["__future__",12,"from __future__ import annotations"],["abc",14,"from abc import ABC, abstractmethod"]],"agentdeck.adapters.tools.mcp.transport":[["logging",12,"import logging"],["agents",17,"from agents.mcp import MCPServerStreamableHttp"],["__future__",9,"from __future__ import annotations"],["contextlib",13,"from contextlib import AsyncExitStack, suppress"],["typing",14,"from typing import TYPE_CHECKING, Any, TypeVar"],["collections",20,"from collections.abc import Awaitable, Callable"],["asyncio",11,"import asyncio"],["httpx",16,"import httpx"]],"agentdeck.adapters.stores.sqlite":[["agentdeck.adapters.stores.sqlite.store",3,"from agentdeck.adapters.stores.sqlite.store import SqliteEventStore"]],"agentdeck.authoring.instructions":[["typing",21,"from typing import TYPE_CHECKING, Any"],["inspect",20,"import inspect"],["agentdeck.authoring.injection",23,"from agentdeck.authoring.injection import analyze_callable, check_context_type, describe_callable"],["__future__",18,"from __future__ import annotations"],["collections",28,"from collections.abc import Callable"],["agentdeck.errors",25,"from agentdeck.errors import ConfigError"],["agentdeck.core.context",24,"from agentdeck.core.context import RunContext, ToolCtx"]],"agentdeck.adapters.executors.openai_agents.runconfig":[["agents",23,"from agents.models.multi_provider import MultiProviderMap"],["typing",19,"from typing import TYPE_CHECKING, Any, cast"],["__future__",15,"from __future__ import annotations"],["dataclasses",18,"from dataclasses import dataclass"],["agents",22,"from agents import ModelSettings, MultiProvider, OpenAIProvider, RunConfig, default_handoff_history_mapper"],["agents",28,"from agents.items import TResponseInputItem"],["agents",27,"from agents.handoffs import HandoffHistoryMapper"],["httpx",21,"import httpx"],["openai",24,"from openai import AsyncOpenAI"],["os",17,"import os"]],"agentdeck.adapters.stores.memory":[["agentdeck.adapters.stores.memory.store",3,"from agentdeck.adapters.stores.memory.store import MemoryEventStore"]],"agentdeck.adapters.executors.openai_agents":[["agentdeck.adapters.executors.openai_agents.sessions",7,"from agentdeck.adapters.executors.openai_agents.sessions import ExecutionStore, SessionFactory"],["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.runconfig",6,"from agentdeck.adapters.executors.openai_agents.runconfig import RunSettings"]],"agentdeck.authoring":[["agentdeck.authoring.agent",7,"from agentdeck.authoring.agent import Agent, AgentDeclaration"],["agentdeck.authoring.interrupts",8,"from agentdeck.authoring.interrupts import InterruptResult"]],"agentdeck.adapters.tools.mcp.lifecycle":[["agentdeck.errors",24,"from agentdeck.errors import ConfigError"],["logging",20,"import logging"],["agentdeck.adapters.tools.mcp.transport",23,"from agentdeck.adapters.tools.mcp.transport import MCPServerStreamableHttpResilient"],["collections",27,"from collections.abc import Sequence"],["agents",29,"from agents.mcp import MCPServer"],["typing",21,"from typing import TYPE_CHECKING, Any"],["asyncio",19,"import asyncio"],["__future__",17,"from __future__ import annotations"]],"agentdeck.testing":[["threading",18,"import threading"],["openai",27,"from openai.types.responses import ("],["json",17,"import json"],["http",20,"from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer"],["agents",24,"from agents.items import ModelResponse"],["agents",26,"from agents.usage import Usage"],["asyncio",16,"import asyncio"],["openai",36,"from openai.types.responses.response_usage import InputTokensDetails, OutputTokensDetails"],["agents",25,"from agents.models.interface import Model"],["contextlib",19,"from contextlib import contextmanager"],["typing",21,"from typing import TYPE_CHECKING, Any"],["__future__",14,"from __future__ import annotations"],["collections",39,"from collections.abc import AsyncIterator, Callable, Iterator, Sequence"],["unittest",22,"from unittest.mock import patch"]],"agentdeck.core.ports.store":[["agentdeck.core.status",13,"from agentdeck.core.status import RunStatus, status_of"],["agentdeck.core.events",20,"from agentdeck.core.events import Event, KnownPayload, RunResumed, RunStarted"],["__future__",7,"from __future__ import annotations"],["datetime",17,"from datetime import timedelta"],["typing",11,"from typing import TYPE_CHECKING"],["dataclasses",10,"from dataclasses import dataclass"],["collections",16,"from collections.abc import Sequence"],["abc",9,"from abc import ABC, abstractmethod"],["agentdeck.core.context",19,"from agentdeck.core.context import RunContext"]],"agentdeck.adapters.leases.sqlite.port":[["typing",20,"from typing import TYPE_CHECKING"],["contextlib",18,"from contextlib import suppress"],["functools",19,"from functools import partial"],["agentdeck.errors",23,"from agentdeck.errors import StoreError"],["sqlite3",17,"import sqlite3"],["agentdeck.core.ports.lease",22,"from agentdeck.core.ports.lease import LeasePort"],["pathlib",28,"from pathlib import Path"],["__future__",14,"from __future__ import annotations"],["datetime",27,"from datetime import timedelta"],["collections",26,"from collections.abc import Callable, Collection"],["asyncio",16,"import asyncio"]],"agentdeck.core.ports.lease":[["typing",17,"from typing import TYPE_CHECKING"],["abc",16,"from abc import ABC, abstractmethod"],["datetime",21,"from datetime import timedelta"],["collections",20,"from collections.abc import Collection"],["__future__",14,"from __future__ import annotations"]],"agentdeck.mcp":[["typing",14,"from typing import Any"],["pathlib",13,"from pathlib import Path"],["__future__",10,"from __future__ import annotations"],["json",12,"import json"],["agentdeck.errors",18,"from agentdeck.errors import ConfigError"],["pydantic",16,"from pydantic import BaseModel, ConfigDict, Field"]],"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.leases.sqlite":[["agentdeck.adapters.leases.sqlite.port",3,"from agentdeck.adapters.leases.sqlite.port import SqliteLeasePort"]],"agentdeck.composition":[["agentdeck.adapters.executors.openai_agents.runconfig",23,"from agentdeck.adapters.executors.openai_agents.runconfig import RunSettings"],["agentdeck.core.ports",45,"from agentdeck.core.ports import ControlPort, EventStorePort, Executor, LeasePort, Observer"],["agentdeck.adapters.leases.sqlite",25,"from agentdeck.adapters.leases.sqlite import SqliteLeasePort"],["agentdeck.adapters.stores.memory",26,"from agentdeck.adapters.stores.memory import MemoryEventStore"],["agentdeck.adapters.leases.memory",24,"from agentdeck.adapters.leases.memory import MemoryLeasePort"],["agentdeck.errors",28,"from agentdeck.errors import DOCS_URL"],["agentdeck.adapters.stores.redis",235,"from agentdeck.adapters.stores.redis import RedisEventStore"],["datetime",42,"from datetime import timedelta"],["__future__",16,"from __future__ import annotations"],["agentdeck.core.invocable",44,"from agentdeck.core.invocable import InvocableSpec"],["collections",41,"from collections.abc import Mapping, Sequence"],["agentdeck.adapters.control.memory",21,"from agentdeck.adapters.control.memory import MemoryControlPort"],["agentdeck.adapters.stores.postgres",244,"from agentdeck.adapters.stores.postgres import PostgresEventStore"],["agentdeck.runtime.service",30,"from agentdeck.runtime.service import Runtime"],["agentdeck.runtime.settings",31,"from agentdeck.runtime.settings import ("],["typing",19,"from typing import TYPE_CHECKING"],["agentdeck.adapters.control.sqlite",22,"from agentdeck.adapters.control.sqlite import SqliteControlPort"],["logging",18,"import logging"],["agentdeck.adapters.stores.sqlite",27,"from agentdeck.adapters.stores.sqlite import SqliteEventStore"],["agentdeck.observers",112,"from agentdeck.observers import LangfuseObserver"],["agentdeck.runtime.discovery",29,"from agentdeck.runtime.discovery import InvocableRegistry"]],"agentdeck.adapters.stores":[["agentdeck.errors",8,"from agentdeck.errors import RunStateError"],["typing",5,"from typing import TYPE_CHECKING"],["__future__",3,"from __future__ import annotations"],["agentdeck.core.status",7,"from agentdeck.core.status import RunStatus"],["agentdeck.core.context",11,"from agentdeck.core.context import RunContext"]],"agentdeck.authoring.web_search":[["__future__",10,"from __future__ import annotations"],["httpx",12,"import httpx"],["agentdeck.runtime.settings",15,"from agentdeck.runtime.settings import get_settings"],["agents",13,"from agents import function_tool"]],"agentdeck.authoring.injection":[["collections",38,"from collections.abc import Callable, Iterable, Iterator, Mapping"],["__future__",27,"from __future__ import annotations"],["dataclasses",31,"from dataclasses import dataclass"],["agentdeck.errors",35,"from agentdeck.errors import ConfigError, ContextTypeError"],["types",30,"import types"],["inspect",29,"import inspect"],["agentdeck.core.context",34,"from agentdeck.core.context import ToolCtx, WorkflowCtx"],["typing",32,"from typing import TYPE_CHECKING, Any, Union, get_args, get_origin, get_type_hints"]]}
|
|
@@ -8,6 +8,13 @@ Fixed / Security` order - and are written to be attached to a release as-is.
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [5.2.1] - 2026-08-29
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- **Release bookkeeping is now scripted** (`scripts/release_bump.py`), and the docs-site footer
|
|
16
|
+
shows the current version instead of a stale mid-page marker (#560, #564).
|
|
17
|
+
|
|
11
18
|
## [5.2.0] - 2026-08-29
|
|
12
19
|
|
|
13
20
|
### Added
|
|
@@ -2573,7 +2580,8 @@ documentation platform and its CI.
|
|
|
2573
2580
|
`runtime/tools.py`, `PluginRegistry.pick`, `skill_runtime` LLM/batch
|
|
2574
2581
|
helpers; deps typer, rich, prompt-toolkit.
|
|
2575
2582
|
|
|
2576
|
-
[Unreleased]: https://github.com/agentdecksdk/agentdeck/compare/v5.2.
|
|
2583
|
+
[Unreleased]: https://github.com/agentdecksdk/agentdeck/compare/v5.2.1...HEAD
|
|
2584
|
+
[5.2.1]: https://github.com/agentdecksdk/agentdeck/compare/v5.2.0...v5.2.1
|
|
2577
2585
|
[5.2.0]: https://github.com/agentdecksdk/agentdeck/compare/v5.1.0...v5.2.0
|
|
2578
2586
|
[5.1.0]: https://github.com/agentdecksdk/agentdeck/compare/v5.0.3...v5.1.0
|
|
2579
2587
|
[5.0.3]: https://github.com/agentdecksdk/agentdeck/compare/v5.0.0...v5.0.3
|
|
@@ -23,6 +23,9 @@ Additional rules:
|
|
|
23
23
|
- Never use the ` - ` (em dash) character in code, comments, documentation, or commit messages.
|
|
24
24
|
- Do not weaken tests, lint, typing, goldens, or CI to make the implementation pass.
|
|
25
25
|
- Do not hide a design/reality conflict with a workaround.
|
|
26
|
+
- A PR body closing more than one issue uses one `Fixes #N` (or `Closes #N`) per line, never a
|
|
27
|
+
comma-separated list after one keyword: GitHub's closing-keyword parser only recognizes the
|
|
28
|
+
first reference in a list, so anything after the first comma is silently left open.
|
|
26
29
|
|
|
27
30
|
## When blocked
|
|
28
31
|
|
|
@@ -22,13 +22,12 @@ const DOC_SLUGS = docsSlugs()
|
|
|
22
22
|
|
|
23
23
|
export { Hero }
|
|
24
24
|
|
|
25
|
-
const RELEASE = '4.0.5'
|
|
26
25
|
const REPO = 'https://github.com/agentdecksdk/agentdeck'
|
|
27
26
|
const JACK_SOURCE = `${REPO}/tree/dev/examples/jack`
|
|
28
27
|
|
|
29
28
|
type Status = 'shipped' | 'proposed'
|
|
30
29
|
|
|
31
|
-
/**
|
|
30
|
+
/** Whether a code block is shipped or proposed, on the block. */
|
|
32
31
|
export function Snippet({ status, children }: { status: Status; children?: React.ReactNode }) {
|
|
33
32
|
const shipped = status === 'shipped'
|
|
34
33
|
return (
|
|
@@ -36,7 +35,7 @@ export function Snippet({ status, children }: { status: Status; children?: React
|
|
|
36
35
|
<p className="snippet-head">
|
|
37
36
|
<span className={`status-chip is-${status}`}>
|
|
38
37
|
<span aria-hidden="true">{shipped ? '◆' : '◇'}</span>
|
|
39
|
-
{
|
|
38
|
+
{status}
|
|
40
39
|
</span>
|
|
41
40
|
</p>
|
|
42
41
|
{children}
|
|
@@ -6,6 +6,7 @@ import { Mark } from './mark'
|
|
|
6
6
|
import { getPageMap } from 'nextra/page-map'
|
|
7
7
|
import type { ReactNode } from 'react'
|
|
8
8
|
import { docsSlugs } from './docs-slugs'
|
|
9
|
+
import { CURRENT_VERSION } from './generated-version'
|
|
9
10
|
import { JackPanel } from './jack'
|
|
10
11
|
import { SITE } from './site'
|
|
11
12
|
import 'nextra-theme-docs/style.css'
|
|
@@ -57,7 +58,7 @@ const navbar = (
|
|
|
57
58
|
|
|
58
59
|
const footer = (
|
|
59
60
|
<Footer>
|
|
60
|
-
AgentDeck SDK · Compose. Observe. Ship.
|
|
61
|
+
AgentDeck SDK v{CURRENT_VERSION} · Compose. Observe. Ship.
|
|
61
62
|
</Footer>
|
|
62
63
|
)
|
|
63
64
|
|
|
@@ -14,30 +14,22 @@ description: What changed in each release of AgentDeck, and what to do about it
|
|
|
14
14
|
Rendered from the repository's own `CHANGELOG.md`, so this page cannot drift from it. Entries
|
|
15
15
|
are written for someone using the package: what changed, and what to do about it.
|
|
16
16
|
|
|
17
|
-
The current release is **v5.2.
|
|
17
|
+
The current release is **v5.2.1**. Earlier releases are listed at the bottom.
|
|
18
18
|
|
|
19
|
-
## v5.2.
|
|
19
|
+
## v5.2.1
|
|
20
20
|
|
|
21
21
|
*Released 2026-08-29.*
|
|
22
22
|
|
|
23
|
-
### Added
|
|
24
|
-
|
|
25
|
-
- **A deployment guide for running a Deck as a service** (#353): the
|
|
26
|
-
`AGENTDECK_EVENTS`/`AGENTDECK_CONTROL`/`AGENTDECK_SESSION` durability defaults, a systemd unit,
|
|
27
|
-
`aclose()` on `SIGTERM`, uvicorn's graceful-shutdown behavior against an open SSE connection,
|
|
28
|
-
and reverse-proxy buffering. See [Deployment](https://agentdecksdk.com/operate/deployment).
|
|
29
|
-
|
|
30
23
|
### Changed
|
|
31
24
|
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
gone; `ToolCtx.reporter` returns the same `Reporter` whether the body runs on the event loop or
|
|
35
|
-
a worker thread. The buffer it enqueues into is thread-safe either way.
|
|
25
|
+
- **Release bookkeeping is now scripted** (`scripts/release_bump.py`), and the docs-site footer
|
|
26
|
+
shows the current version instead of a stale mid-page marker (#560, #564).
|
|
36
27
|
|
|
37
28
|
## Earlier releases
|
|
38
29
|
|
|
39
30
|
| Version | Date | Notes |
|
|
40
31
|
|---|---|---|
|
|
32
|
+
| [v5.2.0](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.2.0) | 2026-08-29 | [release notes](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.2.0) |
|
|
41
33
|
| [v5.1.0](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.1.0) | 2026-08-28 | [release notes](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.1.0) |
|
|
42
34
|
| [v5.0.3](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.0.3) | 2026-08-23 | [release notes](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.0.3) |
|
|
43
35
|
| [v5.0.0](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.0.0) | 2026-08-22 | [release notes](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.0.0) |
|
|
@@ -2067,30 +2067,22 @@ Source: https://agentdecksdk.com/resources/changelog
|
|
|
2067
2067
|
Rendered from the repository's own `CHANGELOG.md`, so this page cannot drift from it. Entries
|
|
2068
2068
|
are written for someone using the package: what changed, and what to do about it.
|
|
2069
2069
|
|
|
2070
|
-
The current release is **v5.2.
|
|
2070
|
+
The current release is **v5.2.1**. Earlier releases are listed at the bottom.
|
|
2071
2071
|
|
|
2072
|
-
## v5.2.
|
|
2072
|
+
## v5.2.1
|
|
2073
2073
|
|
|
2074
2074
|
*Released 2026-08-29.*
|
|
2075
2075
|
|
|
2076
|
-
### Added
|
|
2077
|
-
|
|
2078
|
-
- **A deployment guide for running a Deck as a service** (#353): the
|
|
2079
|
-
`AGENTDECK_EVENTS`/`AGENTDECK_CONTROL`/`AGENTDECK_SESSION` durability defaults, a systemd unit,
|
|
2080
|
-
`aclose()` on `SIGTERM`, uvicorn's graceful-shutdown behavior against an open SSE connection,
|
|
2081
|
-
and reverse-proxy buffering. See [Deployment](https://agentdecksdk.com/operate/deployment).
|
|
2082
|
-
|
|
2083
2076
|
### Changed
|
|
2084
2077
|
|
|
2085
|
-
-
|
|
2086
|
-
|
|
2087
|
-
gone; `ToolCtx.reporter` returns the same `Reporter` whether the body runs on the event loop or
|
|
2088
|
-
a worker thread. The buffer it enqueues into is thread-safe either way.
|
|
2078
|
+
- **Release bookkeeping is now scripted** (`scripts/release_bump.py`), and the docs-site footer
|
|
2079
|
+
shows the current version instead of a stale mid-page marker (#560, #564).
|
|
2089
2080
|
|
|
2090
2081
|
## Earlier releases
|
|
2091
2082
|
|
|
2092
2083
|
| Version | Date | Notes |
|
|
2093
2084
|
|---|---|---|
|
|
2085
|
+
| [v5.2.0](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.2.0) | 2026-08-29 | [release notes](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.2.0) |
|
|
2094
2086
|
| [v5.1.0](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.1.0) | 2026-08-28 | [release notes](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.1.0) |
|
|
2095
2087
|
| [v5.0.3](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.0.3) | 2026-08-23 | [release notes](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.0.3) |
|
|
2096
2088
|
| [v5.0.0](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.0.0) | 2026-08-22 | [release notes](https://github.com/agentdecksdk/agentdeck/releases/tag/v5.0.0) |
|
|
@@ -45,6 +45,7 @@ SETTINGS_PAGE = CONTENT / "settings.mdx"
|
|
|
45
45
|
CLI_PAGE = CONTENT / "cli.mdx"
|
|
46
46
|
CHANGELOG_PAGE = SITE / "resources" / "changelog.mdx"
|
|
47
47
|
CHANGELOG_SOURCE = REPO_ROOT / "CHANGELOG.md"
|
|
48
|
+
VERSION_PAGE = REPO_ROOT / "docs-site" / "app" / "generated-version.ts"
|
|
48
49
|
PUBLIC = REPO_ROOT / "docs-site" / "public"
|
|
49
50
|
LLMS_PAGE = PUBLIC / "llms.txt"
|
|
50
51
|
LLMS_FULL_PAGE = PUBLIC / "llms-full.txt"
|
|
@@ -292,6 +293,16 @@ def render_changelog_mdx() -> str:
|
|
|
292
293
|
return "\n".join(out).rstrip() + "\n"
|
|
293
294
|
|
|
294
295
|
|
|
296
|
+
def render_generated_version_ts() -> str:
|
|
297
|
+
"""The docs site's footer badge version - the newest released heading in `CHANGELOG.md`,
|
|
298
|
+
so a release that forgets to regenerate this fails `make check` instead of shipping stale."""
|
|
299
|
+
current = next(v for v, _d, _b in changelog_sections() if v.lower() != "unreleased")
|
|
300
|
+
return (
|
|
301
|
+
"// Generated by scripts/generate_docs_reference.py. Do not edit by hand.\n"
|
|
302
|
+
f'export const CURRENT_VERSION = "{current}"\n'
|
|
303
|
+
)
|
|
304
|
+
|
|
305
|
+
|
|
295
306
|
_FRONTMATTER = re.compile(r"\A---\n(.*?)\n---\n", re.DOTALL)
|
|
296
307
|
_FIELD = re.compile(r"^(title|description):\s*(.+)$", re.MULTILINE)
|
|
297
308
|
_DOCS_SOURCES = re.compile(r"^\{/\* docs_sources:\n(?: - .+\n)+\*/\}\n?", re.MULTILINE)
|
|
@@ -424,6 +435,7 @@ def _generated_pages() -> dict[Path, str]:
|
|
|
424
435
|
SETTINGS_PAGE: render_settings_mdx(),
|
|
425
436
|
CLI_PAGE: render_cli_mdx(),
|
|
426
437
|
CHANGELOG_PAGE: render_changelog_mdx(),
|
|
438
|
+
VERSION_PAGE: render_generated_version_ts(),
|
|
427
439
|
}
|
|
428
440
|
pages[LLMS_PAGE] = render_llms_txt(pages)
|
|
429
441
|
pages[LLMS_FULL_PAGE] = render_llms_full_txt(pages)
|
|
@@ -463,9 +475,11 @@ __all__ = [
|
|
|
463
475
|
"CHANGELOG_SOURCE",
|
|
464
476
|
"CLI_PAGE",
|
|
465
477
|
"SETTINGS_PAGE",
|
|
478
|
+
"VERSION_PAGE",
|
|
466
479
|
"changelog_sections",
|
|
467
480
|
"main",
|
|
468
481
|
"render_changelog_mdx",
|
|
482
|
+
"render_generated_version_ts",
|
|
469
483
|
"render_llms_full_txt",
|
|
470
484
|
"render_llms_txt",
|
|
471
485
|
"render_cli_mdx",
|