agentdeck-sdk 5.0.3__tar.gz → 5.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) hide show
  1. agentdeck_sdk-5.2.0/.agents/skills/release/SKILL.md +49 -0
  2. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/agents/deck-dev.md +3 -1
  3. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/agents/deck-reviewer.md +3 -1
  4. agentdeck_sdk-5.2.0/.claude/skills/release/SKILL.md +49 -0
  5. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/review-pr/SKILL.md +3 -4
  6. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/review-pr/references/templates.md +3 -5
  7. agentdeck_sdk-5.2.0/.claude/skills/ship-issue/SKILL.md +67 -0
  8. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/ship-pr/SKILL.md +1 -4
  9. agentdeck_sdk-5.2.0/.codex/agents/deck-dev.toml +5 -0
  10. agentdeck_sdk-5.2.0/.codex/agents/deck-reviewer.toml +5 -0
  11. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/PULL_REQUEST_TEMPLATE.md +2 -1
  12. agentdeck_sdk-5.2.0/.github/dependabot.yml +29 -0
  13. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/workflows/ci.yml +10 -4
  14. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/workflows/docs-check.yml +2 -2
  15. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/workflows/docs-impact.yml +4 -1
  16. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/workflows/docs-pages.yml +2 -2
  17. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/workflows/issue-hygiene.yml +6 -1
  18. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/workflows/release.yml +5 -2
  19. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.gitignore +3 -0
  20. agentdeck_sdk-5.2.0/.import_linter_cache/agentdeck.meta.json +1 -0
  21. agentdeck_sdk-5.2.0/.import_linter_cache/cc0de4ae2e5697bf7cf3a0b9c3aff14b2ece24cd.data.json +1 -0
  22. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/CHANGELOG.md +87 -4
  23. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/Makefile +4 -2
  24. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/PKG-INFO +2 -2
  25. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/README.md +1 -1
  26. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/__init__.py +19 -3
  27. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/native/executor.py +39 -15
  28. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/openai_agents/runconfig.py +0 -29
  29. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/compile.py +39 -34
  30. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/injection.py +3 -3
  31. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/native.py +10 -7
  32. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/tools.py +53 -16
  33. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/composition.py +7 -0
  34. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/context.py +49 -32
  35. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/control.py +14 -0
  36. {agentdeck_sdk-5.0.3/agentdeck → agentdeck_sdk-5.2.0/agentdeck/core}/errors.py +5 -0
  37. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/invocable.py +11 -0
  38. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/reporting.py +21 -24
  39. agentdeck_sdk-5.2.0/agentdeck/core/workers.py +63 -0
  40. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/deck.py +11 -11
  41. agentdeck_sdk-5.2.0/agentdeck/errors.py +39 -0
  42. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/runtime/discovery.py +3 -0
  43. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/context7.json +1 -1
  44. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/ai-agents/harness_change_log.md +2 -0
  45. agentdeck_sdk-5.2.0/docs/delivery/plan-provider-credential-validation.md +70 -0
  46. agentdeck_sdk-5.2.0/docs/delivery/plan-slop-comment-ratio.md +67 -0
  47. agentdeck_sdk-5.2.0/docs/patterns/comments.md +52 -0
  48. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/_meta.ts +1 -0
  49. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/agents.mdx +29 -1
  50. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/context.mdx +35 -3
  51. agentdeck_sdk-5.2.0/docs-site/content/build-your-deck/tools.mdx +125 -0
  52. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/jack/notes.mdx +6 -4
  53. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/jack.mdx +4 -2
  54. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/meet-agentdeck/mental-model.mdx +3 -2
  55. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/meet-agentdeck/quickstart.mdx +13 -8
  56. agentdeck_sdk-5.2.0/docs-site/content/operate/_meta.ts +3 -0
  57. agentdeck_sdk-5.2.0/docs-site/content/operate/deployment.mdx +131 -0
  58. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/reference/deck.mdx +3 -2
  59. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/reference/python-api.mdx +12 -0
  60. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/reference/run.mdx +2 -1
  61. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/resources/changelog.mdx +15 -37
  62. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/resources/known-issues.mdx +11 -0
  63. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/resources/troubleshooting.mdx +1 -1
  64. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/llms-full.txt +346 -76
  65. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/llms.txt +1 -0
  66. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/agent-with-a-skill/.agentdeck/agents/handover_desk/agent.py +3 -5
  67. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/agent-with-a-skill/README.md +1 -1
  68. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/chat-agent-with-a-tool/.agentdeck/agents/order_desk/agent.py +2 -4
  69. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/chat-agent-with-a-tool/README.md +4 -4
  70. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/README.md +9 -7
  71. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/jack/agent.py +8 -5
  72. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/pyproject.toml +1 -1
  73. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/scripts/slopcheck.py +267 -10
  74. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/context_subjects.py +2 -2
  75. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/test_reporting.py +50 -19
  76. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_child_runs.py +40 -1
  77. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_context_validation.py +26 -3
  78. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_deck.py +60 -3
  79. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_docs_examples.py +54 -19
  80. agentdeck_sdk-5.2.0/tests/test_governance_workflows.py +67 -0
  81. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_jack.py +7 -7
  82. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_model_providers.py +24 -33
  83. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_native_workflow.py +36 -2
  84. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_openai_agents_engine.py +33 -0
  85. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_openai_agents_tool_failure.py +1 -1
  86. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_run_control.py +3 -2
  87. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_run_reporting.py +30 -4
  88. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_runtime_service.py +6 -6
  89. agentdeck_sdk-5.2.0/tests/test_sync_tool_workers.py +321 -0
  90. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_tool_compilation.py +50 -12
  91. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/uv.lock +61 -61
  92. agentdeck_sdk-5.0.3/.agents/skills/release/SKILL.md +0 -24
  93. agentdeck_sdk-5.0.3/.agents/skills/ship-issue/SKILL.md +0 -41
  94. agentdeck_sdk-5.0.3/.claude/skills/release/SKILL.md +0 -24
  95. agentdeck_sdk-5.0.3/.coderabbit.yaml +0 -126
  96. agentdeck_sdk-5.0.3/.codex/agents/deck-dev.toml +0 -5
  97. agentdeck_sdk-5.0.3/.codex/agents/deck-reviewer.toml +0 -5
  98. agentdeck_sdk-5.0.3/.github/dependabot.yml +0 -15
  99. agentdeck_sdk-5.0.3/.github/workflows/agent-review.yml +0 -49
  100. agentdeck_sdk-5.0.3/.import_linter_cache/agentdeck.meta.json +0 -1
  101. agentdeck_sdk-5.0.3/.import_linter_cache/cc0de4ae2e5697bf7cf3a0b9c3aff14b2ece24cd.data.json +0 -1
  102. agentdeck_sdk-5.0.3/docs/patterns/comments.md +0 -30
  103. agentdeck_sdk-5.0.3/docs-site/content/build-your-deck/tools.mdx +0 -60
  104. agentdeck_sdk-5.0.3/tests/test_governance_workflows.py +0 -39
  105. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.agentdeck/agents/greeter/agent.py +0 -0
  106. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.agents/skills/deck-cleanup/SKILL.md +0 -0
  107. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.agents/skills/deck-cleanup/agents/openai.yaml +0 -0
  108. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.agents/skills/deck-cleanup/references/narrative-prose.md +0 -0
  109. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.agents/skills/open-issue/SKILL.md +0 -0
  110. {agentdeck_sdk-5.0.3/.claude → agentdeck_sdk-5.2.0/.agents}/skills/ship-issue/SKILL.md +0 -0
  111. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/agents/deck-cleanup.md +0 -0
  112. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/agents/docs-reviewer.md +0 -0
  113. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/agents/docs-writer.md +0 -0
  114. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/settings.json +0 -0
  115. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/milestone-retro/SKILL.md +0 -0
  116. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/milestone-retro/references/judging.md +0 -0
  117. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/milestone-retro/references/queries.md +0 -0
  118. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/open-issue/SKILL.md +0 -0
  119. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/review-pr/references/attack.md +0 -0
  120. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/review-pr/references/classify.md +0 -0
  121. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/review-pr/references/craft.md +0 -0
  122. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/ship-pr/references/design.md +0 -0
  123. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/ship-pr/references/implement.md +0 -0
  124. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.claude/skills/ship-pr/references/self-review.md +0 -0
  125. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.codex/agents/deck-cleanup.toml +0 -0
  126. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.codex/agents/docs-reviewer.toml +0 -0
  127. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.codex/agents/docs-writer.toml +0 -0
  128. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.dockerignore +0 -0
  129. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.env.example +0 -0
  130. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.gitattributes +0 -0
  131. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/CODEOWNERS +0 -0
  132. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  133. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  134. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/ISSUE_TEMPLATE/docs_contribution.yml +0 -0
  135. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  136. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/ISSUE_TEMPLATE/finding.yml +0 -0
  137. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/assets/contributors/merged.png +0 -0
  138. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/assets/contributors/welcome.png +0 -0
  139. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.github/workflows/first-contribution.yml +0 -0
  140. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.import_linter_cache/.gitignore +0 -0
  141. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.import_linter_cache/CACHEDIR.TAG +0 -0
  142. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.importlinter +0 -0
  143. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/.pre-commit-config.yaml +0 -0
  144. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/AGENTS.md +0 -0
  145. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/CLAUDE.md +0 -0
  146. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/CODE_OF_CONDUCT.md +0 -0
  147. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/CONTRIBUTING.md +0 -0
  148. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/Dockerfile +0 -0
  149. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/LICENSE +0 -0
  150. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/SECURITY.md +0 -0
  151. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/README.md +0 -0
  152. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/__init__.py +0 -0
  153. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/control/__init__.py +0 -0
  154. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/control/memory/__init__.py +0 -0
  155. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/control/memory/port.py +0 -0
  156. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/control/sqlite/__init__.py +0 -0
  157. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/control/sqlite/port.py +0 -0
  158. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/__init__.py +0 -0
  159. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/native/__init__.py +0 -0
  160. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/openai_agents/__init__.py +0 -0
  161. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/openai_agents/executor.py +0 -0
  162. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/openai_agents/reconcile.py +0 -0
  163. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/openai_agents/sessions.py +0 -0
  164. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/openai_agents/translate.py +0 -0
  165. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/stub/__init__.py +0 -0
  166. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/executors/stub/executor.py +0 -0
  167. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/leases/__init__.py +0 -0
  168. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/leases/memory/__init__.py +0 -0
  169. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/leases/memory/port.py +0 -0
  170. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/leases/sqlite/__init__.py +0 -0
  171. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/leases/sqlite/port.py +0 -0
  172. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/__init__.py +0 -0
  173. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/memory/__init__.py +0 -0
  174. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/memory/store.py +0 -0
  175. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/postgres/__init__.py +0 -0
  176. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/postgres/store.py +0 -0
  177. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/redis/__init__.py +0 -0
  178. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/redis/store.py +0 -0
  179. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/sqlite/__init__.py +0 -0
  180. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/stores/sqlite/store.py +0 -0
  181. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/telemetry/__init__.py +0 -0
  182. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/telemetry/langfuse/__init__.py +0 -0
  183. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/telemetry/langfuse/client.py +0 -0
  184. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/telemetry/langfuse/sink.py +0 -0
  185. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/telemetry/langfuse/trace.py +0 -0
  186. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/tools/__init__.py +0 -0
  187. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/tools/mcp/__init__.py +0 -0
  188. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/tools/mcp/lifecycle.py +0 -0
  189. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/tools/mcp/source.py +0 -0
  190. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/tools/mcp/transport.py +0 -0
  191. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/adapters/tools/mcp/wiring.py +0 -0
  192. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/__init__.py +0 -0
  193. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/agent.py +0 -0
  194. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/hooks.py +0 -0
  195. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/instructions.py +0 -0
  196. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/interrupts.py +0 -0
  197. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/runners/__init__.py +0 -0
  198. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/runners/agent.py +0 -0
  199. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/skills.py +0 -0
  200. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/authoring/web_search.py +0 -0
  201. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/cli.py +0 -0
  202. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/__init__.py +0 -0
  203. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/base.py +0 -0
  204. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/content.py +0 -0
  205. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/events.py +0 -0
  206. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/__init__.py +0 -0
  207. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/control.py +0 -0
  208. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/executor.py +0 -0
  209. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/lease.py +0 -0
  210. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/sink.py +0 -0
  211. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/store.py +0 -0
  212. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/ports/tools.py +0 -0
  213. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/core/status.py +0 -0
  214. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/mcp.py +0 -0
  215. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/observers.py +0 -0
  216. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/py.typed +0 -0
  217. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/runtime/__init__.py +0 -0
  218. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/runtime/capture.py +0 -0
  219. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/runtime/dispatch.py +0 -0
  220. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/runtime/registry.py +0 -0
  221. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/runtime/service.py +0 -0
  222. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/runtime/settings.py +0 -0
  223. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/serve.py +0 -0
  224. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/skills/__init__.py +0 -0
  225. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/skills/bundle.py +0 -0
  226. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/surfaces/__init__.py +0 -0
  227. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/surfaces/cli/__init__.py +0 -0
  228. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/surfaces/cli/chat.py +0 -0
  229. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/surfaces/serve/__init__.py +0 -0
  230. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/surfaces/serve/app.py +0 -0
  231. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/surfaces/serve/compat.py +0 -0
  232. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/testing.py +0 -0
  233. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/agentdeck/views.py +0 -0
  234. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docker-compose.yml +0 -0
  235. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/00-project-index.md +0 -0
  236. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/agentdeck-prd.md +0 -0
  237. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/ai-agents/ai_agent_repository_alignment_research.md +0 -0
  238. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/ai-agents/solutions_for_aligning_ai_agents.md +0 -0
  239. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/ai-agents/sota_style_alignment_findings.md +0 -0
  240. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/README.md +0 -0
  241. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/components/card.svg +0 -0
  242. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/components/spark.svg +0 -0
  243. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/components/wordmark.svg +0 -0
  244. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/contributor-merged.svg +0 -0
  245. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/contributor-welcome.svg +0 -0
  246. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/favicon.svg +0 -0
  247. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/logo-black.svg +0 -0
  248. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/logo-blue.svg +0 -0
  249. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/logo-full.svg +0 -0
  250. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/logo-mark.svg +0 -0
  251. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/logo-traced-original.svg +0 -0
  252. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/logo-white.svg +0 -0
  253. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/logo.svg +0 -0
  254. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/brand/social-card.svg +0 -0
  255. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/beta-user-report-v3.md +0 -0
  256. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/decision-v3-entry-point.md +0 -0
  257. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/deck-capability-wrapper-pattern.md +0 -0
  258. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/discoverability-baseline.md +0 -0
  259. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/docs-site-plan.md +0 -0
  260. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/epic-agentdeck-v2-core.md +0 -0
  261. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/findings-register.md +0 -0
  262. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/milestone-0-findings.md +0 -0
  263. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/milestone-0-walking-skeleton.md +0 -0
  264. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/plan-166-delivery.md +0 -0
  265. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/plan-219-delivery.md +0 -0
  266. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/plan-adoption.md +0 -0
  267. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/plan-context-injection.md +0 -0
  268. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/plan-docs-ia.md +0 -0
  269. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/plan-jack-eval.md +0 -0
  270. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/plan-multimodal.md +0 -0
  271. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/plan-phase4-deck.md +0 -0
  272. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/plan-skills.md +0 -0
  273. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/plan-v2-cutover.md +0 -0
  274. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/review-context-injection.md +0 -0
  275. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/review-phase4-deck.md +0 -0
  276. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/review-v3-outsider.md +0 -0
  277. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/roadmap-v3.1.md +0 -0
  278. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/roadmap-v3.md +0 -0
  279. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/delivery/workflow.md +0 -0
  280. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/design/adr-d11-store-assigns-seq-and-time.md +0 -0
  281. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/design/adr-d5-two-stores.md +0 -0
  282. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/design/agentdeck-v2-architecture.md +0 -0
  283. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/design/event-store-claims.md +0 -0
  284. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/design/execution-api-source.md +0 -0
  285. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/design/execution-api.md +0 -0
  286. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/design/run-identity.md +0 -0
  287. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/design/run-lifecycle.md +0 -0
  288. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/design/run-operations.md +0 -0
  289. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/design/sink-dispatch.md +0 -0
  290. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/design-system.md +0 -0
  291. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/engineering/README.md +0 -0
  292. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/engineering/architecture.md +0 -0
  293. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/engineering/coding-agents.md +0 -0
  294. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/engineering/coding-standards.md +0 -0
  295. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/engineering/dependencies.md +0 -0
  296. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/engineering/import-boundaries.md +0 -0
  297. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/engineering/principles.md +0 -0
  298. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/engineering/repository-policy.md +0 -0
  299. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/engineering/runtime-contracts.md +0 -0
  300. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/engineering/testing.md +0 -0
  301. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/patterns/README.md +0 -0
  302. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/patterns/errors.md +0 -0
  303. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/patterns/lifecycle.md +0 -0
  304. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/patterns/tests.md +0 -0
  305. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/project-brief.md +0 -0
  306. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/prompts/pr0-baseline-prompt.md +0 -0
  307. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/prompts/pr0-review-prompt.md +0 -0
  308. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/prompts/pr1-event-schema-prompt.md +0 -0
  309. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs/spec.md +0 -0
  310. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/.env.development +0 -0
  311. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/.env.production +0 -0
  312. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/.gitignore +0 -0
  313. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/README.md +0 -0
  314. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/[[...mdxPath]]/page.tsx +0 -0
  315. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/brand-icons.tsx +0 -0
  316. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/brand.css +0 -0
  317. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/callout.tsx +0 -0
  318. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/contribute.tsx +0 -0
  319. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/deck-figure.tsx +0 -0
  320. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/design-system.tsx +0 -0
  321. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/diagram.tsx +0 -0
  322. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/docs-slugs.ts +0 -0
  323. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/hero.css +0 -0
  324. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/hero.tsx +0 -0
  325. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/icon.svg +0 -0
  326. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/install-line.tsx +0 -0
  327. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/jack-answer-link.tsx +0 -0
  328. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/jack-citations.ts +0 -0
  329. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/jack-live.tsx +0 -0
  330. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/jack-stream.ts +0 -0
  331. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/jack.css +0 -0
  332. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/jack.tsx +0 -0
  333. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/kind-icons.tsx +0 -0
  334. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/landing-components.tsx +0 -0
  335. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/landing.css +0 -0
  336. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/layout.tsx +0 -0
  337. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/mark.tsx +0 -0
  338. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/not-found.tsx +0 -0
  339. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/robots.ts +0 -0
  340. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/site.ts +0 -0
  341. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/app/sitemap.ts +0 -0
  342. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/_meta.ts +0 -0
  343. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/deck.mdx +0 -0
  344. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/skills.mdx +0 -0
  345. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/build-your-deck/workflows.mdx +0 -0
  346. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/examples/_meta.ts +0 -0
  347. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/examples/index.mdx +0 -0
  348. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/index.mdx +0 -0
  349. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/integrations/_meta.ts +0 -0
  350. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/integrations/existing-agents.mdx +0 -0
  351. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/integrations/mcp.mdx +0 -0
  352. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/integrations/openai-agents-sdk.mdx +0 -0
  353. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/jack/_meta.ts +0 -0
  354. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/meet-agentdeck/_meta.ts +0 -0
  355. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/meet-agentdeck/overview.mdx +0 -0
  356. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/reference/_meta.ts +0 -0
  357. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/reference/cli.mdx +0 -0
  358. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/reference/events.mdx +0 -0
  359. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/reference/settings.mdx +0 -0
  360. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/resources/_meta.ts +0 -0
  361. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/resources/migration-guides.mdx +0 -0
  362. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/_meta.ts +0 -0
  363. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/events.mdx +0 -0
  364. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/human-input.mdx +0 -0
  365. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/lifecycle-and-control.mdx +0 -0
  366. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/pause-resume.mdx +0 -0
  367. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/runs.mdx +0 -0
  368. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/content/runs-and-control/sessions.mdx +0 -0
  369. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/mdx-components.tsx +0 -0
  370. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/next-env.d.ts +0 -0
  371. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/next.config.mjs +0 -0
  372. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/package-lock.json +0 -0
  373. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/package.json +0 -0
  374. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/card.svg +0 -0
  375. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/contributor-merged.svg +0 -0
  376. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/contributor-welcome.svg +0 -0
  377. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/favicon.svg +0 -0
  378. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo-black.svg +0 -0
  379. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo-blue.svg +0 -0
  380. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo-full.svg +0 -0
  381. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo-mark.svg +0 -0
  382. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo-traced-original.svg +0 -0
  383. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo-white.svg +0 -0
  384. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/logo.svg +0 -0
  385. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/social-card.svg +0 -0
  386. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/spark.svg +0 -0
  387. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/public/brand/wordmark.svg +0 -0
  388. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/docs-site/tsconfig.json +0 -0
  389. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/agent-with-a-skill/.agentdeck/skills/shift-notes/SKILL.md +0 -0
  390. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/agent-with-a-skill/run.py +0 -0
  391. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/chat-agent-with-a-tool/run.py +0 -0
  392. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/cloudflared.yml +0 -0
  393. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/eval.py +0 -0
  394. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/evals/__init__.py +0 -0
  395. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/evals/judge.py +0 -0
  396. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/evals/metrics.py +0 -0
  397. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/evals/run.py +0 -0
  398. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/evalset.py +0 -0
  399. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/jack/__init__.py +0 -0
  400. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/jack/corpus.py +0 -0
  401. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/jack/server.py +0 -0
  402. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/jack/session.py +0 -0
  403. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/examples/jack/run.py +0 -0
  404. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/scripts/check_commit_hygiene.py +0 -0
  405. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/scripts/check_docs_impact.py +0 -0
  406. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/scripts/concept_budget.py +0 -0
  407. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/scripts/generate_docs_reference.py +0 -0
  408. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/scripts/quality_delta.py +0 -0
  409. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/scripts/repomap.py +0 -0
  410. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/scripts/sync_claude_to_codex.py +0 -0
  411. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/scripts/sync_roadmap.py +0 -0
  412. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/concurrency_worker.py +0 -0
  413. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/conftest.py +0 -0
  414. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/context_injection_subjects.py +0 -0
  415. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/case_types.py +0 -0
  416. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/conftest.py +0 -0
  417. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/contract_cases.py +0 -0
  418. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/live_stores.py +0 -0
  419. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/never_yields.py +0 -0
  420. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/openai_agents_cases.py +0 -0
  421. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/test_context_parity.py +0 -0
  422. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/test_control.py +0 -0
  423. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/test_control_port.py +0 -0
  424. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/test_event_stream.py +0 -0
  425. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/test_lease.py +0 -0
  426. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/test_resume.py +0 -0
  427. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/contract/test_store.py +0 -0
  428. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/conftest.py +0 -0
  429. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/agent.changed.json +0 -0
  430. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/answer.refused.json +0 -0
  431. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/artifact.created.json +0 -0
  432. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/control.observed.json +0 -0
  433. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/control.requested.json +0 -0
  434. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/custom.json +0 -0
  435. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/input.appended.json +0 -0
  436. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/message.completed.json +0 -0
  437. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/report.json +0 -0
  438. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.cancelled.json +0 -0
  439. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.completed.json +0 -0
  440. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.failed.json +0 -0
  441. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.interrupted.json +0 -0
  442. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.paused.json +0 -0
  443. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.resumed.json +0 -0
  444. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/run.started.json +0 -0
  445. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/text.delta.json +0 -0
  446. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/thought.delta.json +0 -0
  447. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/tool.call.completed.json +0 -0
  448. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/tool.call.started.json +0 -0
  449. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/snapshots/usage.reported.json +0 -0
  450. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/test_content.py +0 -0
  451. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/test_context.py +0 -0
  452. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/test_continuation.py +0 -0
  453. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/test_events.py +0 -0
  454. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/test_golden_json.py +0 -0
  455. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/test_import_law.py +0 -0
  456. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/test_model_config.py +0 -0
  457. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/test_old_reader_block_compat.py +0 -0
  458. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/test_old_reader_compat.py +0 -0
  459. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/test_run_lifecycle_tables.py +0 -0
  460. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/core/test_vocabularies_agree.py +0 -0
  461. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/crash_worker.py +0 -0
  462. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/event_log_checks.py +0 -0
  463. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/golden/README.md +0 -0
  464. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/golden/conftest.py +0 -0
  465. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/golden/fixture_project/.agentdeck/agents/greeter/agent.py +0 -0
  466. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/golden/snapshots/01_health.http +0 -0
  467. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/golden/snapshots/02_chat.http +0 -0
  468. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/golden/snapshots/03_chat_stream.http +0 -0
  469. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/golden/snapshots/04_chat_missing_field.http +0 -0
  470. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/golden/snapshots/05_agent_unknown.http +0 -0
  471. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/golden/test_golden_wire.py +0 -0
  472. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/plays.py +0 -0
  473. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/project_executors.py +0 -0
  474. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_agent_changed.py +0 -0
  475. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_agent_model_resolution.py +0 -0
  476. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_authoring.py +0 -0
  477. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_brand_assets.py +0 -0
  478. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_changelog.py +0 -0
  479. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_cli.py +0 -0
  480. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_cli_render.py +0 -0
  481. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_commit_hygiene.py +0 -0
  482. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_composition.py +0 -0
  483. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_context_injection.py +0 -0
  484. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_crash_reconciliation.py +0 -0
  485. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_docs_impact.py +0 -0
  486. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_docs_site.py +0 -0
  487. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_errors.py +0 -0
  488. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_examples.py +0 -0
  489. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_executor_plays.py +0 -0
  490. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_generated_reference.py +0 -0
  491. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_handoff_ends_on_user_turn.py +0 -0
  492. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_handoff_round_trip.py +0 -0
  493. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_handoffs.py +0 -0
  494. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_instructions_and_hooks.py +0 -0
  495. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_invocable_registry.py +0 -0
  496. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_jack_server.py +0 -0
  497. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_langfuse_sink.py +0 -0
  498. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_langfuse_tracer.py +0 -0
  499. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_mcp.py +0 -0
  500. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_mcp_tool_source.py +0 -0
  501. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_memory_store.py +0 -0
  502. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_multiprocess_concurrency.py +0 -0
  503. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_observability.py +0 -0
  504. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_openai_agents_reconcile.py +0 -0
  505. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_openai_agents_sessions.py +0 -0
  506. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_package.py +0 -0
  507. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_postgres_store.py +0 -0
  508. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_redis_store.py +0 -0
  509. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_run_config_parity.py +0 -0
  510. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_serve.py +0 -0
  511. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_serve_compat.py +0 -0
  512. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_serve_session_claim.py +0 -0
  513. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_settings.py +0 -0
  514. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_sink_dispatch.py +0 -0
  515. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_skills.py +0 -0
  516. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_sqlite_control_port.py +0 -0
  517. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_sqlite_store.py +0 -0
  518. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_streaming.py +0 -0
  519. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_subagents.py +0 -0
  520. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_uc1_handoff.py +0 -0
  521. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_uc3_slowpoke.py +0 -0
  522. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_views.py +0 -0
  523. {agentdeck_sdk-5.0.3 → agentdeck_sdk-5.2.0}/tests/test_web_search.py +0 -0
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: release
3
+ description: Cut an agentdeck release - bump version, update CHANGELOG, merge dev to main, and tag vX.Y.Z.
4
+ ---
5
+
6
+ # Release agentdeck
7
+
8
+ Follow the release process strictly. All work starts on `dev`; `main` is release-only,
9
+ and `dev` is the repository's default branch.
10
+
11
+ ## Two PRs, two issues
12
+
13
+ A release needs two labeled `chore` issues and two PRs, not one of each.
14
+
15
+ | PR | base | issue | closing keyword |
16
+ |---|---|---|---|
17
+ | bump | `dev` | its own labeled `chore` issue | `Closes #N`, works: `dev` is default |
18
+ | promotion | `main` | its own labeled `chore` issue | `Refs #N` only, close by hand: `main` is not default, so GitHub never creates the closing reference |
19
+
20
+ `git push origin dev` is rejected directly ("push declined due to repository rule violations").
21
+ The bump goes through its own PR into `dev`.
22
+
23
+ ## Release Steps
24
+
25
+ 1. **Version:** Confirm SemVer bump (`pyproject.toml` and `CHANGELOG.md`).
26
+ 2. **Preflight:** Verify clean working tree, non-empty `[Unreleased]` section, and `make check`
27
+ is 100% green. Run it unpiped (`make check`, not `make check | tail`) so its own exit code is
28
+ what you read; a pipe reports the last command's status, not the gate's.
29
+ 3. **Bump PR into `dev`:**
30
+ - Update `version` in `pyproject.toml`.
31
+ - Move Unreleased entries to `## [X.Y.Z] - YYYY-MM-DD` in `CHANGELOG.md` with compare links.
32
+ - Run `python scripts/generate_docs_reference.py` once, then verify
33
+ `python scripts/generate_docs_reference.py --check`.
34
+ - Commit: `chore(release): vX.Y.Z`. Open the PR against the labeled bump issue
35
+ (`Closes #N`), wait for every required check, merge.
36
+ 4. **Promotion PR, `dev` to `main`:** Open it against the labeled promotion issue (`Refs #N`).
37
+ `Issue hygiene`, `slop`, and `Check affected documentation` skip themselves on a `main`-based
38
+ PR: each already ran the real per-PR version of itself against `dev` at merge time, and this
39
+ diff is the whole release cycle re-evaluated, not a new change. Wait for `check` and
40
+ `Build documentation`, then merge and close the promotion issue by hand.
41
+ 5. **Tag:** `git tag vX.Y.Z && git push origin vX.Y.Z`. `release.yml` publishes to PyPI on this
42
+ push; there is no undo once the tag lands.
43
+ 6. **Deploy:** In the `prod/` worktree (detached on a tag on purpose, so the public only sees
44
+ something released), run `./deploy-prod.sh vX.Y.Z`. It rebuilds `docs-site`, restarts
45
+ `agentdeck-docs-static.service`, and health-checks `127.0.0.1:4321`.
46
+ 7. **Report:** Return the GitHub release URL.
47
+
48
+ ## Ground Rules
49
+ - Keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
@@ -9,10 +9,12 @@ You implement one agentdeck GitHub issue end-to-end in an isolated worktree and
9
9
 
10
10
  **Objective: implement the issue with the smallest coherent change.** Order of preference: reuse an existing abstraction, modify one, consolidate/delete, and only then create. Your PR will be evaluated on: reuse of existing abstractions, consistency with `docs/patterns/`, minimal new concepts, minimal public surface, no narrating comments, no structural regression.
11
11
 
12
- **First action:** invoke the `ship-pr` skill and follow it. Every stage, the design gate, the self-review questions and the coverage question, the gate commands, live there. Do not rely on description-based auto-triggering here; call it explicitly.
12
+ **First action:** read `.claude/skills/ship-pr/SKILL.md` and its `references/`, and follow it. Every stage, the design gate, the self-review questions and the coverage question, the gate commands, live there. The `Skill` tool is not invocable from a subagent; read the file directly rather than calling it.
13
13
 
14
14
  **Progress:** name each stage (Understand / Design / Implement / Self-review / Gate) as you enter it. A silent multi-stage run reads as a stall.
15
15
 
16
+ **Denied tool calls:** a denial is a stop to report, never an obstacle to route around through a different tool or command.
17
+
16
18
  **Subagents:** any agent you spawn passes an explicit `model: "sonnet"`. Never omit it, never fable, never opus.
17
19
 
18
20
  **Output style:** ≤25 words between tool calls; final response ≤100 words unless more detail is required.
@@ -7,10 +7,12 @@ isolation: worktree
7
7
 
8
8
  You review one agentdeck PR as the merge gate. REVIEW ONLY on the code: never push a commit anywhere. You DO write review artifacts: the PR review itself, inline comments, and any DEFER, harness-note or Harvest issue.
9
9
 
10
- **First action:** invoke the `review-pr` skill and follow it. Everything procedural, the phases, the finding classes, the verdict format, the delivery mechanics, lives there. Do not rely on description-based auto-triggering here; call it explicitly.
10
+ **First action:** read `.claude/skills/review-pr/SKILL.md` and its `references/`, and follow it. Everything procedural, the phases, the finding classes, the verdict format, the delivery mechanics, lives there. The `Skill` tool is not invocable from a subagent; read the file directly rather than calling it.
11
11
 
12
12
  **Progress:** say which phase you are entering as you enter it. A silent review reads as a stall.
13
13
 
14
+ **Denied tool calls:** a denial is a stop to report, never an obstacle to route around through a different tool or command.
15
+
14
16
  **Subagents:** any agent you spawn passes an explicit `model: "sonnet"`. Never omit it, never fable, never opus.
15
17
 
16
18
  **Output style:** keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: release
3
+ description: Cut an agentdeck release - bump version, update CHANGELOG, merge dev to main, and tag vX.Y.Z.
4
+ ---
5
+
6
+ # Release agentdeck
7
+
8
+ Follow the release process strictly. All work starts on `dev`; `main` is release-only,
9
+ and `dev` is the repository's default branch.
10
+
11
+ ## Two PRs, two issues
12
+
13
+ A release needs two labeled `chore` issues and two PRs, not one of each.
14
+
15
+ | PR | base | issue | closing keyword |
16
+ |---|---|---|---|
17
+ | bump | `dev` | its own labeled `chore` issue | `Closes #N`, works: `dev` is default |
18
+ | promotion | `main` | its own labeled `chore` issue | `Refs #N` only, close by hand: `main` is not default, so GitHub never creates the closing reference |
19
+
20
+ `git push origin dev` is rejected directly ("push declined due to repository rule violations").
21
+ The bump goes through its own PR into `dev`.
22
+
23
+ ## Release Steps
24
+
25
+ 1. **Version:** Confirm SemVer bump (`pyproject.toml` and `CHANGELOG.md`).
26
+ 2. **Preflight:** Verify clean working tree, non-empty `[Unreleased]` section, and `make check`
27
+ is 100% green. Run it unpiped (`make check`, not `make check | tail`) so its own exit code is
28
+ what you read; a pipe reports the last command's status, not the gate's.
29
+ 3. **Bump PR into `dev`:**
30
+ - Update `version` in `pyproject.toml`.
31
+ - Move Unreleased entries to `## [X.Y.Z] - YYYY-MM-DD` in `CHANGELOG.md` with compare links.
32
+ - Run `python scripts/generate_docs_reference.py` once, then verify
33
+ `python scripts/generate_docs_reference.py --check`.
34
+ - Commit: `chore(release): vX.Y.Z`. Open the PR against the labeled bump issue
35
+ (`Closes #N`), wait for every required check, merge.
36
+ 4. **Promotion PR, `dev` to `main`:** Open it against the labeled promotion issue (`Refs #N`).
37
+ `Issue hygiene`, `slop`, and `Check affected documentation` skip themselves on a `main`-based
38
+ PR: each already ran the real per-PR version of itself against `dev` at merge time, and this
39
+ diff is the whole release cycle re-evaluated, not a new change. Wait for `check` and
40
+ `Build documentation`, then merge and close the promotion issue by hand.
41
+ 5. **Tag:** `git tag vX.Y.Z && git push origin vX.Y.Z`. `release.yml` publishes to PyPI on this
42
+ push; there is no undo once the tag lands.
43
+ 6. **Deploy:** In the `prod/` worktree (detached on a tag on purpose, so the public only sees
44
+ something released), run `./deploy-prod.sh vX.Y.Z`. It rebuilds `docs-site`, restarts
45
+ `agentdeck-docs-static.service`, and health-checks `127.0.0.1:4321`.
46
+ 7. **Report:** Return the GitHub release URL.
47
+
48
+ ## Ground Rules
49
+ - Keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
@@ -75,10 +75,9 @@ Every comment and the verdict body follow fixed templates: `references/templates
75
75
  - Reviews are COMMENTED only. Approve and request-changes are unavailable when the agent authenticates as the PR author.
76
76
  - Inline, line-anchored comments (BLOCK, DISCUSS, DEFER; NITs never inline) in Template A form:
77
77
  `gh api repos/{owner}/{repo}/pulls/<n>/comments -f body=... -f commit_id=$(gh pr view <n> --json headRefOid -q .headRefOid) -f path=<file> -F line=<line> -f side=RIGHT`
78
- - Post the verdict as a real review in Template B form: `gh pr review <n> --comment --body-file <file>`. Pass requires zero BLOCK and every DISCUSS answered. The marker applies only to the reviewed head commit; any later push needs a new one.
79
- - If the only change since the last pass is a NIT fix or a PR body edit, post a one-line re-stamp review at the new SHA instead of a full re-review. It still ends with the marker line; the gate matches the last review at `HEAD_SHA` regardless of length.
80
- - After posting the marked review, rerun the trusted gate: extract the run ID from the `Agent review` check URL (`gh pr checks <n> --json name,link`), then `gh run rerun <run-id>`. The gate only runs from base-branch workflow code, so a review submission does not trigger it directly.
81
- - Confirm the `Agent review` check turns green after a pass. A local pass with no green check is incomplete.
78
+ - Post the verdict as a real review in Template B form: `gh pr review <n> --comment --body-file <file>`. Pass requires zero BLOCK and every DISCUSS answered.
79
+ - The review is only delivered once it is on the PR. A local pass with nothing posted is incomplete.
80
+ - A push that changes the code needs a new review: nothing enforces that mechanically, so it is on whoever merges.
82
81
  - File DEFER and harness-note issues per the finding-class table above.
83
82
 
84
83
  ## Return to the orchestrator
@@ -1,8 +1,7 @@
1
1
  # Report templates
2
2
 
3
3
  Every review output falls into one of three templates. Low freedom: this is the narrow bridge,
4
- not the open field. A script parses Template B's marker line, so structure, length, and style are
5
- fixed here; do not paraphrase the numbers.
4
+ not the open field. Structure, length and style are fixed here; do not paraphrase the numbers.
6
5
 
7
6
  Contents: Template A (inline comment), Template B (verdict), worked examples, Template C
8
7
  (orchestrator return), style rules, why the numbers are these numbers.
@@ -52,15 +51,14 @@ ALWAYS use this exact template structure:
52
51
  - `service.py:12` ...
53
52
  </details>
54
53
 
55
- <!-- agentdeck-review: pass --> (0 BLOCK, 1 DISCUSS answered, 1 DEFER #431, 4 NIT)
54
+ 0 BLOCK, 1 DISCUSS answered, 1 DEFER #431, 4 NIT
56
55
 
57
56
  - **300 words maximum**, excluding the rubric table and the collapsed NIT block.
58
57
  - **Per finding: 25 words. A DISCUSS gets 35**, because it carries `Settled by:`.
59
58
  - Sections in exactly this order. **An empty section is omitted entirely**, never written as
60
59
  "None".
61
60
  - NITs are always inside the `<details>` block and never inline on the diff.
62
- - The marker line is last, alone, and exactly as specified (`<!-- agentdeck-review: pass -->` or
63
- `block`, with the counts). A scorecard greps it.
61
+ - The counts line is last and alone, so the verdict is legible without reading the findings.
64
62
 
65
63
  ## Worked examples
66
64
 
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: ship-issue
3
+ description: "Run one agentdeck issue through the full pipeline: brief the user, deck-dev implements it, deck-reviewer gates it, findings get fixed, PR merges to dev, board updated."
4
+ ---
5
+
6
+ # Ship an issue
7
+
8
+ Orchestrate the end-to-end delivery of an issue.
9
+
10
+ ## 0. Brief Before Launching
11
+ Read the issue and verify its claims against the tree. **Spec gate first:** if the issue lacks `Done when` outcomes or scope bounds (what must NOT be added), fix the issue body or ask the user; do not spawn deck-dev against an unbounded spec. Then output a concise 5-point brief (1–2 lines each):
12
+ > **The claim:** What the issue asks for.
13
+ > **What's true now:** Current behavior in the codebase (file:line).
14
+ > **The shape:** Implementation plan in 3–4 concise bullets.
15
+ > **The hard gate:** Invariants that must not break (`tests/golden/`, public API, import law).
16
+ > **Skipped:** What is deliberately out of scope.
17
+
18
+ ## 1. Board Tracking
19
+ Update GitHub Project (`PVT_kwHOBHijkM4BgHFZ`): Set **Status = In progress**, record Start Date, comment with start timestamp.
20
+
21
+ ## 2. Implement
22
+ Spawn `deck-dev` with the issue number and brief. It runs Stage 0 (Understand) then Stage 1
23
+ (Design, posted to the draft PR body), then stops there and reports back rather than continuing
24
+ into Stage 2.
25
+
26
+ If it stops at its own spec gate despite step 0, the issue needs a human decision: set the board
27
+ back to **Todo**, surface what is missing, stop the pipeline.
28
+
29
+ **Design gate:** compare the reported design against this step's own brief. A design is never
30
+ blocked for being larger; it is blocked only for a *named* problem: a duplication of something
31
+ already in `scripts/repomap.py`'s output, an abstraction with one caller, a divergence from its
32
+ own declared `## Analog`, configuration for a value that never changes. No such problem: send
33
+ `deck-dev` a message to proceed to Stage 2. A problem found: send it back naming the problem, not
34
+ a target size; `deck-dev` revises Stage 1 and reports again before Stage 2 starts.
35
+
36
+ Once past the gate, `deck-dev` continues through Implement, Self-review, and Gate, posting task
37
+ progress; poll for stalls.
38
+
39
+ ## 3. Attach PR
40
+ Verify the draft PR targets `dev`, includes `Closes #<n>`, and its body carries the design sections (`## Reuse analysis`, `## Analog`, `## Concept budget`, `## Expected delta`). Missing sections go back to deck-dev before any review is spent. Set **Status = In review** when marked ready.
41
+
42
+ ## 4. Review
43
+ Spawn `deck-reviewer` on the PR. The reviewer must post a COMMENTED GitHub review; a session-only verdict does not count.
44
+
45
+ ## 5. Address Findings
46
+ The review lands on the PR itself (GitHub review + inline comments); read it there. Route by class: **BLOCK** goes to `deck-dev` to fix on the branch. **DISCUSS** is answered in the thread by the author; if the reviewer and author still disagree once answered, escalate to the user rather than letting either side rule. **DEFER** is already a `finding:`-titled issue the reviewer filed and linked; schedule it as its own harness PR, never implemented by the reviewer. **NIT** needs no action unless the author wants it.
47
+
48
+ ## 6. Merge
49
+ Merge when every required check is green **and every review thread is resolved**: `gh pr merge --squash --delete-branch`.
50
+
51
+ Green checks are not sufficient. One open thread holds the PR at `BLOCKED` with nothing in `gh pr checks` to explain it, and `--admin` cannot force it: `enforce_admins` is on and the ruleset has no bypass actors. Two independent mechanisms enforce it under two different names, and both are live, so read both rather than assuming one mirrors the other:
52
+
53
+ ```bash
54
+ gh api repos/{owner}/{repo}/branches/dev/protection # required_conversation_resolution
55
+ gh api repos/{owner}/{repo}/rules/branches/dev # required_review_thread_resolution
56
+ gh api graphql -f query='{repository(owner:"{owner}",name:"{repo}"){pullRequest(number:<n>){reviewThreads(first:20){nodes{id isResolved}}}}}'
57
+ ```
58
+
59
+ Read those payloads whole. Filtering the protection endpoint down to the fields you expected is how this rule got missed in the first place: absence from a `--jq` selection is not absence from the data.
60
+
61
+ Step 6 detects; it does not resolve. The author resolves each thread, and `ship-pr` carries the mutation. When the orchestrator authored the PR itself, it is the author.
62
+
63
+ ## 7. Complete
64
+ Set **Status = Done**, record Target Date, comment with completion summary and PR link.
65
+
66
+ ## Ground Rules
67
+ - Keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.
@@ -95,10 +95,7 @@ including the coverage question. An unanswered question fails the stage.
95
95
  - Compact the PR body: it describes the change as it now stands, not the rounds that produced it.
96
96
  Delete abandoned design and justifications the code no longer needs.
97
97
  - CONSTRAINT: `make check` 100% green before `gh pr ready`. Consequence: `gh pr ready` on a red
98
- `make check` fails the Agent review gate and the PR cannot merge.
99
- - JUDGMENT: if `dev` has advanced past your branch, run `gh pr update-branch --rebase`, not the
100
- plain merge default. A merge commit moves the head SHA and invalidates a review's PASS marker
101
- for no code reason.
98
+ `make check` puts a red required check on the PR and it cannot merge.
102
99
  - No attribution trailers anywhere.
103
100
 
104
101
  ## Answering a review
@@ -0,0 +1,5 @@
1
+ # Generated by scripts/sync_claude_to_codex.py; do not edit.
2
+ # Claude model "sonnet" omitted; this agent inherits the active Codex model.
3
+ name = "deck-dev"
4
+ description = "Implements a GitHub issue (feature or bug fix) for agentdeck end-to-end in an isolated worktree and opens one PR to dev."
5
+ developer_instructions = "You implement one agentdeck GitHub issue end-to-end in an isolated worktree and open a PR.\n\n**Objective: implement the issue with the smallest coherent change.** Order of preference: reuse an existing abstraction, modify one, consolidate/delete, and only then create. Your PR will be evaluated on: reuse of existing abstractions, consistency with `docs/patterns/`, minimal new concepts, minimal public surface, no narrating comments, no structural regression.\n\n**First action:** read `.claude/skills/ship-pr/SKILL.md` and its `references/`, and follow it. Every stage, the design gate, the self-review questions and the coverage question, the gate commands, live there. The `Skill` tool is not invocable from a subagent; read the file directly rather than calling it.\n\n**Progress:** name each stage (Understand / Design / Implement / Self-review / Gate) as you enter it. A silent multi-stage run reads as a stall.\n\n**Denied tool calls:** a denial is a stop to report, never an obstacle to route around through a different tool or command.\n\n**Subagents:** any agent you spawn passes an explicit `model: \"sonnet\"`. Never omit it, never fable, never opus.\n\n**Output style:** ≤25 words between tool calls; final response ≤100 words unless more detail is required.\n\nReturn: PR URL, one-paragraph summary, `make check` status, and declared-vs-actual concept budget.\n\nCodex compatibility:\n- Preserve worktree isolation: before changing branches or files, create and use a dedicated git worktree outside the primary checkout, and run all task commands there."
@@ -0,0 +1,5 @@
1
+ # Generated by scripts/sync_claude_to_codex.py; do not edit.
2
+ # Claude model "sonnet" omitted; this agent inherits the active Codex model.
3
+ name = "deck-reviewer"
4
+ description = "Review gate for an agentdeck PR before merge. Verifies correctness, spec compliance, simplicity, conciseness, and test quality against docs/engineering/."
5
+ developer_instructions = "You review one agentdeck PR as the merge gate. REVIEW ONLY on the code: never push a commit anywhere. You DO write review artifacts: the PR review itself, inline comments, and any DEFER, harness-note or Harvest issue.\n\n**First action:** read `.claude/skills/review-pr/SKILL.md` and its `references/`, and follow it. Everything procedural, the phases, the finding classes, the verdict format, the delivery mechanics, lives there. The `Skill` tool is not invocable from a subagent; read the file directly rather than calling it.\n\n**Progress:** say which phase you are entering as you enter it. A silent review reads as a stall.\n\n**Denied tool calls:** a denial is a stop to report, never an obstacle to route around through a different tool or command.\n\n**Subagents:** any agent you spawn passes an explicit `model: \"sonnet\"`. Never omit it, never fable, never opus.\n\n**Output style:** keep text between tool calls to ≤25 words. Keep final responses to ≤100 words unless more detail is required.\n\nReturn to the orchestrator: verdict, `make check` result, counts per finding class, links to the posted review and any DEFER issues.\n\nCodex compatibility:\n- Preserve worktree isolation: before changing branches or files, create and use a dedicated git worktree outside the primary checkout, and run all task commands there."
@@ -29,7 +29,8 @@ new dependencies: 0
29
29
  - [ ] New behavior has a test
30
30
  - [ ] CHANGELOG entry under **Unreleased** for every user-visible change
31
31
  - [ ] User-visible behavior changes update the affected `docs-site/` pages in this PR
32
- - [ ] Unchanged pages reviewed: <!-- the pages `make check` reports, comma separated; delete the line if none -->
32
+ <!-- If a page above is affected but intentionally left unchanged, name it here (comma separated), the exact form `make check` reports. Delete this checklist line if none. -->
33
+ - [ ] Unchanged pages reviewed:
33
34
  - [ ] Implementation diverging from a design doc amends that doc with a dated note in this PR
34
35
  - [ ] Goldens (`tests/golden/`, `tests/core/snapshots/`) unchanged - or the change is declared and justified here
35
36
  - [ ] Deliberate simplifications/shortcuts are marked with a comment naming the ceiling
@@ -0,0 +1,29 @@
1
+ # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
2
+
3
+ version: 2
4
+ updates:
5
+ # Python dependencies, resolved through uv.lock.
6
+ - package-ecosystem: "uv"
7
+ directory: "/"
8
+ schedule:
9
+ interval: "weekly"
10
+ # One PR for the week's minor and patch bumps: they share `uv.lock`, so separate branches
11
+ # each resolve against the same base and only the first can merge (#499). Majors stay on
12
+ # their own, because a major is a migration, and a migration inside a batch is one nobody
13
+ # reviews.
14
+ groups:
15
+ python-minor-and-patch:
16
+ patterns: ["*"]
17
+ update-types: ["minor", "patch"]
18
+
19
+ # The pinned action refs in .github/workflows/.
20
+ - package-ecosystem: "github-actions"
21
+ directory: "/"
22
+ schedule:
23
+ interval: "weekly"
24
+ # Same split, and #477 is why majors are excluded: setup-uv v5 to v7 needed
25
+ # `activate-environment: true` at the call site, not just a new tag.
26
+ groups:
27
+ actions-minor-and-patch:
28
+ patterns: ["*"]
29
+ update-types: ["minor", "patch"]
@@ -66,7 +66,7 @@ jobs:
66
66
  AGENTDECK_TEST_REDIS_URL: redis://127.0.0.1:6379/15
67
67
  AGENTDECK_TEST_POSTGRES_DSN: postgresql://postgres:postgres@127.0.0.1:5432/agentdeck_test
68
68
  steps:
69
- - uses: actions/checkout@v4
69
+ - uses: actions/checkout@v7
70
70
  with:
71
71
  # The schema's backward-compatibility gate (#47) loads the newest *released*
72
72
  # reader out of git (by tag) and measures this tree's events against it. The
@@ -87,9 +87,12 @@ jobs:
87
87
  echo "$strays"
88
88
  exit 1
89
89
  fi
90
- - uses: astral-sh/setup-uv@v5
90
+ - uses: astral-sh/setup-uv@v7
91
91
  with:
92
92
  python-version: ${{ matrix.python-version }}
93
+ # v6 made this opt-in; without it `uv pip install` below finds no venv, and the
94
+ # Makefile's `.venv/bin/*` calls have nothing to run.
95
+ activate-environment: true
93
96
  enable-cache: true
94
97
  cache-dependency-glob: "uv.lock"
95
98
  # postgres pulls in the psycopg driver the Postgres event log's tests need: omitting an
@@ -154,12 +157,15 @@ jobs:
154
157
  # The anti-slop gate for code that never went through a Claude Code hook:
155
158
  # outside contributors, and anything written by a process the Edit|Write
156
159
  # matcher never saw. Same scripts, PR-base-relative, stdlib only.
160
+ #
161
+ # Skipped on a `main`-based PR: that diff is the whole release cycle since main's last
162
+ # advance, re-flagging lines each contributing PR already passed against `dev` (#536).
157
163
  slop:
158
- if: github.event_name == 'pull_request'
164
+ if: github.event_name == 'pull_request' && github.base_ref != 'main'
159
165
  runs-on: ubuntu-latest
160
166
  timeout-minutes: 5
161
167
  steps:
162
- - uses: actions/checkout@v4
168
+ - uses: actions/checkout@v7
163
169
  with:
164
170
  fetch-depth: 0
165
171
  - name: Comment slop on lines this PR adds
@@ -28,7 +28,7 @@ jobs:
28
28
 
29
29
  steps:
30
30
  - name: Checkout
31
- uses: actions/checkout@v4
31
+ uses: actions/checkout@v7
32
32
  with:
33
33
  fetch-depth: 0
34
34
 
@@ -50,7 +50,7 @@ jobs:
50
50
 
51
51
  - name: Set up Node.js
52
52
  if: steps.changed.outputs.run == 'true'
53
- uses: actions/setup-node@v4
53
+ uses: actions/setup-node@v7
54
54
  with:
55
55
  node-version: 22
56
56
  cache: npm
@@ -14,10 +14,13 @@ permissions:
14
14
  jobs:
15
15
  check:
16
16
  name: Check affected documentation
17
+ # Skipped on a `main`-based PR: that diff re-accumulates everything merged into `dev`
18
+ # since main's last advance, each already reviewed against `dev` as its base (#536).
19
+ if: github.event.pull_request.base.ref != 'main'
17
20
  runs-on: ubuntu-latest
18
21
  timeout-minutes: 5
19
22
  steps:
20
- - uses: actions/checkout@v4
23
+ - uses: actions/checkout@v7
21
24
  with:
22
25
  fetch-depth: 0
23
26
  # The acknowledgement names its pages, so it survives a push that affects nothing new and
@@ -24,12 +24,12 @@ jobs:
24
24
 
25
25
  steps:
26
26
  - name: Checkout released revision
27
- uses: actions/checkout@v4
27
+ uses: actions/checkout@v7
28
28
  with:
29
29
  ref: ${{ github.event.release.tag_name || github.ref }}
30
30
 
31
31
  - name: Setup Node.js
32
- uses: actions/setup-node@v4
32
+ uses: actions/setup-node@v7
33
33
  with:
34
34
  node-version: 22
35
35
  cache: npm
@@ -19,8 +19,13 @@ jobs:
19
19
  runs-on: ubuntu-latest
20
20
  timeout-minutes: 2
21
21
  steps:
22
+ # GitHub creates closing references only for PRs based on the default branch, so this
23
+ # can never pass on a PR based on anything else (a promotion PR to `main`, a stacked
24
+ # PR based on a feature branch) (#486).
22
25
  - name: Require a labeled closing issue
23
- if: github.event.pull_request.user.login != 'dependabot[bot]'
26
+ if: >-
27
+ github.event.pull_request.user.login != 'dependabot[bot]' &&
28
+ github.event.pull_request.base.ref == github.event.repository.default_branch
24
29
  env:
25
30
  GH_TOKEN: ${{ github.token }}
26
31
  PR_NUMBER: ${{ github.event.pull_request.number }}
@@ -54,10 +54,13 @@ jobs:
54
54
  AGENTDECK_TEST_REDIS_URL: redis://127.0.0.1:6379/15
55
55
  AGENTDECK_TEST_POSTGRES_DSN: postgresql://postgres:postgres@127.0.0.1:5432/agentdeck_test
56
56
  steps:
57
- - uses: actions/checkout@v4
58
- - uses: astral-sh/setup-uv@v5
57
+ - uses: actions/checkout@v7
58
+ - uses: astral-sh/setup-uv@v7
59
59
  with:
60
60
  python-version: "3.12"
61
+ # v6 made this opt-in; without it `uv pip install` below finds no venv, and the
62
+ # Makefile's `.venv/bin/*` calls have nothing to run.
63
+ activate-environment: true
61
64
  enable-cache: true
62
65
  cache-dependency-glob: "uv.lock"
63
66
  - name: Verify tag matches pyproject version
@@ -23,3 +23,6 @@ docs/brand/*.jpg
23
23
  # deepeval writes a cache and a telemetry marker beside the suite
24
24
  .deepeval/
25
25
  .deepeval-cache.json
26
+
27
+ # make check's per-target logs (worktree-scoped, see Makefile's LOG)
28
+ .make-*.log
@@ -0,0 +1 @@
1
+ {"agentdeck.adapters.stores.redis": 1787991318.031553, "agentdeck.adapters.executors.openai_agents.runconfig": 1787991318.0304673, "agentdeck.adapters.telemetry": 1787991318.0319402, "agentdeck.core.ports.store": 1787991318.0344682, "agentdeck.adapters.telemetry.langfuse.sink": 1787991318.0322003, "agentdeck.core.ports.executor": 1787991318.0344682, "agentdeck.skills": 1787991318.035757, "agentdeck.authoring.compile": 1787991318.0328615, "agentdeck.surfaces.serve.app": 1787991318.0367963, "agentdeck.adapters.stores": 1787991318.03117, "agentdeck.authoring.native": 1787991318.0328615, "agentdeck.mcp": 1787991318.0347571, "agentdeck.core.status": 1787991318.0344682, "agentdeck.composition": 1787991318.0334094, "agentdeck.adapters.stores.memory.store": 1787991318.03141, "agentdeck.core.ports.lease": 1787991318.0344682, "agentdeck.adapters.control.sqlite": 1787991318.0299516, "agentdeck.core.ports.control": 1787991318.0344682, "agentdeck.adapters.executors.stub.executor": 1787991318.030887, "agentdeck.adapters.tools.mcp.lifecycle": 1787991318.0325863, "agentdeck.errors": 1787991318.0347571, "agentdeck.core.base": 1787991318.0338304, "agentdeck.authoring.injection": 1787991318.0328615, "agentdeck.adapters.executors": 1787991318.0300517, "agentdeck.runtime.discovery": 1787991318.0355892, "agentdeck.adapters.control.memory": 1787991318.0299008, "agentdeck.adapters.stores.memory": 1787991318.0313525, "agentdeck.core.invocable": 1787991318.0338304, "agentdeck.adapters.executors.openai_agents.sessions": 1787991318.0304673, "agentdeck.views": 1787991318.0367963, "agentdeck.serve": 1787991318.035757, "agentdeck": 1787991318.0297182, "agentdeck.adapters.stores.sqlite.store": 1787991318.0319402, "agentdeck.core.events": 1787991318.0338304, "agentdeck.adapters.leases.sqlite.port": 1787991318.03117, "agentdeck.adapters.stores.postgres.store": 1787991318.031553, "agentdeck.authoring.agent": 1787991318.0328615, "agentdeck.adapters.tools.mcp": 1787991318.0325322, "agentdeck.core.ports.tools": 1787991318.0344682, "agentdeck.authoring": 1787991318.0325863, "agentdeck.core.ports": 1787991318.0338304, "agentdeck.adapters.executors.openai_agents.translate": 1787991318.0304673, "agentdeck.authoring.instructions": 1787991318.0328615, "agentdeck.adapters.telemetry.langfuse": 1787991318.0321436, "agentdeck.adapters.leases.sqlite": 1787991318.0310664, "agentdeck.runtime": 1787991318.0347571, "agentdeck.core.ports.sink": 1787991318.0344682, "agentdeck.adapters.executors.native.executor": 1787991318.0302494, "agentdeck.surfaces.cli": 1787991318.0366344, "agentdeck.runtime.capture": 1787991318.0355892, "agentdeck.adapters.stores.sqlite": 1787991318.0317483, "agentdeck.core.errors": 1787991318.0338304, "agentdeck.authoring.runners.agent": 1787991318.0334094, "agentdeck.core.context": 1787991318.0338304, "agentdeck.authoring.hooks": 1787991318.0328615, "agentdeck.adapters.control.sqlite.port": 1787991318.0300517, "agentdeck.core": 1787991318.0334094, "agentdeck.core.content": 1787991318.0338304, "agentdeck.core.reporting": 1787991318.0344682, "agentdeck.adapters.tools": 1787991318.0322003, "agentdeck.runtime.dispatch": 1787991318.0355892, "agentdeck.core.workers": 1787991318.0344682, "agentdeck.observers": 1787991318.0347571, "agentdeck.adapters.stores.redis.store": 1787991318.0317483, "agentdeck.adapters.control": 1787991318.0298378, "agentdeck.testing": 1787991318.0367963, "agentdeck.adapters.executors.stub": 1787991318.0304673, "agentdeck.adapters.executors.openai_agents.executor": 1787991318.0304673, "agentdeck.adapters.executors.openai_agents": 1787991318.0302494, "agentdeck.runtime.service": 1787991318.0355892, "agentdeck.adapters.executors.openai_agents.reconcile": 1787991318.0304673, "agentdeck.adapters.leases.memory": 1787991318.0310168, "agentdeck.surfaces": 1787991318.0365074, "agentdeck.adapters.tools.mcp.source": 1787991318.0325863, "agentdeck.adapters.telemetry.langfuse.trace": 1787991318.0322003, "agentdeck.core.control": 1787991318.0338304, "agentdeck.cli": 1787991318.0334094, "agentdeck.adapters.stores.postgres": 1787991318.03141, "agentdeck.authoring.runners": 1787991318.0328615, "agentdeck.adapters.tools.mcp.transport": 1787991318.0325863, "agentdeck.adapters.leases.memory.port": 1787991318.0310664, "agentdeck.surfaces.serve.compat": 1787991318.0367963, "agentdeck.authoring.tools": 1787991318.0334094, "agentdeck.adapters.leases": 1787991318.030887, "agentdeck.authoring.skills": 1787991318.0334094, "agentdeck.surfaces.cli.chat": 1787991318.0366855, "agentdeck.authoring.web_search": 1787991318.0334094, "agentdeck.runtime.registry": 1787991318.0355892, "agentdeck.adapters.telemetry.langfuse.client": 1787991318.0322003, "agentdeck.adapters.tools.mcp.wiring": 1787991318.0325863, "agentdeck.runtime.settings": 1787991318.0355892, "agentdeck.adapters": 1787991318.0297182, "agentdeck.surfaces.serve": 1787991318.0366855, "agentdeck.authoring.interrupts": 1787991318.0328615, "agentdeck.adapters.executors.native": 1787991318.0301964, "agentdeck.adapters.control.memory.port": 1787991318.0299516, "agentdeck.skills.bundle": 1787991318.0365074, "agentdeck.deck": 1787991318.0347571}