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
@@ -1,135 +0,0 @@
1
- import { join } from 'node:path';
2
- import { createHash } from 'node:crypto';
3
- import { existsSync, readFileSync } from '../control-read/fs.js';
4
- import { markdownSection, parseBacklogSection, tableRows, cleanStatusCell, markdownLink, resolvedBacklogLinkTarget } from '../control-evaluation/shared.js';
5
- import { isSafeControlRelativePath } from '../control-state/contained-file.js';
6
- import { READ_LIMITS, fail } from '../control-read/snapshot.js';
7
- import { COCKPIT_BACKLOG_SECTIONS } from './cockpit-list.js';
8
- import { decodeBacklogMarker, savedBacklogSummary } from '../control-state/backlog-summary.js';
9
-
10
- const SOURCE = '.agdf/control/MASTER_BACKLOG.md';
11
- const decoder = new TextDecoder('utf-8', { fatal: true, ignoreBOM: true });
12
- const headings = COCKPIT_BACKLOG_SECTIONS;
13
- const completedHeader = ['key', 'work item', 'status', 'record', 'outcome'];
14
- const canonicalCompletedHeader = ['key', 'work item', 'final status', 'historical record', 'outcome'];
15
-
16
- // A stored pointer projection. It never resolves Runs, evaluates gates or follows links.
17
- export function projectCockpitBacklog(root) {
18
- const path = join(root, SOURCE);
19
- if (!existsSync(path)) return { state: 'missing', code: 'backlog_missing', data: null };
20
- const bytes = readFileSync(path);
21
- if (bytes.length > READ_LIMITS.preview) fail('resource_limit');
22
- let source;
23
- try { source = decoder.decode(bytes); if (source.includes('\0')) throw Error(); }
24
- catch { return { state: 'unsupported', code: 'backlog_unsupported', data: null }; }
25
- const entries = [], diagnostics = [], counts = {};
26
- const markers = source.split('\n').map(decodeBacklogMarker).filter(Boolean);
27
- const diagnostic = (code, section, key = null) => diagnostics.push({ code, path: SOURCE, section, key });
28
- for (const section of headings) {
29
- const content = markdownSection(source, section), rows = tableRows(content);
30
- if (!new RegExp(`^## ${section.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}\\s*$`, 'm').test(source)) {
31
- diagnostic('backlog_section_missing', section); counts[section] = 0; continue;
32
- }
33
- if (!rows.length) { diagnostic('backlog_layout_missing', section); counts[section] = 0; continue; }
34
- const completed = section === headings[2];
35
- const normalized = rows[0].map(cell => cell.toLowerCase().trim());
36
- let pointers = [];
37
- if (completed) {
38
- if (![completedHeader.join('|'), canonicalCompletedHeader.join('|')].includes(normalized.join('|'))) {
39
- diagnostic('backlog_layout_unsupported', section); counts[section] = 0; continue;
40
- }
41
- } else {
42
- const findings = [];
43
- pointers = parseBacklogSection(content, findings, SOURCE);
44
- diagnostics.push(...findings.map(row => ({ ...row, section })));
45
- if (findings.some(row => row.code === 'AGDF_BACKLOG_LAYOUT_UNKNOWN')) { counts[section] = 0; continue; }
46
- }
47
- const width = rows[0].length;
48
- let pointerIndex = 0;
49
- for (const cells of rows.slice(1).filter(row => row.some(Boolean))) {
50
- const pointer = completed ? null : pointers[pointerIndex++];
51
- const compact = width === 7;
52
- const key = cleanStatusCell(cells[completed ? 0 : 1] ?? '');
53
- const malformed = cells.length !== width || !key || !(cells[completed ? 1 : 2] ?? '').trim();
54
- if (malformed) diagnostic('backlog_row_malformed', section, key);
55
- const saved_summary = savedBacklogSummary(root, section, cells, markers);
56
- if (saved_summary.code) diagnostic(saved_summary.code, section, key);
57
- entries.push({ section, key, original_key: cells[completed ? 0 : 1] ?? '',
58
- title: cells[completed ? 1 : 2] ?? '', stored_status: cells[completed ? 2 : 3] ?? '',
59
- scope: pointer?.scope ?? '', priority: completed ? null : cells[0] ?? '',
60
- stored_next_step: completed ? cells[4] ?? '' : cells[compact ? 6 : 12] ?? '',
61
- source_links: completed ? cells[3] ?? '' : compact ? cells[4] ?? '' : cells.slice(4, 11).join(' · '),
62
- current_spec: completed ? null : cells[compact ? 5 : 11] ?? '',
63
- normalized_pointer: pointer, saved_summary,
64
- selectable: !malformed && /^[A-Za-z0-9_-]{1,128}$/.test(key) });
65
- }
66
- counts[section] = entries.filter(row => row.section === section).length;
67
- }
68
- const seen = new Map();
69
- for (const entry of entries) {
70
- if (seen.has(entry.key)) {
71
- diagnostic('backlog_key_duplicate', entry.section, entry.key);
72
- entry.selectable = false; seen.get(entry.key).selectable = false;
73
- } else seen.set(entry.key, entry);
74
- }
75
- return { state: diagnostics.length ? 'partial' : entries.length ? 'available' : 'empty',
76
- code: diagnostics.length ? 'backlog_partial' : null,
77
- data: { kind: 'backlog', entries, diagnostics, source_path: SOURCE,
78
- content_digest: createHash('sha256').update(bytes).digest('hex'), counts } };
79
- }
80
-
81
- export function backlogUrSource(row) {
82
- const paths = new Set();
83
- for (const match of `${row.source_links} · ${row.current_spec ?? ''}`.matchAll(/\[UR\]\([^)]+\)/gi)) {
84
- const link = markdownLink(match[0]);
85
- const path = link && resolvedBacklogLinkTarget(link.target);
86
- if (!path || /[%#?\0]/.test(link.target) || !isSafeControlRelativePath(path)
87
- || !path.startsWith('.agdf/control/artefacts/') || !/\.md$/i.test(path)) return { path: null, code: 'resource_denied' };
88
- paths.add(path);
89
- }
90
- return paths.size === 1 ? { path: [...paths][0], code: null }
91
- : { path: null, code: paths.size ? 'ur_link_ambiguous' : 'ur_link_missing' };
92
- }
93
-
94
- // Passive Markdown heading extraction for list presentation only. No evaluator changes.
95
- export function backlogUrHeading(content) {
96
- let fence = null, comment = false, front = false, previous = '';
97
- const lines = content.replace(/^\uFEFF/, '').split(/\r?\n/);
98
- for (let i = 0; i < lines.length; i++) {
99
- let line = lines[i];
100
- if (i === 0 && line.trim() === '---') { front = true; continue; }
101
- if (front) { if (/^(---|\.\.\.)\s*$/.test(line)) front = false; continue; }
102
- if (comment) { const end = line.indexOf('-->'); if (end < 0) continue; line = line.slice(end + 3); comment = false; }
103
- const block = line.match(/^ {0,3}(`{3,}|~{3,})/);
104
- if (fence) { if (new RegExp(`^ {0,3}${fence[0]}{${fence.length},}\\s*$`).test(line)) fence = null; continue; }
105
- if (block) { fence = block[1]; previous = ''; continue; }
106
- while (line.includes('<!--')) {
107
- const start = line.indexOf('<!--'), end = line.indexOf('-->', start + 4);
108
- if (end < 0) { line = line.slice(0, start); comment = true; previous = ''; break; }
109
- line = line.slice(0, start) + line.slice(end + 3);
110
- }
111
- const atx = line.match(/^ {0,3}#(?:[ \t]+(.*)|$)/);
112
- if (atx) return (atx[1] ?? '').replace(/[ \t]+#+[ \t]*$/, '').trim();
113
- if (previous && /^ {0,3}=+\s*$/.test(line)) return previous;
114
- const paragraph = line.trim() && !/^(?:\s{4}|\t)|^ {0,3}(?:[#>|]|[-+*]\s|\d+[.)]\s|[-*_]{3,}\s*$)/.test(line);
115
- previous = paragraph ? (previous ? previous + '\n' : '') + line.trim() : '';
116
- }
117
- return '';
118
- }
119
-
120
- export function projectBacklogUrTitle(root, view, row, backlogDigest) {
121
- const source = backlogUrSource(row);
122
- const observation = { state: 'unavailable', code: source.code, path: source.path, heading: null, title: null,
123
- content_digest: null, observed_as_of: view.observed_as_of, backlog_digest: backlogDigest };
124
- if (!source.path) return observation;
125
- const read = view.readOptionalFileSync(join(root, source.path), READ_LIMITS.preview);
126
- if (read.code) return { ...observation, code: read.code };
127
- let content;
128
- try { content = decoder.decode(read.bytes); if (content.includes('\0')) throw Error(); }
129
- catch { return { ...observation, code: 'document_unsupported' }; }
130
- const heading = backlogUrHeading(content), title = heading.replace(/^UR:\s*/i, '').trim();
131
- if (!title) return { ...observation, code: 'ur_heading_missing' };
132
- if ([...heading].length > 512 || Buffer.byteLength(heading, 'utf8') > 2048) return { ...observation, code: 'resource_limit' };
133
- return { ...observation, state: 'available', code: null, heading, title,
134
- content_digest: createHash('sha256').update(read.bytes).digest('hex') };
135
- }
@@ -1,57 +0,0 @@
1
- import { interactionLocales } from "../resources/context.js";
2
- import { localePack } from "../interaction-presentation.js";
3
- import { renderMaintenanceOffer, renderControlMigrationDecision, renderControlRepairOffer, renderControlRepairPlan } from "./presentation.js";
4
-
5
- export async function selectControlMaintenance(control, {
6
- readChoice, write = () => {}, registry = interactionLocales, language = "en",
7
- } = {}) {
8
- if (typeof readChoice !== "function") throw new Error("AGDF_MAINTENANCE_INTERACTION_REQUIRED");
9
- const copy = localePack(registry, language).repositoryMaintenance;
10
- write(renderMaintenanceOffer(control, { registry, language }));
11
- while (true) {
12
- let raw;
13
- try { raw = await readChoice({ prompt: copy.prompt, default: null }); } catch { return "skip"; }
14
- const choice = typeof raw === "string" ? raw.trim().toLowerCase() : "";
15
- if (!choice || ["2", "skip", "later"].includes(choice)) return "skip";
16
- if (["1", "start"].includes(choice)) return "start";
17
- if (["3", "d", "details"].includes(choice)) write(renderMaintenanceOffer(control, { registry, language, details: true }));
18
- else write(copy.invalid);
19
- }
20
- }
21
-
22
- export async function selectControlMigration(plan, {
23
- readChoice, write = () => {}, registry = interactionLocales, language = "en",
24
- } = {}) {
25
- if (typeof readChoice !== "function") throw new Error("AGDF_CONTROL_MIGRATION_READER_REQUIRED");
26
- const copy = localePack(registry, language).installSetup.controlMigration;
27
- write(renderControlMigrationDecision(plan, { registry, language }));
28
- while (true) {
29
- let value;
30
- try { value = await readChoice({ prompt: copy.batchPrompt, default: null }); } catch { return "skip"; }
31
- const choice = typeof value === "string" ? value.trim().toLowerCase() : "";
32
- if (!choice || ["2", "skip", "later"].includes(choice)) return "skip";
33
- if (["1", "migrate"].includes(choice)) return "migrate";
34
- if (["3", "d", "details"].includes(choice)) write(renderControlMigrationDecision(plan, { registry, language, details: true }));
35
- else write(copy.invalidChoice);
36
- }
37
- }
38
-
39
- export async function selectControlRepair(value, {
40
- readChoice, write = () => {}, registry = interactionLocales, language = "en", phase = "offer",
41
- } = {}) {
42
- if (typeof readChoice !== "function") throw new Error("AGDF_CONTROL_REPAIR_READER_REQUIRED");
43
- if (!["offer", "plan"].includes(phase)) throw new Error("AGDF_CONTROL_REPAIR_PHASE_INVALID");
44
- const copy = localePack(registry, language).installSetup.controlRepair;
45
- const render = phase === "offer" ? renderControlRepairOffer : renderControlRepairPlan;
46
- write(render(value, { registry, language }));
47
- while (true) {
48
- let raw;
49
- try { raw = await readChoice({ prompt: copy.prompt, default: null }); } catch { return "skip"; }
50
- const choice = typeof raw === "string" ? raw.trim().toLowerCase() : "";
51
- if (!choice || ["2", "skip", "later"].includes(choice)) return "skip";
52
- if (choice === "1" && (phase === "offer" || value.items.some((item) => item.available))) return phase === "offer" ? "start" : "repair";
53
- if (["3", "d", "details"].includes(choice)) write(render(value, { registry, language, details: true }));
54
- else write(copy.invalidChoice);
55
- }
56
- }
57
-
@@ -1,85 +0,0 @@
1
- import { join } from "node:path";
2
- import { regularFileSnapshot } from "../control-state/run-store-inspection.js";
3
- import { applyRunRecovery, inspectRunRecovery, previewRunRecovery } from "../control-state/run-recovery.js";
4
- import { inspectControlMigration, safeApprovalReset } from "./compatibility.js";
5
-
6
- export async function migrateInstallationControl(root, { mode = "inspect", confirmMigration } = {}) {
7
- if (!["inspect", "safe"].includes(mode)) throw new Error("AGDF_CONTROL_MIGRATION_MODE_INVALID");
8
- const before = inspectControlMigration(root);
9
- if (mode === "inspect" || !root) return before;
10
- const changes = [];
11
- const errors = [];
12
- // A structural inventory failure never authorizes a partial migration of an incomplete inventory.
13
- if (before.diagnostics.some((finding) => finding.code !== "AGDF_LEGACY_MIGRATION_REQUIRED")) return before;
14
- const candidates = before.runs.filter((entry) => entry.status === "migration_required" || entry.pending_recoveries?.length);
15
- // Bind the single decision to read-only snapshots. Declining must not even create journals.
16
- // The canonical recovery writer still checks each selected revision under its own lock.
17
- let selected;
18
- if (typeof confirmMigration === "function" && candidates.length) {
19
- selected = new Map();
20
- for (const run of candidates) {
21
- try {
22
- if (run.pending_recoveries?.length > 1) throw new Error("AGDF_RECOVERY_JOURNAL_CONFLICT");
23
- const pending = run.pending_recoveries?.[0];
24
- const journalContent = pending ? regularFileSnapshot(join(root, pending.journal)).content.toString("utf8") : null;
25
- const journal = pending ? JSON.parse(journalContent) : null;
26
- const inspection = pending ? null : inspectRunRecovery(root, run.run_id, { inspectHistory: false });
27
- selected.set(run.run_id, {
28
- run_id: run.run_id, pending, journalContent,
29
- source_revision_id: journal?.source_revision_id ?? inspection.revision_id,
30
- source_content_digest: journal?.source_content_digest ?? inspection.content_digest,
31
- source_artefacts: journal?.source_artefacts ?? inspection.artefacts,
32
- prior_approvals: journal?.prior_approvals ?? inspection.approvals,
33
- next_gate: journal?.next_gate ?? inspection.next_gate_if_recovered,
34
- });
35
- } catch (error) { errors.push({ run_id: run.run_id, code: String(error.code ?? error.message) }); }
36
- }
37
- if (selected.size) {
38
- const plan = { target: root, control: before, runs: [...selected.values()], diagnostics: errors,
39
- approval_reset_count: [...selected.values()].filter((run) => !safeApprovalReset(run.prior_approvals)).length,
40
- authorizes: false };
41
- if (await confirmMigration(structuredClone(plan)) !== "migrate") return before;
42
- }
43
- }
44
- for (const run of candidates) {
45
- if (selected && !selected.has(run.run_id)) continue;
46
- if (run.pending_recoveries?.length > 1) { errors.push({ run_id: run.run_id, code: "AGDF_RECOVERY_JOURNAL_CONFLICT" }); continue; }
47
- if (run.pending_recoveries?.length) run.safe_to_migrate = safeApprovalReset(run.pending_recoveries[0].prior_approvals ?? []);
48
- if (!selected && !run.safe_to_migrate) continue;
49
- try {
50
- const snapshot = selected?.get(run.run_id);
51
- const pending = run.pending_recoveries?.[0];
52
- if (snapshot) {
53
- if (pending) {
54
- if (regularFileSnapshot(join(root, pending.journal)).content.toString("utf8") !== snapshot.journalContent) {
55
- throw new Error("AGDF_STALE_RUN_REVISION");
56
- }
57
- } else {
58
- const current = inspectRunRecovery(root, run.run_id, { inspectHistory: false });
59
- if (current.revision_id !== snapshot.source_revision_id || current.content_digest !== snapshot.source_content_digest
60
- || JSON.stringify(current.artefacts) !== JSON.stringify(snapshot.source_artefacts)) throw new Error("AGDF_STALE_RUN_REVISION");
61
- }
62
- }
63
- const preview = pending ?? previewRunRecovery(root, run.run_id);
64
- if (snapshot && !pending && (preview.source_content_digest !== snapshot.source_content_digest
65
- || JSON.stringify(preview.source_artefacts) !== JSON.stringify(snapshot.source_artefacts))) throw new Error("AGDF_STALE_RUN_REVISION");
66
- // A concurrent approval change must never turn a safe migration into approval invalidation.
67
- const journal = JSON.parse(regularFileSnapshot(join(root, preview.journal)).content.toString("utf8"));
68
- const safe = safeApprovalReset(journal.prior_approvals);
69
- const confirmation = selected || safe ? preview.confirmation : null;
70
- if (confirmation !== preview.confirmation) continue;
71
- const applied = applyRunRecovery(root, { runId: run.run_id, previewId: preview.preview_id, confirmation });
72
- if (applied.seal_status !== "valid" && applied.outcome !== "already_recovered") throw new Error("AGDF_CONTROL_MIGRATION_VERIFICATION_FAILED");
73
- changes.push({ run_id: run.run_id, outcome: applied.outcome, revision_id: applied.revision_id,
74
- backup: preview.journal, next_gate: preview.next_gate });
75
- } catch (error) {
76
- errors.push({ run_id: run.run_id, code: String(error.code ?? error.message) });
77
- }
78
- }
79
- const after = inspectControlMigration(root);
80
- after.changes = changes;
81
- after.diagnostics.push(...errors);
82
- if (errors.length) after.status = "repair_required";
83
- return after;
84
- }
85
-
@@ -1,226 +0,0 @@
1
- import { createHash, randomUUID } from "node:crypto";
2
- import { lstatSync, mkdirSync, unlinkSync } from "node:fs";
3
- import { dirname, join } from "node:path";
4
- import { isSafeControlRelativePath } from "../control-state/contained-file.js";
5
- import { directoryIdentity, regularFileSnapshot } from "../control-state/run-store-inspection.js";
6
- import { parseRunState } from "../control-state/run-state-parser.js";
7
- import { approvalSeal, artefactFileDigest, canonicalRunText, listedArtefactPaths, runSealState } from "../control-state/run-seal.js";
8
- import { inspectSelfReferenceRecovery } from "../control-state/run-recovery.js";
9
- import { atomicWrite, unapproveRecoveryApprovals, withRunLock, writeRunLocked, writeRunRecoveryLocked } from "../control-state/run-state-writer.js";
10
- import { inspectControlMigration } from "./compatibility.js";
11
-
12
- const digest = (content) => `sha256:${createHash("sha256").update(content).digest("hex")}`;
13
- const textDigest = (content) => digest(canonicalRunText(content));
14
- const pathError = (path) => Object.assign(new Error("AGDF_REPAIR_PATH_INVALID"), { code: "AGDF_REPAIR_PATH_INVALID", path });
15
-
16
- function checkedPath(root, relative, { createParents = false } = {}) {
17
- if (!isSafeControlRelativePath(relative)) throw pathError(relative);
18
- try { directoryIdentity(root); } catch { throw pathError(relative); }
19
- let cursor = root;
20
- const segments = relative.split("/");
21
- for (const segment of segments.slice(0, -1)) {
22
- cursor = join(cursor, segment);
23
- try { directoryIdentity(cursor); } catch (error) {
24
- if (error.code !== "ENOENT") throw pathError(relative);
25
- if (!createParents) return null;
26
- mkdirSync(cursor, { mode: 0o700 });
27
- directoryIdentity(cursor);
28
- }
29
- }
30
- const path = join(root, relative);
31
- try {
32
- const stat = lstatSync(path);
33
- if (stat.isSymbolicLink() || !stat.isFile()) throw pathError(relative);
34
- } catch (error) { if (error.code !== "ENOENT") throw error; }
35
- return path;
36
- }
37
-
38
- function gitOriginals(root, path, readGitOriginals) {
39
- if (!isSafeControlRelativePath(path) || typeof readGitOriginals !== "function") return [];
40
- try {
41
- const entries = readGitOriginals(root, path);
42
- if (!Array.isArray(entries) || entries.length > 9) return [];
43
- return entries.filter(entry => entry?.path === path && isSafeControlRelativePath(entry.git_path)
44
- && entry.source === "git" && /^[0-9a-f]{40,64}$/u.test(entry.commit)
45
- && typeof entry.bytes === "string" && entry.bytes.length <= 3 * 1024 * 1024
46
- && entry.digest === textDigest(Buffer.from(entry.bytes, "base64").toString("utf8")));
47
- } catch { return []; }
48
- }
49
-
50
- function proposal(root, item, fields) {
51
- const proposed = { ...item, ...fields };
52
- proposed.artefacts = [...new Set([...item.artefacts.map((artifact) => artifact.path), ...listedArtefactPaths(proposed.candidate_content)])]
53
- .map((path) => { checkedPath(root, path); return { path, digest: artefactFileDigest(root, path) }; });
54
- return proposed;
55
- }
56
-
57
- function inspectRunRepair(root, run, readGitOriginals) {
58
- const relative = `.agdf/control/runs/${run.run_id}/RUN_STATE.md`;
59
- const path = checkedPath(root, relative);
60
- const content = regularFileSnapshot(path).content.toString("utf8");
61
- const parsed = parseRunState(content, run.run_id);
62
- const item = { run_id: run.run_id, kind: "manual", available: false, required: [], sources: [],
63
- source_content: content, source_digest: digest(content), source_revision_id: parsed.meta.revision_id,
64
- candidate_content: null, files: [], artefacts: listedArtefactPaths(content).map((path) => {
65
- checkedPath(root, path);
66
- return { path, digest: artefactFileDigest(root, path) };
67
- }) };
68
- if (!parsed.valid || parsed.meta.lifecycle !== "active" || run.pending_recoveries?.length) {
69
- item.required = run.diagnostics.length ? run.diagnostics : [{ code: "AGDF_REPAIR_MANUAL_REQUIRED", path: relative }];
70
- return item;
71
- }
72
- const seal = runSealState(root, content);
73
- const checkpoint = inspectSelfReferenceRecovery(root, run.run_id);
74
- if (checkpoint) {
75
- return proposal(root, item, { kind: "self_reference", available: true, candidate_content: checkpoint.content,
76
- sources: [{ path: relative, source: "recovery_journal", journal: checkpoint.source }] });
77
- }
78
- if (seal.status === "content_changed") {
79
- const original = gitOriginals(root, relative, readGitOriginals).find((candidate) => {
80
- const text = Buffer.from(candidate.bytes, "base64").toString("utf8");
81
- const state = parseRunState(text, run.run_id);
82
- return state.valid && state.meta.lifecycle === "active" && state.meta.revision_id === parsed.meta.revision_id
83
- && runSealState(root, text).status === "valid" && runSealState(root, text).recorded.content_seal === seal.recorded.content_seal && approvalSeal(text) === seal.recorded.approval_seal
84
- && listedArtefactPaths(text).every((path) => artefactFileDigest(root, path).startsWith("sha256:"));
85
- });
86
- if (original) return proposal(root, item, { kind: "run_snapshot", available: true,
87
- candidate_content: Buffer.from(original.bytes, "base64").toString("utf8"), sources: [original] });
88
- }
89
- if (seal.status === "unsealed") {
90
- for (const artifact of listedArtefactPaths(content)) {
91
- const target = checkedPath(root, artifact);
92
- const status = artefactFileDigest(root, artifact);
93
- if (!["missing", "unresolved"].includes(status)) continue;
94
- // A descriptive placeholder is not a filename; repair never invents paths or evidence.
95
- if (!artifact.startsWith(`.agdf/control/artefacts/${run.run_id}/`) || !isSafeControlRelativePath(artifact)) {
96
- item.required.push({ code: "AGDF_REPAIR_REFERENCE_REQUIRED", path: artifact });
97
- continue;
98
- }
99
- if (target) {
100
- try { lstatSync(target); item.required.push({ code: "AGDF_REPAIR_MANUAL_REQUIRED", path: artifact }); continue; }
101
- catch (error) { if (error.code !== "ENOENT") throw error; }
102
- }
103
- const original = gitOriginals(root, artifact, readGitOriginals)[0];
104
- if (original) { item.files.push(original); item.sources.push(original); }
105
- else item.required.push({ code: "AGDF_REPAIR_ORIGINAL_REQUIRED", path: artifact });
106
- }
107
- if (item.files.length && !item.required.length) {
108
- item.kind = "missing_artefacts";
109
- item.available = true;
110
- item.candidate_content = unapproveRecoveryApprovals(content);
111
- item.approval_reset = true;
112
- return proposal(root, item, {});
113
- }
114
- }
115
- if (!item.required.length) item.required = run.diagnostics.length ? run.diagnostics : [{ code: "AGDF_REPAIR_MANUAL_REQUIRED", path: relative }];
116
- return item;
117
- }
118
-
119
- export function inspectControlRepair(root, { readGitOriginals } = {}) {
120
- const control = inspectControlMigration(root);
121
- const items = [];
122
- const diagnostics = [...control.diagnostics];
123
- // An incomplete inventory or unsafe scaffold cannot authorize repair writes.
124
- if (!diagnostics.length) for (const run of control.runs.filter((entry) => entry.status === "repair_required")) {
125
- try { items.push(inspectRunRepair(root, run, readGitOriginals)); } catch (error) {
126
- items.push({ run_id: run.run_id, kind: "manual", available: false, files: [], sources: [],
127
- required: [{ code: String(error.code ?? error.message), ...(error.path ? { path: error.path } : {}) }] });
128
- }
129
- }
130
- return { target: root, control, items, diagnostics, authorizes: false };
131
- }
132
-
133
- function publicRepair(plan, status) {
134
- return { status, target: plan.target, authorizes: false, diagnostics: plan.diagnostics,
135
- items: plan.items.map(({ run_id, kind, available, required, sources, outcome, backup }) => ({
136
- run_id, kind, available, required,
137
- sources: sources.map(({ bytes, ...source }) => source), ...(outcome ? { outcome, backup } : {}),
138
- })) };
139
- }
140
-
141
- function applyRunRepair(root, item, hooks = {}, readGitOriginals) {
142
- const relative = `.agdf/control/runs/${item.run_id}/RUN_STATE.md`;
143
- const path = checkedPath(root, relative);
144
- return withRunLock(path, () => {
145
- if (regularFileSnapshot(path).content.toString("utf8") !== item.source_content) throw new Error("AGDF_STALE_RUN_REVISION");
146
- // Re-read the selected source under the lock; callback mutation and source changes cannot
147
- // replace the displayed restoration with another snapshot or a newly found original.
148
- const run = inspectControlMigration(root).runs.find((entry) => entry.run_id === item.run_id);
149
- if (!run || run.status !== "repair_required") throw new Error("AGDF_STALE_RUN_REVISION");
150
- const current = inspectRunRepair(root, run, readGitOriginals);
151
- if (JSON.stringify(current) !== JSON.stringify(item)) throw new Error("AGDF_STALE_RUN_REVISION");
152
- const directory = join(dirname(path), "repair-previews");
153
- try { mkdirSync(directory, { mode: 0o700 }); } catch (error) { if (error.code !== "EEXIST") throw error; }
154
- directoryIdentity(directory);
155
- if (process.platform !== "win32" && (lstatSync(directory).mode & 0o077)) throw new Error("AGDF_RECOVERY_JOURNAL_PERMISSIONS_INVALID");
156
- const id = randomUUID();
157
- const journalPath = join(directory, `${id}.json`);
158
- const updatedAt = new Date().toISOString();
159
- const nextRevisionId = randomUUID();
160
- const journal = { schema_version: 1, phase: "prepared", created_at: updatedAt, run_id: item.run_id,
161
- source_content: item.source_content, source_digest: item.source_digest, sources: item.sources,
162
- files: item.files, candidate_content: item.candidate_content, next_revision_id: nextRevisionId };
163
- atomicWrite(journalPath, `${JSON.stringify(journal, null, 2)}\n`);
164
- const restored = [];
165
- try {
166
- for (const file of item.files) {
167
- const target = checkedPath(root, file.path, { createParents: true });
168
- try { lstatSync(target); throw new Error("AGDF_STALE_RUN_REVISION"); }
169
- catch (error) { if (error.code !== "ENOENT") throw error; }
170
- atomicWrite(target, Buffer.from(file.bytes, "base64"));
171
- restored.push({ ...file, snapshot: regularFileSnapshot(target) });
172
- }
173
- hooks.beforeRunWrite?.();
174
- const options = { expectedContent: item.source_content, expectedRevisionId: item.source_revision_id,
175
- nextRevisionId, updatedAt, validateBeforeWrite: () => {
176
- checkedPath(root, relative);
177
- for (const artifact of item.artefacts) {
178
- checkedPath(root, artifact.path);
179
- const expected = item.files.find((file) => file.path === artifact.path)?.digest ?? artifact.digest;
180
- if (artefactFileDigest(root, artifact.path) !== expected) throw new Error("AGDF_STALE_RUN_REVISION");
181
- }
182
- } };
183
- if (item.kind === "missing_artefacts") writeRunRecoveryLocked(path, item.candidate_content, options);
184
- else writeRunLocked(path, item.candidate_content, item.source_revision_id, { ...options, allowContentChange: true });
185
- hooks.afterRunWrite?.();
186
- const result = regularFileSnapshot(path).content.toString("utf8");
187
- if (runSealState(root, result).status !== "valid") throw new Error("AGDF_CONTROL_REPAIR_VERIFICATION_FAILED");
188
- atomicWrite(journalPath, `${JSON.stringify({ ...journal, phase: "committed", result_digest: digest(result) }, null, 2)}\n`);
189
- return { outcome: "repaired", backup: journalPath.slice(root.length + 1) };
190
- } catch (error) {
191
- // Roll back only files we created and still own, only while the run was not replaced.
192
- // A post-rename interruption retains the complete original snapshot and avoids a second write.
193
- if (regularFileSnapshot(path).content.toString("utf8") === item.source_content) for (const file of restored) {
194
- const target = checkedPath(root, file.path);
195
- if (target) {
196
- const current = regularFileSnapshot(target);
197
- if (current.dev === file.snapshot.dev && current.ino === file.snapshot.ino
198
- && current.content.equals(file.snapshot.content)) unlinkSync(target);
199
- }
200
- }
201
- throw error;
202
- }
203
- });
204
- }
205
-
206
- export async function repairInstallationControl(control, { chooseRepair, confirmRepair, hooks, readGitOriginals } = {}) {
207
- if (control.status !== "repair_required" || typeof chooseRepair !== "function") return control;
208
- if (await chooseRepair(structuredClone(control)) !== "start") return control;
209
- const plan = inspectControlRepair(control.target, { readGitOriginals });
210
- const candidates = plan.items.filter((item) => item.available);
211
- let decision = "skip";
212
- if (typeof confirmRepair === "function") decision = await confirmRepair(structuredClone(plan));
213
- if (decision === "repair") for (const item of candidates) {
214
- try { Object.assign(item, applyRunRepair(control.target, item, hooks, readGitOriginals)); }
215
- catch (error) { plan.diagnostics.push({ run_id: item.run_id, code: String(error.code ?? error.message) }); }
216
- }
217
- const after = inspectControlMigration(control.target);
218
- after.changes = control.changes;
219
- after.repair = publicRepair(plan, !candidates.length ? "needs_input" : decision !== "repair" ? "deferred"
220
- : plan.diagnostics.length || after.status !== "current" ? "partial" : "applied");
221
- if (plan.diagnostics.length) {
222
- after.diagnostics.push(...plan.diagnostics);
223
- after.status = "repair_required";
224
- }
225
- return after;
226
- }
@@ -1,4 +0,0 @@
1
- export const BACKLOG_SUMMARY_FIELDS: readonly string[];
2
- export function validBacklogSummary(value: unknown): boolean;
3
-
4
- export function validWorkSummary(value: unknown, runId: string): boolean;
@@ -1,67 +0,0 @@
1
- import { BACKLOG_SUMMARY_FIELDS, validBacklogSummary } from './backlog-summary-shape.js';
2
- import { createHash } from 'node:crypto';
3
- import { canonicalJson, resolveControlCommandTarget } from './approval-command-contract.js';
4
- import { firstSection, tableCells, tableLineIndexes } from './run-state-edits.js';
5
- import { summaryLabel } from '../control-evaluation/backlog-vocabulary.js';
6
-
7
- export const BACKLOG_SUMMARY_LIMIT = 65536;
8
- const prefix = '<!-- agdf-backlog-summary-v1 ';
9
- const fields = BACKLOG_SUMMARY_FIELDS;
10
- const digest = bytes => 'sha256:' + createHash('sha256').update(bytes).digest('hex');
11
- const sections = ['Active Backlog', 'Planned / Parking Lot', 'Completed / Superseded Pointers'];
12
- export const backlogRowDigest = (section, cells) => digest(canonicalJson({ section, cells }));
13
- export { validBacklogSummary } from './backlog-summary-shape.js';
14
-
15
- export function decodeBacklogMarker(line) {
16
- if (!line.startsWith('<!-- agdf-backlog-summary-')) return null;
17
- const match = line.match(/^<!-- agdf-backlog-summary-v1 ([A-Za-z0-9+/]+={0,2}) -->$/u);
18
- if (!match || match[1].length > Math.ceil(BACKLOG_SUMMARY_LIMIT / 3) * 4) return { code: 'backlog_summary_invalid', record: null };
19
- try {
20
- const bytes = Buffer.from(match[1], 'base64');
21
- if (bytes.length > BACKLOG_SUMMARY_LIMIT || bytes.toString('base64') !== match[1]) throw Error();
22
- const value = new TextDecoder('utf-8', { fatal: true }).decode(bytes);
23
- const record = JSON.parse(value);
24
- if (!validBacklogSummary(record) || canonicalJson(record) !== value) throw Error();
25
- return { code: null, record };
26
- } catch { return { code: 'backlog_summary_invalid', record: null }; }
27
- }
28
- export function savedBacklogSummary(root, section, cells, markers) {
29
- const key = cells[section === sections[2] ? 0 : 1]?.replaceAll('`', '').trim();
30
- const candidates = markers.filter(m => m.record?.run_id === key);
31
- const fallback = code => ({ provenance_state: code ? 'invalid' : 'unverified', code, record: null,
32
- label_de: null, limitation_de: code ? 'Gespeicherter Quellenbezug ungültig; aktueller Stand nicht geprüft.' : 'Gespeicherter Stand; Quellenbezug und aktueller Run nicht geprüft.', authorizes: false });
33
- if (!candidates.length) return fallback(markers.some(m => m.code) ? 'backlog_summary_invalid' : null);
34
- const row = candidates[0].record;
35
- if (markers.some(m => m.code) || candidates.length !== 1 || row.target_id !== resolveControlCommandTarget(root).target_id
36
- || row.section !== section || row.row_digest !== backlogRowDigest(section, cells)) return fallback('backlog_summary_mismatch');
37
- return { provenance_state: 'recorded', code: null, record: row, label_de: summaryLabel(row.kind, 'de'),
38
- limitation_de: row.limitations.length ? 'Quellenbezug eingeschränkt; aktueller Stand nicht bestätigt.'
39
- : 'Gespeicherte Beobachtung; aktueller Run noch nicht verglichen.', authorizes: false };
40
- }
41
-
42
- // Called by existing writers under their locks. Only the addressed marker is replaced.
43
- export function recordBacklogSummary(root, content, runId, section, summary, revisionId) {
44
- if (Buffer.byteLength(content) > 2097152) throw Error('AGDF_BACKLOG_LAYOUT_UNSUPPORTED');
45
- const bounded = next => { if (Buffer.byteLength(next) > 2097152) throw Error('AGDF_BACKLOG_LAYOUT_UNSUPPORTED'); return next; };
46
- const lines = content.split('\n'), scope = firstSection(lines, section);
47
- if (!scope) throw Error('AGDF_BACKLOG_LAYOUT_UNSUPPORTED');
48
- const indexes = tableLineIndexes(lines, scope), column = section === sections[2] ? 0 : 1;
49
- const matches = indexes.slice(2).filter(i => tableCells(lines[i])[column]?.replaceAll('`', '').trim() === runId);
50
- if (matches.length !== 1) throw Error('AGDF_BACKLOG_IDENTITY_AMBIGUOUS');
51
- const row = { schema_version: 1, target_id: resolveControlCommandTarget(root).target_id, run_id: runId,
52
- section, row_digest: backlogRowDigest(section, tableCells(lines[matches[0]])), revision_id: revisionId,
53
- observed_at: new Date().toISOString(), ...Object.fromEntries(fields.slice(7).map(k => [k, summary[k]])) };
54
- const previous = lines.map(decodeBacklogMarker).filter(m => m?.record?.run_id === runId);
55
- if (previous.length === 1 && canonicalJson({ ...previous[0].record, observed_at: row.observed_at }) === canonicalJson(row)) row.observed_at = previous[0].record.observed_at;
56
- const encoded = canonicalJson(row);
57
- if (!validBacklogSummary(row) || Buffer.byteLength(encoded) > BACKLOG_SUMMARY_LIMIT) throw Error('AGDF_BACKLOG_SUMMARY_INVALID');
58
- // An identical explicit synchronization preserves all bytes, including whitespace and time.
59
- if (previous.length === 1 && canonicalJson(previous[0].record) === encoded) return content;
60
- if (previous.length === 1 && previous[0].record.section === section) return bounded(lines.map(line =>
61
- decodeBacklogMarker(line)?.record?.run_id === runId ? prefix + Buffer.from(encoded).toString('base64') + ' -->' : line).join('\n'));
62
- const filtered = lines.filter(line => decodeBacklogMarker(line)?.record?.run_id !== runId);
63
- const target = firstSection(filtered, section), table = tableLineIndexes(filtered, target);
64
- const afterTable = table.at(-1) + 1;
65
- filtered.splice(afterTable, 0, '', prefix + Buffer.from(encoded).toString('base64') + ' -->');
66
- return bounded(filtered.join('\n'));
67
- }
@@ -1,69 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import { existsSync, mkdirSync, readFileSync, rmdirSync, unlinkSync } from "node:fs";
3
- import { dirname, join, relative, resolve } from "node:path";
4
- import { renderRunState } from "./run-state-repository.js";
5
- import { runPath } from "./run-state-reader.js";
6
- import {
7
- normalizeLineEndings,
8
- parseRunState,
9
- RUN_ID_PATTERN,
10
- scalarFields,
11
- semanticBody,
12
- semanticFingerprint,
13
- } from "./run-state-parser.js";
14
- import { atomicWrite } from "./run-state-writer.js";
15
- export function migrateLegacy(root, requested, io = {}) {
16
- const writeCanonical = io.atomicWrite ?? atomicWrite;
17
- const readCanonical = io.readFile ?? readFileSync;
18
- const lp = join(root, ".agdf", "control", "AGDF_RUN.md");
19
- if (!existsSync(lp)) throw Error("AGDF_LEGACY_RUN_MISSING");
20
- const legacy = readFileSync(lp, "utf8");
21
- if (legacy.startsWith("<!-- AGDF LEGACY PROJECTION"))
22
- throw Error("AGDF_LEGACY_ALREADY_PROJECTED");
23
- if (!legacy.startsWith("# AGDF Run State") || !semanticBody(legacy))
24
- throw Error("AGDF_LEGACY_RUN_INVALID");
25
- const id = requested || scalarFields(legacy).values.get("run_id");
26
- if (!RUN_ID_PATTERN.test(id ?? "")) throw Error("AGDF_RUN_ID_INVALID");
27
- const legacyMeta = Object.fromEntries(scalarFields(legacy).values);
28
- const dest = runPath(root, id),
29
- next = renderRunState(id, semanticBody(legacy), legacyMeta);
30
- if (existsSync(dest)) {
31
- if (
32
- semanticFingerprint(readFileSync(dest, "utf8")) ===
33
- semanticFingerprint(next)
34
- )
35
- return { status: "already_migrated", path: dest };
36
- throw Error("AGDF_RUN_COLLISION");
37
- }
38
- mkdirSync(dirname(dest), { recursive: true });
39
- try {
40
- writeCanonical(dest, next);
41
- const persisted = readCanonical(dest, "utf8"),
42
- parsed = parseRunState(persisted, id);
43
- if (
44
- !parsed.valid ||
45
- semanticFingerprint(persisted) !== semanticFingerprint(next)
46
- ) throw Error("AGDF_MIGRATION_VERIFICATION_FAILED");
47
- } catch (error) {
48
- if (existsSync(dest)) unlinkSync(dest);
49
- try {
50
- rmdirSync(dirname(dest));
51
- } catch (cleanupError) {
52
- if (!["ENOENT", "ENOTEMPTY"].includes(cleanupError.code)) throw cleanupError;
53
- }
54
- throw error;
55
- }
56
- return { status: "migrated", path: dest };
57
- }
58
- export function renderLegacyProjection(path, root = process.cwd()) {
59
- const content = normalizeLineEndings(readFileSync(path, "utf8")),
60
- parsed = parseRunState(content),
61
- digest = createHash("sha256").update(content).digest("hex");
62
- if (!parsed.valid) throw Error("AGDF_RUN_NOT_SELECTABLE");
63
- const canonicalSource = relative(resolve(root), resolve(path)).replaceAll("\\", "/");
64
- return `<!-- AGDF LEGACY PROJECTION: NON-AUTHORITATIVE -->\n<!-- canonical_source: ${canonicalSource} -->\n<!-- run_id: ${parsed.meta.run_id} -->\n<!-- revision_id: ${parsed.meta.revision_id} -->\n<!-- sha256: ${digest} -->\n${content}`;
65
- }
66
- export function writeLegacyProjection(path, canonical) {
67
- atomicWrite(path, renderLegacyProjection(canonical, resolve(dirname(path), "../..")));
68
- }
69
- export { verifyLegacyProjection } from "./legacy-projection-reader.js";