create-agdf 0.20.1 → 0.30.0

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 (847) hide show
  1. package/README.md +154 -192
  2. package/generated/.agdf/control/README.md +31 -110
  3. package/generated/.agdf/control/planned-urs.md +95 -0
  4. package/generated/.agdf/control/templates/RUN_STATE.md +15 -64
  5. package/generated/.agdf/control/templates/artefacts/SD.md +7 -1
  6. package/generated/.agdf/control/templates/artefacts/TP.md +4 -0
  7. package/generated/.agdf/control/templates/artefacts/UR.md +1 -1
  8. package/generated/.agents/plugins/marketplace.json +12 -0
  9. package/generated/.opencode/agdf-agent-router.md +3 -3
  10. package/generated/.opencode/agdf-interaction-locales.json +2668 -2682
  11. package/generated/.opencode/contracts/closeout.md +1 -1
  12. package/generated/.opencode/contracts/control-scaffold.md +63 -46
  13. package/generated/.opencode/contracts/gate-artifact-preparation.md +58 -48
  14. package/generated/.opencode/contracts/gate-transition.md +5 -6
  15. package/generated/.opencode/contracts/interaction.md +43 -126
  16. package/generated/.opencode/contracts/modes.md +4 -3
  17. package/generated/.opencode/contracts/prd-definition.md +6 -6
  18. package/generated/.opencode/contracts/quality.md +81 -6
  19. package/generated/.opencode/contracts/request-activation.md +9 -8
  20. package/generated/.opencode/contracts/sd-definition.md +19 -3
  21. package/generated/.opencode/contracts/task-target-resolution.md +24 -0
  22. package/generated/.opencode/contracts/tp-definition.md +7 -1
  23. package/generated/.opencode/contracts/ur-definition.md +41 -7
  24. package/generated/.opencode/skills/agdf-brownfield-analysis/SKILL.md +8 -5
  25. package/generated/.opencode/skills/agdf-clean-implementation-review/SKILL.md +5 -2
  26. package/generated/.opencode/skills/agdf-code-review/SKILL.md +7 -3
  27. package/generated/.opencode/skills/agdf-delivery-closeout/SKILL.md +3 -2
  28. package/generated/.opencode/skills/agdf-delivery-path-search/SKILL.md +3 -2
  29. package/generated/.opencode/skills/agdf-gate-check/SKILL.md +35 -31
  30. package/generated/.opencode/skills/agdf-prd-definition/SKILL.md +3 -2
  31. package/generated/.opencode/skills/agdf-qa-gate/SKILL.md +13 -11
  32. package/generated/.opencode/skills/agdf-release-or/SKILL.md +8 -5
  33. package/generated/.opencode/skills/agdf-sd-definition/SKILL.md +5 -3
  34. package/generated/.opencode/skills/agdf-task-plan-review/SKILL.md +5 -2
  35. package/generated/.opencode/skills/agdf-tp-definition/SKILL.md +5 -3
  36. package/generated/.opencode/skills/agdf-ur-definition/SKILL.md +12 -4
  37. package/generated/.opencode/skills/agdf-ux-intent-definition/SKILL.md +5 -4
  38. package/generated/plugins/agdf/.claude-plugin/plugin.json +3 -2
  39. package/generated/plugins/agdf/.codex-plugin/plugin.json +1 -1
  40. package/generated/plugins/agdf/companion/assignment.mjs +65 -0
  41. package/generated/plugins/agdf/companion/companion.json +4 -0
  42. package/generated/plugins/agdf/companion/core.mjs +16 -0
  43. package/generated/plugins/agdf/companion/figure.mjs +137 -0
  44. package/generated/plugins/agdf/companion/gate-bar.mjs +54 -0
  45. package/generated/plugins/agdf/companion/hooks.json +3 -0
  46. package/generated/plugins/agdf/companion/locales.json +200 -0
  47. package/generated/plugins/agdf/companion/localization.mjs +89 -0
  48. package/generated/plugins/agdf/companion/notice.mjs +90 -0
  49. package/generated/plugins/agdf/companion/persistence.mjs +36 -0
  50. package/generated/plugins/agdf/companion/register.mjs +444 -0
  51. package/generated/plugins/agdf/companion/run-state.mjs +110 -0
  52. package/generated/plugins/agdf/companion/state.mjs +48 -0
  53. package/generated/plugins/agdf/companion/view.mjs +84 -0
  54. package/generated/plugins/agdf/control/README.md +31 -110
  55. package/generated/plugins/agdf/control/planned-urs.md +95 -0
  56. package/generated/plugins/agdf/control/templates/RUN_STATE.md +15 -64
  57. package/generated/plugins/agdf/control/templates/artefacts/SD.md +7 -1
  58. package/generated/plugins/agdf/control/templates/artefacts/TP.md +4 -0
  59. package/generated/plugins/agdf/control/templates/artefacts/UR.md +1 -1
  60. package/generated/plugins/agdf/mcp/server/README.md +124 -12
  61. package/generated/plugins/agdf/mcp/server/package.json +12 -7
  62. package/generated/plugins/agdf/mcp/server/src/generation-entry.js +3 -85
  63. package/generated/plugins/agdf/mcp/server/src/generation-protocol.js +2 -44
  64. package/generated/plugins/agdf/mcp/server/src/generation-runtime.js +94 -0
  65. package/generated/plugins/agdf/mcp/server/src/generation-thread-entry.js +8 -0
  66. package/generated/plugins/agdf/mcp/server/src/generation.js +64 -20
  67. package/generated/plugins/agdf/mcp/server/src/main.js +42 -10
  68. package/generated/plugins/agdf/mcp/server/src/server.js +44 -22
  69. package/generated/plugins/agdf/mcp/server/src/stdio-output.js +42 -0
  70. package/generated/plugins/agdf/mcp/server/src/ui-capability.js +49 -1
  71. package/generated/plugins/agdf/mcp/server/src/worker-entry.js +2 -2
  72. package/generated/plugins/agdf/mcp/server/src/worker.js +53 -7
  73. package/generated/plugins/agdf/mcp/server/ui/cockpit.html +31 -31
  74. package/generated/plugins/agdf/mcp/server/ui/decision-manifest.json +3 -3
  75. package/generated/plugins/agdf/mcp/server/ui/decision.html +36 -36
  76. package/generated/plugins/agdf/mcp/server/ui/manifest.json +4 -4
  77. package/generated/plugins/agdf/meta/agdf-agent-router.md +3 -3
  78. package/generated/plugins/agdf/meta/agdf-defaults.json +9 -0
  79. package/generated/plugins/agdf/meta/agdf-defaults.schema.json +20 -0
  80. package/generated/plugins/agdf/meta/agdf-interaction-locales.json +2668 -2682
  81. package/generated/plugins/agdf/meta/agdf-mcp-capability.json +2 -2
  82. package/generated/plugins/agdf/meta/agdf-plugin.definition.json +12 -5
  83. package/generated/plugins/agdf/meta/contracts/closeout.md +1 -1
  84. package/generated/plugins/agdf/meta/contracts/control-scaffold.md +63 -46
  85. package/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +58 -48
  86. package/generated/plugins/agdf/meta/contracts/gate-transition.md +5 -6
  87. package/generated/plugins/agdf/meta/contracts/interaction.md +43 -126
  88. package/generated/plugins/agdf/meta/contracts/modes.md +4 -3
  89. package/generated/plugins/agdf/meta/contracts/prd-definition.md +6 -6
  90. package/generated/plugins/agdf/meta/contracts/quality.md +81 -6
  91. package/generated/plugins/agdf/meta/contracts/request-activation.md +9 -8
  92. package/generated/plugins/agdf/meta/contracts/sd-definition.md +19 -3
  93. package/generated/plugins/agdf/meta/contracts/task-target-resolution.md +24 -0
  94. package/generated/plugins/agdf/meta/contracts/tp-definition.md +7 -1
  95. package/generated/plugins/agdf/meta/contracts/ur-definition.md +41 -7
  96. package/generated/plugins/agdf/meta/copilot-payload-baseline.json +3 -3
  97. package/generated/plugins/agdf/meta/distribution-profile-history.json +14 -0
  98. package/generated/plugins/agdf/runtime/agdf-session-check.js +25 -21
  99. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-defaults.json +9 -0
  100. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-defaults.schema.json +20 -0
  101. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +2668 -2682
  102. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +12 -5
  103. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/closeout.md +1 -1
  104. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/control-scaffold.md +63 -46
  105. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +58 -48
  106. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-transition.md +5 -6
  107. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/interaction.md +43 -126
  108. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/modes.md +4 -3
  109. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/prd-definition.md +6 -6
  110. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/quality.md +81 -6
  111. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/request-activation.md +9 -8
  112. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/sd-definition.md +19 -3
  113. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/task-target-resolution.md +24 -0
  114. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/tp-definition.md +7 -1
  115. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/ur-definition.md +41 -7
  116. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/codex-document-command.js +195 -0
  117. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/command-registry.js +82 -148
  118. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/control-maintenance-command.js +8 -37
  119. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/parse-args.js +98 -16
  120. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/planned-command.js +55 -0
  121. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/project-read-command.js +35 -0
  122. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/run-command-aliases.js +116 -0
  123. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/runtime-context.js +1 -59
  124. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/validation-handlers.js +33 -103
  125. package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/git-observation.js +7 -5
  126. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/startup.js +2 -2
  127. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-decision-protocol.js +40 -0
  128. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-dispatch-runtime.js +71 -298
  129. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-entry.js +3 -24
  130. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-owner-entry.js +31 -15
  131. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-runtime.js +29 -0
  132. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-thread-entry.js +11 -0
  133. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/owner-client.js +79 -0
  134. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/package.js +14 -80
  135. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js +29 -9
  136. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/thread-owner.js +164 -0
  137. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-owner-protocol.js +1 -0
  138. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-protocol-runtime.js +308 -0
  139. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-worker-runtime.js +152 -0
  140. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/control-command-service.js +22 -7
  141. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/control-context.js +8 -1
  142. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/validator-application.js +2 -2
  143. package/generated/plugins/agdf/runtime/create-agdf/package.json +5 -1
  144. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/closeout-readiness.js +10 -2
  145. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-placeholder.js +9 -0
  146. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-readiness.js +2 -7
  147. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/definition-sources.js +3 -2
  148. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/delivery-map.js +2 -12
  149. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/doctor.js +162 -172
  150. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-check.js +10 -9
  151. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-inputs.js +11 -0
  152. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-pure.js +446 -0
  153. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy.js +3 -434
  154. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/next-action.js +2 -0
  155. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/parent-reconciliation.js +2 -1
  156. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/qa-follow-up.js +2 -1
  157. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/required-files.js +9 -7
  158. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state-policy.js +1 -1
  159. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state.js +15 -9
  160. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-step-policy.js +2 -1
  161. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-work-summary.js +6 -4
  162. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/shared-value.js +7 -0
  163. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/shared.js +5 -254
  164. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/tp-planning.js +3 -2
  165. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/ur-readiness.js +7 -2
  166. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/verified-change.js +11 -9
  167. package/{runtime/core/lib/control-evaluation/backlog-vocabulary.js → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/work-vocabulary.js} +2 -2
  168. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/artifact-readiness.js +5 -3
  169. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/authoring-inputs.js +110 -0
  170. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-archive.js +53 -0
  171. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-context.js +2 -1
  172. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-contract.js +11 -4
  173. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-list.d.ts +10 -6
  174. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-list.js +32 -41
  175. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-session.js +8 -8
  176. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-work.js +33 -0
  177. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit.js +75 -44
  178. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/contract.js +142 -58
  179. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/decision-session.js +53 -11
  180. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/doctor-observation.js +91 -0
  181. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/project-operation-call.js +5 -0
  182. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/project-state.js +48 -0
  183. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/result.js +61 -0
  184. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/selection.js +9 -3
  185. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/service.js +142 -72
  186. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/compatibility.js +42 -132
  187. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/contract.js +5 -5
  188. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/presentation.js +27 -119
  189. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/service.js +9 -37
  190. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-pool.js +25 -9
  191. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-worker.js +4 -3
  192. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/doctor-reader.js +92 -0
  193. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/doctor-worker.js +11 -0
  194. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/fs.js +18 -0
  195. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/snapshot.js +68 -17
  196. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/aggregate.js +3 -1
  197. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command.js +13 -10
  198. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-operations.js +10 -7
  199. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-binding-proof.js +12 -20
  200. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-bindings.js +10 -7
  201. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/canonical-initialization.js +761 -0
  202. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/control-layout.js +183 -0
  203. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-action-contract.js +10 -1
  204. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-action-service.js +24 -3
  205. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-material-contract.js +2 -1
  206. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/evidence-bindings.js +7 -7
  207. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/git-identity.js +86 -0
  208. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/index.js +0 -1
  209. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/input-resolution.js +99 -0
  210. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-entry.js +273 -0
  211. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-handoff.js +174 -0
  212. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-inventory.js +90 -0
  213. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-origin-reader.js +48 -0
  214. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-origin.js +40 -0
  215. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-decision.js +12 -7
  216. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-delivery.js +90 -0
  217. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-render.js +5 -2
  218. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-review.js +3 -2
  219. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-snapshot.js +9 -6
  220. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/recording-formats.js +12 -16
  221. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-artefact-recording.js +54 -66
  222. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-closure.js +343 -0
  223. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-contract.js +33 -119
  224. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-schema.js +508 -0
  225. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-service.js +198 -34
  226. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-create-command.js +60 -0
  227. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-identity.d.ts +14 -0
  228. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-identity.js +40 -0
  229. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-input-resolution.js +72 -0
  230. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory-reader.js +31 -0
  231. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory.js +179 -0
  232. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-material.js +211 -0
  233. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-mutation.js +51 -0
  234. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-identity.js +2 -1
  235. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-proof.js +7 -4
  236. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-status.js +20 -4
  237. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operations.js +70 -13
  238. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-owned-outputs.js +21 -9
  239. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-envelope.js +25 -33
  240. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-render.js +9 -8
  241. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation.js +45 -21
  242. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recording.js +10 -179
  243. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-boundary.js +7 -21
  244. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-history.js +23 -16
  245. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision.js +84 -161
  246. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal-compute.js +19 -44
  247. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal.js +6 -1
  248. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-source-revisions.js +19 -18
  249. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-document.js +110 -42
  250. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-edits.js +13 -5
  251. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-parser.js +14 -6
  252. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-reader.js +27 -18
  253. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-repository.js +112 -48
  254. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-resolver.js +12 -15
  255. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-writer.js +21 -377
  256. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-pending.js +2 -1
  257. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-transaction.js +125 -114
  258. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-steps.js +136 -248
  259. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-store-inspection.js +14 -2
  260. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-verified-change.js +81 -0
  261. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-work-summary-shape.d.ts +1 -0
  262. package/{runtime/core/lib/control-state/backlog-summary-shape.js → generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-work-summary-shape.js} +7 -19
  263. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/delivery-continuation/service.js +5 -66
  264. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/delivery-path-search/persistence.js +26 -8
  265. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/delivery-path-search/state-adapter.js +1 -1
  266. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/index.js +14 -6
  267. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog.js +3 -3
  268. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-presentation.js +30 -12
  269. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-hints.js +46 -0
  270. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-resolution.js +98 -0
  271. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-schema.js +15 -0
  272. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-resource-contract.js +1 -1
  273. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-tool-errors.js +31 -15
  274. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/owned-file-lock.js +266 -0
  275. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/owner-placement.js +50 -0
  276. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/canonical-init-plan.js +34 -0
  277. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/configuration.js +92 -0
  278. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/context.js +7 -11
  279. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/language-preference.js +59 -0
  280. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/runtime/mcp-owner-protocol.js +102 -0
  281. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/runtime/plugin-provenance.js +173 -18
  282. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/compact-continuation.js +3 -3
  283. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/contract.js +28 -9
  284. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-intake.js +11 -5
  285. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +6 -10
  286. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/mcp-continuation.js +64 -0
  287. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/prd-definition.js +14 -5
  288. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/sd-definition.js +2 -1
  289. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/service.js +49 -14
  290. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/tp-definition.js +2 -1
  291. package/generated/plugins/agdf/runtime/runtime-manifest.json +2 -2
  292. package/generated/plugins/agdf/scripts/check-runtime-integrity.mjs +60 -42
  293. package/generated/plugins/agdf/scripts/instruction-footprint.mjs +5 -5
  294. package/generated/plugins/agdf/skills/brownfield-analysis/SKILL.md +8 -5
  295. package/generated/plugins/agdf/skills/clean-implementation-review/SKILL.md +5 -2
  296. package/generated/plugins/agdf/skills/code-review/SKILL.md +7 -3
  297. package/generated/plugins/agdf/skills/delivery-closeout/SKILL.md +3 -2
  298. package/generated/plugins/agdf/skills/delivery-path-search/SKILL.md +3 -2
  299. package/generated/plugins/agdf/skills/gate-check/SKILL.md +35 -31
  300. package/generated/plugins/agdf/skills/prd-definition/SKILL.md +3 -2
  301. package/generated/plugins/agdf/skills/qa-gate/SKILL.md +13 -11
  302. package/generated/plugins/agdf/skills/release-or/SKILL.md +8 -5
  303. package/generated/plugins/agdf/skills/sd-definition/SKILL.md +5 -3
  304. package/generated/plugins/agdf/skills/task-plan-review/SKILL.md +5 -2
  305. package/generated/plugins/agdf/skills/tp-definition/SKILL.md +5 -3
  306. package/generated/plugins/agdf/skills/ur-definition/SKILL.md +12 -4
  307. package/generated/plugins/agdf/skills/ux-intent-definition/SKILL.md +5 -4
  308. package/generated/plugins/agdf/submission/openai/availability.md +1 -1
  309. package/generated/plugins/agdf/submission/openai/capability-matrix.json +1 -1
  310. package/generated/plugins/agdf/submission/openai/release-notes.md +9 -1
  311. package/generated/plugins/agdf/submission/openai/reviewer-cases.json +1 -1
  312. package/generated/plugins/agdf-planning/.codex-plugin/plugin.json +40 -0
  313. package/generated/plugins/agdf-planning/README.md +21 -0
  314. package/generated/plugins/agdf-planning/assets/agdf-icon.svg +16 -0
  315. package/generated/plugins/agdf-planning/assets/agdf-logo.svg +16 -0
  316. package/generated/plugins/agdf-planning/meta/agdf-planning.definition.json +9 -0
  317. package/generated/plugins/agdf-planning/plugin.json +45 -0
  318. package/generated/plugins/agdf-planning/skills/planning/SKILL.md +56 -0
  319. package/generated/plugins/copilot/agdf/.agdf-payload-inventory.json +886 -483
  320. package/generated/plugins/copilot/agdf/control/README.md +31 -110
  321. package/generated/plugins/copilot/agdf/control/planned-urs.md +95 -0
  322. package/generated/plugins/copilot/agdf/control/templates/RUN_STATE.md +15 -64
  323. package/generated/plugins/copilot/agdf/control/templates/artefacts/SD.md +7 -1
  324. package/generated/plugins/copilot/agdf/control/templates/artefacts/TP.md +4 -0
  325. package/generated/plugins/copilot/agdf/control/templates/artefacts/UR.md +1 -1
  326. package/generated/plugins/copilot/agdf/mcp/server/README.md +124 -12
  327. package/generated/plugins/copilot/agdf/mcp/server/package.json +12 -7
  328. package/generated/plugins/copilot/agdf/mcp/server/src/generation-entry.js +3 -85
  329. package/generated/plugins/copilot/agdf/mcp/server/src/generation-protocol.js +2 -44
  330. package/generated/plugins/copilot/agdf/mcp/server/src/generation-runtime.js +94 -0
  331. package/generated/plugins/copilot/agdf/mcp/server/src/generation-thread-entry.js +8 -0
  332. package/generated/plugins/copilot/agdf/mcp/server/src/generation.js +64 -20
  333. package/generated/plugins/copilot/agdf/mcp/server/src/main.js +42 -10
  334. package/generated/plugins/copilot/agdf/mcp/server/src/server.js +44 -22
  335. package/generated/plugins/copilot/agdf/mcp/server/src/stdio-output.js +42 -0
  336. package/generated/plugins/copilot/agdf/mcp/server/src/ui-capability.js +49 -1
  337. package/generated/plugins/copilot/agdf/mcp/server/src/worker-entry.js +2 -2
  338. package/generated/plugins/copilot/agdf/mcp/server/src/worker.js +53 -7
  339. package/generated/plugins/copilot/agdf/meta/agdf-agent-router.md +3 -3
  340. package/generated/plugins/copilot/agdf/meta/agdf-plugin.definition.json +12 -5
  341. package/generated/plugins/copilot/agdf/meta/distribution-profile-history.json +14 -0
  342. package/generated/plugins/copilot/agdf/plugin.json +1 -1
  343. package/generated/plugins/copilot/agdf/runtime/agdf-session-check.js +25 -21
  344. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-defaults.json +9 -0
  345. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-defaults.schema.json +20 -0
  346. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +2668 -2682
  347. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +12 -5
  348. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/closeout.md +1 -1
  349. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/control-scaffold.md +63 -46
  350. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +58 -48
  351. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-transition.md +5 -6
  352. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/interaction.md +43 -126
  353. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/modes.md +4 -3
  354. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/prd-definition.md +6 -6
  355. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/quality.md +81 -6
  356. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/request-activation.md +9 -8
  357. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/sd-definition.md +19 -3
  358. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/task-target-resolution.md +24 -0
  359. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/tp-definition.md +7 -1
  360. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/ur-definition.md +41 -7
  361. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/codex-document-command.js +195 -0
  362. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/command-registry.js +82 -148
  363. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/control-maintenance-command.js +8 -37
  364. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/parse-args.js +98 -16
  365. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/planned-command.js +55 -0
  366. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/project-read-command.js +35 -0
  367. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/run-command-aliases.js +116 -0
  368. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/runtime-context.js +1 -59
  369. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/validation-handlers.js +33 -103
  370. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-evaluation/git-observation.js +7 -5
  371. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/startup.js +2 -2
  372. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-decision-protocol.js +40 -0
  373. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-dispatch-runtime.js +71 -298
  374. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-entry.js +3 -24
  375. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-owner-entry.js +31 -15
  376. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-runtime.js +29 -0
  377. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-thread-entry.js +11 -0
  378. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/owner-client.js +79 -0
  379. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/package.js +14 -80
  380. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js +29 -9
  381. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/thread-owner.js +164 -0
  382. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-owner-protocol.js +1 -0
  383. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-protocol-runtime.js +308 -0
  384. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-worker-runtime.js +152 -0
  385. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/control-command-service.js +22 -7
  386. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/control-context.js +8 -1
  387. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/validator-application.js +2 -2
  388. package/generated/plugins/copilot/agdf/runtime/create-agdf/package.json +5 -1
  389. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/closeout-readiness.js +10 -2
  390. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-placeholder.js +9 -0
  391. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-readiness.js +2 -7
  392. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/definition-sources.js +3 -2
  393. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/delivery-map.js +2 -12
  394. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/doctor.js +162 -172
  395. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-check.js +10 -9
  396. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-inputs.js +11 -0
  397. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-pure.js +446 -0
  398. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy.js +3 -434
  399. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/next-action.js +2 -0
  400. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/parent-reconciliation.js +2 -1
  401. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/qa-follow-up.js +2 -1
  402. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/required-files.js +9 -7
  403. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state-policy.js +1 -1
  404. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state.js +15 -9
  405. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-step-policy.js +2 -1
  406. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-work-summary.js +6 -4
  407. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/shared-value.js +7 -0
  408. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/shared.js +5 -254
  409. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/tp-planning.js +3 -2
  410. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/ur-readiness.js +7 -2
  411. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/verified-change.js +11 -9
  412. package/generated/plugins/{agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/backlog-vocabulary.js → copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/work-vocabulary.js} +2 -2
  413. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/artifact-readiness.js +5 -3
  414. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/authoring-inputs.js +110 -0
  415. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-archive.js +53 -0
  416. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/contract.js +142 -58
  417. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/doctor-observation.js +91 -0
  418. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/project-operation-call.js +5 -0
  419. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/project-state.js +48 -0
  420. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/result.js +61 -0
  421. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/selection.js +9 -3
  422. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/service.js +142 -72
  423. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/compatibility.js +42 -132
  424. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/contract.js +5 -5
  425. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/presentation.js +27 -119
  426. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/service.js +9 -37
  427. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-pool.js +121 -0
  428. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/doctor-reader.js +92 -0
  429. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/doctor-worker.js +11 -0
  430. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/fs.js +18 -0
  431. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/snapshot.js +68 -17
  432. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/aggregate.js +3 -1
  433. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command.js +13 -10
  434. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-operations.js +10 -7
  435. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-binding-proof.js +12 -20
  436. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-bindings.js +10 -7
  437. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/canonical-initialization.js +761 -0
  438. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/control-layout.js +183 -0
  439. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-material-contract.js +2 -1
  440. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/evidence-bindings.js +7 -7
  441. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/git-identity.js +86 -0
  442. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/index.js +0 -1
  443. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/input-resolution.js +99 -0
  444. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-entry.js +273 -0
  445. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-handoff.js +174 -0
  446. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-inventory.js +90 -0
  447. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-origin-reader.js +48 -0
  448. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-origin.js +40 -0
  449. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-decision.js +12 -7
  450. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-delivery.js +90 -0
  451. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-render.js +5 -2
  452. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-review.js +3 -2
  453. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-snapshot.js +9 -6
  454. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/recording-formats.js +12 -16
  455. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-artefact-recording.js +54 -66
  456. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-closure.js +343 -0
  457. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-contract.js +33 -119
  458. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-schema.js +508 -0
  459. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-service.js +198 -34
  460. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-create-command.js +60 -0
  461. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-identity.d.ts +14 -0
  462. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-identity.js +40 -0
  463. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-input-resolution.js +72 -0
  464. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory-reader.js +31 -0
  465. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory.js +179 -0
  466. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-material.js +211 -0
  467. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-mutation.js +51 -0
  468. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-identity.js +2 -1
  469. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-proof.js +7 -4
  470. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-status.js +20 -4
  471. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operations.js +70 -13
  472. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-owned-outputs.js +21 -9
  473. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-envelope.js +25 -33
  474. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-render.js +9 -8
  475. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation.js +45 -21
  476. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recording.js +10 -179
  477. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-boundary.js +7 -21
  478. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-history.js +23 -16
  479. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision.js +84 -161
  480. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal-compute.js +19 -44
  481. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal.js +6 -1
  482. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-source-revisions.js +19 -18
  483. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-document.js +110 -42
  484. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-edits.js +13 -5
  485. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-parser.js +14 -6
  486. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-reader.js +27 -18
  487. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-repository.js +112 -48
  488. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-resolver.js +12 -15
  489. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-writer.js +21 -377
  490. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-pending.js +2 -1
  491. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-transaction.js +125 -114
  492. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-steps.js +136 -248
  493. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-store-inspection.js +14 -2
  494. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-verified-change.js +81 -0
  495. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-work-summary-shape.d.ts +1 -0
  496. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/{backlog-summary-shape.js → run-work-summary-shape.js} +7 -19
  497. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/delivery-continuation/service.js +5 -66
  498. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/delivery-path-search/persistence.js +26 -8
  499. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/delivery-path-search/state-adapter.js +1 -1
  500. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/index.js +14 -6
  501. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog.js +3 -3
  502. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-presentation.js +30 -12
  503. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-hints.js +46 -0
  504. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-resolution.js +98 -0
  505. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-schema.js +15 -0
  506. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-resource-contract.js +1 -1
  507. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-tool-errors.js +31 -15
  508. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/owned-file-lock.js +266 -0
  509. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/owner-placement.js +50 -0
  510. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/canonical-init-plan.js +34 -0
  511. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/configuration.js +92 -0
  512. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/context.js +7 -11
  513. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/language-preference.js +59 -0
  514. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/runtime/mcp-owner-protocol.js +102 -0
  515. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/runtime/plugin-provenance.js +173 -18
  516. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/compact-continuation.js +3 -3
  517. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/contract.js +28 -9
  518. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-intake.js +11 -5
  519. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +6 -10
  520. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/mcp-continuation.js +64 -0
  521. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/prd-definition.js +14 -5
  522. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/sd-definition.js +2 -1
  523. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/service.js +49 -14
  524. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/tp-definition.js +2 -1
  525. package/generated/plugins/copilot/agdf/runtime/runtime-manifest.json +2 -2
  526. package/generated/plugins/copilot/agdf/skills/agdf-brownfield-analysis/SKILL.md +8 -5
  527. package/generated/plugins/copilot/agdf/skills/agdf-clean-implementation-review/SKILL.md +5 -2
  528. package/generated/plugins/copilot/agdf/skills/agdf-code-review/SKILL.md +7 -3
  529. package/generated/plugins/copilot/agdf/skills/agdf-delivery-closeout/SKILL.md +3 -2
  530. package/generated/plugins/copilot/agdf/skills/agdf-delivery-path-search/SKILL.md +3 -2
  531. package/generated/plugins/copilot/agdf/skills/agdf-gate-check/SKILL.md +35 -31
  532. package/generated/plugins/copilot/agdf/skills/agdf-interaction-locales.json +1 -1
  533. package/generated/plugins/copilot/agdf/skills/agdf-prd-definition/SKILL.md +3 -2
  534. package/generated/plugins/copilot/agdf/skills/agdf-qa-gate/SKILL.md +13 -11
  535. package/generated/plugins/copilot/agdf/skills/agdf-release-or/SKILL.md +8 -5
  536. package/generated/plugins/copilot/agdf/skills/agdf-sd-definition/SKILL.md +5 -3
  537. package/generated/plugins/copilot/agdf/skills/agdf-task-plan-review/SKILL.md +5 -2
  538. package/generated/plugins/copilot/agdf/skills/agdf-tp-definition/SKILL.md +5 -3
  539. package/generated/plugins/copilot/agdf/skills/agdf-ur-definition/SKILL.md +12 -4
  540. package/generated/plugins/copilot/agdf/skills/agdf-ux-intent-definition/SKILL.md +5 -4
  541. package/generated/plugins/copilot/agdf/skills/contracts/closeout.md +1 -1
  542. package/generated/plugins/copilot/agdf/skills/contracts/control-scaffold.md +63 -46
  543. package/generated/plugins/copilot/agdf/skills/contracts/gate-artifact-preparation.md +58 -48
  544. package/generated/plugins/copilot/agdf/skills/contracts/gate-transition.md +5 -6
  545. package/generated/plugins/copilot/agdf/skills/contracts/interaction.md +43 -126
  546. package/generated/plugins/copilot/agdf/skills/contracts/modes.md +4 -3
  547. package/generated/plugins/copilot/agdf/skills/contracts/prd-definition.md +6 -6
  548. package/generated/plugins/copilot/agdf/skills/contracts/quality.md +81 -6
  549. package/generated/plugins/copilot/agdf/skills/contracts/request-activation.md +9 -8
  550. package/generated/plugins/copilot/agdf/skills/contracts/sd-definition.md +19 -3
  551. package/generated/plugins/copilot/agdf/skills/contracts/task-target-resolution.md +24 -0
  552. package/generated/plugins/copilot/agdf/skills/contracts/tp-definition.md +7 -1
  553. package/generated/plugins/copilot/agdf/skills/contracts/ur-definition.md +41 -7
  554. package/generated/submissions/openai/agdf/.codex-plugin/plugin.json +1 -1
  555. package/generated/submissions/openai/agdf/meta/agdf-agent-router.md +3 -3
  556. package/generated/submissions/openai/agdf/meta/agdf-defaults.json +9 -0
  557. package/generated/submissions/openai/agdf/meta/agdf-defaults.schema.json +20 -0
  558. package/generated/submissions/openai/agdf/meta/agdf-interaction-locales.json +2668 -2682
  559. package/generated/submissions/openai/agdf/meta/agdf-plugin.definition.json +12 -5
  560. package/generated/submissions/openai/agdf/meta/contracts/closeout.md +1 -1
  561. package/generated/submissions/openai/agdf/meta/contracts/control-scaffold.md +63 -46
  562. package/generated/submissions/openai/agdf/meta/contracts/gate-artifact-preparation.md +58 -48
  563. package/generated/submissions/openai/agdf/meta/contracts/gate-transition.md +5 -6
  564. package/generated/submissions/openai/agdf/meta/contracts/interaction.md +43 -126
  565. package/generated/submissions/openai/agdf/meta/contracts/modes.md +4 -3
  566. package/generated/submissions/openai/agdf/meta/contracts/prd-definition.md +6 -6
  567. package/generated/submissions/openai/agdf/meta/contracts/quality.md +81 -6
  568. package/generated/submissions/openai/agdf/meta/contracts/request-activation.md +9 -8
  569. package/generated/submissions/openai/agdf/meta/contracts/sd-definition.md +19 -3
  570. package/generated/submissions/openai/agdf/meta/contracts/task-target-resolution.md +24 -0
  571. package/generated/submissions/openai/agdf/meta/contracts/tp-definition.md +7 -1
  572. package/generated/submissions/openai/agdf/meta/contracts/ur-definition.md +41 -7
  573. package/generated/submissions/openai/agdf/meta/copilot-payload-baseline.json +3 -3
  574. package/generated/submissions/openai/agdf/meta/distribution-profile-history.json +14 -0
  575. package/generated/submissions/openai/agdf/plugin.json +1 -1
  576. package/generated/submissions/openai/agdf/skills/brownfield-analysis/SKILL.md +8 -5
  577. package/generated/submissions/openai/agdf/skills/clean-implementation-review/SKILL.md +5 -2
  578. package/generated/submissions/openai/agdf/skills/code-review/SKILL.md +7 -3
  579. package/generated/submissions/openai/agdf/skills/delivery-closeout/SKILL.md +3 -2
  580. package/generated/submissions/openai/agdf/skills/delivery-path-search/SKILL.md +3 -2
  581. package/generated/submissions/openai/agdf/skills/gate-check/SKILL.md +35 -31
  582. package/generated/submissions/openai/agdf/skills/prd-definition/SKILL.md +3 -2
  583. package/generated/submissions/openai/agdf/skills/qa-gate/SKILL.md +13 -11
  584. package/generated/submissions/openai/agdf/skills/release-or/SKILL.md +8 -5
  585. package/generated/submissions/openai/agdf/skills/sd-definition/SKILL.md +5 -3
  586. package/generated/submissions/openai/agdf/skills/task-plan-review/SKILL.md +5 -2
  587. package/generated/submissions/openai/agdf/skills/tp-definition/SKILL.md +5 -3
  588. package/generated/submissions/openai/agdf/skills/ur-definition/SKILL.md +12 -4
  589. package/generated/submissions/openai/agdf/skills/ux-intent-definition/SKILL.md +5 -4
  590. package/generated/submissions/openai/agdf/submission/openai/availability.md +1 -1
  591. package/generated/submissions/openai/agdf/submission/openai/capability-matrix.json +1 -1
  592. package/generated/submissions/openai/agdf/submission/openai/inventory.json +49 -41
  593. package/generated/submissions/openai/agdf/submission/openai/listing.json +1 -1
  594. package/generated/submissions/openai/agdf/submission/openai/readiness.json +2 -2
  595. package/generated/submissions/openai/agdf/submission/openai/readiness.md +2 -2
  596. package/generated/submissions/openai/agdf/submission/openai/release-notes.md +9 -1
  597. package/generated/submissions/openai/agdf/submission/openai/reviewer-cases.json +1 -1
  598. package/lib/cli/application.js +31 -43
  599. package/lib/cli/codex-document-command.js +195 -0
  600. package/lib/cli/command-registry.js +82 -148
  601. package/lib/cli/control-maintenance-command.js +8 -37
  602. package/lib/cli/parse-args.js +98 -16
  603. package/lib/cli/planned-command.js +55 -0
  604. package/lib/cli/project-init-command.js +21 -0
  605. package/lib/cli/project-read-command.js +35 -0
  606. package/lib/cli/run-command-aliases.js +116 -0
  607. package/lib/cli/runtime-context.js +1 -59
  608. package/lib/cli/validation-handlers.js +33 -103
  609. package/lib/control-evaluation/git-observation.js +7 -5
  610. package/lib/control-maintenance/startup.js +2 -2
  611. package/lib/host-adapters/codex/plugin.js +48 -1
  612. package/lib/install-setup/contract.js +4 -4
  613. package/lib/install-setup/{control-migration.js → control-compatibility.js} +1 -2
  614. package/lib/install-setup/interaction.js +0 -1
  615. package/lib/install-setup/presentation.js +3 -4
  616. package/lib/install-setup/service.js +5 -18
  617. package/lib/installers/local-marketplace.js +262 -8
  618. package/lib/lifecycle/codex-startup-status.js +29 -0
  619. package/lib/lifecycle/presentation.js +6 -0
  620. package/lib/mcp-decision-protocol.js +40 -0
  621. package/lib/mcp-dispatch-runtime.js +71 -298
  622. package/lib/mcp-lifecycle/adapters/codex-origin-probe.js +28 -4
  623. package/lib/mcp-lifecycle/adapters/copilot.js +13 -7
  624. package/lib/mcp-lifecycle/adapters/opencode.js +97 -8
  625. package/lib/mcp-lifecycle/evidence.js +2 -1
  626. package/lib/mcp-lifecycle/facade-entry.js +3 -24
  627. package/lib/mcp-lifecycle/facade-owner-entry.js +31 -15
  628. package/lib/mcp-lifecycle/facade-runtime.js +29 -0
  629. package/lib/mcp-lifecycle/facade-thread-entry.js +11 -0
  630. package/lib/mcp-lifecycle/owner-client.js +79 -0
  631. package/lib/mcp-lifecycle/package.js +14 -80
  632. package/lib/mcp-lifecycle/plugin-runtime.js +29 -9
  633. package/lib/mcp-lifecycle/profile.js +2 -1
  634. package/lib/mcp-lifecycle/service.js +5 -4
  635. package/lib/mcp-lifecycle/thread-owner.js +164 -0
  636. package/lib/mcp-owner-protocol.js +1 -0
  637. package/lib/mcp-protocol-runtime.js +308 -0
  638. package/lib/mcp-worker-runtime.js +152 -0
  639. package/lib/runtime/control-command-service.js +22 -7
  640. package/lib/runtime/control-context.js +8 -1
  641. package/lib/runtime/validator-application.js +2 -2
  642. package/lib/scaffold/canonical-init.js +2 -691
  643. package/lib/scaffold/plan.js +9 -32
  644. package/lib/scaffold/presentation.js +2 -2
  645. package/lib/scaffold/write.js +6 -1
  646. package/package.json +6 -2
  647. package/runtime/core/lib/control-evaluation/closeout-readiness.js +10 -2
  648. package/runtime/core/lib/control-evaluation/decision-content-placeholder.js +9 -0
  649. package/runtime/core/lib/control-evaluation/decision-content-readiness.js +2 -7
  650. package/runtime/core/lib/control-evaluation/definition-sources.js +3 -2
  651. package/runtime/core/lib/control-evaluation/delivery-map.js +2 -12
  652. package/runtime/core/lib/control-evaluation/doctor.js +162 -172
  653. package/runtime/core/lib/control-evaluation/gate-check.js +10 -9
  654. package/runtime/core/lib/control-evaluation/gate-policy-inputs.js +11 -0
  655. package/runtime/core/lib/control-evaluation/gate-policy-pure.js +446 -0
  656. package/runtime/core/lib/control-evaluation/gate-policy.js +3 -434
  657. package/runtime/core/lib/control-evaluation/next-action.js +2 -0
  658. package/runtime/core/lib/control-evaluation/parent-reconciliation.js +2 -1
  659. package/runtime/core/lib/control-evaluation/qa-follow-up.js +2 -1
  660. package/runtime/core/lib/control-evaluation/required-files.js +9 -7
  661. package/runtime/core/lib/control-evaluation/run-state-policy.js +1 -1
  662. package/runtime/core/lib/control-evaluation/run-state.js +15 -9
  663. package/runtime/core/lib/control-evaluation/run-step-policy.js +2 -1
  664. package/runtime/core/lib/control-evaluation/run-work-summary.js +6 -4
  665. package/runtime/core/lib/control-evaluation/shared-value.js +7 -0
  666. package/runtime/core/lib/control-evaluation/shared.js +5 -254
  667. package/runtime/core/lib/control-evaluation/tp-planning.js +3 -2
  668. package/runtime/core/lib/control-evaluation/ur-readiness.js +7 -2
  669. package/runtime/core/lib/control-evaluation/verified-change.js +11 -9
  670. package/{generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/backlog-vocabulary.js → runtime/core/lib/control-evaluation/work-vocabulary.js} +2 -2
  671. package/runtime/core/lib/control-inspect/artifact-readiness.js +5 -3
  672. package/runtime/core/lib/control-inspect/authoring-inputs.js +110 -0
  673. package/runtime/core/lib/control-inspect/cockpit-archive.js +53 -0
  674. package/runtime/core/lib/control-inspect/cockpit-context.js +2 -1
  675. package/runtime/core/lib/control-inspect/cockpit-contract.js +11 -4
  676. package/runtime/core/lib/control-inspect/cockpit-list.d.ts +10 -6
  677. package/runtime/core/lib/control-inspect/cockpit-list.js +32 -41
  678. package/runtime/core/lib/control-inspect/cockpit-session.js +8 -8
  679. package/runtime/core/lib/control-inspect/cockpit-work.js +33 -0
  680. package/runtime/core/lib/control-inspect/cockpit.js +75 -44
  681. package/runtime/core/lib/control-inspect/contract.js +142 -58
  682. package/runtime/core/lib/control-inspect/decision-session.js +53 -11
  683. package/runtime/core/lib/control-inspect/doctor-observation.js +91 -0
  684. package/runtime/core/lib/control-inspect/project-operation-call.js +5 -0
  685. package/runtime/core/lib/control-inspect/project-state.js +48 -0
  686. package/runtime/core/lib/control-inspect/result.js +61 -0
  687. package/runtime/core/lib/control-inspect/selection.js +9 -3
  688. package/runtime/core/lib/control-inspect/service.js +142 -72
  689. package/runtime/core/lib/control-maintenance/compatibility.js +42 -132
  690. package/runtime/core/lib/control-maintenance/contract.js +5 -5
  691. package/runtime/core/lib/control-maintenance/presentation.js +27 -119
  692. package/runtime/core/lib/control-maintenance/service.js +9 -37
  693. package/runtime/core/lib/control-read/cockpit-pool.js +25 -9
  694. package/runtime/core/lib/control-read/cockpit-worker.js +4 -3
  695. package/runtime/core/lib/control-read/doctor-reader.js +92 -0
  696. package/runtime/core/lib/control-read/doctor-worker.js +11 -0
  697. package/runtime/core/lib/control-read/fs.js +18 -0
  698. package/runtime/core/lib/control-read/snapshot.js +68 -17
  699. package/runtime/core/lib/control-state/aggregate.js +3 -1
  700. package/runtime/core/lib/control-state/approval-command.js +13 -10
  701. package/runtime/core/lib/control-state/approval-operations.js +10 -7
  702. package/runtime/core/lib/control-state/artefact-binding-proof.js +12 -20
  703. package/runtime/core/lib/control-state/artefact-bindings.js +10 -7
  704. package/runtime/core/lib/control-state/canonical-initialization.js +761 -0
  705. package/runtime/core/lib/control-state/control-layout.js +183 -0
  706. package/runtime/core/lib/control-state/decision-action-contract.js +10 -1
  707. package/runtime/core/lib/control-state/decision-action-service.js +24 -3
  708. package/runtime/core/lib/control-state/decision-material-contract.js +2 -1
  709. package/runtime/core/lib/control-state/evidence-bindings.js +7 -7
  710. package/runtime/core/lib/control-state/git-identity.js +86 -0
  711. package/runtime/core/lib/control-state/index.js +0 -1
  712. package/runtime/core/lib/control-state/input-resolution.js +99 -0
  713. package/runtime/core/lib/control-state/planned-entry.js +273 -0
  714. package/runtime/core/lib/control-state/planned-handoff.js +174 -0
  715. package/runtime/core/lib/control-state/planned-inventory.js +90 -0
  716. package/runtime/core/lib/control-state/planned-origin-reader.js +48 -0
  717. package/runtime/core/lib/control-state/planned-origin.js +40 -0
  718. package/runtime/core/lib/control-state/presentation-decision.js +12 -7
  719. package/runtime/core/lib/control-state/presentation-delivery.js +90 -0
  720. package/runtime/core/lib/control-state/preview-render.js +5 -2
  721. package/runtime/core/lib/control-state/preview-review.js +3 -2
  722. package/runtime/core/lib/control-state/preview-snapshot.js +9 -6
  723. package/runtime/core/lib/control-state/recording-formats.js +12 -16
  724. package/runtime/core/lib/control-state/run-artefact-recording.js +54 -66
  725. package/runtime/core/lib/control-state/run-closure.js +343 -0
  726. package/runtime/core/lib/control-state/run-command-contract.js +33 -119
  727. package/runtime/core/lib/control-state/run-command-schema.js +508 -0
  728. package/runtime/core/lib/control-state/run-command-service.js +198 -34
  729. package/runtime/core/lib/control-state/run-create-command.js +60 -0
  730. package/runtime/core/lib/control-state/run-identity.d.ts +14 -0
  731. package/runtime/core/lib/control-state/run-identity.js +40 -0
  732. package/runtime/core/lib/control-state/run-input-resolution.js +72 -0
  733. package/runtime/core/lib/control-state/run-inventory-reader.js +31 -0
  734. package/runtime/core/lib/control-state/run-inventory.js +179 -0
  735. package/runtime/core/lib/control-state/run-material.js +211 -0
  736. package/runtime/core/lib/control-state/run-mutation.js +51 -0
  737. package/runtime/core/lib/control-state/run-operation-identity.js +2 -1
  738. package/runtime/core/lib/control-state/run-operation-proof.js +7 -4
  739. package/runtime/core/lib/control-state/run-operation-status.js +20 -4
  740. package/runtime/core/lib/control-state/run-operations.js +70 -13
  741. package/runtime/core/lib/control-state/run-owned-outputs.js +21 -9
  742. package/runtime/core/lib/control-state/run-presentation-envelope.js +25 -33
  743. package/runtime/core/lib/control-state/run-presentation-render.js +9 -8
  744. package/runtime/core/lib/control-state/run-presentation.js +45 -21
  745. package/runtime/core/lib/control-state/run-recording.js +10 -179
  746. package/runtime/core/lib/control-state/run-revision-boundary.js +7 -21
  747. package/runtime/core/lib/control-state/run-revision-history.js +23 -16
  748. package/runtime/core/lib/control-state/run-revision.js +84 -161
  749. package/runtime/core/lib/control-state/run-seal-compute.js +19 -44
  750. package/runtime/core/lib/control-state/run-seal.js +6 -1
  751. package/runtime/core/lib/control-state/run-source-revisions.js +19 -18
  752. package/runtime/core/lib/control-state/run-state-document.js +110 -42
  753. package/runtime/core/lib/control-state/run-state-edits.js +13 -5
  754. package/runtime/core/lib/control-state/run-state-parser.js +14 -6
  755. package/runtime/core/lib/control-state/run-state-reader.js +27 -18
  756. package/runtime/core/lib/control-state/run-state-repository.js +112 -48
  757. package/runtime/core/lib/control-state/run-state-resolver.js +12 -15
  758. package/runtime/core/lib/control-state/run-state-writer.js +21 -377
  759. package/runtime/core/lib/control-state/run-step-pending.js +2 -1
  760. package/runtime/core/lib/control-state/run-step-transaction.js +125 -114
  761. package/runtime/core/lib/control-state/run-steps.js +136 -248
  762. package/runtime/core/lib/control-state/run-store-inspection.js +14 -2
  763. package/runtime/core/lib/control-state/run-verified-change.js +81 -0
  764. package/runtime/core/lib/control-state/run-work-summary-shape.d.ts +1 -0
  765. package/{generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.js → runtime/core/lib/control-state/run-work-summary-shape.js} +7 -19
  766. package/runtime/core/lib/delivery-continuation/service.js +5 -66
  767. package/runtime/core/lib/delivery-path-search/persistence.js +26 -8
  768. package/runtime/core/lib/delivery-path-search/state-adapter.js +1 -1
  769. package/runtime/core/lib/index.js +14 -6
  770. package/runtime/core/lib/interaction-catalog.js +3 -3
  771. package/runtime/core/lib/interaction-presentation.js +30 -12
  772. package/runtime/core/lib/mcp-input-hints.js +46 -0
  773. package/runtime/core/lib/mcp-input-resolution.js +98 -0
  774. package/runtime/core/lib/mcp-input-schema.js +15 -0
  775. package/runtime/core/lib/mcp-resource-contract.js +1 -1
  776. package/runtime/core/lib/mcp-tool-errors.js +31 -15
  777. package/runtime/core/lib/owned-file-lock.js +266 -0
  778. package/runtime/core/lib/owner-placement.js +50 -0
  779. package/runtime/core/lib/resources/canonical-init-plan.js +34 -0
  780. package/runtime/core/lib/resources/configuration.js +92 -0
  781. package/runtime/core/lib/resources/context.js +7 -11
  782. package/runtime/core/lib/resources/language-preference.js +59 -0
  783. package/runtime/core/lib/runtime/mcp-owner-protocol.js +102 -0
  784. package/runtime/core/lib/runtime/plugin-provenance.js +173 -18
  785. package/runtime/core/lib/skill-dispatch/compact-continuation.js +3 -3
  786. package/runtime/core/lib/skill-dispatch/contract.js +28 -9
  787. package/runtime/core/lib/skill-dispatch/delivery-intake.js +11 -5
  788. package/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +6 -10
  789. package/runtime/core/lib/skill-dispatch/mcp-continuation.js +64 -0
  790. package/runtime/core/lib/skill-dispatch/prd-definition.js +14 -5
  791. package/runtime/core/lib/skill-dispatch/sd-definition.js +2 -1
  792. package/runtime/core/lib/skill-dispatch/service.js +49 -14
  793. package/runtime/core/lib/skill-dispatch/tp-definition.js +2 -1
  794. package/generated/.agdf/control/templates/AGDF_RUN.md +0 -139
  795. package/generated/.agdf/control/templates/MASTER_BACKLOG.md +0 -39
  796. package/generated/plugins/agdf/control/templates/AGDF_RUN.md +0 -139
  797. package/generated/plugins/agdf/control/templates/MASTER_BACKLOG.md +0 -39
  798. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/interaction.js +0 -28
  799. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/repair.js +0 -4
  800. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/service.js +0 -3
  801. package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-recovery.js +0 -5
  802. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-backlog.js +0 -135
  803. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/interaction.js +0 -57
  804. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/migration.js +0 -85
  805. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/repair.js +0 -226
  806. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.d.ts +0 -4
  807. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary.js +0 -67
  808. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-migration.js +0 -69
  809. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-projection-reader.js +0 -38
  810. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog-writer.js +0 -80
  811. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog.js +0 -90
  812. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recovery.js +0 -296
  813. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-relationship-correction.js +0 -74
  814. package/generated/plugins/copilot/agdf/control/templates/AGDF_RUN.md +0 -139
  815. package/generated/plugins/copilot/agdf/control/templates/MASTER_BACKLOG.md +0 -39
  816. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/interaction.js +0 -28
  817. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/repair.js +0 -4
  818. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/service.js +0 -3
  819. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-state/run-recovery.js +0 -5
  820. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/interaction.js +0 -57
  821. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/migration.js +0 -85
  822. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/repair.js +0 -226
  823. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.d.ts +0 -4
  824. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary.js +0 -67
  825. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-migration.js +0 -69
  826. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-projection-reader.js +0 -38
  827. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog-writer.js +0 -80
  828. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog.js +0 -90
  829. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recovery.js +0 -296
  830. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-relationship-correction.js +0 -74
  831. package/lib/control-maintenance/interaction.js +0 -28
  832. package/lib/control-maintenance/repair.js +0 -4
  833. package/lib/control-maintenance/service.js +0 -3
  834. package/lib/control-state/run-recovery.js +0 -5
  835. package/lib/install-setup/control-repair.js +0 -1
  836. package/runtime/core/lib/control-inspect/cockpit-backlog.js +0 -135
  837. package/runtime/core/lib/control-maintenance/interaction.js +0 -57
  838. package/runtime/core/lib/control-maintenance/migration.js +0 -85
  839. package/runtime/core/lib/control-maintenance/repair.js +0 -226
  840. package/runtime/core/lib/control-state/backlog-summary-shape.d.ts +0 -4
  841. package/runtime/core/lib/control-state/backlog-summary.js +0 -67
  842. package/runtime/core/lib/control-state/legacy-migration.js +0 -69
  843. package/runtime/core/lib/control-state/legacy-projection-reader.js +0 -38
  844. package/runtime/core/lib/control-state/run-backlog-writer.js +0 -80
  845. package/runtime/core/lib/control-state/run-backlog.js +0 -90
  846. package/runtime/core/lib/control-state/run-recovery.js +0 -296
  847. package/runtime/core/lib/control-state/run-relationship-correction.js +0 -74
@@ -1,7 +1,7 @@
1
+ import { projectMcpInputSchema } from '../mcp-input-schema.js';
1
2
  import { isAbsolute } from "node:path";
2
3
  import { RUN_ID_PATTERN, REVISION_ID_PATTERN } from "../control-state/run-identity.js";
3
- import { ARTIFACT_READINESS_GATES } from "./artifact-readiness.js";
4
- import { RUN_COMMAND_GROUPS } from '../control-state/run-command-contract.js';
4
+ import { RUN_COMMAND_GROUPS, PLANNING_COMMAND_KINDS, PLANNING_SCOPE_SCHEMA, schemaDiagnostics } from '../control-state/run-command-schema.js';
5
5
  import { APPROVAL_GATES } from '../control-state/run-identity.js';
6
6
  import {
7
7
  PRESENTATION_LANGUAGE_TAG_PATTERN_SOURCE,
@@ -10,12 +10,12 @@ import {
10
10
  } from "../interaction-presentation.js";
11
11
  import { normalizeTaskTargetSource, TASK_TARGET_SOURCES } from "../task-target-resolution.js";
12
12
  import { SKILL_DISPATCH_MAX_OUTPUT_BYTES, SkillDispatchInputError, emptySkillDispatchTiming } from "../skill-dispatch/contract.js";
13
- import { ALL_ACTIVE_OPERATIONS, VARIANT_OPERATION, MODULE_OPERATION, CONTROL_INSPECT_OPERATIONS, GATE_CHECK_VARIANTS, ReadSelectionError, validateReadSelection } from "./selection.js";
13
+ import { ARTIFACT_READINESS_GATES, ALL_ACTIVE_OPERATIONS, VARIANT_OPERATION, MODULE_OPERATION, CONTROL_INSPECT_OPERATIONS, GATE_CHECK_VARIANTS, ReadSelectionError, validateReadSelection } from "./selection.js";
14
14
 
15
15
  export const CONTROL_INSPECT_SCHEMA_VERSION = "1";
16
16
  export const CONTROL_INSPECT_CONTRACT_VERSION = 1;
17
- // Every byte of this definition is loaded into every session on every host (SDD-005).
18
- export const CONTROL_INSPECT_MAX_DEFINITION_BYTES = 5000;
17
+ // Shared discovery budget across hosts (SDD-005).
18
+ export const CONTROL_INSPECT_MAX_DEFINITION_BYTES = 6144;
19
19
  export const OPERATION_CONTRACT_MODULES = Object.freeze(Object.entries(RUN_COMMAND_GROUPS)
20
20
  .flatMap(([group, kinds]) => kinds.map(kind => `${group}/${kind}`)));
21
21
 
@@ -25,55 +25,83 @@ function deepFreeze(value) {
25
25
  return Object.freeze(value);
26
26
  }
27
27
 
28
- // One field model supplies discovery, applicability guards and on-demand help.
28
+ // Shared discovery, selector guards and on-demand help.
29
29
  export const PRESENTATION_OPERATIONS = Object.freeze(['presentation-document', 'presentation-preview']);
30
- export const BOUND_INSPECT_OPERATIONS = Object.freeze(['artifact-readiness', 'operation-contract', 'operation-status', 'native-qualification', ...PRESENTATION_OPERATIONS, 'runtime-generations']);
30
+ export const BOUND_INSPECT_OPERATIONS = Object.freeze(['artifact-readiness', 'authoring-inputs', 'operation-contract', 'operation-status', 'native-qualification', ...PRESENTATION_OPERATIONS, 'runtime-generations']);
31
31
  export const PRESENTATION_CATALOG_MODULE = 'agdf_prepare/presentation.prepare';
32
32
  const uuidSchema = { type: 'string', pattern: REVISION_ID_PATTERN.source };
33
33
  const cursorSchema = { type: 'string', maxLength: 80, pattern: '^[0-9a-f]{64}:(?:0|[1-9][0-9]{0,6})$' };
34
34
  const fieldModel = {
35
- operation: { help: 'Read-only operation; requirements below. Reads never prepare or approve a gate.', schema: { enum: [...CONTROL_INSPECT_OPERATIONS] }, description: 'Read action.' },
36
- presentation_language: { help: 'Required BCP47 tag; valid unsupported languages use the complete English pack.', schema: { type: 'string', maxLength: 64, pattern: PRESENTATION_LANGUAGE_TAG_PATTERN_SOURCE }, description: 'Reply BCP47 tag.' },
37
- working_directory: { help: 'Absolute execution context; it does not select a target.', schema: { type: 'string', minLength: 1, maxLength: 4096 }, description: 'Absolute context; not target authority.' },
38
- target_source: { help: 'explicit_target: directly specified target; continued_target: confirmed continuation; current_repository: unambiguous current repository. Use actual provenance.', schema: { enum: [...TASK_TARGET_SOURCES] }, description: 'Paired target provenance.' },
39
- primary_target: { help: 'Confirmed absolute project root, paired with target_source. working_directory never selects the target.', schema: { type: 'string', minLength: 1, maxLength: 4096 }, description: 'Confirmed absolute root.' },
40
- run_id: { help: 'Use the named or unambiguously confirmed run; never select by recency.', schema: { type: 'string', pattern: RUN_ID_PATTERN.source }, description: 'Confirmed run.' },
41
- gate: { help: 'Use the requested document gate; it is an optional catalog filter, not a selection heuristic. artifact-readiness accepts UR, PRD, SD or TP drafts only.', schema: { enum: [...APPROVAL_GATES] }, description: 'Draft/read gate; catalog filter.', operations: ['artifact-readiness', 'operation-contract', ...PRESENTATION_OPERATIONS] },
42
- expected_revision_id: { help: 'For bound current-state inspections use the current gate-check revision. For document/preview reads preserve the selected prepared record original revision from catalog read_arguments or the original conversation binding.', schema: { $ref: '#/$defs/i' }, description: 'gate-check revision; original for reads.', operations: BOUND_INSPECT_OPERATIONS },
43
- presentation_id: { help: 'Use the exact prepared ID from a validated catalog candidate or the existing conversation binding. Never guess a UUID, choose by timestamp, or prepare another presentation to pass a read.', schema: { $ref: '#/$defs/i' }, description: 'ID from catalog/conversation.', operations: PRESENTATION_OPERATIONS },
44
- target_id: { help: 'Copy binding.target_id from operation-contract or the selected catalog read_arguments; this digest identifies a target and grants no authority.', schema: { type: 'string', pattern: '^sha256:[0-9a-f]{64}$' }, description: 'Target hash: operation-contract.', operations: PRESENTATION_OPERATIONS },
45
- cursor: { help: 'Omit on the first page, then copy next_cursor unchanged. Catalog cursors are accepted only on operation-contract module=agdf_prepare/presentation.prepare. Never exchange document, preview or catalog cursors.', schema: cursorSchema, description: 'Next cursor; omit initially.', operations: [...PRESENTATION_OPERATIONS, 'operation-contract'] },
46
- variant: { help: 'gate-check only: status-card or approval-envelope. Neither variant records an approval.', schema: { enum: [...GATE_CHECK_VARIANTS] }, description: 'gate-check view.', operations: [VARIANT_OPERATION] },
47
- module: { help: 'contract uses an advertised runtime module; operation-contract uses group/kind; operation-status uses the original operation_id from the saved command receipt, never a newly generated UUID.', schema: { type: 'string', minLength: 1, maxLength: 64 }, description: 'Contract, group/kind or receipt UUID.', operations: [MODULE_OPERATION, 'operation-contract', 'operation-status'] },
48
- all_active: { help: 'Only doctor and delivery-map accept true. False retains the selected-run read behavior.', schema: { type: 'boolean' }, description: 'All runs: doctor/delivery-map.' },
35
+ operation: { help: 'Read only; never prepare or approve.', schema: { enum: [...CONTROL_INSPECT_OPERATIONS] }, description: 'Read action.' },
36
+ presentation_language: { help: 'Optional MCP override of configured chat language; valid unsupported tags use complete English.', schema: { type: 'string', maxLength: 64, pattern: PRESENTATION_LANGUAGE_TAG_PATTERN_SOURCE }, description: 'Reply BCP47 tag.' },
37
+ working_directory: { help: 'Absolute context; never selects a target.', schema: { type: 'string', minLength: 1, maxLength: 4096 }, description: 'Context; not target authority.' },
38
+ target_source: { help: 'Actual provenance: explicit_target = specified; continued_target = confirmed; current_repository = unambiguous.', schema: { enum: [...TASK_TARGET_SOURCES] }, description: 'Requires primary_target.' },
39
+ primary_target: { help: 'Confirmed absolute root paired with target_source; cwd is not target authority.', schema: { type: 'string', minLength: 1, maxLength: 4096 }, description: 'Pair: target_source.' },
40
+ run_id: { help: 'Named or confirmed Run; never select by recency.', schema: { type: 'string', pattern: RUN_ID_PATTERN.source }, description: 'Confirmed run.' },
41
+ planning: { help: 'Selected pre-Run plan and canonical source digest; null digest is permitted for initial capture/inspection. Never combine with Run/revision.', schema: PLANNING_SCOPE_SCHEMA, description: 'Pre-Run source scope.', operations: ['authoring-inputs', 'planned-entry', 'operation-status'] },
42
+ gate: { help: 'Requested document gate or catalog filter, never a selection heuristic. artifact-readiness: UR/PRD/SD/TP only.', schema: { enum: [...APPROVAL_GATES] }, description: 'Document gate.', operations: ['artifact-readiness', 'operation-contract', ...PRESENTATION_OPERATIONS] },
43
+ expected_revision_id: { help: 'Bound inspections use current gate-check revision. Document/preview reads preserve the original selected catalog or conversation revision.', schema: { $ref: '#/$defs/i' }, description: 'gate-check revision; original for reads.', operations: BOUND_INSPECT_OPERATIONS },
44
+ presentation_id: { help: 'Exact prepared ID from validated catalog or conversation. Never guess, select by timestamp, or prepare a replacement to read.', schema: { $ref: '#/$defs/i' }, description: 'ID from catalog/conversation.', operations: PRESENTATION_OPERATIONS },
45
+ target_id: { help: 'Optional confirmed target hash on target-bound reads; when supplied it must match. Required for presentation reads; never grants authority.', schema: { type: 'string', pattern: '^sha256:[0-9a-f]{64}$' }, description: 'Optional verified target hash.' },
46
+ cursor: { help: 'Omit initially; copy next_cursor. doctor requires all_active; catalog requires its declared module. Never exchange cursor types.', schema: cursorSchema, description: 'Copy next_cursor.', operations: [...PRESENTATION_OPERATIONS, 'operation-contract', 'authoring-inputs', 'doctor'] },
47
+ variant: { help: 'gate-check view only; never records approval.', schema: { enum: [...GATE_CHECK_VARIANTS] }, description: 'gate-check view.', operations: [VARIANT_OPERATION] },
48
+ module: { help: 'contract: advertised module; operation-contract: group/kind; operation-status: original operation UUID from saved receipt, never a new UUID. Setup uses project.initialize/ORIGINAL_UUID without Run/revision; Run operations require Run/revision.', schema: { type: 'string', minLength: 1, maxLength: 64 }, description: 'Contract, group/kind or receipt UUID.', operations: [MODULE_OPERATION, 'operation-contract', 'operation-status'] },
49
+ all_active: { help: 'true: doctor/delivery-map only; false: selected Run.', schema: { type: 'boolean' }, description: 'doctor/delivery-map only.' },
49
50
  };
51
+ const selectorKeys = { gate: 'gate', expected_revision_id: 'expectedRevisionId', presentation_id: 'presentationId', target_id: 'targetId', cursor: 'cursor', variant: 'variant', module: 'contractModule', planning: 'planning' };
50
52
  const moduleOperations = [MODULE_OPERATION, 'operation-contract', 'operation-status'];
51
53
  const inputSchema = {
52
54
  type: 'object', additionalProperties: false,
53
55
  required: ['operation', 'presentation_language', 'working_directory'],
54
- $defs: { i: uuidSchema, b: { not: { enum: CONTROL_INSPECT_OPERATIONS.filter(op => !BOUND_INSPECT_OPERATIONS.includes(op)) } }, d: { enum: PRESENTATION_OPERATIONS }, m: { enum: moduleOperations } },
56
+ $defs: { i: uuidSchema, b: { not: { enum: CONTROL_INSPECT_OPERATIONS.filter(op => !BOUND_INSPECT_OPERATIONS.includes(op)) } }, d: { enum: PRESENTATION_OPERATIONS }, m: { enum: ['operation-contract', 'operation-status'] } },
55
57
  properties: Object.fromEntries(Object.entries(fieldModel).map(([name, field]) => [name, { ...field.schema, description: field.description }])),
56
- dependentRequired: { target_source: ['primary_target'], primary_target: ['target_source'] },
58
+ dependentRequired: { target_source: ['primary_target'], primary_target: ['target_source'], target_id: ['primary_target', 'target_source'] },
57
59
  dependentSchemas: Object.fromEntries(Object.entries(fieldModel).filter(([, f]) => f.operations).map(([name, field]) => [name,
58
- name === 'cursor' ? { anyOf: [ { properties: { operation: { $ref: '#/$defs/d' } } },
60
+ name === 'cursor' ? { anyOf: [ { properties: { operation: { enum: [...PRESENTATION_OPERATIONS, 'authoring-inputs'] } } },
61
+ { properties: { operation: { const: 'doctor' }, all_active: { const: true } }, required: ['all_active'] },
59
62
  { properties: { operation: { const: 'operation-contract' }, module: { const: PRESENTATION_CATALOG_MODULE } } } ] }
60
63
  : { properties: { operation: field.operations === BOUND_INSPECT_OPERATIONS ? { $ref: '#/$defs/b' }
61
- : field.operations === PRESENTATION_OPERATIONS ? { $ref: '#/$defs/d' } : name === 'module' ? { $ref: '#/$defs/m' } : { enum: field.operations } } },
64
+ : field.operations === PRESENTATION_OPERATIONS ? { $ref: '#/$defs/d' } : name === 'module' ? { enum: moduleOperations } : { enum: field.operations } } },
62
65
  ])),
63
66
  allOf: [
67
+ { if: { properties: { operation: { enum: ['project-state', 'planned-inventory', 'planned-entry'] } } }, then: { required: ['target_source', 'primary_target'], not: { anyOf: [{ required: ['run_id'] }, { required: ['expected_revision_id'] }] } } },
68
+ { if: { properties: { operation: { const: 'planned-entry' } } }, then: { required: ['planning'] } },
69
+ { if: { required: ['planning'] }, then: { required: ['target_source', 'primary_target'], not: { anyOf: [{ required: ['run_id'] }, { required: ['expected_revision_id'] }] } } },
70
+ { not: { properties: { all_active: { const: true } }, required: ['all_active', 'run_id'] } },
64
71
  { anyOf: [{ properties: { all_active: { const: false } } }, { properties: { operation: { enum: [...ALL_ACTIVE_OPERATIONS] } } }] },
65
72
  { if: { properties: { operation: { $ref: '#/$defs/m' } } }, then: { required: ['module'] } },
66
- { if: { properties: { operation: { $ref: '#/$defs/b' } } }, then: { required: ['run_id', 'expected_revision_id', 'target_source'] } },
73
+ { if: { properties: { operation: { $ref: '#/$defs/b' } } }, then: { required: ['target_source'], anyOf: [
74
+ { required: ['run_id', 'expected_revision_id'] },
75
+ { not: { anyOf: [{ required: ['run_id'] }, { required: ['expected_revision_id'] }] }, oneOf: [
76
+ { properties: { operation: { const: 'operation-status' } } },
77
+ { properties: { operation: { const: 'operation-contract' }, module: { anyOf: [{ enum: ['agdf_run/run.create', 'agdf_project/project.initialize'] }, { pattern: '/(?:planned_|run\\.create_from_planned)' }] } }, required: ['module'] },
78
+ { properties: { operation: { const: 'authoring-inputs' } }, required: ['planning'] },
79
+ ] },
80
+ ] } },
67
81
  { if: { properties: { operation: { const: 'artifact-readiness' } } }, then: { required: ['gate'], properties: { gate: { enum: [...ARTIFACT_READINESS_GATES] } } } },
68
82
  { if: { properties: { operation: { $ref: '#/$defs/d' } } }, then: { required: ['gate', 'presentation_id', 'target_id'] } },
69
83
  ],
70
84
  };
71
85
 
86
+ inputSchema.dependentSchemas.operation = { allOf: inputSchema.allOf };
87
+ delete inputSchema.allOf;
88
+ const conciseHelp = { target_source: 'Pair primary_target; explicit=named; continued=confirmed; current=unambiguous repo.', primary_target: 'Confirmed root; pair target_source.',
89
+ module: 'contract:index; operation-contract:group/kind; status:UUID.',
90
+ run_id: 'Not for inventory/project/planned.',
91
+ expected_revision_id: 'Bound reads only; not gate-check.',
92
+ planning: 'Planning reads only.',
93
+ target_id: 'Required for docs; gate-check.',
94
+ gate: 'Not for gate-check.' };
95
+ for (const [key, field] of Object.entries(inputSchema.properties)) {
96
+ delete field.description;
97
+ if (conciseHelp[key]) field.description = conciseHelp[key];
98
+ }
99
+
72
100
  const inspectContract = {
73
101
  name: "agdf_inspect",
74
- description: "Read-only: gate-check -> operation-contract module=agdf_prepare/presentation.prepare -> catalog read_arguments -> presentation-document/next_cursor.",
102
+ description: 'Read-only. Ex:{"operation":"operation-contract","module":"agdf_run/run.create","working_directory":"/r","target_source":"explicit_target","primary_target":"/r"}. navigation.next_calls sequentially; read all pages; never dispatch. Setup status: project.initialize/UUID, no Run/revision. Run status: original UUID+run_id+expected_revision_id.',
75
103
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
76
- inputSchema,
104
+ inputSchema: projectMcpInputSchema(inputSchema),
77
105
  outputSchema: {
78
106
  type: 'object', required: ['outcome', 'terminal', 'authorizes', 'operation', 'report', 'presentation', 'host_action', 'target', 'recovery'],
79
107
  properties: {
@@ -103,15 +131,12 @@ const inspectContract = {
103
131
  },
104
132
  };
105
133
 
106
- // Detailed result semantics remain owned here. The discovered tool advertises the
107
- // bounded envelope; repeating every forwarding branch in each model session is
108
- // unnecessary. Both declarations derive from this same contract, without a
109
- // second evaluator or a larger discovery budget.
134
+ // Core retains full result validation; discovery advertises the bounded envelope.
110
135
  export const CONTROL_INSPECT_OUTPUT_SCHEMA = deepFreeze(inspectContract.outputSchema);
111
136
  export const CONTROL_INSPECT_FUNCTION_DEFINITION = deepFreeze({
112
137
  ...inspectContract,
113
138
  outputSchema: { type: 'object', required: inspectContract.outputSchema.required,
114
- properties: { ...Object.fromEntries(Object.entries(inspectContract.outputSchema.properties).filter(([key]) => key !== 'report').map(([key, value]) => [key, key === 'recovery' ? { required: value.required, properties: value.properties } : value])),
139
+ properties: { authorizes: { const: false },
115
140
  outcome: { enum: ['inspect_result', 'target_unresolved', 'invalid_input', 'evaluator_error'] },
116
141
  },
117
142
  if: { properties: { outcome: { const: 'inspect_result' } } },
@@ -122,23 +147,70 @@ export const CONTROL_INSPECT_FUNCTION_DEFINITION = deepFreeze({
122
147
 
123
148
  export function inspectContractHelp() {
124
149
  const base = { presentation_language: 'de', working_directory: '/workspace/project', target_source: 'explicit_target', primary_target: '/workspace/project', run_id: 'demo-run-01' };
150
+ const { run_id: _exampleRun, ...projectBase } = base;
125
151
  const revision = '00000000-0000-4000-8000-000000000001';
126
152
  return deepFreeze({ schema_version: '1', authorizes: false,
153
+ input_completion: 'MCP inherits matching configured language. Current native adapters require explicit working_directory; private trustworthy task context alone may supply it. Bindings remain explicit.',
127
154
  parameters: Object.fromEntries(Object.entries(fieldModel).map(([key, field]) => [key, { description: field.help ?? field.description, operations: field.operations ?? [...CONTROL_INSPECT_OPERATIONS] }])),
128
155
  operations: Object.fromEntries(CONTROL_INSPECT_OPERATIONS.map(operation => [operation, {
129
- required: [...inputSchema.required, ...(BOUND_INSPECT_OPERATIONS.includes(operation) ? ['run_id', 'expected_revision_id', 'target_source', 'primary_target'] : []),
130
- ...(['contract', 'operation-contract', 'operation-status'].includes(operation) ? ['module'] : []),
156
+ required: [...CONTROL_INSPECT_FUNCTION_DEFINITION.inputSchema.required, ...(BOUND_INSPECT_OPERATIONS.includes(operation) ? ['run_id', 'expected_revision_id', 'target_source', 'primary_target'] : []),
157
+ ...(['operation-contract', 'operation-status'].includes(operation) ? ['module'] : []),
131
158
  ...(operation === 'artifact-readiness' ? ['gate'] : PRESENTATION_OPERATIONS.includes(operation) ? ['gate', 'presentation_id', 'target_id'] : [])],
159
+ omit: [...Object.entries(fieldModel).filter(([, field]) => field.operations && !field.operations.includes(operation)).map(([name]) => name),
160
+ ...(['inventory', 'planned-inventory', 'planned-entry', 'project-state'].includes(operation) ? ['run_id'] : [])],
161
+ ...(['operation-contract', 'operation-status'].includes(operation) ? { unbound: {
162
+ module: operation === 'operation-contract' ? 'agdf_run/run.create' : 'project.initialize/original-UUID or original run.create UUID',
163
+ required: [...CONTROL_INSPECT_FUNCTION_DEFINITION.inputSchema.required, 'target_source', 'primary_target', 'module'],
164
+ omit: ['run_id', 'expected_revision_id'],
165
+ } } : {}),
132
166
  }])),
133
167
  examples_are_illustrative: true,
134
168
  examples: [ { ...base, operation: 'gate-check' },
135
169
  { ...base, operation: 'operation-contract', module: PRESENTATION_CATALOG_MODULE, expected_revision_id: revision, gate: 'UR' },
136
- { ...base, operation: 'presentation-document', expected_revision_id: revision, gate: 'UR', presentation_id: '00000000-0000-4000-8000-000000000002', target_id: `sha256:${'0'.repeat(64)}` } ],
137
- provenance: 'Keep exact conversation bindings. Otherwise use catalog read_arguments only after unique complete discovery or explicit selection. Document revision is original, not current. Prepared is not human-viewed or approved. Other modules reject catalog cursors.',
170
+ { ...base, operation: 'presentation-document', expected_revision_id: revision, gate: 'UR', presentation_id: '00000000-0000-4000-8000-000000000002', target_id: `sha256:${'0'.repeat(64)}` },
171
+ { ...projectBase, operation: 'project-state' },
172
+ { ...projectBase, operation: 'operation-status', module: `project.initialize/${revision}` } ],
173
+ provenance: 'Preserve exact conversation bindings; otherwise require unique complete catalog discovery or explicit selection. Reads keep original revisions. Prepared proves neither viewing nor approval. Catalog cursors require the catalog module.',
138
174
  catalog_limits: { page_candidates: 16, record_files: 256, record_bytes: 1048576, directory_entries: 1024 },
139
175
  });
140
176
  }
141
177
 
178
+ export function inspectInputValidationHint(input) {
179
+ if (!input || typeof input !== 'object' || !CONTROL_INSPECT_OPERATIONS.includes(input.operation)) return '';
180
+ const operation = input.operation, messages = [];
181
+ if (operation === 'operation-contract' && typeof input.module === 'string' && input.module.length <= 64
182
+ && !OPERATION_CONTRACT_MODULES.includes(input.module)) {
183
+ const kind = input.module.split('/').at(-1);
184
+ const matches = OPERATION_CONTRACT_MODULES.filter(module => module.split('/').at(-1) === kind);
185
+ messages.push(matches.length === 1 ? `Use module ${matches[0]}; this is the registered owner of ${kind}.`
186
+ : 'Read contract without module for the registered operation_modules; do not guess a group/kind.');
187
+ }
188
+ for (const [name, field] of Object.entries(fieldModel)) {
189
+ if (Object.hasOwn(input, name) && field.operations && !field.operations.includes(operation))
190
+ messages.push(`Remove ${name} for ${operation}.`);
191
+ }
192
+ if (input.run_id && ['inventory', 'project-state', 'planned-inventory', 'planned-entry'].includes(operation))
193
+ messages.push(`Remove run_id for ${operation}; it reads the target scope.`);
194
+ // Diagnose the selected operation, rather than making the model interpret
195
+ // errors from every alternative of the discovery schema's oneOf branches.
196
+ const unboundContract = operation === 'operation-contract' &&
197
+ (['agdf_run/run.create', 'agdf_project/project.initialize'].includes(input.module)
198
+ || OPERATION_CONTRACT_MODULES.includes(input.module) && /\/(?:planned_|run\.create_from_planned)/u.test(input.module));
199
+ const bound = BOUND_INSPECT_OPERATIONS.includes(operation) && !unboundContract
200
+ && !(operation === 'operation-status' && !input.run_id && !input.expected_revision_id)
201
+ && !(operation === 'authoring-inputs' && input.planning);
202
+ const required = [...(['operation-contract', 'operation-status'].includes(operation) ? ['module'] : []),
203
+ ...(bound ? ['run_id', 'expected_revision_id'] : []),
204
+ ...(BOUND_INSPECT_OPERATIONS.includes(operation) || ['project-state', 'planned-inventory', 'planned-entry'].includes(operation)
205
+ ? ['primary_target', 'target_source'] : []),
206
+ ...(PRESENTATION_OPERATIONS.includes(operation) ? ['gate', 'presentation_id', 'target_id'] : [])];
207
+ for (const key of required) if (!Object.hasOwn(input, key)) messages.push(`Supply ${key} for ${operation}.`);
208
+ if (PRESENTATION_OPERATIONS.includes(operation)) messages.push('Copy the exact agdf_inspect arguments from presentation.prepare next_calls or the presentation catalog.');
209
+ if (bound && (!input.run_id || !input.expected_revision_id))
210
+ messages.push('Read gate-check with the confirmed target and run_id to inspect the current binding; never silently replace a requested revision.');
211
+ return messages.join(' ').slice(0, 768);
212
+ }
213
+
142
214
  export function controlInspectDefinitionBytes(definition = CONTROL_INSPECT_FUNCTION_DEFINITION) {
143
215
  return Buffer.byteLength(JSON.stringify(definition), "utf8");
144
216
  }
@@ -172,13 +244,7 @@ export function parseControlInspectFunctionArguments(argumentsValue, trustedCont
172
244
  targetSource: argumentsValue.target_source,
173
245
  primaryTarget: argumentsValue.primary_target,
174
246
  runId: argumentsValue.run_id,
175
- ...(argumentsValue.gate !== undefined ? { gate: argumentsValue.gate } : {}),
176
- ...(argumentsValue.expected_revision_id !== undefined ? { expectedRevisionId: argumentsValue.expected_revision_id } : {}),
177
- ...(argumentsValue.presentation_id !== undefined ? { presentationId: argumentsValue.presentation_id } : {}),
178
- ...(argumentsValue.target_id !== undefined ? { targetId: argumentsValue.target_id } : {}),
179
- ...(argumentsValue.cursor !== undefined ? { cursor: argumentsValue.cursor } : {}),
180
- ...(argumentsValue.variant !== undefined ? { variant: argumentsValue.variant } : {}),
181
- ...(argumentsValue.module !== undefined ? { contractModule: argumentsValue.module } : {}),
247
+ ...Object.fromEntries(Object.entries(selectorKeys).filter(([field]) => argumentsValue[field] !== undefined).map(([field, key]) => [key, argumentsValue[field]])),
182
248
  ...(argumentsValue.all_active !== undefined ? { allActive: argumentsValue.all_active } : {}),
183
249
  surface: trustedContext.surface,
184
250
  expectedVersion: trustedContext.expectedVersion,
@@ -186,8 +252,7 @@ export function parseControlInspectFunctionArguments(argumentsValue, trustedCont
186
252
  });
187
253
  }
188
254
 
189
- // Normalizes a raw inspect input with the dispatcher's language and target rules and the shared
190
- // read-selection rules. Throws SkillDispatchInputError or ReadSelectionError; both carry `field`.
255
+ // Shared language, target and read-selection rules; errors carry the invalid field.
191
256
  export function normalizeControlInspectInput(input) {
192
257
  const operation = requireText(input.operation, "operation", 64);
193
258
  if (!CONTROL_INSPECT_OPERATIONS.includes(operation)) throw new SkillDispatchInputError("operation", `Unsupported inspect operation: ${operation}`);
@@ -207,19 +272,37 @@ export function normalizeControlInspectInput(input) {
207
272
  if (Boolean(rawTargetSource) !== Boolean(primaryTarget)) throw new SkillDispatchInputError("primary_target", "target_source and primary_target must be supplied together");
208
273
  if (primaryTarget && (!isAbsolute(primaryTarget) || primaryTarget.length > 4096)) throw new SkillDispatchInputError("primary_target", "primary_target must be an absolute bounded path");
209
274
  const targetSource = rawTargetSource ? normalizeTaskTargetSource(rawTargetSource, { allowEmpty: false }) : null;
275
+ if (input.targetId !== undefined && (!primaryTarget || !/^sha256:[0-9a-f]{64}$/u.test(input.targetId)))
276
+ throw new SkillDispatchInputError('target_id', 'A valid target hash requires a confirmed target');
210
277
  const runId = input.runId || null;
278
+ const planning = input.planning;
279
+ if (planning !== undefined && (schemaDiagnostics(planning, PLANNING_SCOPE_SCHEMA).length || runId || input.expectedRevisionId !== undefined || input.gate !== undefined
280
+ || !primaryTarget || !fieldModel.planning.operations.includes(operation))) throw new SkillDispatchInputError('planning', 'Planning requires one exact pre-Run source scope and confirmed target; no Run/revision/gate');
281
+ if (operation === 'operation-status' && Boolean(planning) !== /^(?:planned_ur\.|run\.create_from_planned\/)/u.test(input.contractModule ?? ''))
282
+ throw new SkillDispatchInputError('planning', 'Pre-Run planning status needs its original operation kind/UUID and planning scope');
211
283
  if (runId && !RUN_ID_PATTERN.test(runId)) throw new SkillDispatchInputError("run_id", "run_id is invalid");
212
- if (operation === "artifact-readiness") {
284
+ if (runId && input.allActive === true) throw new SkillDispatchInputError('all_active', 'All-active and selected Run scopes cannot be combined');
285
+ if (operation === 'planned-inventory' || operation === 'planned-entry' || operation === 'authoring-inputs' && planning) {
286
+ if (!primaryTarget || runId || input.expectedRevisionId !== undefined || input.gate !== undefined || operation !== 'planned-inventory' && !planning)
287
+ throw new SkillDispatchInputError('planning', 'A confirmed target and planning scope are required; inventory needs only the target');
288
+ } else if (operation === 'project-state') {
289
+ if (!primaryTarget || runId || input.expectedRevisionId !== undefined || input.gate !== undefined) throw new SkillDispatchInputError('binding', 'Project state requires only the confirmed target, no Run/revision');
290
+ } else if (operation === "artifact-readiness") {
213
291
  if (!runId) throw new SkillDispatchInputError("run_id", "artifact-readiness requires an explicit run_id");
214
292
  if (!primaryTarget) throw new SkillDispatchInputError("primary_target", "artifact-readiness requires an explicit target binding");
215
293
  if (!ARTIFACT_READINESS_GATES.includes(input.gate)) throw new SkillDispatchInputError("gate", "Unsupported draft gate");
216
294
  if (!REVISION_ID_PATTERN.test(input.expectedRevisionId ?? "")) throw new SkillDispatchInputError("expected_revision_id", "A valid expected revision is required");
217
295
  } else if (BOUND_INSPECT_OPERATIONS.includes(operation)) {
218
- if (!runId || !primaryTarget || !REVISION_ID_PATTERN.test(input.expectedRevisionId ?? '')) throw new SkillDispatchInputError('binding', 'An exact target, Run and expected revision binding is required');
296
+ const creation = !runId && input.expectedRevisionId === undefined && (operation === 'operation-status'
297
+ || operation === 'operation-contract' && (['agdf_run/run.create', 'agdf_project/project.initialize'].includes(input.contractModule) || input.contractModule?.startsWith('agdf_project/planned_layout.')
298
+ || PLANNING_COMMAND_KINDS.includes(input.contractModule?.split('/')[1])));
299
+ if (!primaryTarget || !creation && (!runId || !REVISION_ID_PATTERN.test(input.expectedRevisionId ?? ''))) throw new SkillDispatchInputError('binding', 'An exact target, Run and expected revision binding is required; creation lookup uses target/original UUID');
219
300
  if (operation === 'operation-contract' && !OPERATION_CONTRACT_MODULES.includes(input.contractModule)) {
220
301
  throw new SkillDispatchInputError('module', 'Unsupported command group/operation module', { allowedValues: OPERATION_CONTRACT_MODULES });
221
302
  }
222
- if (operation === 'operation-status' && !REVISION_ID_PATTERN.test(input.contractModule ?? '')) throw new SkillDispatchInputError('operation_id', 'An original operation UUID is required');
303
+ if (operation === 'operation-status' && !(REVISION_ID_PATTERN.test(input.contractModule ?? '')
304
+ || !runId && /^(?:project\.initialize|planned_layout\.apply|planned_ur\.(?:create|replace)|run\.create_from_planned)\/[0-9a-f-]{36}$/u.test(input.contractModule ?? '')
305
+ && REVISION_ID_PATTERN.test(input.contractModule.split('/')[1]))) throw new SkillDispatchInputError('operation_id', 'An original operation UUID is required');
223
306
  if (input.gate !== undefined && (!['operation-contract', 'presentation-document', 'presentation-preview'].includes(operation) || !APPROVAL_GATES.includes(input.gate))) throw new SkillDispatchInputError('gate', 'Unsupported operation gate');
224
307
  } else if (input.gate !== undefined || input.expectedRevisionId !== undefined) {
225
308
  throw new SkillDispatchInputError("gate", "Draft binding fields are supported only by artifact-readiness");
@@ -228,7 +311,7 @@ export function normalizeControlInspectInput(input) {
228
311
  if (!APPROVAL_GATES.includes(input.gate) || !REVISION_ID_PATTERN.test(input.presentationId ?? '')
229
312
  || !/^sha256:[0-9a-f]{64}$/u.test(input.targetId ?? '')
230
313
  || input.cursor !== undefined && !/^[0-9a-f]{64}:(?:0|[1-9][0-9]{0,6})$/u.test(input.cursor)) throw new SkillDispatchInputError('presentation', 'An exact presentation binding and bounded cursor are required');
231
- } else if (input.presentationId !== undefined || input.targetId !== undefined || input.cursor !== undefined && !(operation === 'operation-contract' && input.contractModule === PRESENTATION_CATALOG_MODULE && new RegExp(cursorSchema.pattern, 'u').test(input.cursor) && typeof input.cursor === 'string' && input.cursor.length <= cursorSchema.maxLength)) {
314
+ } else if (input.presentationId !== undefined || input.cursor !== undefined && !((operation === 'authoring-inputs' || operation === 'doctor' && input.allActive === true || operation === 'operation-contract' && input.contractModule === PRESENTATION_CATALOG_MODULE) && new RegExp(cursorSchema.pattern, 'u').test(input.cursor) && typeof input.cursor === 'string' && input.cursor.length <= cursorSchema.maxLength)) {
232
315
  throw new SkillDispatchInputError('presentation', 'Document selectors require presentation-document');
233
316
  }
234
317
  if (input.allActive !== undefined && typeof input.allActive !== "boolean") throw new SkillDispatchInputError("all_active", "all_active is invalid");
@@ -237,12 +320,12 @@ export function normalizeControlInspectInput(input) {
237
320
  validateReadSelection({
238
321
  operation,
239
322
  allActive: input.allActive === true,
240
- contractModule: input.contractModule,
323
+ contractModule: input.contractModule, allowContractIndex: true,
241
324
  variant: input.variant,
325
+ runId,
242
326
  });
243
- const selectorKeys = { gate: 'gate', expected_revision_id: 'expectedRevisionId', presentation_id: 'presentationId', target_id: 'targetId', cursor: 'cursor', variant: 'variant', module: 'contractModule' };
244
327
  for (const [field, key] of Object.entries(selectorKeys)) {
245
- if (input[key] !== undefined && !fieldModel[field].operations.includes(operation)) throw new SkillDispatchInputError(field, `Unsupported selector for ${operation}`);
328
+ if (input[key] !== undefined && !(fieldModel[field].operations ?? CONTROL_INSPECT_OPERATIONS).includes(operation)) throw new SkillDispatchInputError(field, `Unsupported selector for ${operation}`);
246
329
  }
247
330
  return Object.freeze({
248
331
  schema_version: CONTROL_INSPECT_SCHEMA_VERSION,
@@ -253,11 +336,12 @@ export function normalizeControlInspectInput(input) {
253
336
  target_source: targetSource,
254
337
  primary_target: primaryTarget,
255
338
  run_id: runId,
339
+ planning,
256
340
  gate: input.gate,
257
341
  expected_revision_id: input.expectedRevisionId,
258
342
  presentation_id: input.presentationId, target_id: input.targetId, cursor: input.cursor,
259
343
  group: operation === 'operation-contract' ? input.contractModule.split('/')[0] : undefined,
260
- kind: operation === 'operation-contract' ? input.contractModule.split('/')[1] : undefined, operation_id: operation === 'operation-status' ? input.contractModule : undefined,
344
+ kind: operation === 'operation-contract' ? input.contractModule.split('/')[1] : undefined, operation_id: operation === 'operation-status' ? input.contractModule.split('/').at(-1) : undefined,
261
345
  variant: input.variant,
262
346
  contract_module: input.contractModule,
263
347
  all_active: input.allActive === true,
@@ -269,10 +353,10 @@ export { ReadSelectionError };
269
353
 
270
354
  export const CONTROL_INSPECT_OUTPUT_TOO_LARGE_RECOVERY = "The inspect result exceeds the 1 MiB MCP output limit. Narrow the selection (one run_id instead of all_active) or use the CLI with --json.";
271
355
 
272
- // Same 1 MiB ceiling as the dispatcher, but the fallback keeps the inspect result shape so the host
273
- // receives a schema-valid recovery instead of a schema error.
274
- export function serializeControlInspectResult(result) {
275
- const output = JSON.stringify(result, null, 2);
356
+ // Preserve the result envelope when enforcing the shared 1 MiB output ceiling.
357
+ // space 0 is the compact transport form; the CLI keeps its indented output.
358
+ export function serializeControlInspectResult(result, { space = 2 } = {}) {
359
+ const output = JSON.stringify(result, null, space);
276
360
  if (Buffer.byteLength(output, "utf8") <= SKILL_DISPATCH_MAX_OUTPUT_BYTES) return output;
277
361
  return JSON.stringify({
278
362
  schema_version: CONTROL_INSPECT_SCHEMA_VERSION,
@@ -1,3 +1,5 @@
1
+ import { resolutionRecordVersion } from '../control-state/input-resolution.js';
2
+ import { createPresentationDelivery } from '../control-state/presentation-delivery.js';
1
3
  import { randomUUID, createHash } from 'node:crypto';
2
4
  import { createCockpitSessionService } from './cockpit-session.js';
3
5
  import { COCKPIT_LIMITS, parseCockpitArguments } from './cockpit-contract.js';
@@ -19,15 +21,26 @@ import { READ_LIMITS } from '../control-read/snapshot.js';
19
21
  // Bounded ephemeral views on the existing reader. A general cockpit ID is never a
20
22
  // decision-session ID, and no view is persistent gate authority.
21
23
  export function createDecisionSessionService({ groups = Object.keys(RUN_COMMAND_GROUPS), now = Date.now,
22
- appOnlyMediationQualified = false, readServiceFactory = root => createCockpitSessionService(root),
24
+ delivery = createPresentationDelivery({ now }), appOnlyMediationQualified = false, readServiceFactory = root => createCockpitSessionService(root),
25
+ // Only a host adapter with actual current-surface identity may supply this
26
+ // private observation. Client name/version, tool arguments and UI capability
27
+ // cannot supply it. The current SDK adapter has no such observation.
28
+ surfaceBinding = () => null,
23
29
  qualification = () => appOnlyMediationQualified === true,
24
30
  actionService = createDecisionActionService({ enabledGroups: groups, appOnlyMediationQualified: true }),
25
31
  } = {}) {
26
32
  const sessions = new Map(), readers = new Map(), epoch = randomUUID();
27
33
  let closed = false, generation = 0;
28
34
  const failure = reason => ({ schema_version: '1', outcome: 'rejected', reason, authorizes: false });
35
+ function currentMaterial(row) {
36
+ const run = readRun(row.root, row.binding.run_id);
37
+ if (run.rejection || run.meta.revision_id !== row.binding.expected_revision_id || runSealState(row.root, run.content).status !== 'valid') return false;
38
+ const material = decisionMaterial(row.root, prepareRunContentState(row.root, run.content, run.path), row.binding.gate);
39
+ return material.available && material.material_version === row.binding.material_version;
40
+ }
29
41
  function retire(row) {
30
42
  if (row.retirement) return row.retirement;
43
+ row.primary = false; row.displayed = false;
31
44
  row.retired = true; ++row.generation; clearTimeout(row.timer); readers.delete(row.readId);
32
45
  row.retirement = Promise.resolve().then(() => row.reader.close()).then(() => { sessions.delete(row.id); });
33
46
  void row.retirement.catch(() => {}); // Failed worker retirement keeps its counted slot.
@@ -45,12 +58,14 @@ export function createDecisionSessionService({ groups = Object.keys(RUN_COMMAND_
45
58
  row.timer.unref?.();
46
59
  }
47
60
  return Object.freeze({
61
+ remember: delivery.remember, prepared: delivery.prepared, deliver: delivery.deliver,
48
62
  inspectOwnership() {
49
63
  for (const row of sessions.values()) active(row.id);
50
64
  return { views: sessions.size, active: [...sessions.values()].filter(row => !row.retired).length,
51
65
  inflight: [...sessions.values()].filter(row => row.pending || row.readPending).length };
52
66
  },
53
67
  async open(input, result, host = {}) {
68
+ delivery.remember(input, result);
54
69
  const prepared = result.family_result;
55
70
  if (closed || !['accepted', 'already_applied'].includes(result.outcome) || typeof prepared?.text !== 'string') return { ...result, app_capability: 'unavailable' };
56
71
  for (const row of sessions.values()) active(row.id);
@@ -65,7 +80,7 @@ export function createDecisionSessionService({ groups = Object.keys(RUN_COMMAND_
65
80
  const state = prepareRunContentState(root, run.content, run.path);
66
81
  const material = decisionMaterial(root, state, input.command.payload.gate);
67
82
  if (!material.available) return { ...result, app_capability: 'unavailable', app_reason: material.reason };
68
- if ([3, 4, 5].includes(presentation.record.schema_version) && (typeof prepared.summary !== 'string'
83
+ if (resolutionRecordVersion(presentation.record) === 7 && (typeof prepared.summary !== 'string'
69
84
  || 'sha256:' + createHash('sha256').update(prepared.summary).digest('hex') !== presentation.record.summary_digest)) {
70
85
  return { ...result, app_capability: 'unavailable', app_reason: 'presentation_binding_changed' };
71
86
  }
@@ -74,14 +89,22 @@ export function createDecisionSessionService({ groups = Object.keys(RUN_COMMAND_
74
89
  material_version: material.material_version, material_sources: material.sources, presentation_language: prepared.presentation_language });
75
90
  let qualified = false; try { qualified = qualification(host) === true; } catch {}
76
91
  const row = { id: randomUUID(), reader: readServiceFactory(root), root, binding, qualified, created: now(), touched: now(),
77
- expires: now() + COCKPIT_LIMITS.lifetime, generation: ++generation, retired: false, retirement: null, readId: null, timer: null, pending: null };
92
+ expires: now() + COCKPIT_LIMITS.lifetime, generation: ++generation, retired: false, retirement: null, readId: null, timer: null, pending: null,
93
+ nonce: randomUUID(), surface: surfaceBinding(host), displayed: false, primary: false };
94
+ const preparedDelivery = delivery.prepared({ ...input, operation_id: prepared.presentation_id });
95
+ if (!preparedDelivery || preparedDelivery.selected) return { ...result, app_capability: 'unavailable', app_reason: 'delivery_already_selected' };
96
+ preparedDelivery.view = {
97
+ confirm: host => active(row.id) === row && Boolean(row.displayed) && row.surface !== null && row.surface === surfaceBinding(host)
98
+ && now() - row.displayed < 10000 && currentMaterial(row),
99
+ select: () => { row.primary = true; }, retire: () => retire(row),
100
+ };
78
101
  // UAT presents a bound evidence summary, not an invented UAT artefact or
79
102
  // today's QA document. Its large view reads exactly the prepared text.
80
103
  row.presentationDocument = binding.gate === 'UAT' ? Object.freeze({ resource_id: randomUUID(),
81
104
  run_id: binding.run_id, type: 'UAT', status: 'registered', path: null,
82
105
  registered_reference: `presentation:${binding.presentation_id}` }) : null;
83
- row.hasSnapshot = [3, 4, 5].includes(presentation.record.schema_version);
84
- row.previewRecord = presentation.record.schema_version === 5 ? presentation.record : null;
106
+ row.hasSnapshot = resolutionRecordVersion(presentation.record) === 7;
107
+ row.previewRecord = (resolutionRecordVersion(presentation.record) === 7 && presentation.record.preview_review) ? presentation.record : null;
85
108
  row.previewResourceId = row.previewRecord ? randomUUID() : null;
86
109
  row.presentationText = row.presentationDocument ? prepared.text : null;
87
110
  row.presentedContentSeal = presentation.record.content_digest;
@@ -116,10 +139,11 @@ export function createDecisionSessionService({ groups = Object.keys(RUN_COMMAND_
116
139
  return { ...result, app_capability: row.qualified ? 'available' : 'not_qualified',
117
140
  _meta: { agdf_decision: { schema_version: '1', session_id: row.id, read_session_id: row.readId,
118
141
  owner_epoch: epoch, generation: row.generation, expires_at: row.expires, binding, target: snapshot.target,
142
+ delivery_state: 'preview', display_nonce: row.nonce, surface_id: row.surface,
119
143
  title: snapshot.data.run.title, labels: qaAcceptance ? { ...labels, approve: qaAcceptance.approve_label, confirmed: qaAcceptance.confirmed_label } : labels,
120
144
  approval_effect_label: interactionLocales.locales[binding.presentation_language]?.statusCard.allowedAfter ?? interactionLocales.locales.en.statusCard.allowedAfter,
121
- summary: row.hasSnapshot ? prepared.summary : prepared.text,
122
- decision_brief: qaAcceptance?.summary || (row.hasSnapshot ? decisionBriefFromSummary(prepared.summary, binding.presentation_language) : null),
145
+ summary: row.presentationText ?? prepared.text,
146
+ decision_brief: null,
123
147
  gate_title: interactionLocales.locales[binding.presentation_language]?.gateTitles[binding.gate]
124
148
  ?? interactionLocales.locales.en.gateTitles[binding.gate],
125
149
  decision_heading: qaAcceptance ? labels.deviationAcceptanceIntro : interactionLocales.locales[binding.presentation_language]?.gateActionTitles[binding.gate]
@@ -128,6 +152,7 @@ export function createDecisionSessionService({ groups = Object.keys(RUN_COMMAND_
128
152
  ?? interactionLocales.locales.en.primary.afterApproval[binding.gate]),
129
153
  snapshot_id: snapshot.snapshot_id, resource_id: resource?.resource_id ?? null,
130
154
  document_digest: row.documentDigest,
155
+ source_digest: presentation.record.artefact_digest,
131
156
  ...(row.previewRecord ? { preview: { resource_id: row.previewResourceId,
132
157
  version: row.previewRecord.preview_review.descriptor.version,
133
158
  task: row.previewRecord.preview_review.descriptor.review_task,
@@ -135,9 +160,9 @@ export function createDecisionSessionService({ groups = Object.keys(RUN_COMMAND_
135
160
  criterion_ids: row.previewRecord.preview_review.descriptor.criterion_ids,
136
161
  open_questions: row.previewRecord.preview_review.descriptor.open_questions,
137
162
  content_digest: row.previewRecord.preview_review.rendered_digest } } : {}),
138
- enabled_actions: row.qualified ? enabledDecisionActions(groups).filter(action => action === 'approve') : [],
163
+ enabled_actions: [],
139
164
  capability: row.qualified ? 'available' : 'not_qualified',
140
- comparison: presentationVersionComparison(root, state, binding.gate, row.documentDigest) } } };
165
+ comparison: presentationVersionComparison(root, state, binding.gate, presentation.record.artefact_digest) } } };
141
166
  } catch (error) {
142
167
  await retire(row).catch(() => {});
143
168
  return { ...result, app_capability: 'unavailable', app_reason: error.message };
@@ -151,6 +176,7 @@ export function createDecisionSessionService({ groups = Object.keys(RUN_COMMAND_
151
176
  if (!row.qualified) return failure('app_only_mediation_not_qualified');
152
177
  try { if (qualification(host) !== true) return failure('app_only_mediation_not_qualified'); }
153
178
  catch { return failure('app_only_mediation_not_qualified'); }
179
+ if (!row.primary || !row.displayed || row.surface !== surfaceBinding(host)) return failure('decision_display_unconfirmed');
154
180
  if (input.presentation_id !== row.binding.presentation_id || input.expected_revision_id !== row.binding.expected_revision_id) return failure('decision_binding_invalid');
155
181
  if (row.pending) return { ...failure('decision_pending'), outcome: row.pending === input.operation_id ? 'effect_unknown' : 'rejected', operation_id: row.pending };
156
182
  touch(row); const captured = row.generation; row.pending = input.operation_id;
@@ -161,11 +187,27 @@ export function createDecisionSessionService({ groups = Object.keys(RUN_COMMAND_
161
187
  if (active(row.id) !== row || row.generation !== captured) return { ...result, view_state: 'closed' };
162
188
  touch(row); return { ...result, view_state: 'active' };
163
189
  },
164
- async read(input, signal) {
190
+ async read(input, signal, host = {}) {
165
191
  try { input = parseCockpitArguments(input); } catch { return failure('resource_denied'); }
166
192
  const row = readers.get(input.session_id);
167
193
  if (!row || active(row.id) !== row) return failure('session_expired');
168
194
  if (input.operation === 'close') { await retire(row); return { schema_version: '1', state: 'available', data: { closed: true }, authorizes: false }; }
195
+ if (['decision_display', 'decision_state'].includes(input.operation)) {
196
+ if (!currentMaterial(row)) { await retire(row).catch(() => {}); return failure('decision_binding_changed'); }
197
+ if (delivery.prepared(row.binding)?.selected && !row.primary) { await retire(row).catch(() => {}); return failure('delivery_already_selected'); }
198
+ if (input.operation === 'decision_display') {
199
+ if (!row.surface || row.surface !== surfaceBinding(host) || input.surface_id !== row.surface || input.owner_epoch !== epoch
200
+ || input.nonce !== row.nonce || input.document_digest !== row.documentDigest || input.visible !== true) return failure('decision_display_unconfirmed');
201
+ const preparedDelivery = delivery.prepared(row.binding);
202
+ if (preparedDelivery?.selected) return failure('delivery_already_selected');
203
+ row.displayed = now();
204
+ }
205
+ if (row.primary && row.surface === surfaceBinding(host)) row.displayed = now();
206
+ touch(row);
207
+ return { schema_version: '1', state: 'available', data: { delivery_state: row.primary ? 'ui_primary' : 'preview',
208
+ display: row.displayed ? 'confirmed' : 'unconfirmed', document_digest: row.documentDigest,
209
+ enabled_actions: row.primary && row.qualified ? enabledDecisionActions(groups).filter(a => a === 'approve') : [] }, authorizes: false };
210
+ }
169
211
  if (!['snapshot', 'document', 'preview', 'freshness', 'changes'].includes(input.operation) || input.run_id && input.run_id !== row.binding.run_id) return failure('resource_denied');
170
212
  if (input.operation === 'preview') {
171
213
  if (signal?.aborted) return failure('cancelled');
@@ -238,6 +280,6 @@ export function createDecisionSessionService({ groups = Object.keys(RUN_COMMAND_
238
280
  }
239
281
  return result;
240
282
  },
241
- async close() { closed = true; await Promise.allSettled([...sessions.values()].map(retire)); },
283
+ async close() { closed = true; delivery.close(); await Promise.allSettled([...sessions.values()].map(retire)); },
242
284
  });
243
285
  }