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,
@@ -0,0 +1,91 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import { ReadWorkerPool } from '../control-read/cockpit-pool.js';
3
+ import { resolveControlCommandTarget } from '../control-state/approval-command-contract.js';
4
+
5
+ export function createDoctorObservationService({ budget, gitObservation, verifyRuntime,
6
+ poolFactory = root => new ReadWorkerPool(root, { workerURL: new URL('../control-read/doctor-worker.js', import.meta.url), timeout: 7000,
7
+ limits: { timeout: 7000, total: 64 * 1024 ** 2 }, maxOldGenerationSizeMb: 256, budget }), now = Date.now } = {}) {
8
+ const observations = new Map(); let closed = false;
9
+ function retire(row) {
10
+ if (row.retirement) return row.retirement;
11
+ row.retired = true; clearTimeout(row.timer);
12
+ row.retirement = Promise.resolve().then(() => row.pool.close()).then(() => observations.delete(row.id));
13
+ void row.retirement.catch(() => {}); // Unconfirmed retirement retains its counted slot.
14
+ return row.retirement;
15
+ }
16
+ function touch(row) {
17
+ row.touched = now(); clearTimeout(row.timer);
18
+ row.timer = setTimeout(() => void retire(row), Math.max(0, Math.min(row.created + 60000, row.touched + 30000) - now()));
19
+ row.timer.unref?.();
20
+ }
21
+ function snapshot(root) {
22
+ if (!gitObservation) return null;
23
+ const start = performance.now();
24
+ const head = gitObservation.gitValue(root, ['rev-parse', 'HEAD']);
25
+ if (performance.now() - start > 1500 || head === null) return null;
26
+ const tracked = gitObservation.gitPathList(root, ['diff', 'HEAD', '--name-only']);
27
+ if (performance.now() - start > 1500 || tracked === null) return null;
28
+ const untracked = gitObservation.gitPathList(root, ['ls-files', '--others', '--exclude-standard']);
29
+ if (performance.now() - start > 1500 || untracked === null) return null;
30
+ return { head, tracked, untracked };
31
+ }
32
+ return Object.freeze({
33
+ async observe(root, input, signal) {
34
+ const started = performance.now(); let row, provenanceMs = null;
35
+ const restart = { tool: 'agdf_inspect', arguments: { operation: 'doctor', presentation_language: input.presentation_language,
36
+ working_directory: input.working_directory, target_source: input.target_source, primary_target: input.primary_target,
37
+ ...(input.all_active ? { all_active: true } : input.run_id ? { run_id: input.run_id } : {}) } };
38
+ try {
39
+ if (closed) throw Object.assign(Error(), { code: 'connection_closed' });
40
+ if (verifyRuntime) { const start = performance.now(); try { verifyRuntime(); } finally { provenanceMs = performance.now() - start; } }
41
+ for (const value of observations.values()) if (!value.retired && (now() - value.created >= 60000 || now() - value.touched >= 30000)) void retire(value);
42
+ let offset = 0;
43
+ if (input.cursor) {
44
+ const parts = input.cursor.split(':'), [id, rawOffset] = parts;
45
+ const selected = observations.get(id); offset = Number(rawOffset);
46
+ if (!selected || selected.retired || selected.root !== root || selected.kind !== 'inventory' || !input.all_active
47
+ || parts.length !== 2 || !Number.isSafeInteger(offset) || offset < 0 || String(offset) !== rawOffset) {
48
+ throw Object.assign(Error(), { code: 'diagnostic_cursor_invalid' });
49
+ }
50
+ row = selected;
51
+ } else {
52
+ row = !input.all_active ? [...observations.values()].find(r => !r.retired && !r.pending && r.root === root && r.kind === 'selected') : null;
53
+ if (!row) {
54
+ if (observations.size >= 2) throw Object.assign(Error(), { code: 'resource_limit' });
55
+ row = { id: randomBytes(32).toString('hex'), root, kind: input.all_active ? 'inventory' : 'selected',
56
+ pool: poolFactory(root), created: now(), touched: now(), pending: false, retired: false, retirement: null };
57
+ observations.set(row.id, row);
58
+ }
59
+ }
60
+ if (row.pending) throw Object.assign(Error(), { code: 'busy' });
61
+ row.pending = true; touch(row);
62
+ const git_snapshot = snapshot(root);
63
+ const remaining = 7000 - (performance.now() - started);
64
+ if (remaining <= 0) throw Object.assign(Error(), { code: 'timeout' });
65
+ const report = await row.pool.request({ operation: input.cursor ? 'doctor_page' : 'doctor_open',
66
+ input: { all_active: input.all_active, run_id: input.run_id, git_snapshot, offset } }, signal, { timeout: remaining });
67
+ row.pending = false; touch(row); row.last = report;
68
+ const { next_offset, ...body } = report;
69
+ return { ...body, target_id: resolveControlCommandTarget(root).target_id, observation_id: row.id,
70
+ findings_scope: 'current_page', summary_scope: report.completeness === 'complete' ? 'observation' : 'current_page',
71
+ overall_status: report.completeness === 'complete' ? report.status : null,
72
+ next_cursor: next_offset === null ? null : `${row.id}:${next_offset}`,
73
+ next_calls: next_offset === null ? [] : [{ ...restart, arguments: { ...restart.arguments, cursor: `${row.id}:${next_offset}` } }],
74
+ timing: { ...report.timing, provenance_ms: provenanceMs, provenance_state: verifyRuntime ? 'verified' : 'not_configured',
75
+ worker_startup_ms: row.pool.lastTiming?.startup_ms ?? null, total_ms: performance.now() - started }, authorizes: false };
76
+ } catch (e) {
77
+ if (row && !['busy', 'diagnostic_cursor_invalid'].includes(e.code)) { row.pending = false; void retire(row); }
78
+ else if (row && e.code === 'diagnostic_cursor_invalid') row.pending = false;
79
+ return { schema_version: '1', available: false, status: 'incomplete', completeness: 'incomplete', reason: e.code ?? 'read_failed',
80
+ observed_as_of: row?.last?.observed_as_of ?? null, inventory: row?.last?.inventory ?? null,
81
+ source_currentness: e.code === 'source_changed' ? 'stale' : 'unconfirmed', overall_status: null,
82
+ next_cursor: null, next_calls: [restart], authorizes: false,
83
+ timing: { total_ms: performance.now() - started, provenance_ms: provenanceMs, capture_and_evaluation_ms: null,
84
+ unavailable_reason: 'operation_did_not_complete' } };
85
+ }
86
+ },
87
+ async close() { closed = true; await Promise.all([...observations.values()].map(retire)); },
88
+ inspectOwnership() { return { observations: observations.size, active: [...observations.values()].filter(r => !r.retired).length,
89
+ inflight: [...observations.values()].filter(r => r.pending).length }; },
90
+ });
91
+ }
@@ -0,0 +1,5 @@
1
+ export const projectOperationStatusCall = input => ({ tool: 'agdf_inspect', arguments: {
2
+ operation: 'operation-status', module: `project.initialize/${input.operation_id}`,
3
+ presentation_language: input.presentation_language, working_directory: input.working_directory,
4
+ primary_target: input.primary_target, target_source: input.target_source } });
5
+
@@ -0,0 +1,48 @@
1
+ import { realpathSync, lstatSync, readFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { inspectCanonicalProject, inspectCanonicalInitializationPlan } from '../control-state/canonical-initialization.js';
4
+ import { resolveControlCommandTarget } from '../control-state/approval-command-contract.js';
5
+
6
+ import { projectOperationStatusCall } from './project-operation-call.js';
7
+ export { projectOperationStatusCall };
8
+
9
+ export function assertProjectGitRoot(root, gitObservation) {
10
+ const gitRoot = gitObservation?.gitValue(root, ['rev-parse', '--show-toplevel']);
11
+ if (!gitRoot) throw Error('confirmed_git_project_required');
12
+ const confirmedRoot = realpathSync(root), reportedRoot = realpathSync(gitRoot);
13
+ const rootStat = lstatSync(confirmedRoot, { bigint: true }), reportedStat = lstatSync(reportedRoot, { bigint: true });
14
+ // Windows realpath preserves spelling/case. Prove the same directory object,
15
+ // without case folding or rounding its filesystem identity through Number.
16
+ if (!rootStat.isDirectory() || !reportedStat.isDirectory() || rootStat.ino <= 0n
17
+ || rootStat.dev !== reportedStat.dev || rootStat.ino !== reportedStat.ino) throw Error('confirmed_git_project_required');
18
+ const path = join(root, '.git'), stat = lstatSync(path, { bigint: true });
19
+ if (stat.isSymbolicLink() || !stat.isDirectory() && !stat.isFile() || stat.isFile() && stat.size > 4096n)
20
+ throw Error('confirmed_git_project_required');
21
+ return { root: confirmedRoot, root_dev: String(rootStat.dev), root_ino: String(rootStat.ino), git: realpathSync(path), dev: String(stat.dev), ino: String(stat.ino),
22
+ content: stat.isFile() ? readFileSync(path, 'utf8') : null };
23
+ }
24
+
25
+ export function inspectProjectState(root, input, gitObservation) {
26
+ try {
27
+ const repository = assertProjectGitRoot(root, gitObservation);
28
+ const target_id = resolveControlCommandTarget(root).target_id;
29
+ const state = inspectCanonicalProject(root, { operationId: input.operation_id });
30
+ const common = { presentation_language: input.presentation_language, working_directory: input.working_directory,
31
+ primary_target: root, target_source: input.target_source };
32
+ const next = state.status === 'initialized' ? { tool: 'agdf_inspect', arguments: { ...common, operation: 'operation-contract', module: 'agdf_run/run.create' } }
33
+ : state.status === 'absent' ? { tool: 'agdf_inspect', arguments: { ...common, operation: 'operation-contract', module: 'agdf_project/project.initialize' } }
34
+ : state.operation && input.operation !== 'operation-status' ? projectOperationStatusCall({ ...input, operation_id: state.operation.operation_id }) : null;
35
+ const original = state.receipt?.operation?.operation_id;
36
+ const statusCall = state.status === 'initialized' && original && input.operation !== 'operation-status'
37
+ ? projectOperationStatusCall({ ...input, operation_id: original }) : null;
38
+ const report = { available: true, target_id, repository, plan: inspectCanonicalInitializationPlan(), ...state,
39
+ setup: { tool: 'agdf_project', kind: 'project.initialize', binding: { schema_version: '1', assurance: 'cooperative_local', ...common, target_id },
40
+ required_agent_fields: ['operation_id'], requires_explicit_intent: true }, next_calls: [...(next ? [next] : []), ...(statusCall ? [statusCall] : [])],
41
+ ...(input.operation === 'operation-status' ? { operation_id: input.operation_id, status: state.operation_status, current_setup: state.status } : {}),
42
+ ...(state.status === 'pending' ? { recovery: { action: 'replay_original', operation_id: state.operation.operation_id,
43
+ request_digest: state.operation.request_digest, instruction: 'Replay only the saved original project.initialize UUID/payload. Owned stage, target, plan and producer are revalidated before any effect.', authorizes: false } } : {}),
44
+ limits: { result_bytes: 16384, source_bytes: 131072, plan_bytes: 524288, receipt_bytes: 16384 }, authorizes: false };
45
+ if (Buffer.byteLength(JSON.stringify(report)) > 16384) throw Error('project_result_budget_exceeded');
46
+ return report;
47
+ } catch (error) { return { available: false, status: 'blocked', reason: error.code ?? error.message, authorizes: false }; }
48
+ }
@@ -0,0 +1,61 @@
1
+ import { CONTROL_INSPECT_SCHEMA_VERSION, CONTROL_INSPECT_CONTRACT_VERSION } from "./contract.js";
2
+ import { emptySkillDispatchTiming } from "../skill-dispatch/contract.js";
3
+
4
+ export function baseResult({ outcome, operation, runtime, timing }) {
5
+ return {
6
+ schema_version: CONTROL_INSPECT_SCHEMA_VERSION,
7
+ contract_version: CONTROL_INSPECT_CONTRACT_VERSION,
8
+ outcome,
9
+ terminal: outcome !== "inspect_result",
10
+ authorizes: false,
11
+ operation: operation ?? null,
12
+ runtime,
13
+ target: null,
14
+ report: null,
15
+ presentation: null,
16
+ recovery: null,
17
+ host_action: null,
18
+ timing,
19
+ diagnostics: [],
20
+ };
21
+ }
22
+
23
+ export function bindHostAction(result) {
24
+ if (result.outcome === "inspect_result") {
25
+ result.host_action = Object.freeze({
26
+ mode: "consume_report_and_continue",
27
+ source: result.presentation?.markdown ? "presentation.markdown" : "report",
28
+ ...(result.presentation?.markdown ? { text: result.presentation.markdown } : {}),
29
+ allow_surrounding_text: true,
30
+ may_request_run_or_evidence: false,
31
+ });
32
+ } else if (result.presentation?.markdown) {
33
+ result.host_action = Object.freeze({
34
+ mode: "transmit_presentation_verbatim_and_stop",
35
+ source: "presentation.markdown",
36
+ text: result.presentation.markdown,
37
+ allow_surrounding_text: false,
38
+ may_request_run_or_evidence: false,
39
+ });
40
+ } else {
41
+ result.host_action = Object.freeze({
42
+ mode: "transmit_recovery_verbatim_and_stop",
43
+ source: "recovery.action",
44
+ text: result.recovery?.action ?? "",
45
+ allow_surrounding_text: false,
46
+ may_request_run_or_evidence: false,
47
+ });
48
+ }
49
+ return Object.freeze(result);
50
+ }
51
+
52
+ export function createInspectFailureResult(code, runtime, action, { elapsedMs } = {}) {
53
+ const timing = Object.fromEntries(Object.keys(emptySkillDispatchTiming()).map(key => [key, null]));
54
+ timing.total_ms = Number.isFinite(elapsedMs) && elapsedMs >= 0 ? elapsedMs : null;
55
+ timing.measurement_state = 'unavailable'; timing.unavailable_reason = 'operation_did_not_complete';
56
+ const result = baseResult({ outcome: "evaluator_error", runtime, timing });
57
+ result.recovery = { action };
58
+ result.diagnostics = [{ code }];
59
+ return bindHostAction(result);
60
+ }
61
+