agentdeck-sdk 4.0.2__tar.gz → 4.0.3__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.
Files changed (492) hide show
  1. agentdeck_sdk-4.0.3/.github/ISSUE_TEMPLATE/docs_contribution.yml +119 -0
  2. agentdeck_sdk-4.0.3/.import_linter_cache/agentdeck.meta.json +1 -0
  3. agentdeck_sdk-4.0.3/.import_linter_cache/cc0de4ae2e5697bf7cf3a0b9c3aff14b2ece24cd.data.json +1 -0
  4. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/CHANGELOG.md +25 -0
  5. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/PKG-INFO +31 -15
  6. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/README.md +30 -14
  7. agentdeck_sdk-4.0.3/docs/delivery/plan-docs-ia.md +613 -0
  8. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/brand.css +86 -0
  9. agentdeck_sdk-4.0.3/docs-site/app/contribute.tsx +39 -0
  10. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/landing-components.tsx +1 -1
  11. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/jack/notes.mdx +8 -0
  12. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/jack.mdx +8 -0
  13. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/meet-agentdeck/quickstart.mdx +8 -0
  14. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/resources/changelog.mdx +20 -20
  15. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/resources/known-issues.mdx +8 -0
  16. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/mdx-components.tsx +2 -0
  17. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/llms-full.txt +20 -20
  18. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/pyproject.toml +1 -1
  19. agentdeck_sdk-4.0.2/.import_linter_cache/agentdeck.meta.json +0 -1
  20. agentdeck_sdk-4.0.2/.import_linter_cache/cc0de4ae2e5697bf7cf3a0b9c3aff14b2ece24cd.data.json +0 -1
  21. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.agentdeck/agents/greeter/agent.py +0 -0
  22. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.agents/skills/open-issue/SKILL.md +0 -0
  23. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.agents/skills/release/SKILL.md +0 -0
  24. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.agents/skills/ship-issue/SKILL.md +0 -0
  25. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.claude/agents/deck-dev.md +0 -0
  26. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.claude/agents/deck-reviewer.md +0 -0
  27. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.claude/agents/docs-reviewer.md +0 -0
  28. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.claude/agents/docs-writer.md +0 -0
  29. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.claude/skills/open-issue/SKILL.md +0 -0
  30. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.claude/skills/release/SKILL.md +0 -0
  31. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.claude/skills/ship-issue/SKILL.md +0 -0
  32. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.coderabbit.yaml +0 -0
  33. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.codex/agents/deck-dev.toml +0 -0
  34. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.codex/agents/deck-reviewer.toml +0 -0
  35. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.codex/agents/docs-reviewer.toml +0 -0
  36. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.codex/agents/docs-writer.toml +0 -0
  37. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.dockerignore +0 -0
  38. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.env.example +0 -0
  39. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.gitattributes +0 -0
  40. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/CODEOWNERS +0 -0
  41. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  42. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  43. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/ISSUE_TEMPLATE/finding.yml +0 -0
  44. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  45. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/assets/contributors/merged.png +0 -0
  46. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/assets/contributors/welcome.png +0 -0
  47. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/dependabot.yml +0 -0
  48. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/workflows/ci.yml +0 -0
  49. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/workflows/docs-check.yml +0 -0
  50. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/workflows/docs-pages.yml +0 -0
  51. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/workflows/first-contribution.yml +0 -0
  52. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.github/workflows/release.yml +0 -0
  53. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.gitignore +0 -0
  54. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.import_linter_cache/.gitignore +0 -0
  55. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.import_linter_cache/CACHEDIR.TAG +0 -0
  56. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.importlinter +0 -0
  57. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/.pre-commit-config.yaml +0 -0
  58. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/AGENTS.md +0 -0
  59. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/CLAUDE.md +0 -0
  60. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/CODE_OF_CONDUCT.md +0 -0
  61. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/CONTRIBUTING.md +0 -0
  62. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/Dockerfile +0 -0
  63. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/LICENSE +0 -0
  64. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/Makefile +0 -0
  65. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/SECURITY.md +0 -0
  66. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/README.md +0 -0
  67. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/__init__.py +0 -0
  68. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/__init__.py +0 -0
  69. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/control/__init__.py +0 -0
  70. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/control/memory/__init__.py +0 -0
  71. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/control/memory/port.py +0 -0
  72. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/control/sqlite/__init__.py +0 -0
  73. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/control/sqlite/port.py +0 -0
  74. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/engines/__init__.py +0 -0
  75. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/engines/langgraph/__init__.py +0 -0
  76. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/engines/langgraph/checkpointer.py +0 -0
  77. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/engines/langgraph/engine.py +0 -0
  78. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/engines/openai_agents/__init__.py +0 -0
  79. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/engines/openai_agents/engine.py +0 -0
  80. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/engines/openai_agents/reconcile.py +0 -0
  81. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/engines/openai_agents/runconfig.py +0 -0
  82. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/engines/openai_agents/sessions.py +0 -0
  83. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/engines/openai_agents/translate.py +0 -0
  84. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/engines/stub/__init__.py +0 -0
  85. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/engines/stub/engine.py +0 -0
  86. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/leases/__init__.py +0 -0
  87. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/leases/memory/__init__.py +0 -0
  88. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/leases/memory/port.py +0 -0
  89. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/leases/sqlite/__init__.py +0 -0
  90. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/leases/sqlite/port.py +0 -0
  91. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/stores/__init__.py +0 -0
  92. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/stores/memory/__init__.py +0 -0
  93. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/stores/memory/store.py +0 -0
  94. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/stores/postgres/__init__.py +0 -0
  95. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/stores/postgres/store.py +0 -0
  96. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/stores/redis/__init__.py +0 -0
  97. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/stores/redis/store.py +0 -0
  98. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/stores/sqlite/__init__.py +0 -0
  99. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/stores/sqlite/store.py +0 -0
  100. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/telemetry/__init__.py +0 -0
  101. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/telemetry/langfuse/__init__.py +0 -0
  102. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/telemetry/langfuse/client.py +0 -0
  103. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/telemetry/langfuse/sink.py +0 -0
  104. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/telemetry/langfuse/trace.py +0 -0
  105. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/tools/__init__.py +0 -0
  106. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/tools/mcp/__init__.py +0 -0
  107. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/tools/mcp/lifecycle.py +0 -0
  108. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/tools/mcp/source.py +0 -0
  109. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/tools/mcp/transport.py +0 -0
  110. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/adapters/tools/mcp/wiring.py +0 -0
  111. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/__init__.py +0 -0
  112. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/agent.py +0 -0
  113. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/compile.py +0 -0
  114. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/graphs.py +0 -0
  115. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/hooks.py +0 -0
  116. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/injection.py +0 -0
  117. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/instructions.py +0 -0
  118. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/interrupts.py +0 -0
  119. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/nodes.py +0 -0
  120. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/runners/__init__.py +0 -0
  121. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/runners/agent.py +0 -0
  122. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/runners/workflow.py +0 -0
  123. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/skills.py +0 -0
  124. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/state.py +0 -0
  125. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/timers.py +0 -0
  126. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/tools.py +0 -0
  127. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/web_search.py +0 -0
  128. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/authoring/workflow.py +0 -0
  129. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/cli.py +0 -0
  130. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/composition.py +0 -0
  131. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/__init__.py +0 -0
  132. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/base.py +0 -0
  133. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/content.py +0 -0
  134. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/context.py +0 -0
  135. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/control.py +0 -0
  136. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/events.py +0 -0
  137. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/invocable.py +0 -0
  138. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/ports/__init__.py +0 -0
  139. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/ports/control.py +0 -0
  140. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/ports/engine.py +0 -0
  141. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/ports/lease.py +0 -0
  142. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/ports/sink.py +0 -0
  143. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/ports/store.py +0 -0
  144. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/ports/tools.py +0 -0
  145. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/reporting.py +0 -0
  146. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/core/status.py +0 -0
  147. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/deck.py +0 -0
  148. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/errors.py +0 -0
  149. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/mcp.py +0 -0
  150. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/observers.py +0 -0
  151. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/py.typed +0 -0
  152. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/runtime/__init__.py +0 -0
  153. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/runtime/capture.py +0 -0
  154. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/runtime/config.default.yaml +0 -0
  155. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/runtime/discovery.py +0 -0
  156. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/runtime/dispatch.py +0 -0
  157. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/runtime/registry.py +0 -0
  158. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/runtime/service.py +0 -0
  159. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/runtime/settings.py +0 -0
  160. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/serve.py +0 -0
  161. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/skills/__init__.py +0 -0
  162. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/skills/bundle.py +0 -0
  163. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/surfaces/__init__.py +0 -0
  164. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/surfaces/cli/__init__.py +0 -0
  165. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/surfaces/cli/chat.py +0 -0
  166. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/surfaces/serve/__init__.py +0 -0
  167. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/surfaces/serve/app.py +0 -0
  168. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/surfaces/serve/compat.py +0 -0
  169. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/surfaces/serve/workflows.py +0 -0
  170. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/agentdeck/testing.py +0 -0
  171. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/context7.json +0 -0
  172. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docker-compose.yml +0 -0
  173. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/00-project-index.md +0 -0
  174. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/agentdeck-prd.md +0 -0
  175. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/README.md +0 -0
  176. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/components/card.svg +0 -0
  177. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/components/spark.svg +0 -0
  178. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/components/wordmark.svg +0 -0
  179. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/contributor-merged.svg +0 -0
  180. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/contributor-welcome.svg +0 -0
  181. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/favicon.svg +0 -0
  182. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/logo-black.svg +0 -0
  183. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/logo-blue.svg +0 -0
  184. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/logo-full.svg +0 -0
  185. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/logo-mark.svg +0 -0
  186. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/logo-traced-original.svg +0 -0
  187. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/logo-white.svg +0 -0
  188. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/logo.svg +0 -0
  189. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/brand/social-card.svg +0 -0
  190. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/beta-user-report-v3.md +0 -0
  191. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/decision-v3-entry-point.md +0 -0
  192. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/deck-capability-wrapper-pattern.md +0 -0
  193. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/discoverability-baseline.md +0 -0
  194. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/docs-site-plan.md +0 -0
  195. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/epic-agentdeck-v2-core.md +0 -0
  196. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/findings-register.md +0 -0
  197. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/milestone-0-findings.md +0 -0
  198. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/milestone-0-walking-skeleton.md +0 -0
  199. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/plan-166-delivery.md +0 -0
  200. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/plan-219-delivery.md +0 -0
  201. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/plan-adoption.md +0 -0
  202. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/plan-context-injection.md +0 -0
  203. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/plan-multimodal.md +0 -0
  204. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/plan-phase4-deck.md +0 -0
  205. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/plan-skills.md +0 -0
  206. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/plan-v2-cutover.md +0 -0
  207. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/review-context-injection.md +0 -0
  208. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/review-phase4-deck.md +0 -0
  209. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/review-v3-outsider.md +0 -0
  210. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/roadmap-v3.1.md +0 -0
  211. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/roadmap-v3.md +0 -0
  212. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/delivery/workflow.md +0 -0
  213. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/design/adr-d11-store-assigns-seq-and-time.md +0 -0
  214. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/design/adr-d5-two-stores.md +0 -0
  215. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/design/agentdeck-v2-architecture.md +0 -0
  216. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/design/event-store-claims.md +0 -0
  217. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/design/run-identity.md +0 -0
  218. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/design/run-lifecycle.md +0 -0
  219. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/design/run-operations.md +0 -0
  220. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/design/sink-dispatch.md +0 -0
  221. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/design-system.md +0 -0
  222. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/engineering/README.md +0 -0
  223. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/engineering/architecture.md +0 -0
  224. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/engineering/coding-agents.md +0 -0
  225. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/engineering/coding-standards.md +0 -0
  226. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/engineering/dependencies.md +0 -0
  227. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/engineering/import-boundaries.md +0 -0
  228. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/engineering/principles.md +0 -0
  229. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/engineering/repository-policy.md +0 -0
  230. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/engineering/runtime-contracts.md +0 -0
  231. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/engineering/testing.md +0 -0
  232. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/project-brief.md +0 -0
  233. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/prompts/pr0-baseline-prompt.md +0 -0
  234. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/prompts/pr0-review-prompt.md +0 -0
  235. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/prompts/pr1-event-schema-prompt.md +0 -0
  236. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs/spec.md +0 -0
  237. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/.env.development +0 -0
  238. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/.env.production +0 -0
  239. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/.gitignore +0 -0
  240. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/README.md +0 -0
  241. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/[[...mdxPath]]/page.tsx +0 -0
  242. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/brand-icons.tsx +0 -0
  243. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/callout.tsx +0 -0
  244. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/deck-figure.tsx +0 -0
  245. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/design-system.tsx +0 -0
  246. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/diagram.tsx +0 -0
  247. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/hero.css +0 -0
  248. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/hero.tsx +0 -0
  249. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/icon.svg +0 -0
  250. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/install-line.tsx +0 -0
  251. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/jack-live.tsx +0 -0
  252. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/jack-stream.ts +0 -0
  253. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/jack.css +0 -0
  254. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/jack.tsx +0 -0
  255. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/kind-icons.tsx +0 -0
  256. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/landing.css +0 -0
  257. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/layout.tsx +0 -0
  258. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/mark.tsx +0 -0
  259. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/not-found.tsx +0 -0
  260. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/robots.ts +0 -0
  261. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/site.ts +0 -0
  262. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/app/sitemap.ts +0 -0
  263. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/_meta.ts +0 -0
  264. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/build-your-deck/_meta.ts +0 -0
  265. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/build-your-deck/agents.mdx +0 -0
  266. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/build-your-deck/context.mdx +0 -0
  267. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/build-your-deck/deck.mdx +0 -0
  268. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/build-your-deck/skills.mdx +0 -0
  269. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/build-your-deck/tools.mdx +0 -0
  270. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/build-your-deck/workflows.mdx +0 -0
  271. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/examples/_meta.ts +0 -0
  272. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/examples/index.mdx +0 -0
  273. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/index.mdx +0 -0
  274. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/integrations/_meta.ts +0 -0
  275. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/integrations/existing-agents.mdx +0 -0
  276. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/integrations/langgraph.mdx +0 -0
  277. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/integrations/mcp.mdx +0 -0
  278. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/integrations/openai-agents-sdk.mdx +0 -0
  279. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/jack/_meta.ts +0 -0
  280. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/meet-agentdeck/_meta.ts +0 -0
  281. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/meet-agentdeck/mental-model.mdx +0 -0
  282. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/meet-agentdeck/overview.mdx +0 -0
  283. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/reference/_meta.ts +0 -0
  284. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/reference/cli.mdx +0 -0
  285. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/reference/deck.mdx +0 -0
  286. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/reference/events.mdx +0 -0
  287. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/reference/python-api.mdx +0 -0
  288. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/reference/run.mdx +0 -0
  289. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/reference/settings.mdx +0 -0
  290. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/resources/_meta.ts +0 -0
  291. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/resources/migration-guides.mdx +0 -0
  292. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/resources/troubleshooting.mdx +0 -0
  293. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/runs-and-control/_meta.ts +0 -0
  294. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/runs-and-control/events.mdx +0 -0
  295. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/runs-and-control/human-input.mdx +0 -0
  296. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/runs-and-control/lifecycle-and-control.mdx +0 -0
  297. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/runs-and-control/pause-resume.mdx +0 -0
  298. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/runs-and-control/runs.mdx +0 -0
  299. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/content/runs-and-control/sessions.mdx +0 -0
  300. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/next-env.d.ts +0 -0
  301. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/next.config.mjs +0 -0
  302. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/package-lock.json +0 -0
  303. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/package.json +0 -0
  304. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/card.svg +0 -0
  305. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/contributor-merged.svg +0 -0
  306. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/contributor-welcome.svg +0 -0
  307. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/favicon.svg +0 -0
  308. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/logo-black.svg +0 -0
  309. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/logo-blue.svg +0 -0
  310. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/logo-full.svg +0 -0
  311. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/logo-mark.svg +0 -0
  312. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/logo-traced-original.svg +0 -0
  313. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/logo-white.svg +0 -0
  314. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/logo.svg +0 -0
  315. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/social-card.svg +0 -0
  316. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/spark.svg +0 -0
  317. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/brand/wordmark.svg +0 -0
  318. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/public/llms.txt +0 -0
  319. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/docs-site/tsconfig.json +0 -0
  320. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/agent-with-a-skill/.agentdeck/agents/handover_desk/agent.py +0 -0
  321. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/agent-with-a-skill/.agentdeck/skills/shift-notes/SKILL.md +0 -0
  322. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/agent-with-a-skill/README.md +0 -0
  323. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/agent-with-a-skill/run.py +0 -0
  324. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/chat-agent-with-a-tool/.agentdeck/agents/order_desk/agent.py +0 -0
  325. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/chat-agent-with-a-tool/README.md +0 -0
  326. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/chat-agent-with-a-tool/run.py +0 -0
  327. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/existing-langgraph-agent/.agentdeck/workflows/triage/pipeline.py +0 -0
  328. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/existing-langgraph-agent/.agentdeck/workflows/triage/workflow.py +0 -0
  329. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/existing-langgraph-agent/README.md +0 -0
  330. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/existing-langgraph-agent/run.py +0 -0
  331. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/jack/README.md +0 -0
  332. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/jack/cloudflared.yml +0 -0
  333. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/jack/eval.py +0 -0
  334. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/jack/jack/__init__.py +0 -0
  335. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/jack/jack/agent.py +0 -0
  336. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/jack/jack/corpus.py +0 -0
  337. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/jack/jack/server.py +0 -0
  338. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/jack/run.py +0 -0
  339. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/workflow-with-an-approval/.agentdeck/workflows/refund_approval/workflow.py +0 -0
  340. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/workflow-with-an-approval/README.md +0 -0
  341. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/examples/workflow-with-an-approval/run.py +0 -0
  342. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/scripts/generate_docs_reference.py +0 -0
  343. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/scripts/m0_demo.py +0 -0
  344. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/scripts/sync_claude_to_codex.py +0 -0
  345. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/scripts/sync_roadmap.py +0 -0
  346. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/concurrency_worker.py +0 -0
  347. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/conftest.py +0 -0
  348. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/context_injection_subjects.py +0 -0
  349. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/case_types.py +0 -0
  350. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/conftest.py +0 -0
  351. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/context_subjects.py +0 -0
  352. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/contract_cases.py +0 -0
  353. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/langgraph_cases.py +0 -0
  354. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/live_stores.py +0 -0
  355. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/never_yields.py +0 -0
  356. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/openai_agents_cases.py +0 -0
  357. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/test_context_parity.py +0 -0
  358. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/test_control.py +0 -0
  359. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/test_control_port.py +0 -0
  360. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/test_event_stream.py +0 -0
  361. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/test_lease.py +0 -0
  362. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/test_resume.py +0 -0
  363. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/contract/test_store.py +0 -0
  364. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/conftest.py +0 -0
  365. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/artifact.created.json +0 -0
  366. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/control.observed.json +0 -0
  367. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/control.requested.json +0 -0
  368. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/custom.json +0 -0
  369. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/input.appended.json +0 -0
  370. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/message.completed.json +0 -0
  371. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/node.updated.json +0 -0
  372. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/progress.reported.json +0 -0
  373. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/run.cancelled.json +0 -0
  374. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/run.completed.json +0 -0
  375. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/run.failed.json +0 -0
  376. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/run.interrupted.json +0 -0
  377. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/run.paused.json +0 -0
  378. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/run.resumed.json +0 -0
  379. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/run.started.json +0 -0
  380. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/status.reported.json +0 -0
  381. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/text.delta.json +0 -0
  382. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/thought.delta.json +0 -0
  383. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/tool.call.completed.json +0 -0
  384. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/tool.call.started.json +0 -0
  385. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/snapshots/usage.reported.json +0 -0
  386. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/test_content.py +0 -0
  387. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/test_context.py +0 -0
  388. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/test_events.py +0 -0
  389. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/test_golden_json.py +0 -0
  390. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/test_import_law.py +0 -0
  391. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/test_model_config.py +0 -0
  392. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/test_old_reader_block_compat.py +0 -0
  393. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/test_old_reader_compat.py +0 -0
  394. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/test_reporting.py +0 -0
  395. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/test_run_lifecycle_tables.py +0 -0
  396. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/core/test_vocabularies_agree.py +0 -0
  397. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/crash_worker.py +0 -0
  398. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/event_log_checks.py +0 -0
  399. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/README.md +0 -0
  400. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/conftest.py +0 -0
  401. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/fixture_project/.agentdeck/agents/greeter/agent.py +0 -0
  402. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/fixture_project/.agentdeck/workflows/approval_flow/workflow.py +0 -0
  403. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/fixture_project/.agentdeck/workflows/boom_flow/workflow.py +0 -0
  404. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/fixture_project/.agentdeck/workflows/crash_flow/workflow.py +0 -0
  405. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/fixture_project/.agentdeck/workflows/echo_flow/workflow.py +0 -0
  406. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/fixture_project/.agentdeck/workflows/fanout_interrupt_flow/workflow.py +0 -0
  407. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/fixture_project/.agentdeck/workflows/side_effect_flow/workflow.py +0 -0
  408. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/01_health.http +0 -0
  409. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/02_chat.http +0 -0
  410. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/03_chat_stream.http +0 -0
  411. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/04_chat_missing_field.http +0 -0
  412. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/05_agent_unknown.http +0 -0
  413. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/06_workflow.http +0 -0
  414. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/07_workflow_stream.http +0 -0
  415. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/08_interrupt_stream.http +0 -0
  416. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/09_pending.http +0 -0
  417. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/10_resume.http +0 -0
  418. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/11_pending_after_resume.http +0 -0
  419. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/12_workflow_error.http +0 -0
  420. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/13_workflow_error_stream.http +0 -0
  421. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/14_side_effect.http +0 -0
  422. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/15_side_effect_stream.http +0 -0
  423. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/16_fanout_interrupt.http +0 -0
  424. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/17_fanout_interrupt_stream.http +0 -0
  425. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/snapshots/18_workflow_crash.http +0 -0
  426. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/golden/test_golden_wire.py +0 -0
  427. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/project_engines.py +0 -0
  428. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_agent_model_resolution.py +0 -0
  429. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_authoring.py +0 -0
  430. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_brand_assets.py +0 -0
  431. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_cli.py +0 -0
  432. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_cli_render.py +0 -0
  433. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_composition.py +0 -0
  434. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_context_injection.py +0 -0
  435. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_context_validation.py +0 -0
  436. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_crash_reconciliation.py +0 -0
  437. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_deck.py +0 -0
  438. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_docs_examples.py +0 -0
  439. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_docs_site.py +0 -0
  440. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_errors.py +0 -0
  441. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_examples.py +0 -0
  442. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_generated_reference.py +0 -0
  443. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_handoff_ends_on_user_turn.py +0 -0
  444. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_handoff_round_trip.py +0 -0
  445. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_handoffs.py +0 -0
  446. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_instructions_and_hooks.py +0 -0
  447. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_invocable_registry.py +0 -0
  448. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_jack.py +0 -0
  449. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_jack_server.py +0 -0
  450. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_langfuse_sink.py +0 -0
  451. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_langfuse_tracer.py +0 -0
  452. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_langgraph_checkpointer.py +0 -0
  453. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_langgraph_fanout_interrupt.py +0 -0
  454. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_langgraph_node_boundary_pause.py +0 -0
  455. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_langgraph_structured_state.py +0 -0
  456. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_load_file_node.py +0 -0
  457. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_mcp.py +0 -0
  458. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_mcp_tool_source.py +0 -0
  459. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_memory_store.py +0 -0
  460. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_multiprocess_concurrency.py +0 -0
  461. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_node_compilation.py +0 -0
  462. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_observability.py +0 -0
  463. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_openai_agents_engine.py +0 -0
  464. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_openai_agents_reconcile.py +0 -0
  465. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_openai_agents_sessions.py +0 -0
  466. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_openai_agents_tool_failure.py +0 -0
  467. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_package.py +0 -0
  468. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_postgres_store.py +0 -0
  469. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_redis_store.py +0 -0
  470. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_run_config_parity.py +0 -0
  471. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_run_control.py +0 -0
  472. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_run_reporting.py +0 -0
  473. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_runtime_service.py +0 -0
  474. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_serve.py +0 -0
  475. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_serve_compat.py +0 -0
  476. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_serve_session_claim.py +0 -0
  477. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_settings.py +0 -0
  478. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_sink_dispatch.py +0 -0
  479. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_skills.py +0 -0
  480. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_sqlite_control_port.py +0 -0
  481. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_sqlite_store.py +0 -0
  482. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_streaming.py +0 -0
  483. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_tool_compilation.py +0 -0
  484. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_uc1_handoff.py +0 -0
  485. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_uc2_claim_pipeline.py +0 -0
  486. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_uc3_slowpoke.py +0 -0
  487. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_web_search.py +0 -0
  488. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_workflow_durability.py +0 -0
  489. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_workflow_interrupts.py +0 -0
  490. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_workflow_streaming.py +0 -0
  491. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/tests/test_workflow_timers.py +0 -0
  492. {agentdeck_sdk-4.0.2 → agentdeck_sdk-4.0.3}/uv.lock +0 -0
@@ -0,0 +1,119 @@
1
+ name: Documentation contribution
2
+ description: A scoped documentation task, specified well enough to be someone's first contribution.
3
+ title: "docs: "
4
+ labels: ["documentation", "area:docs"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Questions are welcome on this issue. Ask before you write if anything about
10
+ AgentDeck's intent is unclear: a maintainer will answer, and asking is not a
11
+ sign the task was too hard for you.
12
+
13
+ - type: textarea
14
+ id: context
15
+ attributes:
16
+ label: Context
17
+ description: >
18
+ The AgentDeck concept this documents, and why the page exists. A contributor
19
+ should not have to reverse-engineer the architecture before starting.
20
+ validations:
21
+ required: true
22
+
23
+ - type: textarea
24
+ id: current-state
25
+ attributes:
26
+ label: Current state
27
+ description: What is implemented, and what the page already says. Link both the page and the source.
28
+ validations:
29
+ required: true
30
+
31
+ - type: textarea
32
+ id: missing
33
+ attributes:
34
+ label: What is missing
35
+ description: >
36
+ Precise. Not "improve this page". Name the artifact: a runnable example of X,
37
+ a diagram of Y, a troubleshooting entry for Z.
38
+ validations:
39
+ required: true
40
+
41
+ - type: textarea
42
+ id: expected
43
+ attributes:
44
+ label: Expected contribution
45
+ description: What to add, with a suggested structure or heading list.
46
+ validations:
47
+ required: true
48
+
49
+ - type: textarea
50
+ id: apis
51
+ attributes:
52
+ label: Relevant APIs and source files
53
+ description: The classes, functions and protocols to read, with links.
54
+ validations:
55
+ required: true
56
+
57
+ - type: input
58
+ id: files
59
+ attributes:
60
+ label: Files to change
61
+ description: The exact MDX or example paths.
62
+ validations:
63
+ required: true
64
+
65
+ - type: textarea
66
+ id: acceptance
67
+ attributes:
68
+ label: Acceptance criteria
69
+ value: |
70
+ - [ ] Uses only public APIs from `agentdeck`
71
+ - [ ] Any code shown runs against the current release
72
+ - [ ] Does not duplicate the Quickstart
73
+ - [ ] Includes the expected output
74
+ - [ ] Links the related reference page
75
+ - [ ] `make check` passes
76
+ - [ ] `docs-site` builds
77
+ validations:
78
+ required: true
79
+
80
+ - type: textarea
81
+ id: out-of-scope
82
+ attributes:
83
+ label: Out of scope
84
+ value: |
85
+ - No API redesign
86
+ - No new runtime behavior
87
+ - No change to Run semantics
88
+ - No navigation restructuring
89
+ - No new abstraction unless agreed on this issue first
90
+ validations:
91
+ required: true
92
+
93
+ - type: textarea
94
+ id: verify
95
+ attributes:
96
+ label: How to verify locally
97
+ value: |
98
+ ```bash
99
+ make install # editable install with every extra
100
+ make check # ruff, ty, import-linter, pytest
101
+
102
+ cd docs-site
103
+ npm install
104
+ npm run dev # http://localhost:3040
105
+ ```
106
+ validations:
107
+ required: true
108
+
109
+ - type: dropdown
110
+ id: difficulty
111
+ attributes:
112
+ label: Difficulty
113
+ description: Small and medium are eligible for `good first issue`. Advanced is not.
114
+ options:
115
+ - small
116
+ - medium
117
+ - advanced
118
+ validations:
119
+ required: true
@@ -0,0 +1 @@
1
+ {"agentdeck.adapters.tools.mcp.lifecycle": 1787116965.5550206, "agentdeck.authoring.state": 1787116965.5558999, "agentdeck.adapters.stores.memory.store": 1787116965.5538716, "agentdeck.adapters.leases.memory": 1787116965.5535116, "agentdeck.observers": 1787116965.5570045, "agentdeck.core.ports.tools": 1787116965.5570045, "agentdeck.adapters.engines.openai_agents.reconcile": 1787116965.5529594, "agentdeck.adapters.control.memory": 1787116965.5522475, "agentdeck.testing": 1787116965.5592065, "agentdeck.authoring": 1787116965.5550206, "agentdeck.surfaces.serve.compat": 1787116965.5592065, "agentdeck.core.content": 1787116965.5565078, "agentdeck.errors": 1787116965.5570045, "agentdeck.mcp": 1787116965.5570045, "agentdeck.surfaces.serve": 1787116965.559095, "agentdeck.adapters.control.sqlite.port": 1787116965.552406, "agentdeck.authoring.graphs": 1787116965.5552967, "agentdeck.adapters.telemetry": 1787116965.5544012, "agentdeck.adapters.engines.langgraph": 1787116965.5525553, "agentdeck.adapters.engines.langgraph.engine": 1787116965.5526073, "agentdeck.adapters.control.memory.port": 1787116965.5522985, "agentdeck.adapters.tools.mcp.transport": 1787116965.5550206, "agentdeck.adapters.stores.postgres": 1787116965.5538716, "agentdeck.adapters.tools.mcp": 1787116965.5549686, "agentdeck.surfaces.cli.chat": 1787116965.559095, "agentdeck.core.ports.engine": 1787116965.5570045, "agentdeck.surfaces.cli": 1787116965.5590405, "agentdeck.adapters.leases.sqlite": 1787116965.553562, "agentdeck.adapters.telemetry.langfuse": 1787116965.5546103, "agentdeck.cli": 1787116965.5558999, "agentdeck.authoring.runners.agent": 1787116965.5558999, "agentdeck.authoring.compile": 1787116965.5552967, "agentdeck.deck": 1787116965.5570045, "agentdeck.adapters.telemetry.langfuse.client": 1787116965.5546634, "agentdeck.adapters.engines.stub.engine": 1787116965.5533779, "agentdeck.core.base": 1787116965.5565078, "agentdeck.authoring.instructions": 1787116965.5552967, "agentdeck.core.context": 1787116965.5565078, "agentdeck.core.invocable": 1787116965.5565078, "agentdeck.adapters.stores.memory": 1787116965.5538218, "agentdeck.runtime": 1787116965.5570045, "agentdeck.core.ports.lease": 1787116965.5570045, "agentdeck.authoring.tools": 1787116965.5558999, "agentdeck.authoring.timers": 1787116965.5558999, "agentdeck.authoring.runners.workflow": 1787116965.5558999, "agentdeck.adapters.engines.openai_agents.translate": 1787116965.5529594, "agentdeck.adapters.stores.redis.store": 1787116965.5542138, "agentdeck": 1787116965.552069, "agentdeck.authoring.web_search": 1787116965.5558999, "agentdeck.core.ports.store": 1787116965.5570045, "agentdeck.authoring.injection": 1787116965.5552967, "agentdeck.composition": 1787116965.5558999, "agentdeck.adapters": 1787116965.552069, "agentdeck.surfaces": 1787116965.5589151, "agentdeck.adapters.control.sqlite": 1787116965.5522985, "agentdeck.adapters.engines.langgraph.checkpointer": 1787116965.5526073, "agentdeck.authoring.runners": 1787116965.5552967, "agentdeck.authoring.agent": 1787116965.5552967, "agentdeck.core.ports": 1787116965.5565078, "agentdeck.adapters.tools": 1787116965.5546634, "agentdeck.surfaces.serve.workflows": 1787116965.5592065, "agentdeck.adapters.engines.openai_agents.engine": 1787116965.5529594, "agentdeck.adapters.telemetry.langfuse.sink": 1787116965.5546634, "agentdeck.core.events": 1787116965.5565078, "agentdeck.adapters.stores.sqlite.store": 1787116965.5544012, "agentdeck.authoring.nodes": 1787116965.5552967, "agentdeck.core.control": 1787116965.5565078, "agentdeck.authoring.workflow": 1787116965.5558999, "agentdeck.skills": 1787116965.557994, "agentdeck.adapters.engines": 1787116965.552406, "agentdeck.adapters.tools.mcp.wiring": 1787116965.5550206, "agentdeck.core.ports.sink": 1787116965.5570045, "agentdeck.runtime.dispatch": 1787116965.557994, "agentdeck.authoring.interrupts": 1787116965.5552967, "agentdeck.runtime.service": 1787116965.557994, "agentdeck.authoring.hooks": 1787116965.5552967, "agentdeck.adapters.leases": 1787116965.5533779, "agentdeck.adapters.leases.memory.port": 1787116965.553562, "agentdeck.runtime.registry": 1787116965.557994, "agentdeck.core.ports.control": 1787116965.5570045, "agentdeck.adapters.engines.openai_agents.sessions": 1787116965.5529594, "agentdeck.core": 1787116965.5558999, "agentdeck.adapters.engines.openai_agents.runconfig": 1787116965.5529594, "agentdeck.adapters.engines.stub": 1787116965.5529594, "agentdeck.core.status": 1787116965.5570045, "agentdeck.skills.bundle": 1787116965.5589151, "agentdeck.adapters.tools.mcp.source": 1787116965.5550206, "agentdeck.adapters.stores.redis": 1787116965.5540164, "agentdeck.adapters.engines.openai_agents": 1787116965.5526073, "agentdeck.adapters.leases.sqlite.port": 1787116965.5536659, "agentdeck.runtime.capture": 1787116965.557994, "agentdeck.runtime.settings": 1787116965.557994, "agentdeck.adapters.stores": 1787116965.5536659, "agentdeck.adapters.stores.sqlite": 1787116965.5542138, "agentdeck.core.reporting": 1787116965.5570045, "agentdeck.authoring.skills": 1787116965.5558999, "agentdeck.runtime.discovery": 1787116965.557994, "agentdeck.adapters.telemetry.langfuse.trace": 1787116965.5546634, "agentdeck.adapters.control": 1787116965.552186, "agentdeck.adapters.stores.postgres.store": 1787116965.5540164, "agentdeck.serve": 1787116965.557994, "agentdeck.surfaces.serve.app": 1787116965.5592065}
@@ -0,0 +1 @@
1
+ {"agentdeck.adapters.leases":[],"agentdeck.adapters.control.sqlite.port":[["sqlite3",10,"import sqlite3"],["asyncio",9,"import asyncio"],["typing",13,"from typing import TYPE_CHECKING"],["agentdeck.core.control",15,"from agentdeck.core.control import ControlSignal, Signal"],["__future__",7,"from __future__ import annotations"],["contextlib",11,"from contextlib import suppress"],["agentdeck.errors",17,"from agentdeck.errors import StoreError"],["pathlib",21,"from pathlib import Path"],["agentdeck.core.ports.control",16,"from agentdeck.core.ports.control import ControlPort"],["collections",20,"from collections.abc import Callable"],["functools",12,"from functools import partial"]],"agentdeck.core.ports.lease":[["__future__",14,"from __future__ import annotations"],["collections",20,"from collections.abc import Collection"],["typing",17,"from typing import TYPE_CHECKING"],["abc",16,"from abc import ABC, abstractmethod"],["datetime",21,"from datetime import timedelta"]],"agentdeck.authoring.instructions":[["inspect",20,"import inspect"],["typing",21,"from typing import TYPE_CHECKING, Any"],["agentdeck.authoring.injection",23,"from agentdeck.authoring.injection import analyze_callable, check_context_type, describe_callable"],["__future__",18,"from __future__ import annotations"],["agentdeck.errors",25,"from agentdeck.errors import ConfigError"],["agentdeck.core.context",24,"from agentdeck.core.context import Context, RunContext"],["collections",28,"from collections.abc import Callable"]],"agentdeck.adapters.tools.mcp.source":[["agentdeck.adapters.tools.mcp.wiring",13,"from agentdeck.adapters.tools.mcp.wiring import mcp_status_banner, resolve_agent_mcp_status"],["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.authoring.timers":[["__future__",7,"from __future__ import annotations"],["datetime",9,"from datetime import UTC, datetime"],["typing",10,"from typing import Any"],["langgraph",12,"from langgraph.types import interrupt"]],"agentdeck.adapters.control":[],"agentdeck.core.ports.sink":[["abc",9,"from abc import ABC, abstractmethod"],["agentdeck.core.events",13,"from agentdeck.core.events import Event"],["__future__",7,"from __future__ import annotations"],["typing",10,"from typing import TYPE_CHECKING"]],"agentdeck.adapters.tools":[],"agentdeck.adapters.stores.sqlite.store":[["pathlib",27,"from pathlib import Path"],["contextlib",14,"from contextlib import suppress"],["asyncio",11,"import asyncio"],["__future__",9,"from __future__ import annotations"],["agentdeck.core.context",29,"from agentdeck.core.context import RunContext"],["agentdeck.core.status",21,"from agentdeck.core.status import LIFECYCLE_KINDS, STATES, can_resume, status_of"],["datetime",15,"from datetime import datetime"],["sqlite3",13,"import sqlite3"],["json",12,"import json"],["agentdeck.core.status",31,"from agentdeck.core.status import RunStatus"],["agentdeck.core.events",19,"from agentdeck.core.events import Event"],["datetime",26,"from datetime import timedelta"],["agentdeck.core.ports",20,"from agentdeck.core.ports import EventStorePort, RunSummary, SessionClaim"],["agentdeck.errors",22,"from agentdeck.errors import DuplicateKeyError, StoreError"],["functools",16,"from functools import partial"],["typing",17,"from typing import TYPE_CHECKING"],["agentdeck.core.events",30,"from agentdeck.core.events import KnownPayload, RunResumed, RunStarted"],["collections",25,"from collections.abc import Callable, Sequence"]],"agentdeck.adapters.stores.sqlite":[["agentdeck.adapters.stores.sqlite.store",3,"from agentdeck.adapters.stores.sqlite.store import SqliteEventStore"]],"agentdeck.adapters.engines.openai_agents":[["agentdeck.adapters.engines.openai_agents.runconfig",6,"from agentdeck.adapters.engines.openai_agents.runconfig import RunSettings"],["__future__",3,"from __future__ import annotations"],["agentdeck.adapters.engines.openai_agents.engine",5,"from agentdeck.adapters.engines.openai_agents.engine import OpenAIAgentsEngine"],["agentdeck.adapters.engines.openai_agents.sessions",7,"from agentdeck.adapters.engines.openai_agents.sessions import ExecutionStore, SessionFactory"]],"agentdeck.surfaces":[],"agentdeck.adapters":[],"agentdeck.authoring.runners":[["agentdeck.authoring.runners.agent",3,"from agentdeck.authoring.runners.agent import BaseRunner, HeadlessRunner, StreamDone"],["agentdeck.authoring.runners.workflow",4,"from agentdeck.authoring.runners.workflow import BaseWorkflowRunner, DevWorkflowRunner"]],"agentdeck.adapters.engines.openai_agents.reconcile":[["agentdeck.core.events",42,"from agentdeck.core.events import Event"],["agentdeck.core.content",41,"from agentdeck.core.content import Input"],["typing",29,"from typing import TYPE_CHECKING, Any, Literal"],["__future__",24,"from __future__ import annotations"],["asyncio",26,"import asyncio"],["agents",39,"from agents.memory.session import Session"],["collections",36,"from collections.abc import Iterable, Sequence"],["agentdeck.core.content",32,"from agentdeck.core.content import DataBlock, TextBlock"],["agents",38,"from agents.items import TResponseInputItem"],["logging",28,"import logging"],["json",27,"import json"],["agentdeck.core.events",33,"from agentdeck.core.events import Custom, InputAppended, MessageCompleted, RunCancelled, RunStarted"],["weakref",30,"from weakref import WeakKeyDictionary"]],"agentdeck.adapters.leases.memory":[["agentdeck.adapters.leases.memory.port",3,"from agentdeck.adapters.leases.memory.port import MemoryLeasePort"]],"agentdeck.adapters.telemetry.langfuse.trace":[["collections",18,"from collections.abc import Mapping"],["typing",15,"from typing import TYPE_CHECKING, Any, Literal, Protocol"],["agentdeck.core.events",20,"from agentdeck.core.events import Usage"],["__future__",13,"from __future__ import annotations"]],"agentdeck.authoring.graphs":[["inspect",26,"import inspect"],["langgraph",38,"from langgraph.graph.state import StateGraph"],["asyncio",24,"import asyncio"],["agentdeck.authoring.injection",40,"from agentdeck.authoring.injection import CallableAnalysis"],["langgraph",29,"from langgraph.utils.runnable import RunnableCallable"],["typing",27,"from typing import TYPE_CHECKING, Any"],["__future__",22,"from __future__ import annotations"],["collections",36,"from collections.abc import Callable"],["agentdeck.authoring.injection",31,"from agentdeck.authoring.injection import analyze_callable, check_context_type, describe_callable"],["dataclasses",25,"import dataclasses"],["agentdeck.core.context",32,"from agentdeck.core.context import Context, RunContext"],["agentdeck.errors",33,"from agentdeck.errors import ConfigError"]],"agentdeck.authoring":[["agentdeck.authoring.timers",10,"from agentdeck.authoring.timers import sleep_until"],["agentdeck.authoring.interrupts",8,"from agentdeck.authoring.interrupts import InterruptResult"],["agentdeck.authoring.agent",7,"from agentdeck.authoring.agent import Agent, AgentDeclaration"],["agentdeck.authoring.nodes",9,"from agentdeck.authoring.nodes import AgentNode, LoadFileNode"],["agentdeck.authoring.workflow",11,"from agentdeck.authoring.workflow import Workflow, WorkflowDeclaration"]],"agentdeck.mcp":[["typing",14,"from typing import Any"],["__future__",10,"from __future__ import annotations"],["pydantic",16,"from pydantic import BaseModel, ConfigDict, Field"],["json",12,"import json"],["pathlib",13,"from pathlib import Path"],["agentdeck.errors",18,"from agentdeck.errors import ConfigError"]],"agentdeck.adapters.engines.stub.engine":[["agentdeck.core.context",28,"from agentdeck.core.context import RunContext"],["collections",15,"from collections.abc import Sequence"],["agentdeck.core.content",27,"from agentdeck.core.content import Input"],["agentdeck.core.events",19,"from agentdeck.core.events import RunInterrupted"],["agentdeck.core.events",29,"from agentdeck.core.events import Event, KnownPayload"],["agentdeck.errors",22,"from agentdeck.errors import ConfigError"],["agentdeck.core.control",18,"from agentdeck.core.control import ControlSignalled"],["__future__",13,"from __future__ import annotations"],["typing",16,"from typing import TYPE_CHECKING, Any, ClassVar"],["agentdeck.core.invocable",20,"from agentdeck.core.invocable import InvocableKind, InvocableSpec"],["agentdeck.core.ports",21,"from agentdeck.core.ports import EnginePort"],["collections",25,"from collections.abc import AsyncGenerator"]],"agentdeck.adapters.stores.redis.store":[["__future__",29,"from __future__ import annotations"],["agentdeck.core.events",51,"from agentdeck.core.events import KnownPayload, RunResumed, RunStarted"],["datetime",46,"from datetime import timedelta"],["agentdeck.errors",42,"from agentdeck.errors import DuplicateKeyError, StoreError"],["agentdeck.core.ports",40,"from agentdeck.core.ports import EventStorePort, RunSummary, SessionClaim"],["agentdeck.core.events",39,"from agentdeck.core.events import Event"],["datetime",32,"from datetime import UTC, datetime"],["redis",37,"from redis.exceptions import RedisError, WatchError"],["collections",45,"from collections.abc import Awaitable, Callable, Iterable, Sequence"],["redis",36,"from redis.asyncio import Redis"],["urllib",34,"from urllib.parse import quote, unquote"],["json",31,"import json"],["agentdeck.core.status",52,"from agentdeck.core.status import RunStatus"],["agentdeck.core.context",50,"from agentdeck.core.context import RunContext"],["redis",48,"from redis.asyncio.client import Pipeline"],["agentdeck.core.status",41,"from agentdeck.core.status import LIFECYCLE_KINDS, STATES, can_resume, status_of"],["typing",33,"from typing import TYPE_CHECKING, cast"]],"agentdeck.skills":[["agentdeck.skills.bundle",16,"from agentdeck.skills.bundle import SKILL_MD_FILENAME, SkillBundle"],["typing",13,"from typing import TYPE_CHECKING"],["agentdeck.errors",15,"from agentdeck.errors import DOCS_URL, ConfigError, NotFoundError"],["pathlib",12,"from pathlib import Path"],["__future__",10,"from __future__ import annotations"],["collections",19,"from collections.abc import Sequence"]],"agentdeck.adapters.tools.mcp":[["agentdeck.adapters.tools.mcp.lifecycle",5,"from agentdeck.adapters.tools.mcp.lifecycle import MCPLifecycle"],["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.tools.mcp.source",6,"from agentdeck.adapters.tools.mcp.source import MCP_SERVER_NAMES_KEY, MCPToolSource"],["agentdeck.adapters.tools.mcp.transport",7,"from agentdeck.adapters.tools.mcp.transport import MCPServerStreamableHttpResilient"]],"agentdeck.runtime.dispatch":[["time",25,"import time"],["agentdeck.core.events",31,"from agentdeck.core.events import Event"],["logging",24,"import logging"],["asyncio",23,"import asyncio"],["typing",26,"from typing import TYPE_CHECKING"],["collections",29,"from collections.abc import Callable"],["__future__",21,"from __future__ import annotations"],["agentdeck.core.ports",32,"from agentdeck.core.ports import EventSinkPort"]],"agentdeck.authoring.interrupts":[["__future__",10,"from __future__ import annotations"],["typing",12,"from typing import Any, Literal, NotRequired, TypedDict"]],"agentdeck.authoring.runners.agent":[["__future__",15,"from __future__ import annotations"],["httpx",21,"import httpx"],["openai",23,"from openai import AsyncOpenAI"],["typing",19,"from typing import TYPE_CHECKING, Any, Self, cast"],["agentdeck.runtime.settings",26,"from agentdeck.runtime.settings import Settings, default_use_responses, get_settings"],["collections",29,"from collections.abc import AsyncGenerator, AsyncIterator"],["contextlib",17,"from contextlib import aclosing"],["agentdeck.adapters.engines.openai_agents.runconfig",25,"from agentdeck.adapters.engines.openai_agents.runconfig import build_handoff_ends_on_user_turn_mapper, tracing_enabled"],["dataclasses",18,"from dataclasses import dataclass, field"],["agents",22,"from agents import Agent, ModelSettings, OpenAIProvider, RunConfig, Runner, RunResult"]],"agentdeck.adapters.control.sqlite":[["agentdeck.adapters.control.sqlite.port",3,"from agentdeck.adapters.control.sqlite.port import SqliteControlPort"]],"agentdeck.deck":[["logging",40,"import logging"],["agentdeck.authoring.injection",53,"from agentdeck.authoring.injection import declared_context_type"],["__future__",36,"from __future__ import annotations"],["pathlib",44,"from pathlib import Path"],["uuid",41,"import uuid"],["types",45,"from types import MappingProxyType"],["agentdeck.authoring.interrupts",94,"from agentdeck.authoring.interrupts import InterruptResult"],["agentdeck.adapters.engines.langgraph",48,"from agentdeck.adapters.engines.langgraph import LangGraphEngine"],["agentdeck.core.events",96,"from agentdeck.core.events import Event, Usage"],["functools",39,"import functools"],["agentdeck.authoring.timers",56,"from agentdeck.authoring.timers import WAKE_AT_KEY, wake_at_of"],["agentdeck.core.content",66,"from agentdeck.core.content import DataBlock, TextBlock, coerce_input"],["asyncio",38,"import asyncio"],["agentdeck.skills",85,"from agentdeck.skills import Skills"],["agentdeck.runtime.service",99,"from agentdeck.runtime.service import PendingRun, Runtime"],["collections",89,"from collections.abc import AsyncGenerator, AsyncIterator, Generator, Mapping, Sequence"],["agentdeck.core.control",68,"from agentdeck.core.control import Signal"],["agentdeck.authoring.compile",52,"from agentdeck.authoring.compile import refresh_mcp_status"],["agentdeck.core.ports",98,"from agentdeck.core.ports import EnginePort, EventStorePort"],["agentdeck.composition",58,"from agentdeck.composition import ("],["agentdeck.core.content",95,"from agentdeck.core.content import Input"],["typing",46,"from typing import TYPE_CHECKING, Any, Literal"],["agentdeck.runtime.registry",83,"from agentdeck.runtime.registry import PROJECT_DIR, PluginRegistry, mount_project_dir"],["agents",92,"from agents.tool import FunctionTool"],["contextlib",42,"from contextlib import aclosing, suppress"],["datetime",43,"from datetime import UTC, datetime"],["agentdeck.authoring.skills",55,"from agentdeck.authoring.skills import skills_resolver"],["agentdeck.adapters.tools.mcp.lifecycle",50,"from agentdeck.adapters.tools.mcp.lifecycle import MCPLifecycle"],["agentdeck.authoring.workflow",57,"from agentdeck.authoring.workflow import Workflow"],["agentdeck.core.invocable",97,"from agentdeck.core.invocable import InvocableSpec"],["agentdeck.authoring.interrupts",54,"from agentdeck.authoring.interrupts import interrupt_result"],["agentdeck.runtime.discovery",82,"from agentdeck.runtime.discovery import InvocableRegistry"],["agentdeck.serve",1107,"from agentdeck.serve import build_asgi_app"],["agentdeck.core.ports",78,"from agentdeck.core.ports import EventSinkPort"],["agentdeck.runtime.settings",84,"from agentdeck.runtime.settings import Settings, get_settings"],["builtins",88,"import builtins"],["agentdeck.core.status",79,"from agentdeck.core.status import PRECONDITIONS, SUSPENDED_KINDS, Operation, RunStatus, Verdict"],["agentdeck.core.events",69,"from agentdeck.core.events import ("],["agents",91,"from agents.memory.session import Session"],["agentdeck.core.context",67,"from agentdeck.core.context import RunContext"],["agentdeck.adapters.engines.openai_agents",49,"from agentdeck.adapters.engines.openai_agents import ExecutionStore, OpenAIAgentsEngine, SessionFactory"],["agentdeck.authoring.agent",51,"from agentdeck.authoring.agent import Agent"],["agentdeck.errors",80,"from agentdeck.errors import AgentdeckError, ConfigError, NotFoundError, RunStateError, RunSuspendedError"],["agentdeck.mcp",81,"from agentdeck.mcp import MCP"]],"agentdeck.adapters.stores":[],"agentdeck.adapters.engines.stub":[["agentdeck.adapters.engines.stub.engine",3,"from agentdeck.adapters.engines.stub.engine import Step, StubEngine, stub_spec"]],"agentdeck.core.ports.control":[["abc",16,"from abc import ABC, abstractmethod"],["agentdeck.core.control",20,"from agentdeck.core.control import ControlSignal, Signal"],["__future__",14,"from __future__ import annotations"],["typing",17,"from typing import TYPE_CHECKING"]],"agentdeck.authoring.tools":[["agentdeck.errors",30,"from agentdeck.errors import ConfigError"],["collections",33,"from collections.abc import Callable"],["agents",26,"from agents import RunContextWrapper, default_tool_error_function, function_tool"],["__future__",20,"from __future__ import annotations"],["agentdeck.core.context",29,"from agentdeck.core.context import Context, RunContext"],["asyncio",22,"import asyncio"],["agentdeck.authoring.injection",37,"from agentdeck.authoring.injection import CallableAnalysis"],["typing",24,"from typing import TYPE_CHECKING, Any"],["inspect",23,"import inspect"],["agentdeck.authoring.injection",28,"from agentdeck.authoring.injection import analyze_callable, check_context_type, describe_callable"],["agents",35,"from agents.tool import FunctionTool"]],"agentdeck.core.ports.store":[["dataclasses",10,"from dataclasses import dataclass"],["abc",9,"from abc import ABC, abstractmethod"],["collections",16,"from collections.abc import Sequence"],["__future__",7,"from __future__ import annotations"],["agentdeck.core.context",19,"from agentdeck.core.context import RunContext"],["agentdeck.core.status",13,"from agentdeck.core.status import RunStatus, status_of"],["typing",11,"from typing import TYPE_CHECKING"],["datetime",17,"from datetime import timedelta"],["agentdeck.core.events",20,"from agentdeck.core.events import Event, KnownPayload, RunResumed, RunStarted"]],"agentdeck.composition":[["agentdeck.adapters.control.memory",21,"from agentdeck.adapters.control.memory import MemoryControlPort"],["datetime",42,"from datetime import timedelta"],["typing",19,"from typing import TYPE_CHECKING"],["agentdeck.adapters.stores.redis",240,"from agentdeck.adapters.stores.redis import RedisEventStore"],["agentdeck.adapters.stores.memory",26,"from agentdeck.adapters.stores.memory import MemoryEventStore"],["__future__",16,"from __future__ import annotations"],["agentdeck.errors",28,"from agentdeck.errors import DOCS_URL"],["agentdeck.runtime.settings",31,"from agentdeck.runtime.settings import ("],["agentdeck.adapters.control.sqlite",22,"from agentdeck.adapters.control.sqlite import SqliteControlPort"],["agentdeck.adapters.leases.sqlite",25,"from agentdeck.adapters.leases.sqlite import SqliteLeasePort"],["agentdeck.runtime.discovery",29,"from agentdeck.runtime.discovery import InvocableRegistry"],["agentdeck.adapters.stores.postgres",249,"from agentdeck.adapters.stores.postgres import PostgresEventStore"],["agentdeck.adapters.stores.sqlite",27,"from agentdeck.adapters.stores.sqlite import SqliteEventStore"],["agentdeck.core.invocable",44,"from agentdeck.core.invocable import InvocableSpec"],["agentdeck.core.ports",45,"from agentdeck.core.ports import ControlPort, EnginePort, EventSinkPort, EventStorePort, LeasePort"],["agentdeck.adapters.engines.openai_agents.runconfig",23,"from agentdeck.adapters.engines.openai_agents.runconfig import RunSettings"],["logging",18,"import logging"],["agentdeck.observers",112,"from agentdeck.observers import Langfuse"],["agentdeck.adapters.leases.memory",24,"from agentdeck.adapters.leases.memory import MemoryLeasePort"],["agentdeck.runtime.service",30,"from agentdeck.runtime.service import Runtime"],["collections",41,"from collections.abc import Mapping, Sequence"]],"agentdeck.authoring.web_search":[["__future__",10,"from __future__ import annotations"],["agents",13,"from agents import function_tool"],["httpx",12,"import httpx"],["agentdeck.runtime.settings",15,"from agentdeck.runtime.settings import get_settings"]],"agentdeck.adapters.tools.mcp.transport":[["typing",14,"from typing import TYPE_CHECKING, Any, TypeVar"],["logging",12,"import logging"],["agents",17,"from agents.mcp import MCPServerStreamableHttp"],["contextlib",13,"from contextlib import AsyncExitStack, suppress"],["__future__",9,"from __future__ import annotations"],["asyncio",11,"import asyncio"],["httpx",16,"import httpx"],["collections",20,"from collections.abc import Awaitable, Callable"]],"agentdeck.runtime.discovery":[["agentdeck.errors",19,"from agentdeck.errors import ConfigError"],["typing",12,"from typing import TYPE_CHECKING, Any, Final"],["agentdeck.authoring.agent",14,"from agentdeck.authoring.agent import Agent"],["agentdeck.core.invocable",18,"from agentdeck.core.invocable import InvocableKind, InvocableSpec"],["agents",25,"from agents import Agent as SDKAgent"],["__future__",10,"from __future__ import annotations"],["collections",23,"from collections.abc import Callable, Mapping, Sequence"],["agents",26,"from agents.tool import FunctionTool"],["agentdeck.core.ports",28,"from agentdeck.core.ports import EnginePort"],["agentdeck.authoring.workflow",17,"from agentdeck.authoring.workflow import Workflow"],["agentdeck.authoring.graphs",16,"from agentdeck.authoring.graphs import bridge_context_nodes"],["agentdeck.authoring.compile",15,"from agentdeck.authoring.compile import compile_agent, link_handoffs"],["agentdeck.runtime.registry",20,"from agentdeck.runtime.registry import PluginRegistry, mount_project_dir"]],"agentdeck.adapters.leases.memory.port":[["__future__",10,"from __future__ import annotations"],["typing",13,"from typing import TYPE_CHECKING"],["datetime",12,"from datetime import UTC, datetime"],["agentdeck.core.ports.lease",15,"from agentdeck.core.ports.lease import LeasePort"],["datetime",19,"from datetime import timedelta"],["collections",18,"from collections.abc import Callable, Collection"]],"agentdeck.authoring.runners.workflow":[["__future__",13,"from __future__ import annotations"],["dataclasses",15,"from dataclasses import dataclass, field"],["agentdeck.authoring.compile",21,"from agentdeck.authoring.compile import compile_workflow"],["typing",16,"from typing import TYPE_CHECKING, Any, Self, cast"],["agentdeck.authoring.workflow",29,"from agentdeck.authoring.workflow import Workflow"],["agentdeck.authoring.state",22,"from agentdeck.authoring.state import coerce_input"],["agentdeck.adapters.engines.langgraph.engine",20,"from agentdeck.adapters.engines.langgraph.engine import STREAM_CONFIGURABLE_KEY"],["langchain_core",18,"from langchain_core.runnables import RunnableConfig"],["collections",25,"from collections.abc import AsyncIterator"],["langgraph",27,"from langgraph.graph.state import CompiledStateGraph"]],"agentdeck.adapters.control.memory":[["agentdeck.adapters.control.memory.port",3,"from agentdeck.adapters.control.memory.port import MemoryControlPort"]],"agentdeck.authoring.skills":[["agentdeck.skills",20,"from agentdeck.skills import Skills"],["agents",13,"from agents import function_tool"],["agents",18,"from agents.tool import FunctionTool"],["collections",16,"from collections.abc import Callable, Sequence"],["typing",11,"from typing import TYPE_CHECKING"],["__future__",9,"from __future__ import annotations"]],"agentdeck.authoring.agent":[["agents",18,"from agents.lifecycle import AgentHooks"],["collections",15,"from collections.abc import Callable, Mapping, Sequence"],["agentdeck.authoring.compile",152,"from agentdeck.authoring.compile import compile_agent"],["agentdeck.authoring.runners.agent",158,"from agentdeck.authoring.runners.agent import HeadlessRunner"],["__future__",10,"from __future__ import annotations"],["typing",12,"from typing import TYPE_CHECKING, Any, ClassVar"],["agents",17,"from agents.agent_output import AgentOutputSchemaBase"]],"agentdeck.adapters.telemetry.langfuse.sink":[["agentdeck.core.events",53,"from agentdeck.core.events import Event, Usage"],["logging",25,"import logging"],["json",24,"import json"],["typing",28,"from typing import TYPE_CHECKING, Any"],["agentdeck.adapters.telemetry.langfuse.trace",51,"from agentdeck.adapters.telemetry.langfuse.trace import Level, Observation, ObservationKind, Tracer"],["agentdeck.core.ports",46,"from agentdeck.core.ports import EventSinkPort"],["agentdeck.core.events",31,"from agentdeck.core.events import ("],["agentdeck.core.content",52,"from agentdeck.core.content import Input"],["collections",49,"from collections.abc import Mapping"],["__future__",21,"from __future__ import annotations"],["asyncio",23,"import asyncio"],["agentdeck.core.content",30,"from agentdeck.core.content import DataBlock, ImageBlock, ResourceBlock, TextBlock"],["re",26,"import re"],["dataclasses",27,"from dataclasses import dataclass, field"]],"agentdeck.core.reporting":[["agentdeck.core.events",22,"from agentdeck.core.events import KnownPayload"],["__future__",12,"from __future__ import annotations"],["logging",14,"import logging"],["agentdeck.core.events",17,"from agentdeck.core.events import ProgressReported, StatusReported"],["typing",15,"from typing import TYPE_CHECKING"],["collections",20,"from collections import deque"]],"agentdeck.adapters.stores.memory.store":[["agentdeck.core.events",9,"from agentdeck.core.events import Event"],["agentdeck.core.events",19,"from agentdeck.core.events import KnownPayload, RunResumed, RunStarted"],["agentdeck.errors",12,"from agentdeck.errors import DuplicateKeyError, StoreError"],["datetime",6,"from datetime import UTC, datetime"],["agentdeck.core.status",11,"from agentdeck.core.status import LIFECYCLE_KINDS, STATES, RunStatus, can_resume, status_of"],["__future__",3,"from __future__ import annotations"],["collections",15,"from collections.abc import Callable, Sequence"],["typing",7,"from typing import TYPE_CHECKING"],["asyncio",5,"import asyncio"],["agentdeck.core.ports",10,"from agentdeck.core.ports import EventStorePort, RunSummary, SessionClaim"],["datetime",16,"from datetime import timedelta"],["agentdeck.core.context",18,"from agentdeck.core.context import RunContext"]],"agentdeck.authoring.hooks":[["inspect",21,"import inspect"],["typing",22,"from typing import TYPE_CHECKING, Any"],["agentdeck.core.context",27,"from agentdeck.core.context import Context, RunContext"],["agentdeck.errors",28,"from agentdeck.errors import ConfigError"],["__future__",19,"from __future__ import annotations"],["agents",24,"from agents.lifecycle import AgentHooks"],["collections",31,"from collections.abc import Callable"],["agentdeck.authoring.injection",26,"from agentdeck.authoring.injection import analyze_callable, check_context_type, describe_callable"]],"agentdeck.cli":[["agentdeck.adapters.control.sqlite",22,"from agentdeck.adapters.control.sqlite import SqliteControlPort"],["agentdeck.core.control",23,"from agentdeck.core.control import Signal"],["__future__",17,"from __future__ import annotations"],["argparse",19,"import argparse"],["asyncio",20,"import asyncio"]],"agentdeck":[["agentdeck.authoring",13,"from agentdeck.authoring import Agent, Workflow"],["importlib",10,"from importlib.metadata import PackageNotFoundError"],["importlib",11,"from importlib.metadata import version as _version"],["agentdeck.deck",15,"from agentdeck.deck import Deck, Run, TurnResult"],["agentdeck.errors",16,"from agentdeck.errors import ("],["agentdeck.core.context",14,"from agentdeck.core.context import Context"]],"agentdeck.core.invocable":[["enum",9,"from enum import StrEnum"],["agentdeck.core.base",14,"from agentdeck.core.base import CoreModel"],["typing",10,"from typing import Any"],["pydantic",12,"from pydantic import ConfigDict, Field"],["__future__",7,"from __future__ import annotations"]],"agentdeck.core.control":[["time",15,"import time"],["collections",24,"from collections.abc import Callable, Mapping"],["__future__",13,"from __future__ import annotations"],["enum",17,"from enum import StrEnum"],["agentdeck.core.status",21,"from agentdeck.core.status import Action, RunStatus, decide"],["agentdeck.core.events",26,"from agentdeck.core.events import ControlVerb, KnownPayload, SafePoint"],["agentdeck.core.ports.control",27,"from agentdeck.core.ports.control import ControlPort"],["typing",18,"from typing import TYPE_CHECKING, ClassVar"],["agentdeck.core.events",20,"from agentdeck.core.events import ControlObserved, ControlRequested, RunCancelled, RunPaused"],["dataclasses",16,"from dataclasses import dataclass"]],"agentdeck.serve":[["fastapi",108,"from fastapi.responses import JSONResponse, StreamingResponse"],["logging",55,"import logging"],["agentdeck.deck",83,"from agentdeck.deck import Deck"],["agentdeck.core.status",61,"from agentdeck.core.status import status_of"],["collections",72,"from collections.abc import AsyncGenerator, AsyncIterator, Awaitable, Callable"],["fastapi",74,"from fastapi import FastAPI"],["agentdeck.errors",62,"from agentdeck.errors import AgentdeckError, NotFoundError, RunStateError, SessionBusyError"],["os",56,"import os"],["__future__",52,"from __future__ import annotations"],["fastapi",107,"from fastapi import FastAPI, HTTPException, Request"],["agentdeck.deck",77,"from agentdeck.deck import Deck"],["contextlib",57,"from contextlib import aclosing, asynccontextmanager"],["agentdeck.core.content",60,"from agentdeck.core.content import coerce_input"],["typing",58,"from typing import TYPE_CHECKING, Any"],["uvicorn",354,"import uvicorn"],["agentdeck.surfaces.serve.compat",63,"from agentdeck.surfaces.serve.compat import ("],["argparse",54,"import argparse"],["agentdeck.core.events",76,"from agentdeck.core.events import Event"]],"agentdeck.adapters.engines.openai_agents.runconfig":[["dataclasses",22,"from dataclasses import dataclass"],["typing",23,"from typing import TYPE_CHECKING, Any, cast"],["httpx",25,"import httpx"],["agents",26,"from agents import ModelSettings, MultiProvider, OpenAIProvider, RunConfig, default_handoff_history_mapper"],["os",21,"import os"],["agents",30,"from agents.handoffs import HandoffHistoryMapper"],["agents",31,"from agents.items import TResponseInputItem"],["openai",27,"from openai import AsyncOpenAI"],["__future__",19,"from __future__ import annotations"]],"agentdeck.observers":[["typing",15,"from typing import TYPE_CHECKING"],["__future__",13,"from __future__ import annotations"],["agentdeck.core.ports",17,"from agentdeck.core.ports import EventSinkPort"],["agents",36,"from agents import set_trace_processors"],["agentdeck.core.events",22,"from agentdeck.core.events import Event"],["openinference",37,"from openinference.instrumentation.openai_agents import ( # ty: ignore[unresolved-import] - [observability] extra"],["agentdeck.errors",18,"from agentdeck.errors import ConfigError"],["agentdeck.runtime.settings",19,"from agentdeck.runtime.settings import get_settings"],["agentdeck.adapters.telemetry.langfuse.client",85,"from agentdeck.adapters.telemetry.langfuse.client import langfuse_sink"]],"agentdeck.adapters.engines.langgraph":[["agentdeck.adapters.engines.langgraph.checkpointer",5,"from agentdeck.adapters.engines.langgraph.checkpointer import resolve_checkpointer"],["__future__",3,"from __future__ import annotations"],["agentdeck.adapters.engines.langgraph.engine",6,"from agentdeck.adapters.engines.langgraph.engine import DURABLE_KEY, REPORTER_KEY, LangGraphEngine"]],"agentdeck.adapters.telemetry":[],"agentdeck.errors":[["__future__",12,"from __future__ import annotations"],["typing",14,"from typing import Any"],["agentdeck.core.status",16,"from agentdeck.core.status import RunStatus"]],"agentdeck.surfaces.serve.workflows":[["agentdeck.runtime.service",21,"from agentdeck.runtime.service import Runtime"],["collections",19,"from collections.abc import AsyncIterator"],["typing",12,"from typing import TYPE_CHECKING, Any"],["fastapi",14,"from fastapi import FastAPI"],["fastapi",15,"from fastapi.responses import StreamingResponse"],["__future__",10,"from __future__ import annotations"],["pydantic",16,"from pydantic import BaseModel"]],"agentdeck.adapters.leases.sqlite":[["agentdeck.adapters.leases.sqlite.port",3,"from agentdeck.adapters.leases.sqlite.port import SqliteLeasePort"]],"agentdeck.adapters.engines.openai_agents.translate":[["logging",15,"import logging"],["__future__",11,"from __future__ import annotations"],["json",14,"import json"],["hashlib",13,"import hashlib"],["agentdeck.core.events",18,"from agentdeck.core.events import ("],["typing",16,"from typing import Any"]],"agentdeck.surfaces.serve.app":[["fastapi",12,"from fastapi.responses import JSONResponse, StreamingResponse"],["http",8,"from http import HTTPStatus"],["agentdeck.core.events",21,"from agentdeck.core.events import Event"],["pydantic",13,"from pydantic import BaseModel, Field"],["agentdeck.errors",16,"from agentdeck.errors import SessionBusyError"],["__future__",6,"from __future__ import annotations"],["agentdeck.core.content",15,"from agentdeck.core.content import coerce_input"],["fastapi",11,"from fastapi import FastAPI"],["agentdeck.runtime.service",22,"from agentdeck.runtime.service import Runtime"],["collections",19,"from collections.abc import AsyncIterator"],["typing",9,"from typing import TYPE_CHECKING, Any"]],"agentdeck.adapters.engines.langgraph.engine":[["collections",39,"from collections.abc import Mapping"],["pydantic",46,"from pydantic import BaseModel"],["contextlib",58,"from contextlib import AbstractAsyncContextManager"],["agentdeck.errors",54,"from agentdeck.errors import DOCS_URL, ConfigError"],["agentdeck.core.context",66,"from agentdeck.core.context import RunContext"],["agentdeck.core.ports",52,"from agentdeck.core.ports import EnginePort"],["agentdeck.core.content",49,"from agentdeck.core.content import DataBlock, TextBlock"],["contextlib",40,"from contextlib import aclosing, nullcontext"],["langgraph",62,"from langgraph.graph.state import CompiledStateGraph"],["agentdeck.core.events",67,"from agentdeck.core.events import Event, KnownPayload"],["agentdeck.core.control",50,"from agentdeck.core.control import ControlSignalled"],["agentdeck.core.invocable",68,"from agentdeck.core.invocable import InvocableSpec"],["langgraph",63,"from langgraph.types import StreamMode"],["langgraph",43,"from langgraph.checkpoint.memory import MemorySaver"],["typing",41,"from typing import TYPE_CHECKING, Any, ClassVar, cast"],["json",38,"import json"],["agentdeck.core.content",65,"from agentdeck.core.content import Input"],["agentdeck.core.events",51,"from agentdeck.core.events import Custom, NodeUpdated, RunCompleted, RunInterrupted, Usage"],["langgraph",45,"from langgraph.types import Command"],["agentdeck.core.status",53,"from agentdeck.core.status import LIFECYCLE_KINDS"],["__future__",35,"from __future__ import annotations"],["langgraph",61,"from langgraph.checkpoint.base import BaseCheckpointSaver"],["agentdeck.adapters.engines.langgraph.checkpointer",48,"from agentdeck.adapters.engines.langgraph.checkpointer import resolve_checkpointer"],["langchain_core",60,"from langchain_core.runnables import RunnableConfig"],["langgraph",44,"from langgraph.graph.state import StateGraph"],["collections",57,"from collections.abc import AsyncGenerator, AsyncIterator, Callable, Sequence"],["dataclasses",37,"import dataclasses"]],"agentdeck.adapters.engines.openai_agents.sessions":[["agents",26,"from agents.memory.session import Session"],["agentdeck.runtime.settings",30,"from agentdeck.runtime.settings import SessionSettings"],["__future__",19,"from __future__ import annotations"],["agents",68,"from agents.extensions.memory import RedisSession"],["redis",27,"from redis.asyncio import Redis"],["redis",53,"from redis.asyncio import Redis"],["agents",23,"from agents import SQLiteSession"],["agentdeck.core.context",29,"from agentdeck.core.context import RunContext"],["typing",21,"from typing import TYPE_CHECKING"]],"agentdeck.adapters.stores.memory":[["agentdeck.adapters.stores.memory.store",3,"from agentdeck.adapters.stores.memory.store import MemoryEventStore"]],"agentdeck.adapters.tools.mcp.lifecycle":[["asyncio",19,"import asyncio"],["collections",27,"from collections.abc import Sequence"],["agents",29,"from agents.mcp import MCPServer"],["agentdeck.adapters.tools.mcp.transport",23,"from agentdeck.adapters.tools.mcp.transport import MCPServerStreamableHttpResilient"],["typing",21,"from typing import TYPE_CHECKING, Any"],["logging",20,"import logging"],["agentdeck.errors",24,"from agentdeck.errors import ConfigError"],["__future__",17,"from __future__ import annotations"]],"agentdeck.runtime.capture":[["enum",14,"from enum import StrEnum"],["__future__",12,"from __future__ import annotations"],["pydantic",16,"from pydantic import BaseModel"]],"agentdeck.authoring.nodes":[["agentdeck.adapters.engines.langgraph.engine",19,"from agentdeck.adapters.engines.langgraph.engine import STREAM_CONFIGURABLE_KEY"],["collections",13,"from collections.abc import Callable, Mapping"],["logging",12,"import logging"],["__future__",10,"from __future__ import annotations"],["typing",15,"from typing import Any"],["pathlib",14,"from pathlib import Path"],["agentdeck.authoring.runners.agent",22,"from agentdeck.authoring.runners.agent import HeadlessRunner, StreamDone"],["agentdeck.authoring.compile",21,"from agentdeck.authoring.compile import compile_agent"],["langgraph",17,"from langgraph.config import get_config, get_stream_writer"],["agentdeck.authoring.agent",20,"from agentdeck.authoring.agent import Agent"]],"agentdeck.testing":[["__future__",14,"from __future__ import annotations"],["threading",18,"import threading"],["agents",26,"from agents.usage import Usage"],["unittest",22,"from unittest.mock import patch"],["agents",25,"from agents.models.interface import Model"],["openai",36,"from openai.types.responses.response_usage import InputTokensDetails, OutputTokensDetails"],["asyncio",16,"import asyncio"],["typing",21,"from typing import TYPE_CHECKING, Any"],["collections",39,"from collections.abc import AsyncIterator, Callable, Iterator, Sequence"],["json",17,"import json"],["contextlib",19,"from contextlib import contextmanager"],["http",20,"from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer"],["openai",27,"from openai.types.responses import ("],["agents",24,"from agents.items import ModelResponse"]],"agentdeck.adapters.engines.openai_agents.engine":[["agentdeck.core.ports",53,"from agentdeck.core.ports import EnginePort"],["agents",59,"from agents.items import TResponseInputItem"],["agentdeck.core.invocable",67,"from agentdeck.core.invocable import InvocableSpec"],["agentdeck.errors",54,"from agentdeck.errors import ConfigError"],["contextlib",39,"from contextlib import AbstractAsyncContextManager, aclosing, asynccontextmanager, nullcontext"],["agents",61,"from agents.result import RunResultStreaming"],["agents",43,"from agents import Agent, Runner"],["collections",57,"from collections.abc import AsyncGenerator, AsyncIterator, Sequence"],["dataclasses",36,"import dataclasses"],["agentdeck.core.events",52,"from agentdeck.core.events import RunCompleted, Usage, UsageReported"],["agents",62,"from agents.usage import Usage as SDKUsage"],["dataclasses",40,"from dataclasses import dataclass"],["collections",38,"from collections.abc import Callable"],["__future__",34,"from __future__ import annotations"],["agents",60,"from agents.memory.session import Session"],["agentdeck.core.events",66,"from agentdeck.core.events import Event, KnownPayload"],["pydantic",44,"from pydantic import BaseModel"],["agentdeck.core.content",64,"from agentdeck.core.content import ContentBlock, Input"],["agentdeck.core.content",50,"from agentdeck.core.content import AudioBlock, DataBlock, ImageBlock, ResourceBlock, TextBlock, coerce_input"],["json",37,"import json"],["agentdeck.core.context",65,"from agentdeck.core.context import RunContext"],["agentdeck.adapters.engines.openai_agents.reconcile",46,"from agentdeck.adapters.engines.openai_agents.reconcile import reconcile, render_data_block"],["agentdeck.adapters.engines.openai_agents.translate",49,"from agentdeck.adapters.engines.openai_agents.translate import translate"],["agentdeck.adapters.engines.openai_agents.sessions",48,"from agentdeck.adapters.engines.openai_agents.sessions import ExecutionStore"],["agentdeck.adapters.engines.openai_agents.runconfig",47,"from agentdeck.adapters.engines.openai_agents.runconfig import RunSettings, build_run_config"],["agentdeck.core.control",51,"from agentdeck.core.control import ControlSignalled"],["typing",41,"from typing import TYPE_CHECKING, Any, ClassVar, cast"]],"agentdeck.runtime":[],"agentdeck.surfaces.cli.chat":[["json",12,"import json"],["collections",32,"from collections.abc import AsyncIterator"],["typing",13,"from typing import TYPE_CHECKING"],["httpx",34,"import httpx"],["agentdeck.core.events",16,"from agentdeck.core.events import ("],["agentdeck.core.content",15,"from agentdeck.core.content import TextBlock"],["__future__",10,"from __future__ import annotations"]],"agentdeck.core.ports.tools":[["agentdeck.core.invocable",22,"from agentdeck.core.invocable import InvocableSpec"],["__future__",12,"from __future__ import annotations"],["typing",15,"from typing import TYPE_CHECKING, Any"],["abc",14,"from abc import ABC, abstractmethod"],["agentdeck.core.base",19,"from agentdeck.core.base import CoreModel"],["pydantic",17,"from pydantic import ConfigDict"]],"agentdeck.authoring.workflow":[["__future__",11,"from __future__ import annotations"],["langgraph",195,"from langgraph.graph import END, START"],["agentdeck.authoring.interrupts",173,"from agentdeck.authoring.interrupts import interrupt_result"],["agentdeck.authoring.compile",172,"from agentdeck.authoring.compile import compile_workflow"],["agentdeck.authoring.compile",103,"from agentdeck.authoring.compile import compile_workflow"],["agentdeck.authoring.runners.workflow",108,"from agentdeck.authoring.runners.workflow import DevWorkflowRunner"],["pydantic",17,"from pydantic import BaseModel"],["agentdeck.authoring.interrupts",27,"from agentdeck.authoring.interrupts import InterruptResult"],["agentdeck.errors",19,"from agentdeck.errors import DOCS_URL, ConfigError"],["langgraph",164,"from langgraph.types import Command"],["agentdeck.authoring.interrupts",140,"from agentdeck.authoring.interrupts import as_interrupt"],["json",13,"import json"],["agents",24,"from agents.tool import FunctionTool"],["re",14,"import re"],["agentdeck.authoring.state",218,"from agentdeck.authoring.state import dump_state"],["collections",22,"from collections.abc import AsyncIterator, Callable, Iterable, Sequence"],["langgraph",25,"from langgraph.graph import StateGraph"],["agentdeck.authoring.interrupts",130,"from agentdeck.authoring.interrupts import INTERRUPT_KEY"],["agents",216,"from agents.tool import FunctionTool"],["typing",15,"from typing import TYPE_CHECKING, Any, ClassVar"]],"agentdeck.adapters.stores.redis":[["agentdeck.adapters.stores.redis.store",3,"from agentdeck.adapters.stores.redis.store import RedisEventStore"]],"agentdeck.surfaces.serve.compat":[["agentdeck.runtime.service",29,"from agentdeck.runtime.service import PendingRun"],["agentdeck.core.events",23,"from agentdeck.core.events import Custom, NodeUpdated, RunCompleted, RunInterrupted, TextDelta, UsageReported"],["contextlib",19,"from contextlib import aclosing"],["agentdeck.core.events",28,"from agentdeck.core.events import Event"],["agentdeck.core.content",22,"from agentdeck.core.content import DataBlock, TextBlock"],["typing",20,"from typing import TYPE_CHECKING, Any"],["json",18,"import json"],["__future__",16,"from __future__ import annotations"],["collections",26,"from collections.abc import AsyncGenerator, AsyncIterator, Sequence"]],"agentdeck.authoring.state":[["json",6,"import json"],["pydantic",11,"from pydantic import BaseModel"],["langgraph",10,"from langgraph.types import Command"],["typing",8,"from typing import Any"],["__future__",3,"from __future__ import annotations"],["dataclasses",5,"import dataclasses"],["collections",7,"from collections.abc import Mapping"]],"agentdeck.adapters.engines":[],"agentdeck.adapters.tools.mcp.wiring":[["typing",10,"from typing import TYPE_CHECKING"],["agentdeck.adapters.tools.mcp.lifecycle",12,"from agentdeck.adapters.tools.mcp.lifecycle import MCPLifecycle"],["__future__",8,"from __future__ import annotations"],["collections",15,"from collections.abc import Iterable, Sequence"],["agents",17,"from agents.mcp import MCPServer"]],"agentdeck.runtime.registry":[["importlib",10,"from importlib.machinery import ModuleSpec"],["dataclasses",9,"from dataclasses import dataclass, field"],["__future__",3,"from __future__ import annotations"],["sys",7,"import sys"],["agentdeck.errors",14,"from agentdeck.errors import ConfigError, NotFoundError"],["types",8,"import types"],["importlib",6,"import importlib.util"],["importlib",5,"import importlib"],["typing",12,"from typing import Generic, TypeVar"],["pathlib",11,"from pathlib import Path"]],"agentdeck.adapters.telemetry.langfuse":[["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.telemetry.langfuse.sink",4,"from agentdeck.adapters.telemetry.langfuse.sink import MAX_OPEN_CALLS, MAX_OPEN_RUNS, LangfuseSink"]],"agentdeck.core.context":[["agentdeck.core.control",23,"from agentdeck.core.control import Gate"],["agentdeck.core.reporting",24,"from agentdeck.core.reporting import Reporter"],["typing",21,"from typing import cast"],["__future__",18,"from __future__ import annotations"],["dataclasses",20,"from dataclasses import dataclass, field"]],"agentdeck.core.status":[["enum",20,"from enum import StrEnum"],["agentdeck.core.events",28,"from agentdeck.core.events import Event"],["__future__",17,"from __future__ import annotations"],["collections",26,"from collections.abc import Mapping, Sequence"],["dataclasses",19,"from dataclasses import dataclass"],["typing",21,"from typing import TYPE_CHECKING"],["agentdeck.core.events",23,"from agentdeck.core.events import TERMINAL_KINDS"]],"agentdeck.authoring.injection":[["agentdeck.errors",35,"from agentdeck.errors import ConfigError, ContextTypeError"],["inspect",29,"import inspect"],["dataclasses",31,"from dataclasses import dataclass"],["__future__",27,"from __future__ import annotations"],["types",30,"import types"],["collections",38,"from collections.abc import Callable, Iterable, Iterator, Mapping"],["agentdeck.core.context",34,"from agentdeck.core.context import Context"],["typing",32,"from typing import TYPE_CHECKING, Any, Union, get_args, get_origin, get_type_hints"]],"agentdeck.surfaces.cli":[["agentdeck.surfaces.cli.chat",5,"from agentdeck.surfaces.cli.chat import render, stream_chat"],["__future__",3,"from __future__ import annotations"]],"agentdeck.adapters.control.memory.port":[["agentdeck.core.ports.control",8,"from agentdeck.core.ports.control import ControlPort"],["__future__",5,"from __future__ import annotations"],["agentdeck.core.control",7,"from agentdeck.core.control import ControlSignal, Signal"]],"agentdeck.adapters.engines.langgraph.checkpointer":[["typing",26,"from typing import TYPE_CHECKING, Any, TypeVar"],["psycopg",191,"import psycopg # ty: ignore[unresolved-import] - [durability] extra"],["asyncio",32,"from asyncio import AbstractEventLoop"],["aiosqlite",152,"import aiosqlite"],["langgraph",153,"from langgraph.checkpoint.sqlite import aio as sqlite_aio"],["asyncio",22,"import asyncio"],["threading",24,"import threading"],["langgraph",139,"from langgraph.checkpoint.memory import MemorySaver"],["agentdeck.errors",29,"from agentdeck.errors import DOCS_URL, StoreError"],["__future__",20,"from __future__ import annotations"],["functools",25,"from functools import cache, partial"],["langgraph",184,"from langgraph.checkpoint.postgres.aio import ( # ty: ignore[unresolved-import] - [durability] extra"],["collections",33,"from collections.abc import Callable, Coroutine, MutableMapping"],["weakref",27,"from weakref import WeakKeyDictionary"],["sqlite3",23,"import sqlite3"],["langgraph",35,"from langgraph.checkpoint.base import BaseCheckpointSaver"]],"agentdeck.core.content":[["__future__",11,"from __future__ import annotations"],["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"],["pydantic",16,"from pydantic import ("]],"agentdeck.runtime.settings":[["collections",21,"from collections.abc import Mapping"],["logging",19,"import logging"],["pathlib",24,"from pathlib import Path"],["importlib",34,"from importlib.resources.abc import Traversable"],["dotenv",27,"from dotenv import load_dotenv"],["pydantic_settings",30,"from pydantic_settings.sources import YamlConfigSettingsSource"],["__future__",17,"from __future__ import annotations"],["os",20,"import os"],["pydantic",28,"from pydantic import BaseModel, ConfigDict, Field, field_validator"],["typing",25,"from typing import TYPE_CHECKING, Any, ClassVar, Self"],["functools",23,"from functools import lru_cache"],["collections",33,"from collections.abc import Callable"],["pydantic_settings",29,"from pydantic_settings import BaseSettings, SettingsConfigDict"],["datetime",22,"from datetime import timedelta"]],"agentdeck.skills.bundle":[["__future__",3,"from __future__ import annotations"],["re",5,"import re"],["pathlib",7,"from pathlib import Path"],["dataclasses",6,"from dataclasses import dataclass, field"],["agentdeck.errors",12,"from agentdeck.errors import ConfigError"],["yaml",10,"import yaml"],["typing",8,"from typing import Any"]],"agentdeck.core.events":[["agentdeck.core.base",38,"from agentdeck.core.base import CoreModel, JsonData"],["pydantic",26,"from pydantic import ("],["__future__",22,"from __future__ import annotations"],["typing",24,"from typing import Annotated, Any, Literal, get_args"],["agentdeck.core.content",39,"from agentdeck.core.content import Input # noqa: TC001 - pydantic resolves field annotations at runtime"]],"agentdeck.runtime.service":[["agentdeck.core.ports",62,"from agentdeck.core.ports import ControlPort, EnginePort, EventSinkPort, EventStorePort, LeasePort"],["agentdeck.core.content",26,"from agentdeck.core.content import DataBlock, coerce_input"],["agentdeck.core.events",29,"from agentdeck.core.events import ("],["agentdeck.core.ports.store",63,"from agentdeck.core.ports.store import RunSummary"],["contextlib",18,"from contextlib import aclosing, asynccontextmanager, suppress"],["datetime",20,"from datetime import timedelta"],["agentdeck.core.status",40,"from agentdeck.core.status import ("],["agentdeck.core.control",59,"from agentdeck.core.control import ControlSignal"],["uuid",22,"from uuid import uuid4"],["asyncio",15,"import asyncio"],["typing",56,"from typing import Any"],["agentdeck.core.invocable",61,"from agentdeck.core.invocable import InvocableSpec"],["dataclasses",19,"from dataclasses import dataclass, replace"],["agentdeck.core.content",58,"from agentdeck.core.content import Input"],["pydantic",24,"from pydantic import ValidationError"],["logging",16,"import logging"],["collections",17,"from collections import deque"],["agentdeck.runtime.dispatch",52,"from agentdeck.runtime.dispatch import SinkDispatch"],["__future__",13,"from __future__ import annotations"],["collections",55,"from collections.abc import AsyncGenerator, AsyncIterator, Mapping, Sequence"],["agentdeck.core.events",60,"from agentdeck.core.events import KnownPayload"],["agentdeck.core.reporting",39,"from agentdeck.core.reporting import Reporter"],["agentdeck.core.context",27,"from agentdeck.core.context import RunContext"],["agentdeck.core.control",28,"from agentdeck.core.control import CONTROL_POLL_INTERVAL, Gate, Signal"],["agentdeck.errors",51,"from agentdeck.errors import DOCS_URL, NotFoundError, RunStateError, SessionBusyError, StoreError"],["typing",21,"from typing import TYPE_CHECKING"]],"agentdeck.core.ports.engine":[["abc",9,"from abc import ABC, abstractmethod"],["agentdeck.core.content",15,"from agentdeck.core.content import Input"],["__future__",7,"from __future__ import annotations"],["agentdeck.core.events",17,"from agentdeck.core.events import Event, KnownPayload"],["typing",10,"from typing import TYPE_CHECKING, Any, ClassVar"],["agentdeck.core.invocable",18,"from agentdeck.core.invocable import InvocableSpec"],["collections",13,"from collections.abc import AsyncGenerator, Sequence"],["agentdeck.core.context",16,"from agentdeck.core.context import RunContext"]],"agentdeck.adapters.stores.postgres.store":[["agentdeck.core.events",27,"from agentdeck.core.events import Event"],["agentdeck.core.ports",28,"from agentdeck.core.ports import EventStorePort, RunSummary, SessionClaim"],["agentdeck.core.context",36,"from agentdeck.core.context import RunContext"],["collections",33,"from collections.abc import Awaitable, Callable, Sequence"],["agentdeck.core.status",29,"from agentdeck.core.status import LIFECYCLE_KINDS, STATES, can_resume, status_of"],["typing",21,"from typing import TYPE_CHECKING, Any"],["datetime",34,"from datetime import timedelta"],["psycopg",25,"from psycopg import sql"],["psycopg",24,"from psycopg import errors as pg_errors"],["psycopg",23,"import psycopg"],["asyncio",19,"import asyncio"],["agentdeck.core.status",38,"from agentdeck.core.status import RunStatus"],["__future__",17,"from __future__ import annotations"],["hashlib",20,"import hashlib"],["agentdeck.core.events",37,"from agentdeck.core.events import KnownPayload, RunResumed, RunStarted"],["agentdeck.errors",30,"from agentdeck.errors import DuplicateKeyError, StoreError"]],"agentdeck.adapters.leases.sqlite.port":[["asyncio",16,"import asyncio"],["sqlite3",17,"import sqlite3"],["contextlib",18,"from contextlib import suppress"],["collections",26,"from collections.abc import Callable, Collection"],["__future__",14,"from __future__ import annotations"],["agentdeck.core.ports.lease",22,"from agentdeck.core.ports.lease import LeasePort"],["typing",20,"from typing import TYPE_CHECKING"],["pathlib",28,"from pathlib import Path"],["agentdeck.errors",23,"from agentdeck.errors import StoreError"],["functools",19,"from functools import partial"],["datetime",27,"from datetime import timedelta"]],"agentdeck.surfaces.serve":[["__future__",3,"from __future__ import annotations"],["agentdeck.surfaces.serve.app",5,"from agentdeck.surfaces.serve.app import build_app"]],"agentdeck.core.base":[["typing",10,"from typing import Annotated"],["pydantic",12,"from pydantic import AfterValidator, BaseModel, ConfigDict, JsonValue"],["__future__",7,"from __future__ import annotations"],["math",9,"from math import isfinite"]],"agentdeck.authoring.compile":[["agentdeck.authoring.agent",172,"from agentdeck.authoring.agent import Agent as AuthoringAgent"],["agents",44,"from agents import ModelSettings"],["agentdeck.authoring.workflow",62,"from agentdeck.authoring.workflow import Workflow"],["agents",58,"from agents.tool import FunctionTool"],["agentdeck.authoring.tools",51,"from agentdeck.authoring.tools import compile_tool"],["agentdeck.authoring.instructions",50,"from agentdeck.authoring.instructions import compile_instructions"],["typing",41,"from typing import TYPE_CHECKING, Any, get_args, get_origin"],["collections",56,"from collections.abc import Callable, Mapping, Sequence"],["agents",45,"from agents import Tool as SDKTool"],["agentdeck.authoring.agent",61,"from agentdeck.authoring.agent import Agent"],["agentdeck.runtime.settings",53,"from agentdeck.runtime.settings import get_settings, parse_backend_url"],["agentdeck.errors",52,"from agentdeck.errors import ConfigError, NotFoundError"],["agentdeck.authoring.workflow",118,"from agentdeck.authoring.workflow import Workflow"],["agentdeck.authoring.hooks",49,"from agentdeck.authoring.hooks import compile_hooks"],["agentdeck.adapters.tools.mcp.wiring",48,"from agentdeck.adapters.tools.mcp.wiring import mcp_status_banner, resolve_agent_mcp_status"],["langgraph",59,"from langgraph.graph.state import CompiledStateGraph"],["agents",43,"from agents import Agent as SDKAgent"],["agentdeck.adapters.engines.langgraph.checkpointer",47,"from agentdeck.adapters.engines.langgraph.checkpointer import resolve_checkpointer"],["__future__",39,"from __future__ import annotations"]],"agentdeck.core.ports":[["agentdeck.core.ports.engine",12,"from agentdeck.core.ports.engine import EnginePort"],["agentdeck.core.ports.control",11,"from agentdeck.core.ports.control import ControlPort"],["agentdeck.core.ports.lease",13,"from agentdeck.core.ports.lease import LeasePort"],["agentdeck.core.ports.sink",14,"from agentdeck.core.ports.sink import EventSinkPort"],["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.adapters.stores.postgres":[["agentdeck.adapters.stores.postgres.store",3,"from agentdeck.adapters.stores.postgres.store import PostgresEventStore"]],"agentdeck.adapters.telemetry.langfuse.client":[["agentdeck.core.events",25,"from agentdeck.core.events import Usage"],["langfuse",102,"from langfuse import propagate_attributes # ty: ignore[unresolved-import] - [observability] extra"],["collections",22,"from collections.abc import Mapping"],["logging",15,"import logging"],["os",16,"import os"],["agentdeck.adapters.telemetry.langfuse.trace",24,"from agentdeck.adapters.telemetry.langfuse.trace import Level, Observation, ObservationKind"],["agentdeck.runtime.settings",26,"from agentdeck.runtime.settings import LangfuseSettings"],["langfuse",60,"from langfuse import Langfuse # ty: ignore[unresolved-import] - [observability] extra"],["agentdeck.adapters.telemetry.langfuse.sink",19,"from agentdeck.adapters.telemetry.langfuse.sink import LangfuseSink"],["typing",17,"from typing import TYPE_CHECKING, Any"],["__future__",13,"from __future__ import annotations"]],"agentdeck.core":[["agentdeck.core.invocable",55,"from agentdeck.core.invocable import InvocableKind, InvocableSpec"],["agentdeck.core.context",20,"from agentdeck.core.context import RunContext"],["agentdeck.core.reporting",56,"from agentdeck.core.reporting import Reporter"],["agentdeck.core.events",21,"from agentdeck.core.events import ("],["agentdeck.core.status",57,"from agentdeck.core.status import RunStatus, can_resume, status_of"],["agentdeck.core.content",7,"from agentdeck.core.content import ("]]}
@@ -8,6 +8,31 @@ Fixed / Security` order - and are written to be attached to a release as-is.
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [4.0.3] - 2026-08-19
12
+
13
+ ### Added
14
+
15
+ - **Documentation pages that are finished can ask for their next piece.** A `Contribute`
16
+ component marks one specific, scoped improvement at the end of a page and links the issue that
17
+ specifies it. It appears only on pages whose authoritative part is already written, so it
18
+ invites an addition rather than standing in for missing documentation. Live on
19
+ [How Jack is built](https://agentdecksdk.com/jack),
20
+ [Quickstart](https://agentdecksdk.com/meet-agentdeck/quickstart),
21
+ [Known Issues](https://agentdecksdk.com/resources/known-issues) and
22
+ [Implementation notes](https://agentdecksdk.com/jack/notes).
23
+
24
+ ### Changed
25
+
26
+ - **The README follows the landing page again.** Jack is built with the three tools he actually
27
+ has, the division of labour lists the six concerns AgentDeck owns rather than four, and his
28
+ section links [How Jack is built](https://agentdecksdk.com/jack) and
29
+ [Implementation notes](https://agentdecksdk.com/jack/notes) ahead of the source directory.
30
+
31
+ ### Fixed
32
+
33
+ - **The landing page's release chip said 4.0.1 on a 4.0.2 site.** It now tracks the release it
34
+ ships in.
35
+
11
36
  ## [4.0.2] - 2026-08-19
12
37
 
13
38
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: agentdeck-sdk
3
- Version: 4.0.2
3
+ Version: 4.0.3
4
4
  Summary: Declarative harness over the OpenAI Agents SDK and LangGraph: settings, capabilities, skills, runners, graph compilation, plug-in discovery.
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
@@ -109,10 +109,14 @@ def read_doc(slug: str, docs: Context[DocsCorpus]) -> str:
109
109
  """Read one AgentDeck documentation page in full, by its slug."""
110
110
  return docs.data.pages[slug]
111
111
 
112
+ def read_changelog(subject: str, docs: Context[DocsCorpus]) -> str:
113
+ """Read AgentDeck's release history, by version or by topic."""
114
+ return docs.data.changelog(subject)
115
+
112
116
  jack = Agent(
113
117
  name="Jack",
114
118
  instructions="Help developers build with AgentDeck.",
115
- tools=[search_docs, read_doc],
119
+ tools=[search_docs, read_doc, read_changelog],
116
120
  )
117
121
 
118
122
  deck = Deck(agents=[jack], context=DocsCorpus)
@@ -159,13 +163,16 @@ thing either reads.
159
163
  The panel on **[agentdecksdk.com](https://agentdecksdk.com/)** is that agent. Ask it something
160
164
  about AgentDeck and it searches these docs, reads the pages it finds, and cites them.
161
165
 
162
- Its whole source is [`examples/jack`](examples/jack/): three tools over one
163
- `Context[DocsCorpus]`, streaming the run's own canonical events to the browser over SSE with no
164
- translation layer on either side. Not a demo written to look good in a README. It is the thing
165
- serving the site, including the parts a public endpoint needs and a demo skips: an origin check,
166
- a per-day quota, a token ceiling, and an allowlist deciding which event kinds a browser may see.
166
+ He is three tools over one `Context[DocsCorpus]`, streaming the run's own canonical events to
167
+ the browser over SSE with no translation layer on either side, and he is the thing serving the
168
+ site: an origin check, a per-day quota, a token ceiling, and an allowlist deciding which event
169
+ kinds a browser may see are all parts a public endpoint needs and a demo skips.
170
+
171
+ **[How Jack is built](https://agentdecksdk.com/jack)** walks the whole application, and
172
+ **[Implementation notes](https://agentdecksdk.com/jack/notes)** records each decision and the
173
+ alternative it beat. The source is [`examples/jack`](examples/jack/).
167
174
 
168
- It is also the honest test of the pitch. If *"agents you have to operate"* meant anything, it
175
+ He is also the honest test of the pitch. If *"agents you have to operate"* meant anything, it
169
176
  had to survive being operated.
170
177
 
171
178
  ## Where your definitions live
@@ -189,17 +196,26 @@ async with Deck.from_project() as deck: # discovers ./.agentdeck, fails fast
189
196
  unknown MCP name or a workflow that cannot compile fails at `build()`, not in production.
190
197
 
191
198
  Runnable projects are in [`examples/`](examples/): a chat agent with a tool, a workflow that
192
- pauses for human approval, an existing LangGraph agent wrapped without rewriting it, and Jack.
193
- All are built by the test suite, so none can quietly stop working.
199
+ pauses for human approval, an existing LangGraph agent wrapped without rewriting it, and
200
+ [Jack](https://agentdecksdk.com/jack). All are built by the test suite, so none can quietly stop
201
+ working.
194
202
 
195
203
  ## You build the behavior. AgentDeck manages the machinery.
196
204
 
197
- | You | AgentDeck |
205
+ Your code stays about the behavior and the structure of your application. Everything a run
206
+ needs around it already has a place, and they were designed to work together: less machinery to
207
+ build today, and nothing to retrofit when you need the next one.
208
+
209
+ | You own | AgentDeck owns |
198
210
  | --- | --- |
199
- | application logic | execution |
200
- | agents, tools, workflows | sessions, streaming, one event log per run |
201
- | business state | pause, resume, cancel at documented safe points |
202
- | integrations | durable human approval that outlives the process |
211
+ | agents, tools, workflows | **Events.** One ordered stream of what happened. |
212
+ | what progress means | **Reporting.** Progress and status, sent from inside the work. |
213
+ | when work should stop | **Control.** Execution paused, resumed or cancelled at safe points. |
214
+ | when a person decides | **Interaction.** Branches that wait for external input. |
215
+ | business state | **State.** Sessions that outlive a single call. |
216
+ | your UI and integrations | **Surfaces.** Observers, HTTP and your UI read the same run. |
217
+
218
+ The complexity is still there. It just lives in the layer built for it.
203
219
 
204
220
  **AgentDeck owns configuration; the
205
221
  [OpenAI Agents SDK](https://github.com/openai/openai-agents-python) and
@@ -60,10 +60,14 @@ def read_doc(slug: str, docs: Context[DocsCorpus]) -> str:
60
60
  """Read one AgentDeck documentation page in full, by its slug."""
61
61
  return docs.data.pages[slug]
62
62
 
63
+ def read_changelog(subject: str, docs: Context[DocsCorpus]) -> str:
64
+ """Read AgentDeck's release history, by version or by topic."""
65
+ return docs.data.changelog(subject)
66
+
63
67
  jack = Agent(
64
68
  name="Jack",
65
69
  instructions="Help developers build with AgentDeck.",
66
- tools=[search_docs, read_doc],
70
+ tools=[search_docs, read_doc, read_changelog],
67
71
  )
68
72
 
69
73
  deck = Deck(agents=[jack], context=DocsCorpus)
@@ -110,13 +114,16 @@ thing either reads.
110
114
  The panel on **[agentdecksdk.com](https://agentdecksdk.com/)** is that agent. Ask it something
111
115
  about AgentDeck and it searches these docs, reads the pages it finds, and cites them.
112
116
 
113
- Its whole source is [`examples/jack`](examples/jack/): three tools over one
114
- `Context[DocsCorpus]`, streaming the run's own canonical events to the browser over SSE with no
115
- translation layer on either side. Not a demo written to look good in a README. It is the thing
116
- serving the site, including the parts a public endpoint needs and a demo skips: an origin check,
117
- a per-day quota, a token ceiling, and an allowlist deciding which event kinds a browser may see.
117
+ He is three tools over one `Context[DocsCorpus]`, streaming the run's own canonical events to
118
+ the browser over SSE with no translation layer on either side, and he is the thing serving the
119
+ site: an origin check, a per-day quota, a token ceiling, and an allowlist deciding which event
120
+ kinds a browser may see are all parts a public endpoint needs and a demo skips.
121
+
122
+ **[How Jack is built](https://agentdecksdk.com/jack)** walks the whole application, and
123
+ **[Implementation notes](https://agentdecksdk.com/jack/notes)** records each decision and the
124
+ alternative it beat. The source is [`examples/jack`](examples/jack/).
118
125
 
119
- It is also the honest test of the pitch. If *"agents you have to operate"* meant anything, it
126
+ He is also the honest test of the pitch. If *"agents you have to operate"* meant anything, it
120
127
  had to survive being operated.
121
128
 
122
129
  ## Where your definitions live
@@ -140,17 +147,26 @@ async with Deck.from_project() as deck: # discovers ./.agentdeck, fails fast
140
147
  unknown MCP name or a workflow that cannot compile fails at `build()`, not in production.
141
148
 
142
149
  Runnable projects are in [`examples/`](examples/): a chat agent with a tool, a workflow that
143
- pauses for human approval, an existing LangGraph agent wrapped without rewriting it, and Jack.
144
- All are built by the test suite, so none can quietly stop working.
150
+ pauses for human approval, an existing LangGraph agent wrapped without rewriting it, and
151
+ [Jack](https://agentdecksdk.com/jack). All are built by the test suite, so none can quietly stop
152
+ working.
145
153
 
146
154
  ## You build the behavior. AgentDeck manages the machinery.
147
155
 
148
- | You | AgentDeck |
156
+ Your code stays about the behavior and the structure of your application. Everything a run
157
+ needs around it already has a place, and they were designed to work together: less machinery to
158
+ build today, and nothing to retrofit when you need the next one.
159
+
160
+ | You own | AgentDeck owns |
149
161
  | --- | --- |
150
- | application logic | execution |
151
- | agents, tools, workflows | sessions, streaming, one event log per run |
152
- | business state | pause, resume, cancel at documented safe points |
153
- | integrations | durable human approval that outlives the process |
162
+ | agents, tools, workflows | **Events.** One ordered stream of what happened. |
163
+ | what progress means | **Reporting.** Progress and status, sent from inside the work. |
164
+ | when work should stop | **Control.** Execution paused, resumed or cancelled at safe points. |
165
+ | when a person decides | **Interaction.** Branches that wait for external input. |
166
+ | business state | **State.** Sessions that outlive a single call. |
167
+ | your UI and integrations | **Surfaces.** Observers, HTTP and your UI read the same run. |
168
+
169
+ The complexity is still there. It just lives in the layer built for it.
154
170
 
155
171
  **AgentDeck owns configuration; the
156
172
  [OpenAI Agents SDK](https://github.com/openai/openai-agents-python) and