create-agdf 0.20.2 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (836) hide show
  1. package/README.md +148 -191
  2. package/generated/.agdf/control/README.md +31 -110
  3. package/generated/.agdf/control/planned-urs.md +95 -0
  4. package/generated/.agdf/control/templates/RUN_STATE.md +15 -64
  5. package/generated/.agdf/control/templates/artefacts/UR.md +1 -1
  6. package/generated/.agents/plugins/marketplace.json +12 -0
  7. package/generated/.opencode/agdf-agent-router.md +3 -3
  8. package/generated/.opencode/agdf-interaction-locales.json +2668 -2682
  9. package/generated/.opencode/contracts/closeout.md +1 -1
  10. package/generated/.opencode/contracts/control-scaffold.md +63 -46
  11. package/generated/.opencode/contracts/gate-artifact-preparation.md +58 -48
  12. package/generated/.opencode/contracts/gate-transition.md +5 -6
  13. package/generated/.opencode/contracts/interaction.md +43 -126
  14. package/generated/.opencode/contracts/modes.md +4 -3
  15. package/generated/.opencode/contracts/prd-definition.md +6 -6
  16. package/generated/.opencode/contracts/quality.md +10 -2
  17. package/generated/.opencode/contracts/request-activation.md +9 -8
  18. package/generated/.opencode/contracts/sd-definition.md +3 -3
  19. package/generated/.opencode/contracts/task-target-resolution.md +24 -0
  20. package/generated/.opencode/contracts/tp-definition.md +1 -1
  21. package/generated/.opencode/contracts/ur-definition.md +41 -7
  22. package/generated/.opencode/skills/agdf-brownfield-analysis/SKILL.md +8 -5
  23. package/generated/.opencode/skills/agdf-clean-implementation-review/SKILL.md +3 -2
  24. package/generated/.opencode/skills/agdf-code-review/SKILL.md +5 -3
  25. package/generated/.opencode/skills/agdf-delivery-closeout/SKILL.md +3 -2
  26. package/generated/.opencode/skills/agdf-delivery-path-search/SKILL.md +3 -2
  27. package/generated/.opencode/skills/agdf-gate-check/SKILL.md +35 -31
  28. package/generated/.opencode/skills/agdf-prd-definition/SKILL.md +3 -2
  29. package/generated/.opencode/skills/agdf-qa-gate/SKILL.md +3 -2
  30. package/generated/.opencode/skills/agdf-release-or/SKILL.md +8 -5
  31. package/generated/.opencode/skills/agdf-sd-definition/SKILL.md +3 -2
  32. package/generated/.opencode/skills/agdf-task-plan-review/SKILL.md +3 -2
  33. package/generated/.opencode/skills/agdf-tp-definition/SKILL.md +3 -2
  34. package/generated/.opencode/skills/agdf-ur-definition/SKILL.md +12 -4
  35. package/generated/.opencode/skills/agdf-ux-intent-definition/SKILL.md +5 -4
  36. package/generated/plugins/agdf/.claude-plugin/plugin.json +3 -2
  37. package/generated/plugins/agdf/.codex-plugin/plugin.json +1 -1
  38. package/generated/plugins/agdf/companion/assignment.mjs +65 -0
  39. package/generated/plugins/agdf/companion/companion.json +4 -0
  40. package/generated/plugins/agdf/companion/core.mjs +16 -0
  41. package/generated/plugins/agdf/companion/figure.mjs +137 -0
  42. package/generated/plugins/agdf/companion/gate-bar.mjs +54 -0
  43. package/generated/plugins/agdf/companion/hooks.json +3 -0
  44. package/generated/plugins/agdf/companion/locales.json +200 -0
  45. package/generated/plugins/agdf/companion/localization.mjs +89 -0
  46. package/generated/plugins/agdf/companion/notice.mjs +90 -0
  47. package/generated/plugins/agdf/companion/persistence.mjs +36 -0
  48. package/generated/plugins/agdf/companion/register.mjs +444 -0
  49. package/generated/plugins/agdf/companion/run-state.mjs +110 -0
  50. package/generated/plugins/agdf/companion/state.mjs +48 -0
  51. package/generated/plugins/agdf/companion/view.mjs +84 -0
  52. package/generated/plugins/agdf/control/README.md +31 -110
  53. package/generated/plugins/agdf/control/planned-urs.md +95 -0
  54. package/generated/plugins/agdf/control/templates/RUN_STATE.md +15 -64
  55. package/generated/plugins/agdf/control/templates/artefacts/UR.md +1 -1
  56. package/generated/plugins/agdf/mcp/server/README.md +119 -7
  57. package/generated/plugins/agdf/mcp/server/package.json +12 -7
  58. package/generated/plugins/agdf/mcp/server/src/generation-entry.js +3 -85
  59. package/generated/plugins/agdf/mcp/server/src/generation-protocol.js +2 -44
  60. package/generated/plugins/agdf/mcp/server/src/generation-runtime.js +94 -0
  61. package/generated/plugins/agdf/mcp/server/src/generation-thread-entry.js +8 -0
  62. package/generated/plugins/agdf/mcp/server/src/generation.js +64 -20
  63. package/generated/plugins/agdf/mcp/server/src/main.js +42 -10
  64. package/generated/plugins/agdf/mcp/server/src/server.js +24 -15
  65. package/generated/plugins/agdf/mcp/server/src/stdio-output.js +42 -0
  66. package/generated/plugins/agdf/mcp/server/src/worker-entry.js +2 -2
  67. package/generated/plugins/agdf/mcp/server/src/worker.js +53 -7
  68. package/generated/plugins/agdf/mcp/server/ui/cockpit.html +31 -31
  69. package/generated/plugins/agdf/mcp/server/ui/decision-manifest.json +3 -3
  70. package/generated/plugins/agdf/mcp/server/ui/decision.html +36 -36
  71. package/generated/plugins/agdf/mcp/server/ui/manifest.json +4 -4
  72. package/generated/plugins/agdf/meta/agdf-agent-router.md +3 -3
  73. package/generated/plugins/agdf/meta/agdf-defaults.json +9 -0
  74. package/generated/plugins/agdf/meta/agdf-defaults.schema.json +20 -0
  75. package/generated/plugins/agdf/meta/agdf-interaction-locales.json +2668 -2682
  76. package/generated/plugins/agdf/meta/agdf-mcp-capability.json +1 -1
  77. package/generated/plugins/agdf/meta/agdf-plugin.definition.json +8 -3
  78. package/generated/plugins/agdf/meta/contracts/closeout.md +1 -1
  79. package/generated/plugins/agdf/meta/contracts/control-scaffold.md +63 -46
  80. package/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +58 -48
  81. package/generated/plugins/agdf/meta/contracts/gate-transition.md +5 -6
  82. package/generated/plugins/agdf/meta/contracts/interaction.md +43 -126
  83. package/generated/plugins/agdf/meta/contracts/modes.md +4 -3
  84. package/generated/plugins/agdf/meta/contracts/prd-definition.md +6 -6
  85. package/generated/plugins/agdf/meta/contracts/quality.md +10 -2
  86. package/generated/plugins/agdf/meta/contracts/request-activation.md +9 -8
  87. package/generated/plugins/agdf/meta/contracts/sd-definition.md +3 -3
  88. package/generated/plugins/agdf/meta/contracts/task-target-resolution.md +24 -0
  89. package/generated/plugins/agdf/meta/contracts/tp-definition.md +1 -1
  90. package/generated/plugins/agdf/meta/contracts/ur-definition.md +41 -7
  91. package/generated/plugins/agdf/meta/copilot-payload-baseline.json +3 -3
  92. package/generated/plugins/agdf/meta/distribution-profile-history.json +7 -0
  93. package/generated/plugins/agdf/runtime/agdf-session-check.js +25 -21
  94. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-defaults.json +9 -0
  95. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-defaults.schema.json +20 -0
  96. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +2668 -2682
  97. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +8 -3
  98. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/closeout.md +1 -1
  99. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/control-scaffold.md +63 -46
  100. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +58 -48
  101. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-transition.md +5 -6
  102. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/interaction.md +43 -126
  103. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/modes.md +4 -3
  104. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/prd-definition.md +6 -6
  105. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/quality.md +10 -2
  106. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/request-activation.md +9 -8
  107. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/sd-definition.md +3 -3
  108. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/task-target-resolution.md +24 -0
  109. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/tp-definition.md +1 -1
  110. package/generated/plugins/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/ur-definition.md +41 -7
  111. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/codex-document-command.js +195 -0
  112. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/command-registry.js +82 -148
  113. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/control-maintenance-command.js +8 -37
  114. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/parse-args.js +98 -16
  115. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/planned-command.js +55 -0
  116. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/project-read-command.js +35 -0
  117. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/run-command-aliases.js +116 -0
  118. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/runtime-context.js +1 -59
  119. package/generated/plugins/agdf/runtime/create-agdf/lib/cli/validation-handlers.js +33 -103
  120. package/generated/plugins/agdf/runtime/create-agdf/lib/control-evaluation/git-observation.js +7 -5
  121. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/startup.js +2 -2
  122. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-decision-protocol.js +40 -0
  123. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-dispatch-runtime.js +71 -306
  124. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-entry.js +3 -24
  125. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-owner-entry.js +31 -15
  126. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-runtime.js +29 -0
  127. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-thread-entry.js +11 -0
  128. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/owner-client.js +79 -0
  129. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/package.js +14 -80
  130. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js +29 -9
  131. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-lifecycle/thread-owner.js +164 -0
  132. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-owner-protocol.js +1 -0
  133. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-protocol-runtime.js +308 -0
  134. package/generated/plugins/agdf/runtime/create-agdf/lib/mcp-worker-runtime.js +152 -0
  135. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/control-command-service.js +22 -7
  136. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/control-context.js +8 -1
  137. package/generated/plugins/agdf/runtime/create-agdf/lib/runtime/validator-application.js +2 -2
  138. package/generated/plugins/agdf/runtime/create-agdf/package.json +5 -1
  139. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/closeout-readiness.js +10 -2
  140. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-placeholder.js +9 -0
  141. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-readiness.js +2 -7
  142. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/definition-sources.js +3 -2
  143. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/delivery-map.js +2 -12
  144. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/doctor.js +162 -172
  145. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-check.js +10 -9
  146. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-inputs.js +11 -0
  147. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-pure.js +446 -0
  148. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy.js +3 -434
  149. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/next-action.js +2 -0
  150. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/parent-reconciliation.js +2 -1
  151. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/qa-follow-up.js +2 -1
  152. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/required-files.js +9 -7
  153. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state-policy.js +1 -1
  154. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state.js +15 -9
  155. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-step-policy.js +2 -1
  156. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-work-summary.js +6 -4
  157. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/shared-value.js +7 -0
  158. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/shared.js +5 -254
  159. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/tp-planning.js +3 -2
  160. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/ur-readiness.js +7 -2
  161. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/verified-change.js +11 -9
  162. 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
  163. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/artifact-readiness.js +5 -3
  164. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/authoring-inputs.js +110 -0
  165. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-archive.js +53 -0
  166. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-context.js +2 -1
  167. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-contract.js +11 -4
  168. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-list.d.ts +10 -6
  169. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-list.js +32 -41
  170. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-session.js +8 -8
  171. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-work.js +33 -0
  172. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit.js +75 -44
  173. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/contract.js +124 -32
  174. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/decision-session.js +53 -11
  175. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/doctor-observation.js +91 -0
  176. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/project-operation-call.js +5 -0
  177. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/project-state.js +48 -0
  178. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/result.js +61 -0
  179. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/selection.js +9 -3
  180. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/service.js +119 -67
  181. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/compatibility.js +42 -132
  182. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/contract.js +5 -5
  183. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/presentation.js +27 -119
  184. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/service.js +9 -37
  185. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-pool.js +25 -9
  186. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-worker.js +4 -3
  187. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/doctor-reader.js +92 -0
  188. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/doctor-worker.js +11 -0
  189. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/fs.js +18 -0
  190. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-read/snapshot.js +68 -17
  191. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/aggregate.js +3 -1
  192. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command.js +13 -10
  193. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-operations.js +10 -7
  194. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-binding-proof.js +12 -20
  195. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-bindings.js +10 -7
  196. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/canonical-initialization.js +761 -0
  197. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/control-layout.js +183 -0
  198. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-action-contract.js +10 -1
  199. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-action-service.js +24 -3
  200. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-material-contract.js +2 -1
  201. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/evidence-bindings.js +7 -7
  202. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/git-identity.js +86 -0
  203. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/index.js +0 -1
  204. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/input-resolution.js +99 -0
  205. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-entry.js +273 -0
  206. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-handoff.js +174 -0
  207. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-inventory.js +90 -0
  208. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-origin-reader.js +48 -0
  209. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-origin.js +40 -0
  210. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-decision.js +12 -7
  211. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-delivery.js +90 -0
  212. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-render.js +5 -2
  213. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-review.js +3 -2
  214. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-snapshot.js +9 -6
  215. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/recording-formats.js +12 -16
  216. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-artefact-recording.js +54 -66
  217. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-closure.js +343 -0
  218. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-contract.js +33 -250
  219. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-schema.js +508 -0
  220. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-service.js +198 -34
  221. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-create-command.js +60 -0
  222. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-identity.d.ts +14 -0
  223. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-identity.js +40 -0
  224. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-input-resolution.js +72 -0
  225. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory-reader.js +31 -0
  226. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory.js +179 -0
  227. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-material.js +211 -0
  228. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-mutation.js +51 -0
  229. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-identity.js +2 -1
  230. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-proof.js +7 -4
  231. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-status.js +20 -4
  232. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operations.js +70 -13
  233. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-owned-outputs.js +21 -9
  234. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-envelope.js +25 -33
  235. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-render.js +8 -7
  236. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation.js +45 -21
  237. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recording.js +10 -179
  238. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-boundary.js +7 -21
  239. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-history.js +23 -16
  240. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision.js +84 -161
  241. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal-compute.js +19 -44
  242. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal.js +6 -1
  243. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-source-revisions.js +19 -18
  244. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-document.js +110 -42
  245. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-edits.js +13 -5
  246. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-parser.js +14 -6
  247. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-reader.js +27 -18
  248. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-repository.js +112 -48
  249. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-resolver.js +12 -15
  250. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-writer.js +21 -377
  251. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-pending.js +2 -1
  252. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-transaction.js +125 -114
  253. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-steps.js +136 -248
  254. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-store-inspection.js +14 -2
  255. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-verified-change.js +81 -0
  256. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-work-summary-shape.d.ts +1 -0
  257. 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
  258. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/delivery-continuation/service.js +5 -66
  259. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/delivery-path-search/persistence.js +26 -8
  260. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/delivery-path-search/state-adapter.js +1 -1
  261. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/index.js +14 -6
  262. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog.js +3 -3
  263. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/interaction-presentation.js +29 -11
  264. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-hints.js +46 -0
  265. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-resolution.js +98 -0
  266. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-schema.js +15 -0
  267. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-resource-contract.js +1 -1
  268. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/mcp-tool-errors.js +31 -15
  269. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/owned-file-lock.js +266 -0
  270. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/owner-placement.js +50 -0
  271. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/canonical-init-plan.js +34 -0
  272. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/configuration.js +92 -0
  273. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/context.js +7 -11
  274. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/resources/language-preference.js +59 -0
  275. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/runtime/mcp-owner-protocol.js +102 -0
  276. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/runtime/plugin-provenance.js +173 -18
  277. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/compact-continuation.js +3 -3
  278. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/contract.js +28 -9
  279. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-intake.js +11 -5
  280. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +6 -10
  281. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/mcp-continuation.js +64 -0
  282. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/prd-definition.js +14 -5
  283. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/sd-definition.js +2 -1
  284. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/service.js +49 -14
  285. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/tp-definition.js +2 -1
  286. package/generated/plugins/agdf/runtime/runtime-manifest.json +2 -2
  287. package/generated/plugins/agdf/scripts/check-runtime-integrity.mjs +60 -42
  288. package/generated/plugins/agdf/scripts/instruction-footprint.mjs +5 -5
  289. package/generated/plugins/agdf/skills/brownfield-analysis/SKILL.md +8 -5
  290. package/generated/plugins/agdf/skills/clean-implementation-review/SKILL.md +3 -2
  291. package/generated/plugins/agdf/skills/code-review/SKILL.md +5 -3
  292. package/generated/plugins/agdf/skills/delivery-closeout/SKILL.md +3 -2
  293. package/generated/plugins/agdf/skills/delivery-path-search/SKILL.md +3 -2
  294. package/generated/plugins/agdf/skills/gate-check/SKILL.md +35 -31
  295. package/generated/plugins/agdf/skills/prd-definition/SKILL.md +3 -2
  296. package/generated/plugins/agdf/skills/qa-gate/SKILL.md +3 -2
  297. package/generated/plugins/agdf/skills/release-or/SKILL.md +8 -5
  298. package/generated/plugins/agdf/skills/sd-definition/SKILL.md +3 -2
  299. package/generated/plugins/agdf/skills/task-plan-review/SKILL.md +3 -2
  300. package/generated/plugins/agdf/skills/tp-definition/SKILL.md +3 -2
  301. package/generated/plugins/agdf/skills/ur-definition/SKILL.md +12 -4
  302. package/generated/plugins/agdf/skills/ux-intent-definition/SKILL.md +5 -4
  303. package/generated/plugins/agdf/submission/openai/availability.md +1 -1
  304. package/generated/plugins/agdf/submission/openai/capability-matrix.json +1 -1
  305. package/generated/plugins/agdf/submission/openai/release-notes.md +9 -1
  306. package/generated/plugins/agdf/submission/openai/reviewer-cases.json +1 -1
  307. package/generated/plugins/agdf-planning/.codex-plugin/plugin.json +40 -0
  308. package/generated/plugins/agdf-planning/README.md +21 -0
  309. package/generated/plugins/agdf-planning/assets/agdf-icon.svg +16 -0
  310. package/generated/plugins/agdf-planning/assets/agdf-logo.svg +16 -0
  311. package/generated/plugins/agdf-planning/meta/agdf-planning.definition.json +9 -0
  312. package/generated/plugins/agdf-planning/plugin.json +45 -0
  313. package/generated/plugins/agdf-planning/skills/planning/SKILL.md +56 -0
  314. package/generated/plugins/copilot/agdf/.agdf-payload-inventory.json +878 -475
  315. package/generated/plugins/copilot/agdf/control/README.md +31 -110
  316. package/generated/plugins/copilot/agdf/control/planned-urs.md +95 -0
  317. package/generated/plugins/copilot/agdf/control/templates/RUN_STATE.md +15 -64
  318. package/generated/plugins/copilot/agdf/control/templates/artefacts/UR.md +1 -1
  319. package/generated/plugins/copilot/agdf/mcp/server/README.md +119 -7
  320. package/generated/plugins/copilot/agdf/mcp/server/package.json +12 -7
  321. package/generated/plugins/copilot/agdf/mcp/server/src/generation-entry.js +3 -85
  322. package/generated/plugins/copilot/agdf/mcp/server/src/generation-protocol.js +2 -44
  323. package/generated/plugins/copilot/agdf/mcp/server/src/generation-runtime.js +94 -0
  324. package/generated/plugins/copilot/agdf/mcp/server/src/generation-thread-entry.js +8 -0
  325. package/generated/plugins/copilot/agdf/mcp/server/src/generation.js +64 -20
  326. package/generated/plugins/copilot/agdf/mcp/server/src/main.js +42 -10
  327. package/generated/plugins/copilot/agdf/mcp/server/src/server.js +24 -15
  328. package/generated/plugins/copilot/agdf/mcp/server/src/stdio-output.js +42 -0
  329. package/generated/plugins/copilot/agdf/mcp/server/src/worker-entry.js +2 -2
  330. package/generated/plugins/copilot/agdf/mcp/server/src/worker.js +53 -7
  331. package/generated/plugins/copilot/agdf/meta/agdf-agent-router.md +3 -3
  332. package/generated/plugins/copilot/agdf/meta/agdf-plugin.definition.json +8 -3
  333. package/generated/plugins/copilot/agdf/meta/distribution-profile-history.json +7 -0
  334. package/generated/plugins/copilot/agdf/plugin.json +1 -1
  335. package/generated/plugins/copilot/agdf/runtime/agdf-session-check.js +25 -21
  336. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-defaults.json +9 -0
  337. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-defaults.schema.json +20 -0
  338. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-interaction-locales.json +2668 -2682
  339. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/agdf-plugin.definition.json +8 -3
  340. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/closeout.md +1 -1
  341. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/control-scaffold.md +63 -46
  342. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-artifact-preparation.md +58 -48
  343. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/gate-transition.md +5 -6
  344. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/interaction.md +43 -126
  345. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/modes.md +4 -3
  346. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/prd-definition.md +6 -6
  347. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/quality.md +10 -2
  348. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/request-activation.md +9 -8
  349. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/sd-definition.md +3 -3
  350. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/task-target-resolution.md +24 -0
  351. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/tp-definition.md +1 -1
  352. package/generated/plugins/copilot/agdf/runtime/create-agdf/generated/plugins/agdf/meta/contracts/ur-definition.md +41 -7
  353. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/codex-document-command.js +195 -0
  354. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/command-registry.js +82 -148
  355. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/control-maintenance-command.js +8 -37
  356. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/parse-args.js +98 -16
  357. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/planned-command.js +55 -0
  358. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/project-read-command.js +35 -0
  359. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/run-command-aliases.js +116 -0
  360. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/runtime-context.js +1 -59
  361. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/cli/validation-handlers.js +33 -103
  362. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-evaluation/git-observation.js +7 -5
  363. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/startup.js +2 -2
  364. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-decision-protocol.js +40 -0
  365. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-dispatch-runtime.js +71 -306
  366. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-entry.js +3 -24
  367. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-owner-entry.js +31 -15
  368. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-runtime.js +29 -0
  369. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/facade-thread-entry.js +11 -0
  370. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/owner-client.js +79 -0
  371. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/package.js +14 -80
  372. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/plugin-runtime.js +29 -9
  373. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-lifecycle/thread-owner.js +164 -0
  374. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-owner-protocol.js +1 -0
  375. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-protocol-runtime.js +308 -0
  376. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/mcp-worker-runtime.js +152 -0
  377. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/control-command-service.js +22 -7
  378. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/control-context.js +8 -1
  379. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/runtime/validator-application.js +2 -2
  380. package/generated/plugins/copilot/agdf/runtime/create-agdf/package.json +5 -1
  381. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/closeout-readiness.js +10 -2
  382. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-placeholder.js +9 -0
  383. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/decision-content-readiness.js +2 -7
  384. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/definition-sources.js +3 -2
  385. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/delivery-map.js +2 -12
  386. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/doctor.js +162 -172
  387. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-check.js +10 -9
  388. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-inputs.js +11 -0
  389. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy-pure.js +446 -0
  390. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/gate-policy.js +3 -434
  391. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/next-action.js +2 -0
  392. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/parent-reconciliation.js +2 -1
  393. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/qa-follow-up.js +2 -1
  394. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/required-files.js +9 -7
  395. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state-policy.js +1 -1
  396. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-state.js +15 -9
  397. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-step-policy.js +2 -1
  398. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/run-work-summary.js +6 -4
  399. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/shared-value.js +7 -0
  400. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/shared.js +5 -254
  401. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/tp-planning.js +3 -2
  402. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/ur-readiness.js +7 -2
  403. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-evaluation/verified-change.js +11 -9
  404. 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
  405. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/artifact-readiness.js +5 -3
  406. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/authoring-inputs.js +110 -0
  407. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-archive.js +53 -0
  408. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/contract.js +124 -32
  409. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/doctor-observation.js +91 -0
  410. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/project-operation-call.js +5 -0
  411. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/project-state.js +48 -0
  412. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/result.js +61 -0
  413. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/selection.js +9 -3
  414. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/service.js +119 -67
  415. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/compatibility.js +42 -132
  416. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/contract.js +5 -5
  417. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/presentation.js +27 -119
  418. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/service.js +9 -37
  419. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/cockpit-pool.js +121 -0
  420. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/doctor-reader.js +92 -0
  421. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/doctor-worker.js +11 -0
  422. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/fs.js +18 -0
  423. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-read/snapshot.js +68 -17
  424. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/aggregate.js +3 -1
  425. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-command.js +13 -10
  426. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/approval-operations.js +10 -7
  427. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-binding-proof.js +12 -20
  428. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/artefact-bindings.js +10 -7
  429. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/canonical-initialization.js +761 -0
  430. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/control-layout.js +183 -0
  431. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/decision-material-contract.js +2 -1
  432. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/evidence-bindings.js +7 -7
  433. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/git-identity.js +86 -0
  434. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/index.js +0 -1
  435. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/input-resolution.js +99 -0
  436. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-entry.js +273 -0
  437. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-handoff.js +174 -0
  438. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-inventory.js +90 -0
  439. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-origin-reader.js +48 -0
  440. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/planned-origin.js +40 -0
  441. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-decision.js +12 -7
  442. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/presentation-delivery.js +90 -0
  443. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-render.js +5 -2
  444. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-review.js +3 -2
  445. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/preview-snapshot.js +9 -6
  446. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/recording-formats.js +12 -16
  447. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-artefact-recording.js +54 -66
  448. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-closure.js +343 -0
  449. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-contract.js +33 -250
  450. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-schema.js +508 -0
  451. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-command-service.js +198 -34
  452. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-create-command.js +60 -0
  453. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-identity.d.ts +14 -0
  454. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-identity.js +40 -0
  455. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-input-resolution.js +72 -0
  456. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory-reader.js +31 -0
  457. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-inventory.js +179 -0
  458. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-material.js +211 -0
  459. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-mutation.js +51 -0
  460. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-identity.js +2 -1
  461. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-proof.js +7 -4
  462. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operation-status.js +20 -4
  463. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-operations.js +70 -13
  464. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-owned-outputs.js +21 -9
  465. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-envelope.js +25 -33
  466. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation-render.js +8 -7
  467. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-presentation.js +45 -21
  468. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recording.js +10 -179
  469. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-boundary.js +7 -21
  470. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision-history.js +23 -16
  471. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-revision.js +84 -161
  472. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal-compute.js +19 -44
  473. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-seal.js +6 -1
  474. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-source-revisions.js +19 -18
  475. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-document.js +110 -42
  476. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-edits.js +13 -5
  477. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-parser.js +14 -6
  478. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-reader.js +27 -18
  479. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-repository.js +112 -48
  480. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-resolver.js +12 -15
  481. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-state-writer.js +21 -377
  482. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-pending.js +2 -1
  483. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-step-transaction.js +125 -114
  484. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-steps.js +136 -248
  485. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-store-inspection.js +14 -2
  486. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-verified-change.js +81 -0
  487. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-work-summary-shape.d.ts +1 -0
  488. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/{backlog-summary-shape.js → run-work-summary-shape.js} +7 -19
  489. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/delivery-continuation/service.js +5 -66
  490. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/delivery-path-search/persistence.js +26 -8
  491. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/delivery-path-search/state-adapter.js +1 -1
  492. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/index.js +14 -6
  493. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-catalog.js +3 -3
  494. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/interaction-presentation.js +29 -11
  495. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-hints.js +46 -0
  496. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-resolution.js +98 -0
  497. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-input-schema.js +15 -0
  498. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-resource-contract.js +1 -1
  499. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/mcp-tool-errors.js +31 -15
  500. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/owned-file-lock.js +266 -0
  501. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/owner-placement.js +50 -0
  502. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/canonical-init-plan.js +34 -0
  503. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/configuration.js +92 -0
  504. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/context.js +7 -11
  505. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/resources/language-preference.js +59 -0
  506. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/runtime/mcp-owner-protocol.js +102 -0
  507. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/runtime/plugin-provenance.js +173 -18
  508. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/compact-continuation.js +3 -3
  509. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/contract.js +28 -9
  510. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-intake.js +11 -5
  511. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +6 -10
  512. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/mcp-continuation.js +64 -0
  513. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/prd-definition.js +14 -5
  514. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/sd-definition.js +2 -1
  515. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/service.js +49 -14
  516. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/skill-dispatch/tp-definition.js +2 -1
  517. package/generated/plugins/copilot/agdf/runtime/runtime-manifest.json +2 -2
  518. package/generated/plugins/copilot/agdf/skills/agdf-brownfield-analysis/SKILL.md +8 -5
  519. package/generated/plugins/copilot/agdf/skills/agdf-clean-implementation-review/SKILL.md +3 -2
  520. package/generated/plugins/copilot/agdf/skills/agdf-code-review/SKILL.md +5 -3
  521. package/generated/plugins/copilot/agdf/skills/agdf-delivery-closeout/SKILL.md +3 -2
  522. package/generated/plugins/copilot/agdf/skills/agdf-delivery-path-search/SKILL.md +3 -2
  523. package/generated/plugins/copilot/agdf/skills/agdf-gate-check/SKILL.md +35 -31
  524. package/generated/plugins/copilot/agdf/skills/agdf-interaction-locales.json +1 -1
  525. package/generated/plugins/copilot/agdf/skills/agdf-prd-definition/SKILL.md +3 -2
  526. package/generated/plugins/copilot/agdf/skills/agdf-qa-gate/SKILL.md +3 -2
  527. package/generated/plugins/copilot/agdf/skills/agdf-release-or/SKILL.md +8 -5
  528. package/generated/plugins/copilot/agdf/skills/agdf-sd-definition/SKILL.md +3 -2
  529. package/generated/plugins/copilot/agdf/skills/agdf-task-plan-review/SKILL.md +3 -2
  530. package/generated/plugins/copilot/agdf/skills/agdf-tp-definition/SKILL.md +3 -2
  531. package/generated/plugins/copilot/agdf/skills/agdf-ur-definition/SKILL.md +12 -4
  532. package/generated/plugins/copilot/agdf/skills/agdf-ux-intent-definition/SKILL.md +5 -4
  533. package/generated/plugins/copilot/agdf/skills/contracts/closeout.md +1 -1
  534. package/generated/plugins/copilot/agdf/skills/contracts/control-scaffold.md +63 -46
  535. package/generated/plugins/copilot/agdf/skills/contracts/gate-artifact-preparation.md +58 -48
  536. package/generated/plugins/copilot/agdf/skills/contracts/gate-transition.md +5 -6
  537. package/generated/plugins/copilot/agdf/skills/contracts/interaction.md +43 -126
  538. package/generated/plugins/copilot/agdf/skills/contracts/modes.md +4 -3
  539. package/generated/plugins/copilot/agdf/skills/contracts/prd-definition.md +6 -6
  540. package/generated/plugins/copilot/agdf/skills/contracts/quality.md +10 -2
  541. package/generated/plugins/copilot/agdf/skills/contracts/request-activation.md +9 -8
  542. package/generated/plugins/copilot/agdf/skills/contracts/sd-definition.md +3 -3
  543. package/generated/plugins/copilot/agdf/skills/contracts/task-target-resolution.md +24 -0
  544. package/generated/plugins/copilot/agdf/skills/contracts/tp-definition.md +1 -1
  545. package/generated/plugins/copilot/agdf/skills/contracts/ur-definition.md +41 -7
  546. package/generated/submissions/openai/agdf/.codex-plugin/plugin.json +1 -1
  547. package/generated/submissions/openai/agdf/meta/agdf-agent-router.md +3 -3
  548. package/generated/submissions/openai/agdf/meta/agdf-defaults.json +9 -0
  549. package/generated/submissions/openai/agdf/meta/agdf-defaults.schema.json +20 -0
  550. package/generated/submissions/openai/agdf/meta/agdf-interaction-locales.json +2668 -2682
  551. package/generated/submissions/openai/agdf/meta/agdf-plugin.definition.json +8 -3
  552. package/generated/submissions/openai/agdf/meta/contracts/closeout.md +1 -1
  553. package/generated/submissions/openai/agdf/meta/contracts/control-scaffold.md +63 -46
  554. package/generated/submissions/openai/agdf/meta/contracts/gate-artifact-preparation.md +58 -48
  555. package/generated/submissions/openai/agdf/meta/contracts/gate-transition.md +5 -6
  556. package/generated/submissions/openai/agdf/meta/contracts/interaction.md +43 -126
  557. package/generated/submissions/openai/agdf/meta/contracts/modes.md +4 -3
  558. package/generated/submissions/openai/agdf/meta/contracts/prd-definition.md +6 -6
  559. package/generated/submissions/openai/agdf/meta/contracts/quality.md +10 -2
  560. package/generated/submissions/openai/agdf/meta/contracts/request-activation.md +9 -8
  561. package/generated/submissions/openai/agdf/meta/contracts/sd-definition.md +3 -3
  562. package/generated/submissions/openai/agdf/meta/contracts/task-target-resolution.md +24 -0
  563. package/generated/submissions/openai/agdf/meta/contracts/tp-definition.md +1 -1
  564. package/generated/submissions/openai/agdf/meta/contracts/ur-definition.md +41 -7
  565. package/generated/submissions/openai/agdf/meta/copilot-payload-baseline.json +3 -3
  566. package/generated/submissions/openai/agdf/meta/distribution-profile-history.json +7 -0
  567. package/generated/submissions/openai/agdf/plugin.json +1 -1
  568. package/generated/submissions/openai/agdf/skills/brownfield-analysis/SKILL.md +8 -5
  569. package/generated/submissions/openai/agdf/skills/clean-implementation-review/SKILL.md +3 -2
  570. package/generated/submissions/openai/agdf/skills/code-review/SKILL.md +5 -3
  571. package/generated/submissions/openai/agdf/skills/delivery-closeout/SKILL.md +3 -2
  572. package/generated/submissions/openai/agdf/skills/delivery-path-search/SKILL.md +3 -2
  573. package/generated/submissions/openai/agdf/skills/gate-check/SKILL.md +35 -31
  574. package/generated/submissions/openai/agdf/skills/prd-definition/SKILL.md +3 -2
  575. package/generated/submissions/openai/agdf/skills/qa-gate/SKILL.md +3 -2
  576. package/generated/submissions/openai/agdf/skills/release-or/SKILL.md +8 -5
  577. package/generated/submissions/openai/agdf/skills/sd-definition/SKILL.md +3 -2
  578. package/generated/submissions/openai/agdf/skills/task-plan-review/SKILL.md +3 -2
  579. package/generated/submissions/openai/agdf/skills/tp-definition/SKILL.md +3 -2
  580. package/generated/submissions/openai/agdf/skills/ur-definition/SKILL.md +12 -4
  581. package/generated/submissions/openai/agdf/skills/ux-intent-definition/SKILL.md +5 -4
  582. package/generated/submissions/openai/agdf/submission/openai/availability.md +1 -1
  583. package/generated/submissions/openai/agdf/submission/openai/capability-matrix.json +1 -1
  584. package/generated/submissions/openai/agdf/submission/openai/inventory.json +49 -41
  585. package/generated/submissions/openai/agdf/submission/openai/listing.json +1 -1
  586. package/generated/submissions/openai/agdf/submission/openai/readiness.json +2 -2
  587. package/generated/submissions/openai/agdf/submission/openai/readiness.md +2 -2
  588. package/generated/submissions/openai/agdf/submission/openai/release-notes.md +9 -1
  589. package/generated/submissions/openai/agdf/submission/openai/reviewer-cases.json +1 -1
  590. package/lib/cli/application.js +31 -43
  591. package/lib/cli/codex-document-command.js +195 -0
  592. package/lib/cli/command-registry.js +82 -148
  593. package/lib/cli/control-maintenance-command.js +8 -37
  594. package/lib/cli/parse-args.js +98 -16
  595. package/lib/cli/planned-command.js +55 -0
  596. package/lib/cli/project-init-command.js +21 -0
  597. package/lib/cli/project-read-command.js +35 -0
  598. package/lib/cli/run-command-aliases.js +116 -0
  599. package/lib/cli/runtime-context.js +1 -59
  600. package/lib/cli/validation-handlers.js +33 -103
  601. package/lib/control-evaluation/git-observation.js +7 -5
  602. package/lib/control-maintenance/startup.js +2 -2
  603. package/lib/host-adapters/codex/plugin.js +48 -1
  604. package/lib/install-setup/contract.js +4 -4
  605. package/lib/install-setup/{control-migration.js → control-compatibility.js} +1 -2
  606. package/lib/install-setup/interaction.js +0 -1
  607. package/lib/install-setup/presentation.js +3 -4
  608. package/lib/install-setup/service.js +5 -18
  609. package/lib/installers/local-marketplace.js +262 -8
  610. package/lib/lifecycle/codex-startup-status.js +29 -0
  611. package/lib/lifecycle/presentation.js +6 -0
  612. package/lib/mcp-decision-protocol.js +40 -0
  613. package/lib/mcp-dispatch-runtime.js +71 -306
  614. package/lib/mcp-lifecycle/adapters/codex-origin-probe.js +28 -4
  615. package/lib/mcp-lifecycle/evidence.js +2 -1
  616. package/lib/mcp-lifecycle/facade-entry.js +3 -24
  617. package/lib/mcp-lifecycle/facade-owner-entry.js +31 -15
  618. package/lib/mcp-lifecycle/facade-runtime.js +29 -0
  619. package/lib/mcp-lifecycle/facade-thread-entry.js +11 -0
  620. package/lib/mcp-lifecycle/owner-client.js +79 -0
  621. package/lib/mcp-lifecycle/package.js +14 -80
  622. package/lib/mcp-lifecycle/plugin-runtime.js +29 -9
  623. package/lib/mcp-lifecycle/service.js +5 -4
  624. package/lib/mcp-lifecycle/thread-owner.js +164 -0
  625. package/lib/mcp-owner-protocol.js +1 -0
  626. package/lib/mcp-protocol-runtime.js +308 -0
  627. package/lib/mcp-worker-runtime.js +152 -0
  628. package/lib/runtime/control-command-service.js +22 -7
  629. package/lib/runtime/control-context.js +8 -1
  630. package/lib/runtime/validator-application.js +2 -2
  631. package/lib/scaffold/canonical-init.js +2 -691
  632. package/lib/scaffold/plan.js +9 -32
  633. package/lib/scaffold/presentation.js +2 -2
  634. package/lib/scaffold/write.js +6 -1
  635. package/package.json +6 -2
  636. package/runtime/core/lib/control-evaluation/closeout-readiness.js +10 -2
  637. package/runtime/core/lib/control-evaluation/decision-content-placeholder.js +9 -0
  638. package/runtime/core/lib/control-evaluation/decision-content-readiness.js +2 -7
  639. package/runtime/core/lib/control-evaluation/definition-sources.js +3 -2
  640. package/runtime/core/lib/control-evaluation/delivery-map.js +2 -12
  641. package/runtime/core/lib/control-evaluation/doctor.js +162 -172
  642. package/runtime/core/lib/control-evaluation/gate-check.js +10 -9
  643. package/runtime/core/lib/control-evaluation/gate-policy-inputs.js +11 -0
  644. package/runtime/core/lib/control-evaluation/gate-policy-pure.js +446 -0
  645. package/runtime/core/lib/control-evaluation/gate-policy.js +3 -434
  646. package/runtime/core/lib/control-evaluation/next-action.js +2 -0
  647. package/runtime/core/lib/control-evaluation/parent-reconciliation.js +2 -1
  648. package/runtime/core/lib/control-evaluation/qa-follow-up.js +2 -1
  649. package/runtime/core/lib/control-evaluation/required-files.js +9 -7
  650. package/runtime/core/lib/control-evaluation/run-state-policy.js +1 -1
  651. package/runtime/core/lib/control-evaluation/run-state.js +15 -9
  652. package/runtime/core/lib/control-evaluation/run-step-policy.js +2 -1
  653. package/runtime/core/lib/control-evaluation/run-work-summary.js +6 -4
  654. package/runtime/core/lib/control-evaluation/shared-value.js +7 -0
  655. package/runtime/core/lib/control-evaluation/shared.js +5 -254
  656. package/runtime/core/lib/control-evaluation/tp-planning.js +3 -2
  657. package/runtime/core/lib/control-evaluation/ur-readiness.js +7 -2
  658. package/runtime/core/lib/control-evaluation/verified-change.js +11 -9
  659. 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
  660. package/runtime/core/lib/control-inspect/artifact-readiness.js +5 -3
  661. package/runtime/core/lib/control-inspect/authoring-inputs.js +110 -0
  662. package/runtime/core/lib/control-inspect/cockpit-archive.js +53 -0
  663. package/runtime/core/lib/control-inspect/cockpit-context.js +2 -1
  664. package/runtime/core/lib/control-inspect/cockpit-contract.js +11 -4
  665. package/runtime/core/lib/control-inspect/cockpit-list.d.ts +10 -6
  666. package/runtime/core/lib/control-inspect/cockpit-list.js +32 -41
  667. package/runtime/core/lib/control-inspect/cockpit-session.js +8 -8
  668. package/runtime/core/lib/control-inspect/cockpit-work.js +33 -0
  669. package/runtime/core/lib/control-inspect/cockpit.js +75 -44
  670. package/runtime/core/lib/control-inspect/contract.js +124 -32
  671. package/runtime/core/lib/control-inspect/decision-session.js +53 -11
  672. package/runtime/core/lib/control-inspect/doctor-observation.js +91 -0
  673. package/runtime/core/lib/control-inspect/project-operation-call.js +5 -0
  674. package/runtime/core/lib/control-inspect/project-state.js +48 -0
  675. package/runtime/core/lib/control-inspect/result.js +61 -0
  676. package/runtime/core/lib/control-inspect/selection.js +9 -3
  677. package/runtime/core/lib/control-inspect/service.js +119 -67
  678. package/runtime/core/lib/control-maintenance/compatibility.js +42 -132
  679. package/runtime/core/lib/control-maintenance/contract.js +5 -5
  680. package/runtime/core/lib/control-maintenance/presentation.js +27 -119
  681. package/runtime/core/lib/control-maintenance/service.js +9 -37
  682. package/runtime/core/lib/control-read/cockpit-pool.js +25 -9
  683. package/runtime/core/lib/control-read/cockpit-worker.js +4 -3
  684. package/runtime/core/lib/control-read/doctor-reader.js +92 -0
  685. package/runtime/core/lib/control-read/doctor-worker.js +11 -0
  686. package/runtime/core/lib/control-read/fs.js +18 -0
  687. package/runtime/core/lib/control-read/snapshot.js +68 -17
  688. package/runtime/core/lib/control-state/aggregate.js +3 -1
  689. package/runtime/core/lib/control-state/approval-command.js +13 -10
  690. package/runtime/core/lib/control-state/approval-operations.js +10 -7
  691. package/runtime/core/lib/control-state/artefact-binding-proof.js +12 -20
  692. package/runtime/core/lib/control-state/artefact-bindings.js +10 -7
  693. package/runtime/core/lib/control-state/canonical-initialization.js +761 -0
  694. package/runtime/core/lib/control-state/control-layout.js +183 -0
  695. package/runtime/core/lib/control-state/decision-action-contract.js +10 -1
  696. package/runtime/core/lib/control-state/decision-action-service.js +24 -3
  697. package/runtime/core/lib/control-state/decision-material-contract.js +2 -1
  698. package/runtime/core/lib/control-state/evidence-bindings.js +7 -7
  699. package/runtime/core/lib/control-state/git-identity.js +86 -0
  700. package/runtime/core/lib/control-state/index.js +0 -1
  701. package/runtime/core/lib/control-state/input-resolution.js +99 -0
  702. package/runtime/core/lib/control-state/planned-entry.js +273 -0
  703. package/runtime/core/lib/control-state/planned-handoff.js +174 -0
  704. package/runtime/core/lib/control-state/planned-inventory.js +90 -0
  705. package/runtime/core/lib/control-state/planned-origin-reader.js +48 -0
  706. package/runtime/core/lib/control-state/planned-origin.js +40 -0
  707. package/runtime/core/lib/control-state/presentation-decision.js +12 -7
  708. package/runtime/core/lib/control-state/presentation-delivery.js +90 -0
  709. package/runtime/core/lib/control-state/preview-render.js +5 -2
  710. package/runtime/core/lib/control-state/preview-review.js +3 -2
  711. package/runtime/core/lib/control-state/preview-snapshot.js +9 -6
  712. package/runtime/core/lib/control-state/recording-formats.js +12 -16
  713. package/runtime/core/lib/control-state/run-artefact-recording.js +54 -66
  714. package/runtime/core/lib/control-state/run-closure.js +343 -0
  715. package/runtime/core/lib/control-state/run-command-contract.js +33 -250
  716. package/runtime/core/lib/control-state/run-command-schema.js +508 -0
  717. package/runtime/core/lib/control-state/run-command-service.js +198 -34
  718. package/runtime/core/lib/control-state/run-create-command.js +60 -0
  719. package/runtime/core/lib/control-state/run-identity.d.ts +14 -0
  720. package/runtime/core/lib/control-state/run-identity.js +40 -0
  721. package/runtime/core/lib/control-state/run-input-resolution.js +72 -0
  722. package/runtime/core/lib/control-state/run-inventory-reader.js +31 -0
  723. package/runtime/core/lib/control-state/run-inventory.js +179 -0
  724. package/runtime/core/lib/control-state/run-material.js +211 -0
  725. package/runtime/core/lib/control-state/run-mutation.js +51 -0
  726. package/runtime/core/lib/control-state/run-operation-identity.js +2 -1
  727. package/runtime/core/lib/control-state/run-operation-proof.js +7 -4
  728. package/runtime/core/lib/control-state/run-operation-status.js +20 -4
  729. package/runtime/core/lib/control-state/run-operations.js +70 -13
  730. package/runtime/core/lib/control-state/run-owned-outputs.js +21 -9
  731. package/runtime/core/lib/control-state/run-presentation-envelope.js +25 -33
  732. package/runtime/core/lib/control-state/run-presentation-render.js +8 -7
  733. package/runtime/core/lib/control-state/run-presentation.js +45 -21
  734. package/runtime/core/lib/control-state/run-recording.js +10 -179
  735. package/runtime/core/lib/control-state/run-revision-boundary.js +7 -21
  736. package/runtime/core/lib/control-state/run-revision-history.js +23 -16
  737. package/runtime/core/lib/control-state/run-revision.js +84 -161
  738. package/runtime/core/lib/control-state/run-seal-compute.js +19 -44
  739. package/runtime/core/lib/control-state/run-seal.js +6 -1
  740. package/runtime/core/lib/control-state/run-source-revisions.js +19 -18
  741. package/runtime/core/lib/control-state/run-state-document.js +110 -42
  742. package/runtime/core/lib/control-state/run-state-edits.js +13 -5
  743. package/runtime/core/lib/control-state/run-state-parser.js +14 -6
  744. package/runtime/core/lib/control-state/run-state-reader.js +27 -18
  745. package/runtime/core/lib/control-state/run-state-repository.js +112 -48
  746. package/runtime/core/lib/control-state/run-state-resolver.js +12 -15
  747. package/runtime/core/lib/control-state/run-state-writer.js +21 -377
  748. package/runtime/core/lib/control-state/run-step-pending.js +2 -1
  749. package/runtime/core/lib/control-state/run-step-transaction.js +125 -114
  750. package/runtime/core/lib/control-state/run-steps.js +136 -248
  751. package/runtime/core/lib/control-state/run-store-inspection.js +14 -2
  752. package/runtime/core/lib/control-state/run-verified-change.js +81 -0
  753. package/runtime/core/lib/control-state/run-work-summary-shape.d.ts +1 -0
  754. 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
  755. package/runtime/core/lib/delivery-continuation/service.js +5 -66
  756. package/runtime/core/lib/delivery-path-search/persistence.js +26 -8
  757. package/runtime/core/lib/delivery-path-search/state-adapter.js +1 -1
  758. package/runtime/core/lib/index.js +14 -6
  759. package/runtime/core/lib/interaction-catalog.js +3 -3
  760. package/runtime/core/lib/interaction-presentation.js +29 -11
  761. package/runtime/core/lib/mcp-input-hints.js +46 -0
  762. package/runtime/core/lib/mcp-input-resolution.js +98 -0
  763. package/runtime/core/lib/mcp-input-schema.js +15 -0
  764. package/runtime/core/lib/mcp-resource-contract.js +1 -1
  765. package/runtime/core/lib/mcp-tool-errors.js +31 -15
  766. package/runtime/core/lib/owned-file-lock.js +266 -0
  767. package/runtime/core/lib/owner-placement.js +50 -0
  768. package/runtime/core/lib/resources/canonical-init-plan.js +34 -0
  769. package/runtime/core/lib/resources/configuration.js +92 -0
  770. package/runtime/core/lib/resources/context.js +7 -11
  771. package/runtime/core/lib/resources/language-preference.js +59 -0
  772. package/runtime/core/lib/runtime/mcp-owner-protocol.js +102 -0
  773. package/runtime/core/lib/runtime/plugin-provenance.js +173 -18
  774. package/runtime/core/lib/skill-dispatch/compact-continuation.js +3 -3
  775. package/runtime/core/lib/skill-dispatch/contract.js +28 -9
  776. package/runtime/core/lib/skill-dispatch/delivery-intake.js +11 -5
  777. package/runtime/core/lib/skill-dispatch/delivery-run-assignment.js +6 -10
  778. package/runtime/core/lib/skill-dispatch/mcp-continuation.js +64 -0
  779. package/runtime/core/lib/skill-dispatch/prd-definition.js +14 -5
  780. package/runtime/core/lib/skill-dispatch/sd-definition.js +2 -1
  781. package/runtime/core/lib/skill-dispatch/service.js +49 -14
  782. package/runtime/core/lib/skill-dispatch/tp-definition.js +2 -1
  783. package/generated/.agdf/control/templates/AGDF_RUN.md +0 -139
  784. package/generated/.agdf/control/templates/MASTER_BACKLOG.md +0 -39
  785. package/generated/plugins/agdf/control/templates/AGDF_RUN.md +0 -139
  786. package/generated/plugins/agdf/control/templates/MASTER_BACKLOG.md +0 -39
  787. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/interaction.js +0 -28
  788. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/repair.js +0 -4
  789. package/generated/plugins/agdf/runtime/create-agdf/lib/control-maintenance/service.js +0 -3
  790. package/generated/plugins/agdf/runtime/create-agdf/lib/control-state/run-recovery.js +0 -5
  791. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-inspect/cockpit-backlog.js +0 -135
  792. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/interaction.js +0 -57
  793. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/migration.js +0 -85
  794. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/repair.js +0 -226
  795. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.d.ts +0 -4
  796. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary.js +0 -67
  797. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-migration.js +0 -69
  798. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-projection-reader.js +0 -38
  799. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog-writer.js +0 -80
  800. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog.js +0 -90
  801. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recovery.js +0 -296
  802. package/generated/plugins/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-relationship-correction.js +0 -74
  803. package/generated/plugins/copilot/agdf/control/templates/AGDF_RUN.md +0 -139
  804. package/generated/plugins/copilot/agdf/control/templates/MASTER_BACKLOG.md +0 -39
  805. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/interaction.js +0 -28
  806. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/repair.js +0 -4
  807. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-maintenance/service.js +0 -3
  808. package/generated/plugins/copilot/agdf/runtime/create-agdf/lib/control-state/run-recovery.js +0 -5
  809. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/interaction.js +0 -57
  810. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/migration.js +0 -85
  811. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-maintenance/repair.js +0 -226
  812. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary-shape.d.ts +0 -4
  813. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/backlog-summary.js +0 -67
  814. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-migration.js +0 -69
  815. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/legacy-projection-reader.js +0 -38
  816. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog-writer.js +0 -80
  817. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-backlog.js +0 -90
  818. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-recovery.js +0 -296
  819. package/generated/plugins/copilot/agdf/runtime/create-agdf/runtime/core/lib/control-state/run-relationship-correction.js +0 -74
  820. package/lib/control-maintenance/interaction.js +0 -28
  821. package/lib/control-maintenance/repair.js +0 -4
  822. package/lib/control-maintenance/service.js +0 -3
  823. package/lib/control-state/run-recovery.js +0 -5
  824. package/lib/install-setup/control-repair.js +0 -1
  825. package/runtime/core/lib/control-inspect/cockpit-backlog.js +0 -135
  826. package/runtime/core/lib/control-maintenance/interaction.js +0 -57
  827. package/runtime/core/lib/control-maintenance/migration.js +0 -85
  828. package/runtime/core/lib/control-maintenance/repair.js +0 -226
  829. package/runtime/core/lib/control-state/backlog-summary-shape.d.ts +0 -4
  830. package/runtime/core/lib/control-state/backlog-summary.js +0 -67
  831. package/runtime/core/lib/control-state/legacy-migration.js +0 -69
  832. package/runtime/core/lib/control-state/legacy-projection-reader.js +0 -38
  833. package/runtime/core/lib/control-state/run-backlog-writer.js +0 -80
  834. package/runtime/core/lib/control-state/run-backlog.js +0 -90
  835. package/runtime/core/lib/control-state/run-recovery.js +0 -296
  836. package/runtime/core/lib/control-state/run-relationship-correction.js +0 -74
@@ -1,296 +0,0 @@
1
- import { assertRecoveryOperationsTrusted } from "./run-state-writer.js";
2
- import { createHash, randomUUID } from "node:crypto";
3
- import {
4
- closeSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readdirSync, writeFileSync, fsyncSync,
5
- } from "node:fs";
6
- import { dirname, join } from "node:path";
7
- import { transitionDecisionForRunState } from "../control-evaluation/gate-policy.js";
8
- import { prepareRunContentState, userGateOrder } from "../control-evaluation/run-state.js";
9
- import { containedRegularFile, hasSymlinkComponent } from "./contained-file.js";
10
- import { duplicateArtefactRowTypes, parseControlState, parseRunState, scalarFields, sectionTableRows } from "./run-state-parser.js";
11
- import { applyRunSeals, artefactFileDigest, canonicalRunText, computeRunSeals, listedArtefactPaths, pendingArtefactPaths, runSealState } from "./run-seal.js";
12
- import { runPath } from "./run-state-reader.js";
13
- import { atomicWrite, recoveryRunContent, unapproveRecoveryApprovals, withRunLock, writeRunRecoveryLocked } from "./run-state-writer.js";
14
-
15
- const sha256 = (value) => `sha256:${createHash("sha256").update(value, "utf8").digest("hex")}`;
16
- const digestContent = (content) => sha256(canonicalRunText(content));
17
- function recoveryPreviewDigest(preview) {
18
- const bound = {
19
- schema_version: preview.schema_version, preview_id: preview.preview_id, run_id: preview.run_id,
20
- source_revision_id: preview.source_revision_id, source_content_digest: preview.source_content_digest,
21
- source_content: preview.source_content, source_artefacts: preview.source_artefacts,
22
- git_history: preview.git_history, prior_approvals: preview.prior_approvals,
23
- approval_provenance: preview.approval_provenance, approvals_to_invalidate: preview.approvals_to_invalidate,
24
- next_gate: preview.next_gate, next_revision_id: preview.next_revision_id,
25
- candidate_content: preview.candidate_content, candidate_digest: preview.candidate_digest,
26
- };
27
- // Version 1 journals did not bind the activity timestamp. Keep their stored digest readable;
28
- // new previews bind the timestamp used by both the expected state and the atomic writer.
29
- if (preview.preview_format_version === 2) {
30
- bound.preview_format_version = 2;
31
- bound.created_at = preview.created_at;
32
- }
33
- return sha256(JSON.stringify(bound));
34
- }
35
-
36
- const PREVIEW_CONFIRMATION = (runId, previewId, digest) => `RECOVER ${runId} ${previewId} ${digest}`;
37
-
38
- // Read-only proof of the former self-reference hashing defect. This does not accept arbitrary
39
- // changed seals: the complete current record must equal the validated journal's old writer result.
40
- export function inspectSelfReferenceRecovery(root, runId) {
41
- const { path, runDir } = safeRunFiles(root, runId);
42
- const content = readFileSync(path, "utf8");
43
- const parsed = parseRunState(content, runId);
44
- const selfPath = `.agdf/control/runs/${runId}/RUN_STATE.md`;
45
- if (!parsed.valid || parsed.meta.lifecycle !== "active" || runSealState(root, content).status !== "content_changed"
46
- || !listedArtefactPaths(content).includes(selfPath)) return null;
47
- const directory = join(runDir, "recovery-previews");
48
- if (!existsSync(directory)) return null;
49
- const stat = lstatSync(directory);
50
- if (stat.isSymbolicLink() || !stat.isDirectory()) throw new Error("AGDF_RUN_PATH_INVALID");
51
- for (const name of readdirSync(directory).filter((value) => /^[0-9a-f-]{36}\.json$/iu.test(value))) {
52
- try {
53
- const { preview } = readPreview(root, runDir, runId, name.slice(0, -5));
54
- if (preview.phase !== "committed" || preview.preview_format_version !== 2
55
- || preview.result_digest !== digestContent(content) || preview.result_revision_id !== parsed.meta.revision_id
56
- || preview.next_revision_id !== parsed.meta.revision_id) continue;
57
- const currentArtefacts = artifactSnapshot(root, content).filter((entry) => entry.path !== selfPath);
58
- if (JSON.stringify(currentArtefacts) !== JSON.stringify(preview.source_artefacts.filter((entry) => entry.path !== selfPath))) continue;
59
- const source = parseRunState(preview.source_content, runId);
60
- const restored = recoveryRunContent(root, preview.candidate_content, {
61
- revision: source.meta.revision, nextRevisionId: preview.next_revision_id, updatedAt: preview.created_at,
62
- });
63
- const legacy = applyRunSeals(restored, computeRunSeals(root, restored, { selfReferenceDigest: preview.source_content_digest }));
64
- if (legacy !== content || runSealState(root, restored).status !== "valid") continue;
65
- return { source: `recovery-previews/${name}`, source_revision_id: parsed.meta.revision_id, content: restored };
66
- } catch { /* A damaged checkpoint cannot prove an original. */ }
67
- }
68
- return null;
69
- }
70
-
71
- function gitHistoryCandidates(root, runId, readGitHistory) {
72
- if (typeof readGitHistory !== "function") return { status: "unavailable", candidates: [] };
73
- const relativePath = `.agdf/control/runs/${runId}/RUN_STATE.md`;
74
- let entries;
75
- try { entries = readGitHistory(root, relativePath); } catch { return { status: "unavailable", candidates: [] }; }
76
- if (!Array.isArray(entries) || entries.length > 25) return { status: "unavailable", candidates: [] };
77
- const candidates = [];
78
- for (const entry of entries) {
79
- if (!entry || entry.path !== relativePath || !/^[0-9a-f]{40,64}$/u.test(entry.commit) || typeof entry.content !== "string" || Buffer.byteLength(entry.content) > 1024 * 1024) continue;
80
- const parsed = parseRunState(entry.content, runId);
81
- if (!parsed.valid) continue;
82
- const meta = scalarFields(entry.content).values;
83
- const sealPattern = /^sha256:[0-9a-f]{64}$/u;
84
- candidates.push({ commit: entry.commit, revision_id: parsed.meta.revision_id, content_digest: digestContent(entry.content),
85
- seal_lines_present: sealPattern.test(meta.get("content_seal") ?? "") && sealPattern.test(meta.get("approval_seal") ?? ""), approval_provenance: "not_proven_by_git_revision" });
86
- }
87
- return { status: "available", candidates };
88
- }
89
-
90
- function safeRunFiles(root, runId) {
91
- const path = runPath(root, runId);
92
- const runDir = dirname(path);
93
- let rootStat;
94
- try { rootStat = lstatSync(root); } catch { throw new Error("AGDF_RUN_PATH_INVALID"); }
95
- if (rootStat.isSymbolicLink() || !rootStat.isDirectory()) throw new Error("AGDF_RUN_PATH_INVALID");
96
- for (const target of [join(root, ".agdf"), join(root, ".agdf", "control"), join(root, ".agdf", "control", "runs"), runDir, path]) {
97
- let stat;
98
- try { stat = lstatSync(target); } catch { throw new Error("AGDF_RUN_PATH_INVALID"); }
99
- if (stat.isSymbolicLink() || (target === path ? !stat.isFile() : !stat.isDirectory())) throw new Error("AGDF_RUN_PATH_INVALID");
100
- }
101
- return { path, runDir };
102
- }
103
-
104
- function artifactSnapshot(root, content) {
105
- const paths = listedArtefactPaths(content);
106
- const pending = new Set(pendingArtefactPaths(content));
107
- const entries = paths.map((path) => {
108
- const resolved = containedRegularFile(root, path);
109
- const status = hasSymlinkComponent(root, path) ? "invalid" : resolved.status;
110
- return { path, status, digest: status === "valid" ? artefactFileDigest(root, path) : status,
111
- ...(status === "missing" && pending.has(path) ? { planned: true } : {}) };
112
- });
113
- return entries;
114
- }
115
-
116
- function approvalSnapshot(content) {
117
- return ["Approvals", "Gate Checklist"].flatMap((section) => sectionTableRows(content, section)
118
- .filter(([gate]) => userGateOrder.includes(gate))
119
- .map(([gate, status = "", evidence = ""]) => ({ section, gate, status: status.replace(/^`|`$/gu, "").trim(), evidence: evidence.trim() })));
120
- }
121
-
122
- function deriveNextGate(root, content, path) {
123
- const state = prepareRunContentState(root, content, path);
124
- return transitionDecisionForRunState(state).current_gate;
125
- }
126
-
127
- export function inspectRunRecovery(root, runId, { inspectHistory = true, readGitHistory } = {}) {
128
- const { path } = safeRunFiles(root, runId);
129
- const content = readFileSync(path, "utf8");
130
- const state = parseRunState(content, runId);
131
- if (!state.valid) throw new Error("AGDF_RUN_STATE_INVALID");
132
- if (state.meta.lifecycle !== "active") throw new Error("AGDF_RECOVERY_LIFECYCLE_UNSUPPORTED");
133
- if (duplicateArtefactRowTypes(content).length) throw new Error("AGDF_ARTEFACT_ROW_DUPLICATE");
134
- const seal = runSealState(root, content);
135
- assertRecoveryOperationsTrusted(content);
136
- if (!["unsealed", "invalid"].includes(seal.status)) throw new Error("AGDF_RUN_RECOVERY_NOT_REQUIRED");
137
- const artefacts = artifactSnapshot(root, content);
138
- const gitHistory = inspectHistory ? gitHistoryCandidates(root, runId, readGitHistory) : { status: "not_checked", candidates: [] };
139
- return Object.freeze({
140
- schema_version: "1", run_id: runId, revision: state.meta.revision,
141
- revision_id: state.meta.revision_id, seal_status: seal.status,
142
- content_digest: digestContent(content), artefacts,
143
- git_history: gitHistory,
144
- approvals: approvalSnapshot(content), approval_provenance: "no_independent_provenance",
145
- next_gate_if_recovered: deriveNextGate(root, unapproveRecoveryApprovals(content), path),
146
- });
147
- }
148
-
149
- function previewDirectory(runDir) {
150
- const path = join(runDir, "recovery-previews");
151
- try { mkdirSync(path, { mode: 0o700 }); } catch (error) { if (error.code !== "EEXIST") throw error; }
152
- const stat = lstatSync(path);
153
- if (stat.isSymbolicLink() || !stat.isDirectory()) throw new Error("AGDF_RUN_PATH_INVALID");
154
- if (process.platform !== "win32" && (stat.mode & 0o077) !== 0) throw new Error("AGDF_RECOVERY_JOURNAL_PERMISSIONS_INVALID");
155
- return path;
156
- }
157
-
158
- function createJournal(path, record) {
159
- let fd;
160
- try {
161
- fd = openSync(path, "wx", 0o600);
162
- writeFileSync(fd, `${JSON.stringify(record, null, 2)}\n`, "utf8");
163
- fsyncSync(fd);
164
- } finally {
165
- if (fd !== undefined) closeSync(fd);
166
- }
167
- }
168
-
169
- export function previewRunRecovery(root, runId, options = {}) {
170
- const inspection = inspectRunRecovery(root, runId, options);
171
- if (inspection.artefacts.some((entry) => entry.status !== "valid" && !entry.planned)) {
172
- throw new Error(inspection.artefacts.some((entry) => entry.status === "invalid")
173
- ? "AGDF_RECOVERY_ARTEFACT_PATH_INVALID" : "AGDF_RECOVERY_ARTEFACT_MISSING");
174
- }
175
- const { path, runDir } = safeRunFiles(root, runId);
176
- const source = readFileSync(path, "utf8");
177
- if (digestContent(source) !== inspection.content_digest) throw new Error("AGDF_STALE_RUN_REVISION");
178
- if (JSON.stringify(artifactSnapshot(root, source)) !== JSON.stringify(inspection.artefacts)) throw new Error("AGDF_STALE_RUN_REVISION");
179
- const previewId = randomUUID();
180
- const nextRevisionId = randomUUID();
181
- const candidate = unapproveRecoveryApprovals(source);
182
- const preview = {
183
- schema_version: "1", preview_format_version: 2, preview_id: previewId, run_id: runId,
184
- created_at: new Date().toISOString(),
185
- source_revision_id: inspection.revision_id, source_content_digest: inspection.content_digest,
186
- source_content: source,
187
- source_artefacts: inspection.artefacts, git_history: inspection.git_history,
188
- prior_approvals: inspection.approvals,
189
- approval_provenance: "no_independent_provenance", approvals_to_invalidate: userGateOrder,
190
- next_gate: inspection.next_gate_if_recovered, next_revision_id: nextRevisionId,
191
- candidate_content: candidate, candidate_digest: digestContent(candidate),
192
- phase: "prepared",
193
- };
194
- preview.preview_digest = recoveryPreviewDigest(preview);
195
- preview.confirmation = PREVIEW_CONFIRMATION(runId, previewId, preview.preview_digest);
196
- const dir = previewDirectory(runDir);
197
- const journalPath = join(dir, `${previewId}.json`);
198
- createJournal(journalPath, preview);
199
- return Object.freeze({
200
- schema_version: "1", outcome: "previewed", run_id: runId, preview_id: previewId,
201
- confirmation: preview.confirmation, source_content_digest: preview.source_content_digest,
202
- source_artefacts: preview.source_artefacts, git_history: preview.git_history,
203
- approvals_to_invalidate: preview.approvals_to_invalidate,
204
- approval_provenance: preview.approval_provenance, next_gate: preview.next_gate,
205
- journal: journalPath.slice(root.length + 1),
206
- });
207
- }
208
-
209
- function readPreview(root, runDir, runId, previewId) {
210
- if (!/^[0-9a-f-]{36}$/iu.test(previewId)) throw new Error("AGDF_RECOVERY_PREVIEW_INVALID");
211
- const dir = join(runDir, "recovery-previews");
212
- const dirStat = lstatSync(dir);
213
- if (dirStat.isSymbolicLink() || !dirStat.isDirectory()) throw new Error("AGDF_RUN_PATH_INVALID");
214
- const path = join(dir, `${previewId}.json`);
215
- const fileStat = lstatSync(path);
216
- if (fileStat.isSymbolicLink() || !fileStat.isFile()) throw new Error("AGDF_RECOVERY_PREVIEW_INVALID");
217
- const preview = JSON.parse(readFileSync(path, "utf8"));
218
- if (preview.preview_format_version !== undefined && preview.preview_format_version !== 2) {
219
- throw new Error("AGDF_RECOVERY_PREVIEW_VERSION_UNSUPPORTED");
220
- }
221
- if (preview.schema_version !== "1" || preview.preview_id !== previewId || preview.run_id !== runId
222
- || preview.preview_digest !== recoveryPreviewDigest(preview)
223
- || preview.confirmation !== PREVIEW_CONFIRMATION(runId, previewId, preview.preview_digest)
224
- || preview.source_content_digest !== digestContent(preview.source_content)
225
- || preview.candidate_digest !== digestContent(unapproveRecoveryApprovals(preview.source_content))
226
- || preview.candidate_content !== unapproveRecoveryApprovals(preview.source_content)
227
- || JSON.stringify(preview.prior_approvals) !== JSON.stringify(approvalSnapshot(preview.source_content))) {
228
- throw new Error("AGDF_RECOVERY_PREVIEW_INVALID");
229
- }
230
- return { path, preview };
231
- }
232
-
233
- export function applyRunRecovery(root, { runId, previewId, confirmation }, hooks = {}) {
234
- if (typeof confirmation !== "string") throw new Error("AGDF_RECOVERY_CONFIRMATION_REQUIRED");
235
- const { path, runDir } = safeRunFiles(root, runId);
236
- const { path: journalPath, preview } = readPreview(root, runDir, runId, previewId);
237
- if (confirmation !== preview.confirmation) throw new Error("AGDF_RECOVERY_CONFIRMATION_REQUIRED");
238
- return withRunLock(path, () => {
239
- const lockedPreview = readPreview(root, runDir, runId, previewId).preview;
240
- if (lockedPreview.preview_digest !== preview.preview_digest || lockedPreview.confirmation !== confirmation) {
241
- throw new Error("AGDF_RECOVERY_PREVIEW_INVALID");
242
- }
243
- Object.assign(preview, lockedPreview);
244
- const current = readFileSync(path, "utf8");
245
- const currentDigest = digestContent(current);
246
- if (JSON.stringify(artifactSnapshot(root, current)) !== JSON.stringify(preview.source_artefacts)) {
247
- throw new Error("AGDF_STALE_RUN_REVISION");
248
- }
249
- if (preview.phase === "committed") {
250
- const committed = parseRunState(current, runId);
251
- if (currentDigest !== preview.result_digest || runSealState(root, current).status !== "valid"
252
- || !committed.valid || committed.meta.revision_id !== preview.next_revision_id
253
- || preview.result_revision_id !== preview.next_revision_id) throw new Error("AGDF_RECOVERY_JOURNAL_CONFLICT");
254
- return Object.freeze({ schema_version: "1", outcome: "already_recovered", run_id: runId, preview_id: previewId, revision_id: preview.result_revision_id,
255
- backlog: "pending", backlog_reason: "run_only_recovery",
256
- backlog_next_action: `Synchronize this Run with run-update --run ${runId} --revision ${preview.result_revision_id}.` });
257
- }
258
- if (preview.phase !== "prepared" && preview.phase !== "applying") throw new Error("AGDF_RECOVERY_JOURNAL_PHASE_INVALID");
259
- if (preview.phase === "prepared" && (currentDigest !== preview.source_content_digest
260
- || current !== preview.source_content || JSON.stringify(artifactSnapshot(root, current)) !== JSON.stringify(preview.source_artefacts))) {
261
- throw new Error("AGDF_STALE_RUN_REVISION");
262
- }
263
- const parsedSource = parseRunState(preview.source_content, runId);
264
- if (!parsedSource.valid || parsedSource.meta.revision_id !== preview.source_revision_id) throw new Error("AGDF_RECOVERY_PREVIEW_INVALID");
265
- const expectedResultContent = recoveryRunContent(root, preview.candidate_content, {
266
- revision: parsedSource.meta.revision, nextRevisionId: preview.next_revision_id, updatedAt: preview.created_at,
267
- });
268
- const expectedResultDigest = digestContent(expectedResultContent);
269
- let written;
270
- if (preview.phase === "applying" && currentDigest === preview.result_digest
271
- && currentDigest === expectedResultDigest && runSealState(root, current).status === "valid") {
272
- written = parseRunState(current, runId);
273
- } else {
274
- if (preview.phase === "applying" && currentDigest !== preview.source_content_digest) throw new Error("AGDF_RECOVERY_JOURNAL_CONFLICT");
275
- const applying = { ...preview, phase: "applying", source_content: current,
276
- result_digest: expectedResultDigest, result_revision_id: preview.next_revision_id };
277
- atomicWrite(journalPath, `${JSON.stringify(applying, null, 2)}\n`);
278
- hooks.beforeRunWrite?.();
279
- written = writeRunRecoveryLocked(path, preview.candidate_content, {
280
- expectedContent: current, expectedRevisionId: preview.source_revision_id,
281
- nextRevisionId: preview.next_revision_id,
282
- updatedAt: preview.created_at,
283
- });
284
- hooks.afterRunWrite?.();
285
- }
286
- const resultContent = readFileSync(path, "utf8");
287
- const completed = { ...preview, phase: "committed", result_digest: digestContent(resultContent), result_revision_id: written.meta.revision_id };
288
- hooks.beforeJournalCommit?.();
289
- atomicWrite(journalPath, `${JSON.stringify(completed, null, 2)}\n`);
290
- return Object.freeze({ schema_version: "1", outcome: "recovered", run_id: runId,
291
- backlog: "pending", backlog_reason: "run_only_recovery",
292
- backlog_next_action: `Synchronize this Run with run-update --run ${runId} --revision ${written.meta.revision_id}.`,
293
- preview_id: previewId, revision: written.meta.revision, revision_id: written.meta.revision_id,
294
- seal_status: runSealState(root, resultContent).status, next_gate: deriveNextGate(root, resultContent, path) });
295
- });
296
- }
@@ -1,74 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- import { canonicalJson } from "./approval-command-contract.js";
3
- import { readArtefactBindings } from "./artefact-bindings.js";
4
- import { exactApprovedArtefacts, validateBindingProof } from "./artefact-binding-proof.js";
5
- import { APPROVAL_GATES, runSealState } from "./run-seal.js";
6
- import { readRun, appendTableRow, guardedWrite, rejected } from "./run-state-edits.js";
7
- import { prepareRunContentState } from "../control-evaluation/run-state.js";
8
- import { parseControlState } from "./run-state-parser.js";
9
- import { runPath } from "./run-state-reader.js";
10
- import { flushRunCommit, withRunLock, writeRunLocked } from "./run-state-writer.js";
11
- import { sameRelationship } from "../control-evaluation/delivery-relationships.js";
12
- import { transitionDecisionForRunState } from "../control-evaluation/gate-policy.js";
13
-
14
- const controlFor = (root, run) => ({ ...prepareRunContentState(root, run.content, run.path), meta: run.meta });
15
-
16
- // Mutation owner for authorized bound continuation only. Evaluators never call it.
17
- export function correctRunRelationship(root, { runId, revisionId }, { evaluateGateCheck, checkpoint, confirmCommit = flushRunCommit } = {}) {
18
- const locked = guardedWrite(runId, () => withRunLock(runPath(root, runId), () => {
19
- const run = readRun(root, runId);
20
- if (run.rejection) return run.rejection;
21
- if (run.meta.revision_id !== revisionId) return rejected(runId, "stale_revision");
22
- if (runSealState(root, run.content).status !== "valid") return rejected(runId, "seal_invalid");
23
- const report = evaluateGateCheck(root, { runId });
24
- const decisive = (report.delivery_map?.findings ?? []).filter(row => ["block", "revise"].includes(row.severity));
25
- const missing = (report.delivery_map?.relationships ?? []).filter(row => row.required && row.status === "missing");
26
- if (missing.length === 0 && decisive.length === 0) return { schema_version: "1", outcome: "unchanged", run_id: runId, revision_id: revisionId };
27
- const unrelatedDoctor = (report.doctor_report?.findings ?? []).filter(row => ["block", "revise"].includes(row.severity)
28
- && row.code !== "AGDF_DELIVERY_RELATIONSHIP_MISSING");
29
- if (unrelatedDoctor.length || decisive.length !== 1 || decisive[0].code !== "AGDF_DELIVERY_RELATIONSHIP_MISSING"
30
- || missing.length !== 1 || report.blocking_reason !== "AGDF_DELIVERY_RELATIONSHIP_MISSING") return rejected(runId, "correction_not_eligible");
31
- const control = controlFor(root, run), expected = missing[0];
32
- if (control.artefact_chain.some(row => row.from === expected.from)) return rejected(runId, "correction_not_eligible");
33
- const history = readArtefactBindings(run.content);
34
- const eligible = history.active.filter(receipt => receipt.run_id === runId && receipt.operation.revision <= Number(run.meta.revision)
35
- && sameRelationship(receipt.relationship, expected));
36
- if (!history.valid || eligible.length !== 1) return rejected(runId, "binding_proof_missing_or_ambiguous");
37
- const receipt = eligible[0], destinationGate = expected.from === "QA_REPORT" ? "QA" : expected.from;
38
- const destination = control.artefacts.get(destinationGate), source = control.artefacts.get(expected.to);
39
- if (destination?.path !== receipt.destination.path || source?.path !== receipt.source.path
40
- || !validateBindingProof(root, receipt) || !exactApprovedArtefacts(root, control)) return rejected(runId, "artefact_binding_proof_invalid");
41
- const before = canonicalJson(transitionDecisionForRunState(control));
42
- let next = appendTableRow(run.content, "Artefact Chain", [expected.from, expected.relationship, expected.to,
43
- `binding ${receipt.binding_id}; exact sealed reviewed mapping ${receipt.review.path}`]);
44
- if (!next) return rejected(runId, "run_layout_unsupported");
45
- const nextRevisionId = randomUUID();
46
- next = appendTableRow(next, "Evidence", ["Relationship correction", receipt.review.path,
47
- `binding ${receipt.binding_id}; ${expected.from} ${expected.relationship} ${expected.to}; revision ${revisionId} -> ${nextRevisionId}`, "exact sealed reviewed mapping"]);
48
- if (!next || canonicalJson(transitionDecisionForRunState(controlFor(root, { ...run, content: next }))) !== before) return rejected(runId, "correction_permission_changed");
49
- let written, recoveredCommit = false;
50
- try { written = writeRunLocked(run.path, next, revisionId, { expectedContent: run.content, nextRevisionId, checkpoint,
51
- validateBeforeWrite: () => {
52
- if (!validateBindingProof(root, receipt) || !exactApprovedArtefacts(root, control)
53
- || runSealState(root, run.content).status !== "valid") throw new Error("AGDF_ARTEFACT_BINDING_PROOF_INVALID");
54
- } }); }
55
- catch (error) {
56
- const actual = readRun(root, runId);
57
- if (actual.rejection || actual.meta.revision_id !== nextRevisionId || runSealState(root, actual.content).status !== "valid") throw error;
58
- // Reuse the existing owner's durability confirmation; never retry into another revision.
59
- try { confirmCommit(run.path); }
60
- catch {
61
- const unconfirmed = new Error("AGDF_CORRECTION_COMMIT_UNCONFIRMED");
62
- unconfirmed.committed_revision_id = nextRevisionId;
63
- throw unconfirmed;
64
- }
65
- written = { meta: actual.meta }; recoveredCommit = true;
66
- }
67
- return { schema_version: "1", outcome: "corrected", run_id: runId, binding_id: receipt.binding_id,
68
- backlog: "pending", backlog_reason: "run_only_relationship_correction",
69
- backlog_next_action: `Synchronize this Run with run-update --run ${runId} --revision ${written.meta.revision_id}.`,
70
- relationship: receipt.relationship, previous_revision_id: revisionId, revision_id: written.meta.revision_id, revision: written.meta.revision,
71
- ...(recoveredCommit ? { recovered_commit: true } : {}) };
72
- }));
73
- return locked.rejection ?? locked.state;
74
- }
@@ -1,28 +0,0 @@
1
- import { createInterface } from "node:readline/promises";
2
- import process from "node:process";
3
- import { interactionLocales } from "#agdf-core/resources/context.js";
4
- import { selectControlMigration, selectControlRepair } from "#agdf-core/control-maintenance/interaction.js";
5
- export * from "#agdf-core/control-maintenance/interaction.js";
6
- export async function promptControlMigration(plan, {
7
- input = process.stdin, output = process.stdout, registry = interactionLocales, language = "en",
8
- } = {}) {
9
- const prompt = createInterface({ input, output });
10
- try {
11
- return await selectControlMigration(plan, { registry, language,
12
- write(value) { output.write(`${value}\n`); },
13
- readChoice({ prompt: question }) { return prompt.question(question); },
14
- });
15
- } finally { prompt.close(); }
16
- }
17
-
18
- export async function promptControlRepair(value, {
19
- input = process.stdin, output = process.stdout, registry = interactionLocales, language = "en", phase = "offer",
20
- } = {}) {
21
- const prompt = createInterface({ input, output });
22
- try {
23
- return await selectControlRepair(value, { registry, language, phase,
24
- write(text) { output.write(`${text}\n`); },
25
- readChoice({ prompt: question }) { return prompt.question(question); },
26
- });
27
- } finally { prompt.close(); }
28
- }
@@ -1,4 +0,0 @@
1
- import { inspectControlRepair as inspect, repairInstallationControl as repair } from "#agdf-core/control-maintenance/repair.js";
2
- import { readGitOriginals } from "../runtime/git-originals.js";
3
- export const inspectControlRepair = (root, options = {}) => inspect(root, { readGitOriginals, ...options });
4
- export const repairInstallationControl = (control, options = {}) => repair(control, { readGitOriginals, ...options });
@@ -1,3 +0,0 @@
1
- import { runControlMaintenance as run } from "#agdf-core/control-maintenance/service.js";
2
- import { readGitOriginals } from "../runtime/git-originals.js";
3
- export const runControlMaintenance = (target, options = {}) => run(target, { readGitOriginals, ...options });
@@ -1,5 +0,0 @@
1
- import { inspectRunRecovery as inspect, previewRunRecovery as preview } from "#agdf-core/control-state/run-recovery.js";
2
- import { readGitHistory } from "../runtime/git-history.js";
3
- export { applyRunRecovery, inspectSelfReferenceRecovery } from "#agdf-core/control-state/run-recovery.js";
4
- export const inspectRunRecovery = (root, runId, options = {}) => inspect(root, runId, { readGitHistory, ...options });
5
- export const previewRunRecovery = (root, runId, options = {}) => preview(root, runId, { readGitHistory, ...options });
@@ -1 +0,0 @@
1
- export { inspectControlRepair, repairInstallationControl } from "../control-maintenance/repair.js";
@@ -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
-