create-agdf 0.20.2 → 0.31.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 (903) hide show
  1. package/README.md +148 -191
  2. package/generated/.agdf/control/README.md +35 -109
  3. package/generated/.agdf/control/planned-urs.md +95 -0
  4. package/generated/.agdf/control/templates/BRAND.md +28 -0
  5. package/generated/.agdf/control/templates/RUN_STATE.md +15 -64
  6. package/generated/.agdf/control/templates/artefacts/PRD.md +11 -0
  7. package/generated/.agdf/control/templates/artefacts/SD.md +4 -0
  8. package/generated/.agdf/control/templates/artefacts/UR.md +1 -1
  9. package/generated/.agdf/control/templates/artefacts/UX_INTENT_DEFINITION.md +1 -1
  10. package/generated/.agents/plugins/marketplace.json +12 -0
  11. package/generated/.opencode/agdf-agent-router.md +3 -3
  12. package/generated/.opencode/agdf-interaction-locales.json +2958 -2682
  13. package/generated/.opencode/contracts/closeout.md +1 -1
  14. package/generated/.opencode/contracts/control-scaffold.md +63 -46
  15. package/generated/.opencode/contracts/gate-artifact-preparation.md +64 -48
  16. package/generated/.opencode/contracts/gate-transition.md +5 -6
  17. package/generated/.opencode/contracts/interaction.md +52 -129
  18. package/generated/.opencode/contracts/modes.md +9 -3
  19. package/generated/.opencode/contracts/prd-definition.md +46 -7
  20. package/generated/.opencode/contracts/quality.md +45 -2
  21. package/generated/.opencode/contracts/request-activation.md +14 -10
  22. package/generated/.opencode/contracts/sd-definition.md +49 -3
  23. package/generated/.opencode/contracts/task-target-resolution.md +24 -0
  24. package/generated/.opencode/contracts/tp-definition.md +9 -1
  25. package/generated/.opencode/contracts/ur-definition.md +50 -12
  26. package/generated/.opencode/skills/agdf-brownfield-analysis/SKILL.md +8 -5
  27. package/generated/.opencode/skills/agdf-clean-implementation-review/SKILL.md +3 -2
  28. package/generated/.opencode/skills/agdf-code-review/SKILL.md +5 -3
  29. package/generated/.opencode/skills/agdf-delivery-closeout/SKILL.md +3 -2
  30. package/generated/.opencode/skills/agdf-delivery-path-search/SKILL.md +3 -2
  31. package/generated/.opencode/skills/agdf-gate-check/SKILL.md +35 -31
  32. package/generated/.opencode/skills/agdf-prd-definition/SKILL.md +3 -2
  33. package/generated/.opencode/skills/agdf-qa-gate/SKILL.md +3 -2
  34. package/generated/.opencode/skills/agdf-release-or/SKILL.md +8 -5
  35. package/generated/.opencode/skills/agdf-sd-definition/SKILL.md +3 -2
  36. package/generated/.opencode/skills/agdf-task-plan-review/SKILL.md +3 -2
  37. package/generated/.opencode/skills/agdf-tp-definition/SKILL.md +3 -2
  38. package/generated/.opencode/skills/agdf-ur-definition/SKILL.md +12 -4
  39. package/generated/.opencode/skills/agdf-ux-intent-definition/SKILL.md +36 -6
  40. package/generated/plugins/agdf/.claude-plugin/plugin.json +3 -2
  41. package/generated/plugins/agdf/.codex-plugin/plugin.json +1 -1
  42. package/generated/plugins/agdf/companion/assignment.mjs +65 -0
  43. package/generated/plugins/agdf/companion/companion.json +4 -0
  44. package/generated/plugins/agdf/companion/events.mjs +117 -0
  45. package/generated/plugins/agdf/companion/figure.mjs +137 -0
  46. package/generated/plugins/agdf/companion/gate-bar.mjs +36 -0
  47. package/generated/plugins/agdf/companion/hooks.json +3 -0
  48. package/generated/plugins/agdf/companion/localization.mjs +67 -0
  49. package/generated/plugins/agdf/companion/notice.mjs +92 -0
  50. package/generated/plugins/agdf/companion/persistence.mjs +36 -0
  51. package/generated/plugins/agdf/companion/register.mjs +630 -0
  52. package/generated/plugins/agdf/companion/run-state.mjs +97 -0
  53. package/generated/plugins/agdf/companion/state.mjs +22 -0
  54. package/generated/plugins/agdf/companion/view.mjs +129 -0
  55. package/generated/plugins/agdf/control/README.md +35 -109
  56. package/generated/plugins/agdf/control/planned-urs.md +95 -0
  57. package/generated/plugins/agdf/control/templates/BRAND.md +28 -0
  58. package/generated/plugins/agdf/control/templates/RUN_STATE.md +15 -64
  59. package/generated/plugins/agdf/control/templates/artefacts/PRD.md +11 -0
  60. package/generated/plugins/agdf/control/templates/artefacts/SD.md +4 -0
  61. package/generated/plugins/agdf/control/templates/artefacts/UR.md +1 -1
  62. package/generated/plugins/agdf/control/templates/artefacts/UX_INTENT_DEFINITION.md +1 -1
  63. package/generated/plugins/agdf/mcp/server/README.md +143 -7
  64. package/generated/plugins/agdf/mcp/server/package.json +12 -7
  65. package/generated/plugins/agdf/mcp/server/src/generation-entry.js +3 -85
  66. package/generated/plugins/agdf/mcp/server/src/generation-protocol.js +2 -44
  67. package/generated/plugins/agdf/mcp/server/src/generation-runtime.js +103 -0
  68. package/generated/plugins/agdf/mcp/server/src/generation-thread-entry.js +8 -0
  69. package/generated/plugins/agdf/mcp/server/src/generation.js +64 -20
  70. package/generated/plugins/agdf/mcp/server/src/main.js +43 -10
  71. package/generated/plugins/agdf/mcp/server/src/next-action.js +227 -0
  72. package/generated/plugins/agdf/mcp/server/src/prepared-call-transport.js +306 -0
  73. package/generated/plugins/agdf/mcp/server/src/safe-read-continuation.js +62 -0
  74. package/generated/plugins/agdf/mcp/server/src/server.js +159 -46
  75. package/generated/plugins/agdf/mcp/server/src/stdio-output.js +42 -0
  76. package/generated/plugins/agdf/mcp/server/src/worker-entry.js +2 -2
  77. package/generated/plugins/agdf/mcp/server/src/worker.js +53 -7
  78. package/generated/plugins/agdf/mcp/server/ui/cockpit.html +31 -31
  79. package/generated/plugins/agdf/mcp/server/ui/decision-manifest.json +3 -3
  80. package/generated/plugins/agdf/mcp/server/ui/decision.html +36 -36
  81. package/generated/plugins/agdf/mcp/server/ui/manifest.json +4 -4
  82. package/generated/plugins/agdf/meta/agdf-agent-router.md +3 -3
  83. package/generated/plugins/agdf/meta/agdf-defaults.json +9 -0
  84. package/generated/plugins/agdf/meta/agdf-defaults.schema.json +20 -0
  85. package/generated/plugins/agdf/meta/agdf-interaction-locales.json +2958 -2682
  86. package/generated/plugins/agdf/meta/agdf-mcp-capability.json +1 -1
  87. package/generated/plugins/agdf/meta/agdf-plugin.definition.json +8 -3
  88. package/generated/plugins/agdf/meta/contracts/closeout.md +1 -1
  89. package/generated/plugins/agdf/meta/contracts/control-scaffold.md +63 -46
  90. package/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +64 -48
  91. package/generated/plugins/agdf/meta/contracts/gate-transition.md +5 -6
  92. package/generated/plugins/agdf/meta/contracts/interaction.md +52 -129
  93. package/generated/plugins/agdf/meta/contracts/modes.md +9 -3
  94. package/generated/plugins/agdf/meta/contracts/prd-definition.md +46 -7
  95. package/generated/plugins/agdf/meta/contracts/quality.md +45 -2
  96. package/generated/plugins/agdf/meta/contracts/request-activation.md +14 -10
  97. package/generated/plugins/agdf/meta/contracts/sd-definition.md +49 -3
  98. package/generated/plugins/agdf/meta/contracts/task-target-resolution.md +24 -0
  99. package/generated/plugins/agdf/meta/contracts/tp-definition.md +9 -1
  100. package/generated/plugins/agdf/meta/contracts/ur-definition.md +50 -12
  101. package/generated/plugins/agdf/meta/copilot-payload-baseline.json +3 -3
  102. package/generated/plugins/agdf/meta/distribution-profile-history.json +14 -0
  103. package/generated/plugins/agdf/runtime/agdf-session-check.js +25 -21
  104. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-defaults.json +9 -0
  105. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-defaults.schema.json +20 -0
  106. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +2958 -2682
  107. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +8 -3
  108. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/closeout.md +1 -1
  109. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/control-scaffold.md +63 -46
  110. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +64 -48
  111. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-transition.md +5 -6
  112. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/interaction.md +52 -129
  113. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/modes.md +9 -3
  114. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/prd-definition.md +46 -7
  115. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/quality.md +45 -2
  116. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/request-activation.md +14 -10
  117. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/sd-definition.md +49 -3
  118. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/task-target-resolution.md +24 -0
  119. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/tp-definition.md +9 -1
  120. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/ur-definition.md +50 -12
  121. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/codex-document-command.js +195 -0
  122. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/command-registry.js +83 -148
  123. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/control-maintenance-command.js +8 -37
  124. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/parse-args.js +101 -16
  125. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/planned-command.js +55 -0
  126. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/project-read-command.js +64 -0
  127. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/run-command-aliases.js +116 -0
  128. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/runtime-context.js +1 -59
  129. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/validation-handlers.js +34 -103
  130. package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/git-observation.js +7 -5
  131. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/startup.js +2 -2
  132. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-decision-protocol.js +40 -0
  133. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-dispatch-runtime.js +95 -304
  134. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-entry.js +3 -24
  135. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-owner-entry.js +31 -15
  136. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-runtime.js +29 -0
  137. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-thread-entry.js +11 -0
  138. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/owner-client.js +79 -0
  139. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/package.js +21 -80
  140. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js +61 -13
  141. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/prepared-call-journal.js +269 -0
  142. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/thread-owner.js +164 -0
  143. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-owner-protocol.js +1 -0
  144. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-protocol-runtime.js +308 -0
  145. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-worker-runtime.js +155 -0
  146. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/control-command-service.js +22 -7
  147. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/control-context.js +8 -1
  148. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/validator-application.js +2 -2
  149. package/generated/plugins/agdf/runtime/create-agdf/package.json +5 -1
  150. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/companion/events.js +154 -0
  151. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/companion/figure-state.js +36 -0
  152. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/companion/journal.js +180 -0
  153. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/companion/run-view.js +184 -0
  154. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/acceptance-criteria.js +2 -0
  155. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/closeout-readiness.js +34 -8
  156. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-placeholder.js +9 -0
  157. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-readiness.js +2 -7
  158. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/definition-sources.js +3 -2
  159. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/delivery-map.js +2 -12
  160. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/doctor.js +162 -172
  161. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-check.js +54 -15
  162. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-inputs.js +13 -0
  163. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-pure.js +450 -0
  164. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy.js +3 -434
  165. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/next-action.js +2 -0
  166. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/parent-reconciliation.js +2 -1
  167. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/prd-readiness.js +7 -2
  168. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/qa-follow-up.js +2 -1
  169. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/report-decision.js +9 -0
  170. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/required-files.js +9 -7
  171. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state-policy.js +1 -1
  172. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state.js +15 -9
  173. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-step-policy.js +2 -1
  174. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-work-summary.js +6 -4
  175. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/shared-value.js +7 -0
  176. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/shared.js +5 -254
  177. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/tp-planning.js +3 -2
  178. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/traceability-readiness.js +57 -8
  179. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/ur-readiness.js +22 -4
  180. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/verified-change.js +11 -9
  181. 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
  182. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/artifact-readiness.js +10 -6
  183. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/authoring-inputs.js +195 -0
  184. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-archive.js +53 -0
  185. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-context.js +2 -1
  186. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-contract.js +11 -4
  187. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-list.d.ts +10 -6
  188. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-list.js +32 -41
  189. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-session.js +8 -8
  190. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-work.js +33 -0
  191. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit.js +72 -57
  192. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/contract.js +164 -32
  193. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/decision-session.js +53 -11
  194. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/doctor-observation.js +91 -0
  195. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/material-recording-calls.js +54 -0
  196. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/project-operation-call.js +5 -0
  197. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/project-state.js +49 -0
  198. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/result.js +61 -0
  199. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/run-classification.js +31 -0
  200. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/selection.js +15 -3
  201. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/service.js +148 -69
  202. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/compatibility.js +42 -132
  203. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/contract.js +5 -5
  204. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/presentation.js +27 -119
  205. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/service.js +9 -37
  206. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-pool.js +25 -9
  207. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-worker.js +4 -3
  208. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/doctor-reader.js +92 -0
  209. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/doctor-worker.js +11 -0
  210. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/fs.js +18 -0
  211. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/snapshot.js +68 -17
  212. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/aggregate.js +3 -1
  213. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command.js +13 -10
  214. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-operations.js +10 -7
  215. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-binding-proof.js +12 -20
  216. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-bindings.js +10 -7
  217. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/authoring-text-handoff.js +3 -0
  218. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/canonical-initialization.js +761 -0
  219. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/control-layout.js +183 -0
  220. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-action-contract.js +10 -1
  221. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-action-service.js +24 -3
  222. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-material-contract.js +2 -1
  223. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/evidence-bindings.js +7 -7
  224. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/git-identity.js +86 -0
  225. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/index.js +0 -1
  226. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/input-resolution.js +101 -0
  227. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/material-limits.js +4 -0
  228. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-entry.js +273 -0
  229. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-handoff.js +174 -0
  230. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-inventory.js +90 -0
  231. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-origin-reader.js +48 -0
  232. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-origin.js +40 -0
  233. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/prepared-control-calls.js +137 -0
  234. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-decision.js +12 -7
  235. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-delivery.js +93 -0
  236. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-render.js +5 -2
  237. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-review.js +3 -2
  238. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-snapshot.js +9 -6
  239. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/recording-formats.js +12 -16
  240. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-artefact-recording.js +54 -66
  241. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-closure.js +343 -0
  242. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-contract.js +40 -251
  243. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-schema.js +514 -0
  244. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-service.js +222 -34
  245. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-create-command.js +60 -0
  246. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-identity.d.ts +14 -0
  247. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-identity.js +42 -0
  248. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-input-resolution.js +72 -0
  249. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory-reader.js +33 -0
  250. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory.js +179 -0
  251. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-material.js +229 -0
  252. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-mutation.js +51 -0
  253. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-identity.js +2 -1
  254. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-proof.js +7 -4
  255. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-status.js +20 -4
  256. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operations.js +70 -13
  257. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-owned-outputs.js +21 -9
  258. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-envelope.js +25 -33
  259. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-render.js +92 -35
  260. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation.js +45 -21
  261. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recording.js +10 -179
  262. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-boundary.js +7 -21
  263. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-history.js +23 -16
  264. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision.js +120 -179
  265. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal-compute.js +19 -44
  266. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal.js +6 -1
  267. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-source-revisions.js +56 -35
  268. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-document.js +110 -42
  269. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-edits.js +13 -5
  270. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-parser.js +14 -6
  271. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-reader.js +37 -21
  272. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-repository.js +112 -48
  273. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-resolver.js +12 -15
  274. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-writer.js +21 -377
  275. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-pending.js +2 -1
  276. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-transaction.js +125 -114
  277. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-steps.js +142 -251
  278. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-store-inspection.js +14 -2
  279. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-verified-change.js +81 -0
  280. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-work-summary-shape.d.ts +1 -0
  281. 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
  282. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/delivery-continuation/service.js +5 -66
  283. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/delivery-path-search/persistence.js +26 -8
  284. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/delivery-path-search/state-adapter.js +1 -1
  285. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/index.js +16 -6
  286. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog-validation.js +6 -1
  287. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog.js +11 -3
  288. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-presentation.js +55 -12
  289. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-hints.js +75 -0
  290. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-resolution.js +98 -0
  291. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-schema.js +15 -0
  292. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-resource-contract.js +1 -1
  293. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-tool-errors.js +33 -15
  294. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/owned-file-lock.js +266 -0
  295. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/owner-placement.js +50 -0
  296. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/canonical-init-plan.js +34 -0
  297. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/configuration.js +92 -0
  298. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/context.js +7 -11
  299. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/language-preference.js +59 -0
  300. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/runtime/mcp-owner-protocol.js +102 -0
  301. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/runtime/plugin-provenance.js +180 -18
  302. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/compact-continuation.js +3 -3
  303. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/contract.js +34 -13
  304. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-intake.js +14 -6
  305. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +6 -10
  306. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/mcp-continuation.js +87 -0
  307. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/prd-definition.js +17 -7
  308. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/readiness-findings.js +7 -0
  309. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/sd-definition.js +6 -3
  310. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/service.js +66 -18
  311. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/tp-definition.js +6 -3
  312. package/generated/plugins/agdf/runtime/runtime-manifest.json +2 -2
  313. package/generated/plugins/agdf/scripts/check-runtime-integrity.mjs +62 -43
  314. package/generated/plugins/agdf/scripts/instruction-footprint.mjs +5 -5
  315. package/generated/plugins/agdf/skills/brownfield-analysis/SKILL.md +8 -5
  316. package/generated/plugins/agdf/skills/clean-implementation-review/SKILL.md +3 -2
  317. package/generated/plugins/agdf/skills/code-review/SKILL.md +5 -3
  318. package/generated/plugins/agdf/skills/delivery-closeout/SKILL.md +3 -2
  319. package/generated/plugins/agdf/skills/delivery-path-search/SKILL.md +3 -2
  320. package/generated/plugins/agdf/skills/gate-check/SKILL.md +35 -31
  321. package/generated/plugins/agdf/skills/prd-definition/SKILL.md +3 -2
  322. package/generated/plugins/agdf/skills/qa-gate/SKILL.md +3 -2
  323. package/generated/plugins/agdf/skills/release-or/SKILL.md +8 -5
  324. package/generated/plugins/agdf/skills/sd-definition/SKILL.md +3 -2
  325. package/generated/plugins/agdf/skills/task-plan-review/SKILL.md +3 -2
  326. package/generated/plugins/agdf/skills/tp-definition/SKILL.md +3 -2
  327. package/generated/plugins/agdf/skills/ur-definition/SKILL.md +12 -4
  328. package/generated/plugins/agdf/skills/ux-intent-definition/SKILL.md +36 -6
  329. package/generated/plugins/agdf/skills/ux-intent-definition/help.md +8 -1
  330. package/generated/plugins/agdf/submission/openai/availability.md +1 -1
  331. package/generated/plugins/agdf/submission/openai/capability-matrix.json +1 -1
  332. package/generated/plugins/agdf/submission/openai/release-notes.md +9 -1
  333. package/generated/plugins/agdf/submission/openai/reviewer-cases.json +1 -1
  334. package/generated/plugins/agdf-planning/.codex-plugin/plugin.json +40 -0
  335. package/generated/plugins/agdf-planning/README.md +21 -0
  336. package/generated/plugins/agdf-planning/assets/agdf-icon.svg +16 -0
  337. package/generated/plugins/agdf-planning/assets/agdf-logo.svg +16 -0
  338. package/generated/plugins/agdf-planning/meta/agdf-planning.definition.json +9 -0
  339. package/generated/plugins/agdf-planning/plugin.json +45 -0
  340. package/generated/plugins/agdf-planning/skills/planning/SKILL.md +56 -0
  341. package/generated/plugins/copilot/agdf/.agdf-payload-inventory.json +1028 -488
  342. package/generated/plugins/copilot/agdf/control/README.md +35 -109
  343. package/generated/plugins/copilot/agdf/control/planned-urs.md +95 -0
  344. package/generated/plugins/copilot/agdf/control/templates/BRAND.md +28 -0
  345. package/generated/plugins/copilot/agdf/control/templates/RUN_STATE.md +15 -64
  346. package/generated/plugins/copilot/agdf/control/templates/artefacts/PRD.md +11 -0
  347. package/generated/plugins/copilot/agdf/control/templates/artefacts/SD.md +4 -0
  348. package/generated/plugins/copilot/agdf/control/templates/artefacts/UR.md +1 -1
  349. package/generated/plugins/copilot/agdf/control/templates/artefacts/UX_INTENT_DEFINITION.md +1 -1
  350. package/generated/plugins/copilot/agdf/mcp/server/README.md +143 -7
  351. package/generated/plugins/copilot/agdf/mcp/server/package.json +12 -7
  352. package/generated/plugins/copilot/agdf/mcp/server/src/generation-entry.js +3 -85
  353. package/generated/plugins/copilot/agdf/mcp/server/src/generation-protocol.js +2 -44
  354. package/generated/plugins/copilot/agdf/mcp/server/src/generation-runtime.js +103 -0
  355. package/generated/plugins/copilot/agdf/mcp/server/src/generation-thread-entry.js +8 -0
  356. package/generated/plugins/copilot/agdf/mcp/server/src/generation.js +64 -20
  357. package/generated/plugins/copilot/agdf/mcp/server/src/main.js +43 -10
  358. package/generated/plugins/copilot/agdf/mcp/server/src/next-action.js +227 -0
  359. package/generated/plugins/copilot/agdf/mcp/server/src/prepared-call-transport.js +306 -0
  360. package/generated/plugins/copilot/agdf/mcp/server/src/safe-read-continuation.js +62 -0
  361. package/generated/plugins/copilot/agdf/mcp/server/src/server.js +159 -46
  362. package/generated/plugins/copilot/agdf/mcp/server/src/stdio-output.js +42 -0
  363. package/generated/plugins/copilot/agdf/mcp/server/src/worker-entry.js +2 -2
  364. package/generated/plugins/copilot/agdf/mcp/server/src/worker.js +53 -7
  365. package/generated/plugins/copilot/agdf/meta/agdf-agent-router.md +3 -3
  366. package/generated/plugins/copilot/agdf/meta/agdf-plugin.definition.json +8 -3
  367. package/generated/plugins/copilot/agdf/meta/distribution-profile-history.json +14 -0
  368. package/generated/plugins/copilot/agdf/plugin.json +1 -1
  369. package/generated/plugins/copilot/agdf/runtime/agdf-session-check.js +25 -21
  370. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-defaults.json +9 -0
  371. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-defaults.schema.json +20 -0
  372. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +2958 -2682
  373. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +8 -3
  374. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/closeout.md +1 -1
  375. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/control-scaffold.md +63 -46
  376. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +64 -48
  377. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-transition.md +5 -6
  378. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/interaction.md +52 -129
  379. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/modes.md +9 -3
  380. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/prd-definition.md +46 -7
  381. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/quality.md +45 -2
  382. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/request-activation.md +14 -10
  383. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/sd-definition.md +49 -3
  384. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/task-target-resolution.md +24 -0
  385. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/tp-definition.md +9 -1
  386. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/ur-definition.md +50 -12
  387. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/codex-document-command.js +195 -0
  388. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/command-registry.js +83 -148
  389. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/control-maintenance-command.js +8 -37
  390. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/parse-args.js +101 -16
  391. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/planned-command.js +55 -0
  392. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/project-read-command.js +64 -0
  393. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/run-command-aliases.js +116 -0
  394. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/runtime-context.js +1 -59
  395. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/validation-handlers.js +34 -103
  396. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-evaluation/git-observation.js +7 -5
  397. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/startup.js +2 -2
  398. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-decision-protocol.js +40 -0
  399. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-dispatch-runtime.js +95 -304
  400. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-entry.js +3 -24
  401. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-owner-entry.js +31 -15
  402. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-runtime.js +29 -0
  403. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-thread-entry.js +11 -0
  404. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/owner-client.js +79 -0
  405. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/package.js +21 -80
  406. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js +61 -13
  407. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/prepared-call-journal.js +269 -0
  408. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/thread-owner.js +164 -0
  409. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-owner-protocol.js +1 -0
  410. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-protocol-runtime.js +308 -0
  411. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-worker-runtime.js +155 -0
  412. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/control-command-service.js +22 -7
  413. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/control-context.js +8 -1
  414. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/validator-application.js +2 -2
  415. package/generated/plugins/copilot/agdf/runtime/create-agdf/package.json +5 -1
  416. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/companion/events.js +154 -0
  417. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/companion/figure-state.js +36 -0
  418. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/companion/journal.js +180 -0
  419. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/companion/run-view.js +184 -0
  420. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/acceptance-criteria.js +2 -0
  421. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/closeout-readiness.js +34 -8
  422. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-placeholder.js +9 -0
  423. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-readiness.js +2 -7
  424. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/definition-sources.js +3 -2
  425. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/delivery-map.js +2 -12
  426. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/doctor.js +162 -172
  427. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-check.js +54 -15
  428. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-inputs.js +13 -0
  429. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-pure.js +450 -0
  430. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy.js +3 -434
  431. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/next-action.js +2 -0
  432. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/parent-reconciliation.js +2 -1
  433. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/prd-readiness.js +7 -2
  434. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/qa-follow-up.js +2 -1
  435. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/report-decision.js +9 -0
  436. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/required-files.js +9 -7
  437. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state-policy.js +1 -1
  438. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state.js +15 -9
  439. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-step-policy.js +2 -1
  440. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-work-summary.js +6 -4
  441. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/shared-value.js +7 -0
  442. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/shared.js +5 -254
  443. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/tp-planning.js +3 -2
  444. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/traceability-readiness.js +57 -8
  445. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/ur-readiness.js +22 -4
  446. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/verified-change.js +11 -9
  447. 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
  448. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/artifact-readiness.js +10 -6
  449. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/authoring-inputs.js +195 -0
  450. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-archive.js +53 -0
  451. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/contract.js +164 -32
  452. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/doctor-observation.js +91 -0
  453. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/material-recording-calls.js +54 -0
  454. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/project-operation-call.js +5 -0
  455. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/project-state.js +49 -0
  456. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/result.js +61 -0
  457. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/run-classification.js +31 -0
  458. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/selection.js +15 -3
  459. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/service.js +148 -69
  460. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/compatibility.js +42 -132
  461. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/contract.js +5 -5
  462. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/presentation.js +27 -119
  463. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/service.js +9 -37
  464. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-pool.js +121 -0
  465. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/doctor-reader.js +92 -0
  466. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/doctor-worker.js +11 -0
  467. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/fs.js +18 -0
  468. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/snapshot.js +68 -17
  469. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/aggregate.js +3 -1
  470. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command.js +13 -10
  471. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-operations.js +10 -7
  472. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-binding-proof.js +12 -20
  473. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-bindings.js +10 -7
  474. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/authoring-text-handoff.js +3 -0
  475. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/canonical-initialization.js +761 -0
  476. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/control-layout.js +183 -0
  477. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-material-contract.js +2 -1
  478. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/evidence-bindings.js +7 -7
  479. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/git-identity.js +86 -0
  480. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/index.js +0 -1
  481. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/input-resolution.js +101 -0
  482. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/material-limits.js +4 -0
  483. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-entry.js +273 -0
  484. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-handoff.js +174 -0
  485. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-inventory.js +90 -0
  486. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-origin-reader.js +48 -0
  487. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-origin.js +40 -0
  488. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/prepared-control-calls.js +137 -0
  489. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-decision.js +12 -7
  490. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-delivery.js +93 -0
  491. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-render.js +5 -2
  492. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-review.js +3 -2
  493. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-snapshot.js +9 -6
  494. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/recording-formats.js +12 -16
  495. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-artefact-recording.js +54 -66
  496. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-closure.js +343 -0
  497. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-contract.js +40 -251
  498. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-schema.js +514 -0
  499. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-service.js +222 -34
  500. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-create-command.js +60 -0
  501. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-identity.d.ts +14 -0
  502. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-identity.js +42 -0
  503. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-input-resolution.js +72 -0
  504. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory-reader.js +33 -0
  505. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory.js +179 -0
  506. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-material.js +229 -0
  507. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-mutation.js +51 -0
  508. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-identity.js +2 -1
  509. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-proof.js +7 -4
  510. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-status.js +20 -4
  511. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operations.js +70 -13
  512. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-owned-outputs.js +21 -9
  513. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-envelope.js +25 -33
  514. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-render.js +92 -35
  515. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation.js +45 -21
  516. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recording.js +10 -179
  517. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-boundary.js +7 -21
  518. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-history.js +23 -16
  519. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision.js +120 -179
  520. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal-compute.js +19 -44
  521. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal.js +6 -1
  522. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-source-revisions.js +56 -35
  523. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-document.js +110 -42
  524. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-edits.js +13 -5
  525. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-parser.js +14 -6
  526. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-reader.js +37 -21
  527. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-repository.js +112 -48
  528. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-resolver.js +12 -15
  529. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-writer.js +21 -377
  530. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-pending.js +2 -1
  531. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-transaction.js +125 -114
  532. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-steps.js +142 -251
  533. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-store-inspection.js +14 -2
  534. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-verified-change.js +81 -0
  535. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-work-summary-shape.d.ts +1 -0
  536. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/{backlog-summary-shape.js → run-work-summary-shape.js} +7 -19
  537. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/delivery-continuation/service.js +5 -66
  538. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/delivery-path-search/persistence.js +26 -8
  539. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/delivery-path-search/state-adapter.js +1 -1
  540. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/index.js +16 -6
  541. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog-validation.js +6 -1
  542. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog.js +11 -3
  543. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-presentation.js +55 -12
  544. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-hints.js +75 -0
  545. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-resolution.js +98 -0
  546. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-schema.js +15 -0
  547. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-resource-contract.js +1 -1
  548. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-tool-errors.js +33 -15
  549. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/owned-file-lock.js +266 -0
  550. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/owner-placement.js +50 -0
  551. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/canonical-init-plan.js +34 -0
  552. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/configuration.js +92 -0
  553. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/context.js +7 -11
  554. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/language-preference.js +59 -0
  555. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/runtime/mcp-owner-protocol.js +102 -0
  556. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/runtime/plugin-provenance.js +180 -18
  557. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/compact-continuation.js +3 -3
  558. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/contract.js +34 -13
  559. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-intake.js +14 -6
  560. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +6 -10
  561. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/mcp-continuation.js +87 -0
  562. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/prd-definition.js +17 -7
  563. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/readiness-findings.js +7 -0
  564. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/sd-definition.js +6 -3
  565. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/service.js +66 -18
  566. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/tp-definition.js +6 -3
  567. package/generated/plugins/copilot/agdf/runtime/runtime-manifest.json +2 -2
  568. package/generated/plugins/copilot/agdf/skills/agdf-brownfield-analysis/SKILL.md +8 -5
  569. package/generated/plugins/copilot/agdf/skills/agdf-clean-implementation-review/SKILL.md +3 -2
  570. package/generated/plugins/copilot/agdf/skills/agdf-code-review/SKILL.md +5 -3
  571. package/generated/plugins/copilot/agdf/skills/agdf-delivery-closeout/SKILL.md +3 -2
  572. package/generated/plugins/copilot/agdf/skills/agdf-delivery-path-search/SKILL.md +3 -2
  573. package/generated/plugins/copilot/agdf/skills/agdf-gate-check/SKILL.md +35 -31
  574. package/generated/plugins/copilot/agdf/skills/agdf-interaction-locales.json +1 -1
  575. package/generated/plugins/copilot/agdf/skills/agdf-prd-definition/SKILL.md +3 -2
  576. package/generated/plugins/copilot/agdf/skills/agdf-qa-gate/SKILL.md +3 -2
  577. package/generated/plugins/copilot/agdf/skills/agdf-release-or/SKILL.md +8 -5
  578. package/generated/plugins/copilot/agdf/skills/agdf-sd-definition/SKILL.md +3 -2
  579. package/generated/plugins/copilot/agdf/skills/agdf-task-plan-review/SKILL.md +3 -2
  580. package/generated/plugins/copilot/agdf/skills/agdf-tp-definition/SKILL.md +3 -2
  581. package/generated/plugins/copilot/agdf/skills/agdf-ur-definition/SKILL.md +12 -4
  582. package/generated/plugins/copilot/agdf/skills/agdf-ux-intent-definition/SKILL.md +36 -6
  583. package/generated/plugins/copilot/agdf/skills/contracts/closeout.md +1 -1
  584. package/generated/plugins/copilot/agdf/skills/contracts/control-scaffold.md +63 -46
  585. package/generated/plugins/copilot/agdf/skills/contracts/gate-artifact-preparation.md +64 -48
  586. package/generated/plugins/copilot/agdf/skills/contracts/gate-transition.md +5 -6
  587. package/generated/plugins/copilot/agdf/skills/contracts/interaction.md +52 -129
  588. package/generated/plugins/copilot/agdf/skills/contracts/modes.md +9 -3
  589. package/generated/plugins/copilot/agdf/skills/contracts/prd-definition.md +46 -7
  590. package/generated/plugins/copilot/agdf/skills/contracts/quality.md +45 -2
  591. package/generated/plugins/copilot/agdf/skills/contracts/request-activation.md +14 -10
  592. package/generated/plugins/copilot/agdf/skills/contracts/sd-definition.md +49 -3
  593. package/generated/plugins/copilot/agdf/skills/contracts/task-target-resolution.md +24 -0
  594. package/generated/plugins/copilot/agdf/skills/contracts/tp-definition.md +9 -1
  595. package/generated/plugins/copilot/agdf/skills/contracts/ur-definition.md +50 -12
  596. package/generated/submissions/openai/agdf/.codex-plugin/plugin.json +1 -1
  597. package/generated/submissions/openai/agdf/meta/agdf-agent-router.md +3 -3
  598. package/generated/submissions/openai/agdf/meta/agdf-defaults.json +9 -0
  599. package/generated/submissions/openai/agdf/meta/agdf-defaults.schema.json +20 -0
  600. package/generated/submissions/openai/agdf/meta/agdf-interaction-locales.json +2958 -2682
  601. package/generated/submissions/openai/agdf/meta/agdf-plugin.definition.json +8 -3
  602. package/generated/submissions/openai/agdf/meta/contracts/closeout.md +1 -1
  603. package/generated/submissions/openai/agdf/meta/contracts/control-scaffold.md +63 -46
  604. package/generated/submissions/openai/agdf/meta/contracts/gate-artifact-preparation.md +64 -48
  605. package/generated/submissions/openai/agdf/meta/contracts/gate-transition.md +5 -6
  606. package/generated/submissions/openai/agdf/meta/contracts/interaction.md +52 -129
  607. package/generated/submissions/openai/agdf/meta/contracts/modes.md +9 -3
  608. package/generated/submissions/openai/agdf/meta/contracts/prd-definition.md +46 -7
  609. package/generated/submissions/openai/agdf/meta/contracts/quality.md +45 -2
  610. package/generated/submissions/openai/agdf/meta/contracts/request-activation.md +14 -10
  611. package/generated/submissions/openai/agdf/meta/contracts/sd-definition.md +49 -3
  612. package/generated/submissions/openai/agdf/meta/contracts/task-target-resolution.md +24 -0
  613. package/generated/submissions/openai/agdf/meta/contracts/tp-definition.md +9 -1
  614. package/generated/submissions/openai/agdf/meta/contracts/ur-definition.md +50 -12
  615. package/generated/submissions/openai/agdf/meta/copilot-payload-baseline.json +3 -3
  616. package/generated/submissions/openai/agdf/meta/distribution-profile-history.json +14 -0
  617. package/generated/submissions/openai/agdf/plugin.json +1 -1
  618. package/generated/submissions/openai/agdf/skills/brownfield-analysis/SKILL.md +8 -5
  619. package/generated/submissions/openai/agdf/skills/clean-implementation-review/SKILL.md +3 -2
  620. package/generated/submissions/openai/agdf/skills/code-review/SKILL.md +5 -3
  621. package/generated/submissions/openai/agdf/skills/delivery-closeout/SKILL.md +3 -2
  622. package/generated/submissions/openai/agdf/skills/delivery-path-search/SKILL.md +3 -2
  623. package/generated/submissions/openai/agdf/skills/gate-check/SKILL.md +35 -31
  624. package/generated/submissions/openai/agdf/skills/prd-definition/SKILL.md +3 -2
  625. package/generated/submissions/openai/agdf/skills/qa-gate/SKILL.md +3 -2
  626. package/generated/submissions/openai/agdf/skills/release-or/SKILL.md +8 -5
  627. package/generated/submissions/openai/agdf/skills/sd-definition/SKILL.md +3 -2
  628. package/generated/submissions/openai/agdf/skills/task-plan-review/SKILL.md +3 -2
  629. package/generated/submissions/openai/agdf/skills/tp-definition/SKILL.md +3 -2
  630. package/generated/submissions/openai/agdf/skills/ur-definition/SKILL.md +12 -4
  631. package/generated/submissions/openai/agdf/skills/ux-intent-definition/SKILL.md +36 -6
  632. package/generated/submissions/openai/agdf/skills/ux-intent-definition/help.md +8 -1
  633. package/generated/submissions/openai/agdf/submission/openai/availability.md +1 -1
  634. package/generated/submissions/openai/agdf/submission/openai/capability-matrix.json +1 -1
  635. package/generated/submissions/openai/agdf/submission/openai/inventory.json +50 -42
  636. package/generated/submissions/openai/agdf/submission/openai/listing.json +1 -1
  637. package/generated/submissions/openai/agdf/submission/openai/readiness.json +2 -2
  638. package/generated/submissions/openai/agdf/submission/openai/readiness.md +2 -2
  639. package/generated/submissions/openai/agdf/submission/openai/release-notes.md +9 -1
  640. package/generated/submissions/openai/agdf/submission/openai/reviewer-cases.json +1 -1
  641. package/lib/cli/application.js +31 -43
  642. package/lib/cli/codex-document-command.js +195 -0
  643. package/lib/cli/command-registry.js +83 -148
  644. package/lib/cli/control-maintenance-command.js +8 -37
  645. package/lib/cli/parse-args.js +101 -16
  646. package/lib/cli/planned-command.js +55 -0
  647. package/lib/cli/project-init-command.js +21 -0
  648. package/lib/cli/project-read-command.js +64 -0
  649. package/lib/cli/run-command-aliases.js +116 -0
  650. package/lib/cli/runtime-context.js +1 -59
  651. package/lib/cli/validation-handlers.js +34 -103
  652. package/lib/control-evaluation/git-observation.js +7 -5
  653. package/lib/control-maintenance/startup.js +2 -2
  654. package/lib/host-adapters/codex/plugin.js +48 -1
  655. package/lib/install-setup/contract.js +4 -4
  656. package/lib/install-setup/{control-migration.js → control-compatibility.js} +1 -2
  657. package/lib/install-setup/interaction.js +0 -1
  658. package/lib/install-setup/presentation.js +3 -4
  659. package/lib/install-setup/service.js +5 -18
  660. package/lib/installers/local-marketplace.js +262 -8
  661. package/lib/lifecycle/codex-startup-status.js +29 -0
  662. package/lib/lifecycle/presentation.js +6 -0
  663. package/lib/mcp-decision-protocol.js +40 -0
  664. package/lib/mcp-dispatch-runtime.js +95 -304
  665. package/lib/mcp-lifecycle/adapters/codex-origin-probe.js +28 -4
  666. package/lib/mcp-lifecycle/evidence.js +2 -1
  667. package/lib/mcp-lifecycle/facade-entry.js +3 -24
  668. package/lib/mcp-lifecycle/facade-owner-entry.js +31 -15
  669. package/lib/mcp-lifecycle/facade-runtime.js +29 -0
  670. package/lib/mcp-lifecycle/facade-thread-entry.js +11 -0
  671. package/lib/mcp-lifecycle/owner-client.js +79 -0
  672. package/lib/mcp-lifecycle/package.js +21 -80
  673. package/lib/mcp-lifecycle/plugin-runtime.js +61 -13
  674. package/lib/mcp-lifecycle/prepared-call-journal.js +269 -0
  675. package/lib/mcp-lifecycle/service.js +5 -4
  676. package/lib/mcp-lifecycle/thread-owner.js +164 -0
  677. package/lib/mcp-owner-protocol.js +1 -0
  678. package/lib/mcp-protocol-runtime.js +308 -0
  679. package/lib/mcp-worker-runtime.js +155 -0
  680. package/lib/runtime/control-command-service.js +22 -7
  681. package/lib/runtime/control-context.js +8 -1
  682. package/lib/runtime/validator-application.js +2 -2
  683. package/lib/scaffold/canonical-init.js +2 -691
  684. package/lib/scaffold/plan.js +11 -32
  685. package/lib/scaffold/presentation.js +2 -2
  686. package/lib/scaffold/write.js +6 -1
  687. package/package.json +6 -2
  688. package/runtime/core/lib/companion/events.js +154 -0
  689. package/runtime/core/lib/companion/figure-state.js +36 -0
  690. package/runtime/core/lib/companion/journal.js +180 -0
  691. package/runtime/core/lib/companion/run-view.js +184 -0
  692. package/runtime/core/lib/control-evaluation/acceptance-criteria.js +2 -0
  693. package/runtime/core/lib/control-evaluation/closeout-readiness.js +34 -8
  694. package/runtime/core/lib/control-evaluation/decision-content-placeholder.js +9 -0
  695. package/runtime/core/lib/control-evaluation/decision-content-readiness.js +2 -7
  696. package/runtime/core/lib/control-evaluation/definition-sources.js +3 -2
  697. package/runtime/core/lib/control-evaluation/delivery-map.js +2 -12
  698. package/runtime/core/lib/control-evaluation/doctor.js +162 -172
  699. package/runtime/core/lib/control-evaluation/gate-check.js +54 -15
  700. package/runtime/core/lib/control-evaluation/gate-policy-inputs.js +13 -0
  701. package/runtime/core/lib/control-evaluation/gate-policy-pure.js +450 -0
  702. package/runtime/core/lib/control-evaluation/gate-policy.js +3 -434
  703. package/runtime/core/lib/control-evaluation/next-action.js +2 -0
  704. package/runtime/core/lib/control-evaluation/parent-reconciliation.js +2 -1
  705. package/runtime/core/lib/control-evaluation/prd-readiness.js +7 -2
  706. package/runtime/core/lib/control-evaluation/qa-follow-up.js +2 -1
  707. package/runtime/core/lib/control-evaluation/report-decision.js +9 -0
  708. package/runtime/core/lib/control-evaluation/required-files.js +9 -7
  709. package/runtime/core/lib/control-evaluation/run-state-policy.js +1 -1
  710. package/runtime/core/lib/control-evaluation/run-state.js +15 -9
  711. package/runtime/core/lib/control-evaluation/run-step-policy.js +2 -1
  712. package/runtime/core/lib/control-evaluation/run-work-summary.js +6 -4
  713. package/runtime/core/lib/control-evaluation/shared-value.js +7 -0
  714. package/runtime/core/lib/control-evaluation/shared.js +5 -254
  715. package/runtime/core/lib/control-evaluation/tp-planning.js +3 -2
  716. package/runtime/core/lib/control-evaluation/traceability-readiness.js +57 -8
  717. package/runtime/core/lib/control-evaluation/ur-readiness.js +22 -4
  718. package/runtime/core/lib/control-evaluation/verified-change.js +11 -9
  719. 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
  720. package/runtime/core/lib/control-inspect/artifact-readiness.js +10 -6
  721. package/runtime/core/lib/control-inspect/authoring-inputs.js +195 -0
  722. package/runtime/core/lib/control-inspect/cockpit-archive.js +53 -0
  723. package/runtime/core/lib/control-inspect/cockpit-context.js +2 -1
  724. package/runtime/core/lib/control-inspect/cockpit-contract.js +11 -4
  725. package/runtime/core/lib/control-inspect/cockpit-list.d.ts +10 -6
  726. package/runtime/core/lib/control-inspect/cockpit-list.js +32 -41
  727. package/runtime/core/lib/control-inspect/cockpit-session.js +8 -8
  728. package/runtime/core/lib/control-inspect/cockpit-work.js +33 -0
  729. package/runtime/core/lib/control-inspect/cockpit.js +72 -57
  730. package/runtime/core/lib/control-inspect/contract.js +164 -32
  731. package/runtime/core/lib/control-inspect/decision-session.js +53 -11
  732. package/runtime/core/lib/control-inspect/doctor-observation.js +91 -0
  733. package/runtime/core/lib/control-inspect/material-recording-calls.js +54 -0
  734. package/runtime/core/lib/control-inspect/project-operation-call.js +5 -0
  735. package/runtime/core/lib/control-inspect/project-state.js +49 -0
  736. package/runtime/core/lib/control-inspect/result.js +61 -0
  737. package/runtime/core/lib/control-inspect/run-classification.js +31 -0
  738. package/runtime/core/lib/control-inspect/selection.js +15 -3
  739. package/runtime/core/lib/control-inspect/service.js +148 -69
  740. package/runtime/core/lib/control-maintenance/compatibility.js +42 -132
  741. package/runtime/core/lib/control-maintenance/contract.js +5 -5
  742. package/runtime/core/lib/control-maintenance/presentation.js +27 -119
  743. package/runtime/core/lib/control-maintenance/service.js +9 -37
  744. package/runtime/core/lib/control-read/cockpit-pool.js +25 -9
  745. package/runtime/core/lib/control-read/cockpit-worker.js +4 -3
  746. package/runtime/core/lib/control-read/doctor-reader.js +92 -0
  747. package/runtime/core/lib/control-read/doctor-worker.js +11 -0
  748. package/runtime/core/lib/control-read/fs.js +18 -0
  749. package/runtime/core/lib/control-read/snapshot.js +68 -17
  750. package/runtime/core/lib/control-state/aggregate.js +3 -1
  751. package/runtime/core/lib/control-state/approval-command.js +13 -10
  752. package/runtime/core/lib/control-state/approval-operations.js +10 -7
  753. package/runtime/core/lib/control-state/artefact-binding-proof.js +12 -20
  754. package/runtime/core/lib/control-state/artefact-bindings.js +10 -7
  755. package/runtime/core/lib/control-state/authoring-text-handoff.js +3 -0
  756. package/runtime/core/lib/control-state/canonical-initialization.js +761 -0
  757. package/runtime/core/lib/control-state/control-layout.js +183 -0
  758. package/runtime/core/lib/control-state/decision-action-contract.js +10 -1
  759. package/runtime/core/lib/control-state/decision-action-service.js +24 -3
  760. package/runtime/core/lib/control-state/decision-material-contract.js +2 -1
  761. package/runtime/core/lib/control-state/evidence-bindings.js +7 -7
  762. package/runtime/core/lib/control-state/git-identity.js +86 -0
  763. package/runtime/core/lib/control-state/index.js +0 -1
  764. package/runtime/core/lib/control-state/input-resolution.js +101 -0
  765. package/runtime/core/lib/control-state/material-limits.js +4 -0
  766. package/runtime/core/lib/control-state/planned-entry.js +273 -0
  767. package/runtime/core/lib/control-state/planned-handoff.js +174 -0
  768. package/runtime/core/lib/control-state/planned-inventory.js +90 -0
  769. package/runtime/core/lib/control-state/planned-origin-reader.js +48 -0
  770. package/runtime/core/lib/control-state/planned-origin.js +40 -0
  771. package/runtime/core/lib/control-state/prepared-control-calls.js +137 -0
  772. package/runtime/core/lib/control-state/presentation-decision.js +12 -7
  773. package/runtime/core/lib/control-state/presentation-delivery.js +93 -0
  774. package/runtime/core/lib/control-state/preview-render.js +5 -2
  775. package/runtime/core/lib/control-state/preview-review.js +3 -2
  776. package/runtime/core/lib/control-state/preview-snapshot.js +9 -6
  777. package/runtime/core/lib/control-state/recording-formats.js +12 -16
  778. package/runtime/core/lib/control-state/run-artefact-recording.js +54 -66
  779. package/runtime/core/lib/control-state/run-closure.js +343 -0
  780. package/runtime/core/lib/control-state/run-command-contract.js +40 -251
  781. package/runtime/core/lib/control-state/run-command-schema.js +514 -0
  782. package/runtime/core/lib/control-state/run-command-service.js +222 -34
  783. package/runtime/core/lib/control-state/run-create-command.js +60 -0
  784. package/runtime/core/lib/control-state/run-identity.d.ts +14 -0
  785. package/runtime/core/lib/control-state/run-identity.js +42 -0
  786. package/runtime/core/lib/control-state/run-input-resolution.js +72 -0
  787. package/runtime/core/lib/control-state/run-inventory-reader.js +33 -0
  788. package/runtime/core/lib/control-state/run-inventory.js +179 -0
  789. package/runtime/core/lib/control-state/run-material.js +229 -0
  790. package/runtime/core/lib/control-state/run-mutation.js +51 -0
  791. package/runtime/core/lib/control-state/run-operation-identity.js +2 -1
  792. package/runtime/core/lib/control-state/run-operation-proof.js +7 -4
  793. package/runtime/core/lib/control-state/run-operation-status.js +20 -4
  794. package/runtime/core/lib/control-state/run-operations.js +70 -13
  795. package/runtime/core/lib/control-state/run-owned-outputs.js +21 -9
  796. package/runtime/core/lib/control-state/run-presentation-envelope.js +25 -33
  797. package/runtime/core/lib/control-state/run-presentation-render.js +92 -35
  798. package/runtime/core/lib/control-state/run-presentation.js +45 -21
  799. package/runtime/core/lib/control-state/run-recording.js +10 -179
  800. package/runtime/core/lib/control-state/run-revision-boundary.js +7 -21
  801. package/runtime/core/lib/control-state/run-revision-history.js +23 -16
  802. package/runtime/core/lib/control-state/run-revision.js +120 -179
  803. package/runtime/core/lib/control-state/run-seal-compute.js +19 -44
  804. package/runtime/core/lib/control-state/run-seal.js +6 -1
  805. package/runtime/core/lib/control-state/run-source-revisions.js +56 -35
  806. package/runtime/core/lib/control-state/run-state-document.js +110 -42
  807. package/runtime/core/lib/control-state/run-state-edits.js +13 -5
  808. package/runtime/core/lib/control-state/run-state-parser.js +14 -6
  809. package/runtime/core/lib/control-state/run-state-reader.js +37 -21
  810. package/runtime/core/lib/control-state/run-state-repository.js +112 -48
  811. package/runtime/core/lib/control-state/run-state-resolver.js +12 -15
  812. package/runtime/core/lib/control-state/run-state-writer.js +21 -377
  813. package/runtime/core/lib/control-state/run-step-pending.js +2 -1
  814. package/runtime/core/lib/control-state/run-step-transaction.js +125 -114
  815. package/runtime/core/lib/control-state/run-steps.js +142 -251
  816. package/runtime/core/lib/control-state/run-store-inspection.js +14 -2
  817. package/runtime/core/lib/control-state/run-verified-change.js +81 -0
  818. package/runtime/core/lib/control-state/run-work-summary-shape.d.ts +1 -0
  819. 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
  820. package/runtime/core/lib/delivery-continuation/service.js +5 -66
  821. package/runtime/core/lib/delivery-path-search/persistence.js +26 -8
  822. package/runtime/core/lib/delivery-path-search/state-adapter.js +1 -1
  823. package/runtime/core/lib/index.js +16 -6
  824. package/runtime/core/lib/interaction-catalog-validation.js +6 -1
  825. package/runtime/core/lib/interaction-catalog.js +11 -3
  826. package/runtime/core/lib/interaction-presentation.js +55 -12
  827. package/runtime/core/lib/mcp-input-hints.js +75 -0
  828. package/runtime/core/lib/mcp-input-resolution.js +98 -0
  829. package/runtime/core/lib/mcp-input-schema.js +15 -0
  830. package/runtime/core/lib/mcp-resource-contract.js +1 -1
  831. package/runtime/core/lib/mcp-tool-errors.js +33 -15
  832. package/runtime/core/lib/owned-file-lock.js +266 -0
  833. package/runtime/core/lib/owner-placement.js +50 -0
  834. package/runtime/core/lib/resources/canonical-init-plan.js +34 -0
  835. package/runtime/core/lib/resources/configuration.js +92 -0
  836. package/runtime/core/lib/resources/context.js +7 -11
  837. package/runtime/core/lib/resources/language-preference.js +59 -0
  838. package/runtime/core/lib/runtime/mcp-owner-protocol.js +102 -0
  839. package/runtime/core/lib/runtime/plugin-provenance.js +180 -18
  840. package/runtime/core/lib/skill-dispatch/compact-continuation.js +3 -3
  841. package/runtime/core/lib/skill-dispatch/contract.js +34 -13
  842. package/runtime/core/lib/skill-dispatch/delivery-intake.js +14 -6
  843. package/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +6 -10
  844. package/runtime/core/lib/skill-dispatch/mcp-continuation.js +87 -0
  845. package/runtime/core/lib/skill-dispatch/prd-definition.js +17 -7
  846. package/runtime/core/lib/skill-dispatch/readiness-findings.js +7 -0
  847. package/runtime/core/lib/skill-dispatch/sd-definition.js +6 -3
  848. package/runtime/core/lib/skill-dispatch/service.js +66 -18
  849. package/runtime/core/lib/skill-dispatch/tp-definition.js +6 -3
  850. package/generated/.agdf/control/templates/AGDF_RUN.md +0 -139
  851. package/generated/.agdf/control/templates/MASTER_BACKLOG.md +0 -39
  852. package/generated/plugins/agdf/control/templates/AGDF_RUN.md +0 -139
  853. package/generated/plugins/agdf/control/templates/MASTER_BACKLOG.md +0 -39
  854. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/interaction.js +0 -28
  855. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/repair.js +0 -4
  856. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/service.js +0 -3
  857. package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-recovery.js +0 -5
  858. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-backlog.js +0 -135
  859. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/interaction.js +0 -57
  860. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/migration.js +0 -85
  861. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/repair.js +0 -226
  862. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.d.ts +0 -4
  863. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary.js +0 -67
  864. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-migration.js +0 -69
  865. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-projection-reader.js +0 -38
  866. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog-writer.js +0 -80
  867. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog.js +0 -90
  868. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recovery.js +0 -296
  869. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-relationship-correction.js +0 -74
  870. package/generated/plugins/copilot/agdf/control/templates/AGDF_RUN.md +0 -139
  871. package/generated/plugins/copilot/agdf/control/templates/MASTER_BACKLOG.md +0 -39
  872. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/interaction.js +0 -28
  873. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/repair.js +0 -4
  874. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/service.js +0 -3
  875. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-state/run-recovery.js +0 -5
  876. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/interaction.js +0 -57
  877. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/migration.js +0 -85
  878. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/repair.js +0 -226
  879. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.d.ts +0 -4
  880. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary.js +0 -67
  881. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-migration.js +0 -69
  882. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-projection-reader.js +0 -38
  883. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog-writer.js +0 -80
  884. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog.js +0 -90
  885. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recovery.js +0 -296
  886. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-relationship-correction.js +0 -74
  887. package/lib/control-maintenance/interaction.js +0 -28
  888. package/lib/control-maintenance/repair.js +0 -4
  889. package/lib/control-maintenance/service.js +0 -3
  890. package/lib/control-state/run-recovery.js +0 -5
  891. package/lib/install-setup/control-repair.js +0 -1
  892. package/runtime/core/lib/control-inspect/cockpit-backlog.js +0 -135
  893. package/runtime/core/lib/control-maintenance/interaction.js +0 -57
  894. package/runtime/core/lib/control-maintenance/migration.js +0 -85
  895. package/runtime/core/lib/control-maintenance/repair.js +0 -226
  896. package/runtime/core/lib/control-state/backlog-summary-shape.d.ts +0 -4
  897. package/runtime/core/lib/control-state/backlog-summary.js +0 -67
  898. package/runtime/core/lib/control-state/legacy-migration.js +0 -69
  899. package/runtime/core/lib/control-state/legacy-projection-reader.js +0 -38
  900. package/runtime/core/lib/control-state/run-backlog-writer.js +0 -80
  901. package/runtime/core/lib/control-state/run-backlog.js +0 -90
  902. package/runtime/core/lib/control-state/run-recovery.js +0 -296
  903. package/runtime/core/lib/control-state/run-relationship-correction.js +0 -74
@@ -0,0 +1,195 @@
1
+ import { MATERIAL_LIMITS } from '../control-state/material-limits.js';
2
+ import { AUTHORING_TEXT_HANDOFF } from '../control-state/authoring-text-handoff.js';
3
+ import { approvalSummaryAuthoringFormat } from '../control-state/run-presentation-render.js';
4
+ import { resolveArtifactPresentationLanguages } from '../resources/context.js';
5
+ import { runDocumentPath } from '../control-state/run-identity.js';
6
+ import { preparedCommandCall } from '../control-state/prepared-control-calls.js';
7
+ import { inspectArtefactRecordingMode } from '../control-state/run-artefact-recording.js';
8
+ import { readFileSync, statSync } from '../control-read/fs.js';
9
+ import { captureControlScope } from '../control-read/snapshot.js';
10
+ import { readRunState } from '../control-evaluation/run-state.js';
11
+ import { runSealState, artefactFileDigest, canonicalRunText } from '../control-state/run-seal.js';
12
+ import { containedRegularFile, hasSymlinkComponent } from '../control-state/contained-file.js';
13
+ import { operationContract } from '../control-state/run-command-contract.js';
14
+ import { resolveArtefactTemplatePath } from '../resources/artefact-templates.js';
15
+ import { digest, resolveControlCommandTarget } from '../control-state/approval-command-contract.js';
16
+ import { inspectDefinitionSources } from '../control-evaluation/definition-sources.js';
17
+ import { prdDefinitionEligible } from '../skill-dispatch/prd-definition.js';
18
+ import { evaluateGateCheck } from '../control-evaluation/gate-check.js';
19
+ import { inspectPlannedEntry, inspectPlannedSelection } from '../control-state/planned-entry.js';
20
+ import { assertPlannedNotTransferred } from '../control-state/planned-origin-reader.js';
21
+ import { parseControlState } from '../control-state/run-state-parser.js';
22
+ import { CLOSEOUT_AUTHORING_SCOPE, isCompletedStructuredCloseout } from './selection.js';
23
+
24
+ const templateId = gate => ({ UR: 'UR', PRD: 'PRD', SD: 'SD', TP: 'TP', QA: 'QA_REPORT', OR: 'OR',
25
+ 'Brownfield Review': 'BROWNFIELD_REVIEW', 'Brownfield Analysis': 'BROWNFIELD_REVIEW', 'Mode/Slice Decision': 'BROWNFIELD_REVIEW',
26
+ 'UX Intent Definition': 'UX_INTENT_DEFINITION', 'Verified Change Execution': 'VERIFIED_CHANGE' })[gate];
27
+
28
+ // One contained source projection plus the existing version-bound template owner.
29
+ // Its paged text is input, never a presentation, edit permission or review attestation.
30
+ export function inspectAuthoringInputs(root, input, { gitObservation } = {}) {
31
+ const unavailable = reason => ({ available: false, reason, authorizes: false });
32
+ try {
33
+ const scopedCloseout = input.authoring_scope === CLOSEOUT_AUTHORING_SCOPE;
34
+ const observeGit = () => ({ head: gitObservation.gitValue(root, ['rev-parse', 'HEAD']),
35
+ tracked: gitObservation.gitPathList(root, ['diff', 'HEAD', '--name-only']),
36
+ untracked: gitObservation.gitPathList(root, ['ls-files', '--others', '--exclude-standard']) });
37
+ let git;
38
+ const currentGit = () => git ??= observeGit();
39
+ const observedGit = !input.planning && gitObservation ? { gitValue: () => currentGit().head,
40
+ gitPathList: (_root, args) => args[0] === 'diff' ? currentGit().tracked : currentGit().untracked } : undefined;
41
+ const captured = captureControlScope(root, () => {
42
+ const languages = resolveArtifactPresentationLanguages(root, input.presentation_language);
43
+ if (input.planning) {
44
+ inspectPlannedSelection(root, input.planning, { presentationLanguage: input.presentation_language });
45
+ const creating = input.planning.expected_digest === null;
46
+ const entry = creating ? null : inspectPlannedEntry(root, input.planning.plan_id, { presentationLanguage: input.presentation_language });
47
+ if (!creating) assertPlannedNotTransferred(root, input.planning.plan_id);
48
+ const kind = creating ? 'planned_ur.create' : 'planned_ur.replace';
49
+ return { languages, gate: null, authoring_owner: 'UR', mode: 'planning', recording: { mode: creating ? 'create_planned' : 'replace_planned', kind },
50
+ next_operation: { type: 'author_planned_ur', skill_id: 'ur-definition', kind }, status: 'draft', blocking_reason: null,
51
+ sources: entry ? [{ type: 'UR', path: entry.path, status: 'draft', digest: entry.digest, content: entry.content }] : [] };
52
+ }
53
+ const state = readRunState(root, { runId: input.run_id, ignoreRunIdEnv: true });
54
+ if (state.resolution_error || state.meta?.revision_id !== input.expected_revision_id || runSealState(root, state.content).status !== 'valid') throw Error('authoring_binding_stale_or_invalid');
55
+ const evaluated = evaluateGateCheck(root, { runId: input.run_id, ignoreRunIdEnv: true, presentationLanguage: input.presentation_language }, observedGit);
56
+ const mode = state.mode_slice_decision?.decision;
57
+ if (scopedCloseout && !isCompletedStructuredCloseout(evaluated, mode)) throw Error('authoring_closeout_unavailable');
58
+ const protectedSources = parseControlState(state.content, { closeoutArtefacts: ['Planned UR Snapshot', 'Planned UR Origin'] }).artefacts;
59
+ const rows = [...new Map([...state.artefacts, ...protectedSources])].filter(([, r]) => r.path).map(([type, row]) => ({ type, ...row }));
60
+ if (rows.length > 32) throw Error('authoring_source_limit');
61
+ const selected = scopedCloseout ? rows.filter(row => row.type === 'OR' || row.type === 'QA') : rows;
62
+ if (scopedCloseout && selected.length !== 2) throw Error('authoring_closeout_unavailable');
63
+ const sources = selected.map(row => {
64
+ const path = row.path.replace(/^`|`$/gu, '');
65
+ if (!path.startsWith(`${runDocumentPath(input.run_id, '')}/`) || hasSymlinkComponent(root, path)) throw Error('authoring_source_unavailable');
66
+ const file = containedRegularFile(root, path);
67
+ if (file.status !== 'valid' || statSync(file.path).size > 131072) throw Error('authoring_source_unavailable');
68
+ const content = new TextDecoder('utf-8', { fatal: true }).decode(readFileSync(file.path));
69
+ return { type: row.type, path, status: row.status, digest: artefactFileDigest(root, path), content };
70
+ });
71
+ if (scopedCloseout) return { languages, gate: evaluated.current_gate, mode, status: evaluated.status,
72
+ blocking_reason: evaluated.blocking_reason, next_operation: evaluated.next_operation, sources };
73
+ // Match dispatch's initial UX prerequisite route as well as source reassessment.
74
+ // Reuse its eligibility and contained-source facts; inspection grants no repair permission.
75
+ const prdEligible = prdDefinitionEligible(evaluated, { ...input, skill_id: 'prd-definition' });
76
+ const uxRequired = prdEligible && inspectDefinitionSources(root, state, input.run_id, 'PRD', ['UR', 'Brownfield Review']).issue?.repairable;
77
+ const nextOperation = uxRequired ? { type: 'reassess_source_analysis', skill_id: 'ux-intent-definition', analysis: 'UX Intent Definition' } : evaluated.next_operation;
78
+ return { languages, gate: evaluated.current_gate, authoring_owner: nextOperation?.type === 'record_closeout' ? 'OR'
79
+ : nextOperation?.analysis ?? nextOperation?.internal_step ?? nextOperation?.gate ?? evaluated.current_gate,
80
+ recording: inspectArtefactRecordingMode(state, evaluated.current_gate), mode, next_operation: nextOperation, status: evaluated.status,
81
+ blocking_reason: evaluated.blocking_reason, sources };
82
+ });
83
+ const data = captured.data, ids = scopedCloseout ? [] : [data.gate === 'OR' && data.mode === 'verified_change' ? 'VERIFIED_CHANGE' : templateId(data.authoring_owner),
84
+ ...(['Brownfield Review', 'Mode/Slice Decision'].includes(data.gate) ? ['VERIFIED_CHANGE'] : [])].filter(Boolean);
85
+ const templates = ids.map(id => {
86
+ const path = resolveArtefactTemplatePath(id);
87
+ if (statSync(path).size > 131072) throw Error('authoring_template_limit');
88
+ const content = new TextDecoder('utf-8', { fatal: true }).decode(readFileSync(path));
89
+ return { role: 'template', type: id, digest: digest(canonicalRunText(content)), content, source: 'version_matched_plugin' };
90
+ });
91
+ const sources = data.sources.map(s => ({ role: 'source', ...s }));
92
+ const currentDraft = sources.find(source => source.type === data.authoring_owner);
93
+ // The source being corrected must not move behind unrelated, growing sources.
94
+ // Keep the legacy template-first view; bundles put the current source first.
95
+ const documents = input.bundle && currentDraft
96
+ ? [currentDraft, ...templates, ...sources.filter(source => source !== currentDraft)]
97
+ : [...templates, ...sources];
98
+ if (documents.length > 32) throw Error('authoring_source_limit');
99
+ const manifest = digest(JSON.stringify({ target_id: resolveControlCommandTarget(root).target_id, run_id: input.run_id,
100
+ ...(input.planning ? { planning: input.planning } : {}),
101
+ ...(scopedCloseout ? { authoring_scope: input.authoring_scope } : {}),
102
+ revision_id: input.expected_revision_id, languages: data.languages, ...(input.bundle ? { bundle: 2 } : {}), gate: data.gate, authoring_owner: data.authoring_owner, recording: data.recording, documents: documents.map(({ content, ...r }) => r) })).slice(7);
103
+ const chunks = [];
104
+ for (const document of documents) {
105
+ const { content, ...metadata } = document, bytes = Buffer.from(content);
106
+ if (input.bundle && !bytes.length) chunks.push({ ...metadata, content: '', byte_start: 0, byte_end: 0, total_bytes: 0 });
107
+ for (let start = 0; start < bytes.length;) {
108
+ let end = Math.min(start + 16384, bytes.length);
109
+ while (end < bytes.length && (bytes[end] & 0xc0) === 0x80) end--;
110
+ let chunk;
111
+ for (;;) {
112
+ chunk = { ...metadata, content: bytes.subarray(start, end).toString('utf8'), byte_start: start, byte_end: end, total_bytes: bytes.length };
113
+ if (!input.bundle || Buffer.byteLength(JSON.stringify([chunk])) <= 48128) break;
114
+ end = start + Math.floor((end - start) / 2);
115
+ while (end > start && (bytes[end] & 0xc0) === 0x80) end--;
116
+ if (end <= start) throw Error('authoring_metadata_limit');
117
+ }
118
+ chunks.push(chunk);
119
+ start = end;
120
+ }
121
+ }
122
+ const pages = [];
123
+ if (input.bundle) {
124
+ for (const chunk of chunks) {
125
+ const last = pages.at(-1);
126
+ if (!last || Buffer.byteLength(JSON.stringify([...last, chunk])) > 48128) pages.push([chunk]);
127
+ else last.push(chunk);
128
+ }
129
+ }
130
+ const selection = input.bundle ? pages : chunks;
131
+ const prefix = `${manifest}:`;
132
+ if (input.cursor !== undefined && (!input.cursor.startsWith(prefix) || !/^(0|[1-9][0-9]*)$/u.test(input.cursor.slice(prefix.length)))) throw Error('authoring_cursor_stale_or_invalid');
133
+ const index = input.cursor === undefined ? 0 : Number(input.cursor.slice(prefix.length));
134
+ if (!Number.isSafeInteger(index) || index < 0 || index >= Math.max(selection.length, 1)) throw Error('authoring_cursor_stale_or_invalid');
135
+ if (git && JSON.stringify(observeGit()) !== JSON.stringify(git)) throw Error('authoring_binding_stale_or_invalid');
136
+ captured.view.revalidate();
137
+ const grouped = new Map();
138
+ for (const part of pages[index] ?? []) {
139
+ const key = JSON.stringify([part.role, part.type, part.path, part.digest]);
140
+ const prior = grouped.get(key);
141
+ if (prior) {
142
+ if (prior.byte_end !== part.byte_start) throw Error('authoring_fragment_order_invalid');
143
+ prior.content += part.content; prior.byte_end = part.byte_end;
144
+ } else grouped.set(key, { ...part });
145
+ }
146
+ const documentRows = [...grouped.values()].map(row => ({ ...row, complete: row.byte_start === 0 && row.byte_end === row.total_bytes }));
147
+ const documentPage = { documents: documentRows.filter(row => row.complete), fragments: documentRows.filter(row => !row.complete) };
148
+ if (input.bundle && Buffer.byteLength(JSON.stringify(documentPage)) > 49152) throw Error('authoring_page_limit');
149
+ const pageCall = page => ({ tool: 'agdf_inspect', arguments: { operation: 'authoring-inputs',
150
+ ...Object.fromEntries(['presentation_language', 'working_directory', 'primary_target', 'target_source', 'target_id',
151
+ 'run_id', 'expected_revision_id', 'planning', 'bundle', 'authoring_scope'].filter(key => input[key] !== undefined).map(key => [key, input[key]])),
152
+ cursor: `${prefix}${page}` } });
153
+ const nextPage = index + 1 < selection.length ? pageCall(index + 1) : null;
154
+ if (scopedCloseout) return { available: true, ...data.languages, run_id: input.run_id, revision_id: input.expected_revision_id,
155
+ gate: data.gate, mode: data.mode, status: data.status, blocking_reason: data.blocking_reason, next_operation: data.next_operation,
156
+ authoring_scope: input.authoring_scope, manifest_digest: `sha256:${manifest}`,
157
+ document_manifest: documents.map(({ content, ...metadata }) => metadata), format: 'document_bundle_v2',
158
+ ...documentPage, page_bytes_limit: 49152, page_index: index, page_count: Math.max(selection.length, 1),
159
+ complete: !nextPage, next_cursor: nextPage?.arguments.cursor ?? null, next_calls: nextPage ? [nextPage] : [], authorizes: false };
160
+ const draftRow = currentDraft && documentRows.find(row => row.role === 'source' && row.type === currentDraft.type && row.path === currentDraft.path && row.digest === currentDraft.digest);
161
+ const draftPage = input.bundle && currentDraft ? pages.findIndex(page => page.some(row => row.role === 'source'
162
+ && row.type === currentDraft.type && row.path === currentDraft.path && row.digest === currentDraft.digest && row.byte_start === 0)) : -1;
163
+ const registeredUr = data.authoring_owner === 'UR' && data.sources.some(source => source.type === 'UR' && source.path);
164
+ const formats = input.planning ? operationContract('agdf_record', data.recording.kind)
165
+ : registeredUr ? operationContract('agdf_revise', 'ur_draft.replace', { gate: 'UR' }) : data.authoring_owner === 'OR' ? operationContract('agdf_closeout', 'closeout.record')
166
+ : operationContract('agdf_record', ['PRD', 'SD', 'TP', 'QA'].includes(data.authoring_owner) ? 'artefact.record' : 'step.record', { gate: data.authoring_owner });
167
+ const summaryFormat = approvalSummaryAuthoringFormat(data.authoring_owner, currentDraft?.content ?? '', data.languages);
168
+ return { available: true, ...data.languages, run_id: input.run_id, revision_id: input.expected_revision_id, gate: data.gate, mode: data.mode,
169
+ ...(input.planning ? { planning: input.planning, canonical_skill: 'ur-definition' } : {}),
170
+ authoring_owner: data.authoring_owner, recording: data.recording,
171
+ ...(summaryFormat ? { approval_summary_format: summaryFormat } : {}),
172
+ ...(!input.planning && index === 0 ? { material_call: preparedCommandCall('agdf_record', 'material.stage',
173
+ { ...input, target_id: resolveControlCommandTarget(root).target_id }, { gate: data.authoring_owner }) } : {}),
174
+ status: data.status, blocking_reason: data.blocking_reason, next_operation: data.next_operation,
175
+ manifest_digest: `sha256:${manifest}`, ...(input.bundle ? { document_manifest: documents.map(({ content, ...r }) => r) } : { documents: documents.map(({ content, ...r }) => r) }),
176
+ ...(input.bundle ? { format: 'document_bundle_v2', ...documentPage, page_bytes_limit: 49152,
177
+ page_index: index, page_count: Math.max(selection.length, 1),
178
+ first_page_call: pageCall(0),
179
+ current_draft: currentDraft ? { type: currentDraft.type, path: currentDraft.path, status: currentDraft.status, digest: currentDraft.digest,
180
+ content_state: draftRow?.complete ? 'complete' : draftRow ? 'fragment' : 'not_on_page',
181
+ ...(draftPage >= 0 && (!draftRow || draftRow.byte_start > 0) ? { read_call: pageCall(draftPage) } : {}),
182
+ instruction: 'Metadata only, never document text or edit permission. Use the matching complete report.documents row. For a fragment, join matching report.fragments by byte offsets across next_calls before editing. If not_on_page or earlier fragment bytes were not retained, copy read_call.arguments unchanged to read its first page.' } : null }
183
+ : { chunk: chunks[index] ?? null }), complete: index + 1 >= selection.length,
184
+ next_cursor: index + 1 < selection.length ? `${prefix}${index + 1}` : null,
185
+ next_calls: nextPage ? [{ ...nextPage, instruction: 'Copy arguments unchanged to read the next page of this manifest. Retain earlier bytes; repeat until complete before editing a fragmented source. No JavaScript cloning or source/path discovery is needed.' }] : [],
186
+ // The writer contract is identical on every page of one manifest; later pages only name it.
187
+ formats: index === 0 ? input.bundle ? (({ schema, result_schema, ...authoring }) => authoring)(formats) : formats : { schema_version: formats.schema_version, available: formats.available, group: formats.group, kind: formats.kind,
188
+ omitted: 'identical to the first page of this manifest' },
189
+ material_transport: { tool: 'agdf_record', kind: input.planning ? 'planned_material.stage' : 'material.stage', limits: { request_bytes: 65536, inline_file_bytes: MATERIAL_LIMITS.inline, part_bytes: MATERIAL_LIMITS.part, source_bytes: MATERIAL_LIMITS.file },
190
+ instructions: (input.bundle
191
+ ? 'MCP access: response.structuredContent.report (or JSON.parse(response.content[0].text).report). Read complete report.documents[].content; report.document_manifest and current_draft are metadata only. The registered current draft is prioritized; inspect current_draft.content_state before looking for its complete document. Join report.fragments by identity and byte offsets across all next_calls pages before editing. Absent content is an error, never the string undefined. Copy call.arguments unchanged and supply only authored content in the named fields; no JavaScript helper is required. Preserve bundle:true. '
192
+ : 'MCP access: response.structuredContent.report (or JSON.parse(response.content[0].text).report). This legacy view puts text in report.chunk.content; report.documents is metadata only. Follow every next_cursor with this exact binding, or request bundle:true for fewer round trips. ')
193
+ + 'The included formats and bound forms replace a second operation-contract read. Retain unchanged sources for this manifest. Prefer material_call: put takes exact UTF-8 <=48 KiB per file within the 64 KiB JSON request bound and seals once. Use returned recording_calls, adding only required author/review inputs. Larger files use multipart; each action has its own UUID. Follow next_calls exactly. No file/path discovery or shell hashing. ' + AUTHORING_TEXT_HANDOFF }, authorizes: false };
194
+ } catch (e) { return unavailable(e.code ?? e.message); }
195
+ }
@@ -0,0 +1,53 @@
1
+ // Cockpit reads only this current archive format. Old control parsers stay offline.
2
+ import { createHash } from 'node:crypto';
3
+ import { join, posix } from 'node:path';
4
+ import { existsSync, readFileSync } from '../control-read/fs.js';
5
+ import { fail, READ_LIMITS } from '../control-read/snapshot.js';
6
+ export const ARCHIVE_INDEX = '.agdf/control/archive/INDEX.json';
7
+ export const ARCHIVE_SCHEMA = 'cockpit-archive/1';
8
+ const hash = bytes => 'sha256:' + createHash('sha256').update(bytes).digest('hex');
9
+ const safe = path => typeof path === 'string' && path.length < 4096 && !/[\\\u0000-\u001f:]/u.test(path)
10
+ && !path.startsWith('/') && path.split('/').every(p => p && p !== '.' && p !== '..');
11
+ const plain = value => value && typeof value === 'object' && !Array.isArray(value);
12
+ const text = value => typeof value === 'string' && value.length <= 8192;
13
+ export function readCockpitArchive(root) {
14
+ if (!existsSync(join(root, ARCHIVE_INDEX))) return null;
15
+ const bytes = readFileSync(join(root, ARCHIVE_INDEX));
16
+ let index; try { index = JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(bytes)); } catch { fail('archive_invalid'); }
17
+ validateCockpitArchive(index);
18
+ return { ...index, digest: hash(bytes) };
19
+ }
20
+ export function validateCockpitArchive(index) {
21
+ if (!plain(index) || index.schema !== ARCHIVE_SCHEMA || index.authorizes !== false || !/^sha256:[a-f0-9]{64}$/u.test(index.source_digest)
22
+ || !Array.isArray(index.entries) || index.entries.length > 4096) fail('archive_invalid');
23
+ if (Buffer.byteLength(JSON.stringify(index)) > READ_LIMITS.file) fail('resource_limit');
24
+ const keys = new Set(), paths = new Set(); let files = 0;
25
+ for (const run of index.entries) {
26
+ if (!plain(run) || !text(run.id) || keys.has(run.id) || !text(run.title) || !['run', 'artefacts', 'project'].includes(run.entry_kind) || ![run.recorded_lifecycle, run.recorded_gate, run.source_control_version].every(v => v === null || text(v))
27
+ || !Array.isArray(run.recorded_approvals) || run.recorded_approvals.length > 64 || !run.recorded_approvals.every(a => plain(a) && ['gate', 'status', 'evidence'].every(k => text(a[k])))
28
+ || !Array.isArray(run.documents) || run.documents.length > READ_LIMITS.files) fail('archive_invalid');
29
+ keys.add(run.id);
30
+ for (const doc of run.documents) {
31
+ if (!plain(doc) || !safe(doc.path) || !doc.path.startsWith('.agdf/control/archive/source/') || (!text(doc.original_path) || !doc.original_path.startsWith('.agdf/control/'))
32
+ || paths.has(doc.path) || !/^sha256:[a-f0-9]{64}$/u.test(doc.digest) || !Number.isSafeInteger(doc.bytes) || doc.bytes < 0) fail('archive_invalid');
33
+ paths.add(doc.path); if (++files > READ_LIMITS.files) fail('resource_limit');
34
+ }
35
+ }
36
+ return index;
37
+ }
38
+ export function archiveRows(index) {
39
+ return index ? index.entries.map(run => ({ kind: 'archive', identity: `archive/${run.id}`, section: 'archive', key: run.id,
40
+ original_key: run.id, title: run.title, stored_status: `Archiviert · damaliger Stand: ${run.recorded_lifecycle ?? 'Unbekannt'}`,
41
+ scope: 'Altbestandsarchiv · nur lesen', priority: null, stored_next_step: 'Archiv ansehen',
42
+ source_links: ARCHIVE_INDEX, current_spec: null, source: { path: ARCHIVE_INDEX, digest: index.digest },
43
+ coverage: 'archived', actions: ['read_archive'], handoff_ready: false, selectable: true, authorizes: false })) : [];
44
+ }
45
+ export function readArchiveDocument(root, doc) {
46
+ const bytes = readFileSync(join(root, doc.path));
47
+ if (bytes.length !== doc.bytes || hash(bytes) !== doc.digest) fail('source_changed');
48
+ if (bytes.length > READ_LIMITS.preview || !['md', 'json', 'txt', 'log', 'patch'].includes(posix.extname(doc.path).slice(1).toLowerCase()))
49
+ return { available: false, reason: 'document_unsupported', path: doc.original_path, digest: doc.digest, bytes: doc.bytes };
50
+ let content; try { content = new TextDecoder('utf-8', { fatal: true }).decode(bytes); if (content.includes('\0')) throw Error(); }
51
+ catch { return { available: false, reason: 'document_unsupported', path: doc.original_path, digest: doc.digest, bytes: doc.bytes }; }
52
+ return { available: true, path: doc.original_path, digest: doc.digest, bytes: doc.bytes, content };
53
+ }
@@ -85,7 +85,8 @@ export function composeCockpitPacket(metadata, document, context, input) {
85
85
  const selected = input.graph_ids.map(id => registrations.get(id));
86
86
  if (selected.some(ref => ref.state !== 'available')) fail('resource_denied');
87
87
  if (context.references.some(ref => ref.state !== 'available' && !input.excluded_ids.includes(ref.resource_id))) fail('context_exclusion_required');
88
- const packet = { ...metadata, context_id: randomUUID(), generation: input.generation,
88
+ // Context packets keep their independent published format when the reader envelope evolves.
89
+ const packet = { ...metadata, schema_version: '1', context_id: randomUUID(), generation: input.generation,
89
90
  prepared_at: new Date().toISOString(), artefact: document,
90
91
  graph_nodes: selected,
91
92
  included: [{ resource_id: document.resource.resource_id, path: document.resource.path }, ...selected.map(ref => ({ resource_id: ref.resource_id, node_id: ref.node_id, origin: ref.origin }))],
@@ -1,24 +1,30 @@
1
+ import { RUN_ID_PATTERN } from '../control-state/run-identity.js';
1
2
  // One wire-schema owner for the bounded cockpit connection. No filesystem selectors.
2
3
  import { COCKPIT_UI_URI } from '../mcp-resource-contract.js';
4
+ import { READ_SESSION_CAPACITY } from '../control-read/cockpit-pool.js';
3
5
  export { COCKPIT_UI_URI, DECISION_UI_URI } from '../mcp-resource-contract.js';
4
6
  export const COCKPIT_MIME = 'text/html;profile=mcp-app';
5
7
  export const COCKPIT_LIMITS = Object.freeze({ html: 4 * 1024 ** 2, idle: 30 * 60_000, lifetime: 8 * 60 * 60_000,
6
- sessions: 4, capture: 64 * 1024 ** 2, workerOldGeneration: 256 });
8
+ sessions: READ_SESSION_CAPACITY, capture: 64 * 1024 ** 2, workerOldGeneration: 256 });
7
9
  const id = { type: 'string', format: 'uuid' };
8
- const run = { type: 'string', pattern: '^[A-Za-z0-9_-]{1,128}$' };
10
+ const run = { type: 'string', pattern: RUN_ID_PATTERN.source };
9
11
  function operation(name, fields = {}, optional = []) {
10
12
  const properties = { operation: { const: name }, session_id: id, ...fields };
11
13
  return { type: 'object', additionalProperties: false, properties, required: Object.keys(properties).filter(key => !optional.includes(key)) };
12
14
  }
13
15
  export const COCKPIT_READ_SCHEMA = Object.freeze({ oneOf: [
14
- operation('snapshot', { run_id: run }, ['run_id']),
15
- operation('backlog_titles', { snapshot_id: id, row_ids: { type: 'array', minItems: 1, maxItems: 12, uniqueItems: true, items: id } }),
16
+ operation('snapshot', { run_id: run, view: { type: 'string', enum: ['runs'] } }, ['run_id', 'view']),
17
+ operation('archive', { snapshot_id: id, row_id: id, resource_id: id }, ['resource_id']),
18
+ operation('planned', { snapshot_id: id, row_id: id }),
16
19
  operation('run', { snapshot_id: id, run_id: run }),
17
20
  operation('artifact_readiness', { snapshot_id: id, run_id: run, gate: { type: 'string', enum: ['UR', 'PRD', 'SD', 'TP'] }, expected_revision_id: id }),
18
21
  operation('document', { snapshot_id: id, run_id: run, resource_id: id }),
19
22
  operation('preview', { snapshot_id: id, run_id: run, resource_id: id }),
20
23
  operation('freshness', { snapshot_id: id }),
21
24
  operation('changes', { snapshot_id: id }),
25
+ operation('decision_display', { owner_epoch: id, nonce: id, surface_id: id,
26
+ document_digest: { type: 'string', pattern: '^sha256:[a-f0-9]{64}$' }, visible: { const: true } }),
27
+ operation('decision_state'),
22
28
  operation('context', { snapshot_id: id, run_id: run }),
23
29
  operation('prepare_context', { snapshot_id: id, run_id: run, revision_id: id, resource_id: id,
24
30
  graph_ids: { type: 'array', maxItems: 16, uniqueItems: true, items: id },
@@ -69,6 +75,7 @@ export function parseCockpitArguments(value, render = false) {
69
75
  if (typeof value.run_id !== 'string' || !new RegExp(run.pattern).test(value.run_id)) return reject();
70
76
  return { run_id: value.run_id };
71
77
  }
78
+ if (value.operation === 'snapshot' && Object.hasOwn(value, 'run_id') && Object.hasOwn(value, 'view')) return reject();
72
79
  const branch = COCKPIT_READ_SCHEMA.oneOf.find(row => row.properties.operation.const === value.operation);
73
80
  if (!branch || Object.keys(value).some(key => !Object.hasOwn(branch.properties, key)) || branch.required.some(key => !Object.hasOwn(value, key))) return reject();
74
81
  const valid = (item, rule) => {
@@ -1,17 +1,21 @@
1
- export const COCKPIT_BACKLOG_SECTIONS: readonly ['Active Backlog', 'Planned / Parking Lot', 'Completed / Superseded Pointers'];
2
- export interface ListEntry { section: string; key: string; title: string; stored_status: string; selectable: boolean }
1
+ export const COCKPIT_WORK_SECTIONS: readonly ['active', 'planned', 'completed', 'archive'];
2
+ export interface ListEntry { section: string; key: string; title: string; stored_status: string; selectable: boolean; identity: string; source: { path: string; digest: string | null } }
3
3
  export interface ListDiagnostic { code: string; section?: string; key?: string | null }
4
4
  export interface ListInventory<T extends ListEntry = ListEntry, D extends ListDiagnostic = ListDiagnostic> {
5
- entries: T[]; diagnostics: D[]; counts: Record<string, number>; content_digest: string; source_path: string;
5
+ entries: T[]; diagnostics: D[]; counts: Record<string, number>; content_digest: string; source_path: string; layout?: string;
6
6
  }
7
7
  export interface CockpitListRow<T extends ListEntry = ListEntry> {
8
8
  entry: T; index: number; identity: string; selectable: boolean; displayTitle: string;
9
- provenance: { path: string; digest: string; originalTitle: string };
9
+ provenance: { path: string; digest: string | null; originalTitle: string };
10
10
  }
11
11
  export interface CockpitList<T extends ListEntry = ListEntry, D extends ListDiagnostic = ListDiagnostic> {
12
12
  section: string; query: string; coverage: 'complete' | 'partial' | 'unavailable'; diagnostics: D[];
13
13
  sectionCount: number | null; matchCount: number | null; rows: CockpitListRow<T>[];
14
14
  }
15
- export function hasConsistentBacklogCounts(inventory: unknown): boolean;
16
- export function backlogRowKey(entry: ListEntry, index: number, digest: string): string;
15
+ export function hasConsistentWorkCounts(inventory: unknown): boolean;
17
16
  export function projectCockpitList<T extends ListEntry, D extends ListDiagnostic>(inventory: ListInventory<T, D> | null, options?: { section?: string; query?: string }): CockpitList<T, D>;
17
+
18
+ export interface RunListEntry { valid: boolean; lifecycle: string | null; run_id: string; title: string; attention: { label: string } }
19
+ export function projectCockpitRuns<T extends RunListEntry>(inventory: { runs: T[]; state: string }, options?: { section?: string; query?: string }): {
20
+ rows: T[]; sectionCount: number; matchCount: number; coverage: 'complete' | 'partial' | 'unavailable';
21
+ };
@@ -1,45 +1,36 @@
1
- // Pure internal Core policy shared by Node readers and browser list presentations.
2
- // Raw entries and opaque selectors remain in source order and are never modified here.
3
- export const COCKPIT_BACKLOG_SECTIONS = Object.freeze([
4
- 'Active Backlog', 'Planned / Parking Lot', 'Completed / Superseded Pointers',
5
- ]);
6
- const unreadableLayout = /^(backlog_(section_missing|layout_missing|layout_unsupported)|AGDF_BACKLOG_LAYOUT_UNKNOWN)$/;
7
-
8
- export function hasConsistentBacklogCounts(inventory) {
9
- if (!inventory || !Array.isArray(inventory.entries) || !inventory.counts || typeof inventory.counts !== 'object') return false;
10
- const actual = new Map();
11
- for (const row of inventory.entries) {
12
- if (!row || !COCKPIT_BACKLOG_SECTIONS.includes(row.section)) return false;
13
- actual.set(row.section, (actual.get(row.section) ?? 0) + 1);
14
- }
15
- return Object.entries(inventory.counts).every(([section, count]) => COCKPIT_BACKLOG_SECTIONS.includes(section)
16
- && Number.isSafeInteger(count) && count >= 0 && count === (actual.get(section) ?? 0))
17
- && [...actual.keys()].every(section => Object.hasOwn(inventory.counts, section));
1
+ // Pure current-model list policy shared by Core and the browser.
2
+ export const COCKPIT_WORK_SECTIONS = Object.freeze(['active', 'planned', 'completed', 'archive']);
3
+ export function hasConsistentWorkCounts(inventory) {
4
+ if (!inventory || inventory.layout !== 'run-folders-v1' || !Array.isArray(inventory.entries)
5
+ || !inventory.counts || typeof inventory.counts !== 'object' || Object.keys(inventory.counts).length !== COCKPIT_WORK_SECTIONS.length) return false;
6
+ return COCKPIT_WORK_SECTIONS.every(section => Number.isSafeInteger(inventory.counts[section])
7
+ && inventory.counts[section] === inventory.entries.filter(row => row?.section === section).length)
8
+ && inventory.entries.every(row => row && COCKPIT_WORK_SECTIONS.includes(row.section));
18
9
  }
19
-
20
- export function backlogRowKey(entry, index, digest) {
21
- return JSON.stringify([digest, index, entry.section, entry.key]);
10
+ export function projectCockpitList(inventory, { section = 'active', query = '' } = {}) {
11
+ if (!COCKPIT_WORK_SECTIONS.includes(section)) throw Error('dto_invalid');
12
+ const normalized = query.trim().toLowerCase();
13
+ if (!inventory) return { section, query: normalized, coverage: 'unavailable', diagnostics: [], sectionCount: null, matchCount: 0, rows: [] };
14
+ if (!hasConsistentWorkCounts(inventory)) throw Error('dto_invalid');
15
+ const diagnostics = inventory.diagnostics.filter(row => !row.section || row.section === section);
16
+ if (diagnostics.some(row => row.code === 'work_section_unavailable')) return { section, query: normalized, coverage: 'unavailable', diagnostics, sectionCount: null, matchCount: null, rows: [] };
17
+ const selected = inventory.entries.map((entry, index) => ({ entry, index })).filter(row => row.entry.section === section);
18
+ const rows = selected.filter(({ entry }) => !normalized || [entry.title, entry.key, entry.stored_status]
19
+ .some(value => value.toLowerCase().includes(normalized))).map(({ entry, index }) => ({ entry, index,
20
+ identity: JSON.stringify([entry.identity, entry.source.digest]), selectable: entry.selectable, displayTitle: entry.title.replace(/^\[(framework[-_]maintenance|external[-_]delivery)\]\s*/i, '') || entry.title,
21
+ provenance: { path: entry.source.path, digest: entry.source.digest, originalTitle: entry.title } }));
22
+ return { section, query: normalized, coverage: diagnostics.length || selected.some(row => !row.entry.selectable) ? 'partial' : 'complete',
23
+ diagnostics, sectionCount: selected.length, matchCount: rows.length, rows };
22
24
  }
23
25
 
24
- export function projectCockpitList(inventory, { section = COCKPIT_BACKLOG_SECTIONS[0], query = '' } = {}) {
25
- if (!COCKPIT_BACKLOG_SECTIONS.includes(section)) throw Error('dto_invalid');
26
- const normalizedQuery = query.trim().toLowerCase();
27
- const unavailable = { section, query: normalizedQuery, coverage: 'unavailable', diagnostics: [], sectionCount: null, matchCount: null, rows: [] };
28
- if (!inventory) return unavailable;
29
- if (!hasConsistentBacklogCounts(inventory)) throw Error('dto_invalid');
30
- const diagnostics = inventory.diagnostics.filter(d => !d.section || d.section === section);
31
- if (!Object.hasOwn(inventory.counts, section) || diagnostics.some(d => unreadableLayout.test(d.code))) return { ...unavailable, diagnostics };
32
- const rows = [];
33
- let sectionCount = 0, nonselectable = false;
34
- inventory.entries.forEach((entry, index) => {
35
- if (entry.section !== section) return;
36
- sectionCount++;
37
- nonselectable ||= !entry.selectable;
38
- if (normalizedQuery && ![entry.title, entry.key, entry.stored_status].some(field => field.toLowerCase().includes(normalizedQuery))) return;
39
- rows.push({ entry, index, identity: backlogRowKey(entry, index, inventory.content_digest), selectable: entry.selectable,
40
- displayTitle: entry.title.replace(/^\[(framework[-_]maintenance|external[-_]delivery)\]\s*/i, '') || entry.title,
41
- provenance: { path: inventory.source_path, digest: inventory.content_digest, originalTitle: entry.title } });
42
- });
43
- return { section, query: normalizedQuery, coverage: diagnostics.length || nonselectable ? 'partial' : 'complete', diagnostics,
44
- sectionCount, matchCount: rows.length, rows: rows.reverse() };
26
+ // Presentation-only grouping/search over the shared inventory's already ordered entries.
27
+ export function projectCockpitRuns(inventory, { section = 'active', query = '' } = {}) {
28
+ if (!['active', 'completed'].includes(section)) throw Error('dto_invalid');
29
+ const normalized = query.trim().toLowerCase();
30
+ const entries = inventory.runs.filter(run => section === 'active'
31
+ ? !run.valid || run.lifecycle === 'active' : run.valid && run.lifecycle !== 'active');
32
+ const rows = entries.filter(run => !normalized || [run.title, run.run_id, run.attention.label]
33
+ .some(value => value.toLowerCase().includes(normalized)));
34
+ return { rows, sectionCount: entries.length, matchCount: rows.length,
35
+ coverage: inventory.state === 'complete' ? 'complete' : inventory.state === 'absent' ? 'unavailable' : 'partial' };
45
36
  }
@@ -10,13 +10,13 @@ import { COCKPIT_LIMITS, parseCockpitArguments, parsePluginCockpitArguments } fr
10
10
 
11
11
  // One connection owns bounded independent read views. Retiring workers still occupy slots.
12
12
  export function createCockpitSessionService(root, {
13
- poolFactory = viewRoot => new ReadWorkerPool(viewRoot, { limits: { total: COCKPIT_LIMITS.capture },
14
- maxOldGenerationSizeMb: COCKPIT_LIMITS.workerOldGeneration }), now = Date.now, pluginMode = false,
13
+ budget, poolFactory = viewRoot => new ReadWorkerPool(viewRoot, { limits: { total: COCKPIT_LIMITS.capture },
14
+ maxOldGenerationSizeMb: COCKPIT_LIMITS.workerOldGeneration, budget }), now = Date.now, pluginMode = false,
15
15
  } = {}) {
16
16
  const target = pluginMode ? null : { target_id: resolveControlCommandTarget(root).target_id, display_path: root };
17
17
  const sessions = new Map();
18
18
  let closed = false, renderGeneration = 0, publication = null;
19
- const failure = (code, viewTarget = target) => ({ schema_version: '1', target: viewTarget, snapshot_id: null, observed_as_of: null,
19
+ const failure = (code, viewTarget = target) => ({ schema_version: '2', target: viewTarget, snapshot_id: null, observed_as_of: null,
20
20
  source_digest: null, state: 'blocked', code, retryable: code !== 'session_expired', data: null, authorizes: false });
21
21
  function losePublication(session) {
22
22
  if (publication?.session_id !== session.id) return;
@@ -153,7 +153,7 @@ export function createCockpitSessionService(root, {
153
153
  if (active(session.id) !== session || generation !== session.generation) return fail('session_expired');
154
154
  touch(session); return result;
155
155
  }
156
- if (input.operation === 'backlog_titles' && input.row_ids.some(id => !session.rows.has(id))) return fail('resource_denied');
156
+ if (['planned', 'archive'].includes(input.operation) && !session.rows.has(input.row_id)) return fail('resource_denied');
157
157
  if (['document', 'prepare_context'].includes(input.operation)
158
158
  && session.documents.get(input.resource_id) !== `${input.snapshot_id}:${input.run_id}`) return fail('resource_denied');
159
159
  if (['context', 'artifact_readiness'].includes(input.operation) && input.run_id !== session.run_id) return fail('resource_denied');
@@ -171,14 +171,14 @@ export function createCockpitSessionService(root, {
171
171
  if (publication.phase !== 'prepared') return fail('context_superseded');
172
172
  }
173
173
  if (input.operation === 'artifact_readiness' && publication) return fail(publication.phase === 'uncertain' ? 'context_cleanup_uncertain' : 'busy');
174
- const replacement = ['snapshot', 'backlog_titles', 'run', 'document', 'context', 'artifact_readiness'].includes(input.operation);
175
- if (['backlog_titles', 'run', 'document', 'context', 'artifact_readiness'].includes(input.operation)) {
174
+ const replacement = ['snapshot', 'run', 'document', 'context', 'artifact_readiness'].includes(input.operation);
175
+ if (['run', 'document', 'context', 'artifact_readiness'].includes(input.operation)) {
176
176
  discardPacket(session); ++session.generation; session.documents.clear(); session.snapshot = null; session.draft = null;
177
177
  }
178
178
  generation = session.generation;
179
179
  if (replacement) session.rows.clear();
180
180
  const result = await session.pool.request({ operation: input.operation, snapshot: input.snapshot_id,
181
- selector: ['run', 'context'].includes(input.operation) ? input.run_id : input.resource_id, input }, signal);
181
+ selector: ['planned', 'archive'].includes(input.operation) ? input.row_id : ['run', 'context'].includes(input.operation) ? input.run_id : input.resource_id, input }, signal);
182
182
  if (active(session.id) !== session || generation !== session.generation) return fail('session_expired');
183
183
  const response = { ...result, authorizes: false };
184
184
  if (Buffer.byteLength(JSON.stringify(response), 'utf8') > READ_LIMITS.response) throw new ControlReadError('resource_limit');
@@ -190,7 +190,7 @@ export function createCockpitSessionService(root, {
190
190
  }
191
191
  if (!['resource_denied', 'context_superseded', 'busy', 'context_cleanup_uncertain'].includes(result.code)) touch(session);
192
192
  if (replacement && result.snapshot_id) session.snapshot = result.snapshot_id;
193
- if (replacement && result.data?.kind === 'backlog') for (const row of result.data.entries) session.rows.add(row.row_id);
193
+ if (replacement && result.data?.kind === 'work') for (const row of result.data.entries) session.rows.add(row.row_id);
194
194
  if (replacement) { session.run_id = result.data?.run?.run_id ?? null; session.draft = result.data?.run?.draft_check?.source ?? null; }
195
195
  if (replacement && result.data?.run?.resources) for (const resource of result.data.run.resources) {
196
196
  session.documents.set(resource.resource_id, `${result.snapshot_id}:${result.data.run.run_id}`);
@@ -0,0 +1,33 @@
1
+ import { readCockpitArchive, archiveRows } from './cockpit-archive.js';
2
+ import { readWorkInventory } from '../control-state/planned-inventory.js';
3
+ import { digest, canonicalJson } from '../control-state/approval-command-contract.js';
4
+ import { COCKPIT_WORK_SECTIONS as sections } from './cockpit-list.js';
5
+
6
+ // Compatibility DTO for the existing list/session protocol. The explicit layout
7
+ // discriminator changes policy: order and per-row source identity come from Core,
8
+ // never a Markdown table, stored rank, or adapter-specific lifecycle database.
9
+ export function projectCockpitWork(root) {
10
+ const inventory = readWorkInventory(root, { language: 'de' });
11
+ if (inventory.state === 'unavailable') return { state: 'error', code: 'work_inventory_unavailable', data: null };
12
+ const entries = inventory.entries.map(row => {
13
+ const planned = row.kind === 'planned';
14
+ const section = planned ? sections[1] : row.lifecycle === 'active' || row.lifecycle === null ? sections[0] : sections[2];
15
+ const key = planned ? row.plan_id : row.run_id;
16
+ return { kind: row.kind, identity: row.identity, section, key, original_key: key, title: row.title,
17
+ stored_status: planned ? ({ ready: 'Bereit zur Übergabe', draft: 'UR in Klärung', recovery_required: 'Wiederherstellung erforderlich', unconfirmed: 'Zuordnung ungeklärt', unavailable: 'Quelle nicht verfügbar' })[row.coverage]
18
+ : row.attention.label, scope: planned ? 'UR-Planung' : 'Run', priority: row.priority ?? null,
19
+ stored_next_step: planned ? row.actions.join(' · ') : row.next_action ?? '', source_links: row.source.path,
20
+ current_spec: null, source: row.source, coverage: row.coverage, actions: row.actions,
21
+ handoff_ready: planned ? row.handoff_ready : false, planning_origins: row.planning_origins ?? [],
22
+ selectable: planned ? row.source.digest !== null && row.coverage !== 'unavailable' : row.valid, authorizes: false };
23
+ });
24
+ let archive = null;
25
+ try { archive = readCockpitArchive(root); } catch (error) { inventory.findings.push({ code: error.code ?? 'archive_invalid', section: 'archive' }); inventory.state = 'partial'; }
26
+ entries.push(...archiveRows(archive));
27
+ return { state: inventory.state === 'partial' ? 'partial' : entries.length ? 'available' : 'empty',
28
+ code: inventory.state === 'partial' ? 'work_inventory_partial' : null,
29
+ data: { kind: 'work', layout: 'run-folders-v1', entries, diagnostics: inventory.findings,
30
+ source_path: '.agdf/control/', content_digest: digest(canonicalJson(inventory)).slice(7),
31
+ counts: Object.fromEntries(sections.map(section => [section, entries.filter(row => row.section === section).length])),
32
+ planning_references: inventory.planning_references, authorizes: false } };
33
+ }