@agent-teams/engineering-foundation 0.15.0 → 0.16.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 (400) hide show
  1. package/README.md +66 -8
  2. package/dist/capability-runtime.d.ts +2 -1
  3. package/dist/capability-runtime.d.ts.map +1 -1
  4. package/dist/capability-runtime.js +1 -1
  5. package/dist/capability-runtime.js.map +1 -1
  6. package/dist/check-contract.d.ts +2 -1
  7. package/dist/check-contract.d.ts.map +1 -1
  8. package/dist/check-runner.d.ts.map +1 -1
  9. package/dist/check-runner.js +6 -2
  10. package/dist/check-runner.js.map +1 -1
  11. package/dist/cli-arguments.d.ts +6 -0
  12. package/dist/cli-arguments.d.ts.map +1 -1
  13. package/dist/cli-arguments.js +179 -49
  14. package/dist/cli-arguments.js.map +1 -1
  15. package/dist/cli.js +16 -10
  16. package/dist/cli.js.map +1 -1
  17. package/dist/command-error.d.ts +14 -0
  18. package/dist/command-error.d.ts.map +1 -0
  19. package/dist/command-error.js +98 -0
  20. package/dist/command-error.js.map +1 -0
  21. package/dist/document-authoring/adapters/inbound/cli/document-command-failure.d.ts +5 -0
  22. package/dist/document-authoring/adapters/inbound/cli/document-command-failure.d.ts.map +1 -0
  23. package/dist/document-authoring/adapters/inbound/cli/document-command-failure.js +36 -0
  24. package/dist/document-authoring/adapters/inbound/cli/document-command-failure.js.map +1 -0
  25. package/dist/document-authoring/adapters/inbound/cli/document-command-renderer.d.ts +6 -0
  26. package/dist/document-authoring/adapters/inbound/cli/document-command-renderer.d.ts.map +1 -0
  27. package/dist/document-authoring/adapters/inbound/cli/document-command-renderer.js +127 -0
  28. package/dist/document-authoring/adapters/inbound/cli/document-command-renderer.js.map +1 -0
  29. package/dist/document-authoring/adapters/node/load-validated-document-authoring-profile.d.ts +4 -2
  30. package/dist/document-authoring/adapters/node/load-validated-document-authoring-profile.d.ts.map +1 -1
  31. package/dist/document-authoring/adapters/node/load-validated-document-authoring-profile.js.map +1 -1
  32. package/dist/document-authoring/adapters/node/node-document-contract-validator.d.ts.map +1 -1
  33. package/dist/document-authoring/adapters/node/node-document-contract-validator.js +129 -2
  34. package/dist/document-authoring/adapters/node/node-document-contract-validator.js.map +1 -1
  35. package/dist/document-authoring/adapters/node/node-document-environment-inspector.d.ts +17 -0
  36. package/dist/document-authoring/adapters/node/node-document-environment-inspector.d.ts.map +1 -0
  37. package/dist/document-authoring/adapters/node/node-document-environment-inspector.js +49 -0
  38. package/dist/document-authoring/adapters/node/node-document-environment-inspector.js.map +1 -0
  39. package/dist/document-authoring/adapters/node/node-document-file-state.d.ts +21 -0
  40. package/dist/document-authoring/adapters/node/node-document-file-state.d.ts.map +1 -0
  41. package/dist/document-authoring/adapters/node/node-document-file-state.js +183 -0
  42. package/dist/document-authoring/adapters/node/node-document-file-state.js.map +1 -0
  43. package/dist/document-authoring/adapters/node/node-document-journal-slot.d.ts +2 -0
  44. package/dist/document-authoring/adapters/node/node-document-journal-slot.d.ts.map +1 -0
  45. package/dist/document-authoring/adapters/node/node-document-journal-slot.js +18 -0
  46. package/dist/document-authoring/adapters/node/node-document-journal-slot.js.map +1 -0
  47. package/dist/document-authoring/adapters/node/node-document-journal-store-faults.d.ts +36 -0
  48. package/dist/document-authoring/adapters/node/node-document-journal-store-faults.d.ts.map +1 -0
  49. package/dist/document-authoring/adapters/node/node-document-journal-store-faults.js +2 -0
  50. package/dist/document-authoring/adapters/node/node-document-journal-store-faults.js.map +1 -0
  51. package/dist/document-authoring/adapters/node/node-document-journal-store-private.d.ts +2 -0
  52. package/dist/document-authoring/adapters/node/node-document-journal-store-private.d.ts.map +1 -0
  53. package/dist/document-authoring/adapters/node/node-document-journal-store-private.js +2 -0
  54. package/dist/document-authoring/adapters/node/node-document-journal-store-private.js.map +1 -0
  55. package/dist/document-authoring/adapters/node/node-document-journal-store.d.ts +22 -0
  56. package/dist/document-authoring/adapters/node/node-document-journal-store.d.ts.map +1 -0
  57. package/dist/document-authoring/adapters/node/node-document-journal-store.js +339 -0
  58. package/dist/document-authoring/adapters/node/node-document-journal-store.js.map +1 -0
  59. package/dist/document-authoring/adapters/node/node-document-planning-profile-reader.d.ts.map +1 -1
  60. package/dist/document-authoring/adapters/node/node-document-planning-profile-reader.js +3 -0
  61. package/dist/document-authoring/adapters/node/node-document-planning-profile-reader.js.map +1 -1
  62. package/dist/document-authoring/adapters/node/node-document-publisher-private.d.ts +2 -0
  63. package/dist/document-authoring/adapters/node/node-document-publisher-private.d.ts.map +1 -0
  64. package/dist/document-authoring/adapters/node/node-document-publisher-private.js +2 -0
  65. package/dist/document-authoring/adapters/node/node-document-publisher-private.js.map +1 -0
  66. package/dist/document-authoring/adapters/node/node-document-publisher.d.ts +54 -0
  67. package/dist/document-authoring/adapters/node/node-document-publisher.d.ts.map +1 -0
  68. package/dist/document-authoring/adapters/node/node-document-publisher.js +252 -0
  69. package/dist/document-authoring/adapters/node/node-document-publisher.js.map +1 -0
  70. package/dist/document-authoring/adapters/node/node-document-reachability-projector.d.ts +17 -0
  71. package/dist/document-authoring/adapters/node/node-document-reachability-projector.d.ts.map +1 -0
  72. package/dist/document-authoring/adapters/node/node-document-reachability-projector.js +43 -0
  73. package/dist/document-authoring/adapters/node/node-document-reachability-projector.js.map +1 -0
  74. package/dist/document-authoring/adapters/node/node-document-structure-verifier.d.ts +21 -0
  75. package/dist/document-authoring/adapters/node/node-document-structure-verifier.d.ts.map +1 -0
  76. package/dist/document-authoring/adapters/node/node-document-structure-verifier.js +80 -0
  77. package/dist/document-authoring/adapters/node/node-document-structure-verifier.js.map +1 -0
  78. package/dist/document-authoring/adapters/node/node-document-transaction-coordinator.d.ts +21 -0
  79. package/dist/document-authoring/adapters/node/node-document-transaction-coordinator.d.ts.map +1 -0
  80. package/dist/document-authoring/adapters/node/node-document-transaction-coordinator.js +89 -0
  81. package/dist/document-authoring/adapters/node/node-document-transaction-coordinator.js.map +1 -0
  82. package/dist/document-authoring/adapters/node/recapture-document-publication-paths.d.ts +16 -0
  83. package/dist/document-authoring/adapters/node/recapture-document-publication-paths.d.ts.map +1 -0
  84. package/dist/document-authoring/adapters/node/recapture-document-publication-paths.js +89 -0
  85. package/dist/document-authoring/adapters/node/recapture-document-publication-paths.js.map +1 -0
  86. package/dist/document-authoring/application/model/document-command.d.ts +69 -0
  87. package/dist/document-authoring/application/model/document-command.d.ts.map +1 -0
  88. package/dist/document-authoring/application/model/document-command.js +2 -0
  89. package/dist/document-authoring/application/model/document-command.js.map +1 -0
  90. package/dist/document-authoring/application/model/document-physical-identity.d.ts +10 -0
  91. package/dist/document-authoring/application/model/document-physical-identity.d.ts.map +1 -0
  92. package/dist/document-authoring/application/model/document-physical-identity.js +29 -0
  93. package/dist/document-authoring/application/model/document-physical-identity.js.map +1 -0
  94. package/dist/document-authoring/application/model/document-planning.d.ts +11 -0
  95. package/dist/document-authoring/application/model/document-planning.d.ts.map +1 -1
  96. package/dist/document-authoring/application/model/document-receipt.d.ts +74 -0
  97. package/dist/document-authoring/application/model/document-receipt.d.ts.map +1 -0
  98. package/dist/document-authoring/application/model/document-receipt.js +2 -0
  99. package/dist/document-authoring/application/model/document-receipt.js.map +1 -0
  100. package/dist/document-authoring/application/model/document-transaction-inspection.d.ts +43 -0
  101. package/dist/document-authoring/application/model/document-transaction-inspection.d.ts.map +1 -0
  102. package/dist/document-authoring/application/model/document-transaction-inspection.js +2 -0
  103. package/dist/document-authoring/application/model/document-transaction-inspection.js.map +1 -0
  104. package/dist/document-authoring/application/model/document-transaction.d.ts +81 -0
  105. package/dist/document-authoring/application/model/document-transaction.d.ts.map +1 -0
  106. package/dist/document-authoring/application/model/document-transaction.js +2 -0
  107. package/dist/document-authoring/application/model/document-transaction.js.map +1 -0
  108. package/dist/document-authoring/application/policies/authoring-profile-semantics.d.ts +5 -1
  109. package/dist/document-authoring/application/policies/authoring-profile-semantics.d.ts.map +1 -1
  110. package/dist/document-authoring/application/policies/authoring-profile-semantics.js +7 -0
  111. package/dist/document-authoring/application/policies/authoring-profile-semantics.js.map +1 -1
  112. package/dist/document-authoring/application/policies/classify-document-recovery.d.ts +81 -0
  113. package/dist/document-authoring/application/policies/classify-document-recovery.d.ts.map +1 -0
  114. package/dist/document-authoring/application/policies/classify-document-recovery.js +138 -0
  115. package/dist/document-authoring/application/policies/classify-document-recovery.js.map +1 -0
  116. package/dist/document-authoring/application/policies/document-command-consumer-root.d.ts +2 -0
  117. package/dist/document-authoring/application/policies/document-command-consumer-root.d.ts.map +1 -0
  118. package/dist/document-authoring/application/policies/document-command-consumer-root.js +15 -0
  119. package/dist/document-authoring/application/policies/document-command-consumer-root.js.map +1 -0
  120. package/dist/document-authoring/application/policies/document-command-projection.d.ts +20 -0
  121. package/dist/document-authoring/application/policies/document-command-projection.d.ts.map +1 -0
  122. package/dist/document-authoring/application/policies/document-command-projection.js +90 -0
  123. package/dist/document-authoring/application/policies/document-command-projection.js.map +1 -0
  124. package/dist/document-authoring/application/policies/document-receipt-policy.d.ts +5 -0
  125. package/dist/document-authoring/application/policies/document-receipt-policy.d.ts.map +1 -0
  126. package/dist/document-authoring/application/policies/document-receipt-policy.js +53 -0
  127. package/dist/document-authoring/application/policies/document-receipt-policy.js.map +1 -0
  128. package/dist/document-authoring/application/policies/document-transaction-digests.d.ts +5 -0
  129. package/dist/document-authoring/application/policies/document-transaction-digests.d.ts.map +1 -0
  130. package/dist/document-authoring/application/policies/document-transaction-digests.js +12 -0
  131. package/dist/document-authoring/application/policies/document-transaction-digests.js.map +1 -0
  132. package/dist/document-authoring/application/policies/document-transaction-envelope-policy.d.ts +4 -0
  133. package/dist/document-authoring/application/policies/document-transaction-envelope-policy.d.ts.map +1 -0
  134. package/dist/document-authoring/application/policies/document-transaction-envelope-policy.js +118 -0
  135. package/dist/document-authoring/application/policies/document-transaction-envelope-policy.js.map +1 -0
  136. package/dist/document-authoring/application/policies/project-document-reachability.d.ts +14 -0
  137. package/dist/document-authoring/application/policies/project-document-reachability.d.ts.map +1 -0
  138. package/dist/document-authoring/application/policies/project-document-reachability.js +57 -0
  139. package/dist/document-authoring/application/policies/project-document-reachability.js.map +1 -0
  140. package/dist/document-authoring/application/policies/project-similar-document-advice.d.ts +4 -0
  141. package/dist/document-authoring/application/policies/project-similar-document-advice.d.ts.map +1 -0
  142. package/dist/document-authoring/application/policies/project-similar-document-advice.js +17 -0
  143. package/dist/document-authoring/application/policies/project-similar-document-advice.js.map +1 -0
  144. package/dist/document-authoring/application/ports/document-authority-recompiler.d.ts +19 -0
  145. package/dist/document-authoring/application/ports/document-authority-recompiler.d.ts.map +1 -0
  146. package/dist/document-authoring/application/ports/document-authority-recompiler.js +2 -0
  147. package/dist/document-authoring/application/ports/document-authority-recompiler.js.map +1 -0
  148. package/dist/document-authoring/application/ports/document-environment-inspector.d.ts +12 -0
  149. package/dist/document-authoring/application/ports/document-environment-inspector.d.ts.map +1 -0
  150. package/dist/document-authoring/application/ports/document-environment-inspector.js +2 -0
  151. package/dist/document-authoring/application/ports/document-environment-inspector.js.map +1 -0
  152. package/dist/document-authoring/application/ports/document-file-state.d.ts +55 -0
  153. package/dist/document-authoring/application/ports/document-file-state.d.ts.map +1 -0
  154. package/dist/document-authoring/application/ports/document-file-state.js +2 -0
  155. package/dist/document-authoring/application/ports/document-file-state.js.map +1 -0
  156. package/dist/document-authoring/application/ports/document-journal-store.d.ts +31 -0
  157. package/dist/document-authoring/application/ports/document-journal-store.d.ts.map +1 -0
  158. package/dist/document-authoring/application/ports/document-journal-store.js +2 -0
  159. package/dist/document-authoring/application/ports/document-journal-store.js.map +1 -0
  160. package/dist/document-authoring/application/ports/document-publisher.d.ts +38 -0
  161. package/dist/document-authoring/application/ports/document-publisher.d.ts.map +1 -0
  162. package/dist/document-authoring/application/ports/document-publisher.js +2 -0
  163. package/dist/document-authoring/application/ports/document-publisher.js.map +1 -0
  164. package/dist/document-authoring/application/ports/document-reachability-projector.d.ts +13 -0
  165. package/dist/document-authoring/application/ports/document-reachability-projector.d.ts.map +1 -0
  166. package/dist/document-authoring/application/ports/document-reachability-projector.js +2 -0
  167. package/dist/document-authoring/application/ports/document-reachability-projector.js.map +1 -0
  168. package/dist/document-authoring/application/ports/document-structure-verifier.d.ts +17 -0
  169. package/dist/document-authoring/application/ports/document-structure-verifier.d.ts.map +1 -0
  170. package/dist/document-authoring/application/ports/document-structure-verifier.js +2 -0
  171. package/dist/document-authoring/application/ports/document-structure-verifier.js.map +1 -0
  172. package/dist/document-authoring/application/ports/document-transaction-coordinator.d.ts +21 -0
  173. package/dist/document-authoring/application/ports/document-transaction-coordinator.d.ts.map +1 -0
  174. package/dist/document-authoring/application/ports/document-transaction-coordinator.js +2 -0
  175. package/dist/document-authoring/application/ports/document-transaction-coordinator.js.map +1 -0
  176. package/dist/document-authoring/application/ports/similar-document-advisor.d.ts +17 -0
  177. package/dist/document-authoring/application/ports/similar-document-advisor.d.ts.map +1 -0
  178. package/dist/document-authoring/application/ports/similar-document-advisor.js +2 -0
  179. package/dist/document-authoring/application/ports/similar-document-advisor.js.map +1 -0
  180. package/dist/document-authoring/application/use-cases/apply-document-plan.d.ts +16 -0
  181. package/dist/document-authoring/application/use-cases/apply-document-plan.d.ts.map +1 -0
  182. package/dist/document-authoring/application/use-cases/apply-document-plan.js +215 -0
  183. package/dist/document-authoring/application/use-cases/apply-document-plan.js.map +1 -0
  184. package/dist/document-authoring/application/use-cases/document-journal-reconciliation.d.ts +18 -0
  185. package/dist/document-authoring/application/use-cases/document-journal-reconciliation.d.ts.map +1 -0
  186. package/dist/document-authoring/application/use-cases/document-journal-reconciliation.js +90 -0
  187. package/dist/document-authoring/application/use-cases/document-journal-reconciliation.js.map +1 -0
  188. package/dist/document-authoring/application/use-cases/document-transaction-continuation.d.ts +59 -0
  189. package/dist/document-authoring/application/use-cases/document-transaction-continuation.d.ts.map +1 -0
  190. package/dist/document-authoring/application/use-cases/document-transaction-continuation.js +360 -0
  191. package/dist/document-authoring/application/use-cases/document-transaction-continuation.js.map +1 -0
  192. package/dist/document-authoring/application/use-cases/document-transaction-error.d.ts +5 -0
  193. package/dist/document-authoring/application/use-cases/document-transaction-error.d.ts.map +1 -0
  194. package/dist/document-authoring/application/use-cases/document-transaction-error.js +9 -0
  195. package/dist/document-authoring/application/use-cases/document-transaction-error.js.map +1 -0
  196. package/dist/document-authoring/application/use-cases/document-transaction-execution.d.ts +9 -0
  197. package/dist/document-authoring/application/use-cases/document-transaction-execution.d.ts.map +1 -0
  198. package/dist/document-authoring/application/use-cases/document-transaction-execution.js +40 -0
  199. package/dist/document-authoring/application/use-cases/document-transaction-execution.js.map +1 -0
  200. package/dist/document-authoring/application/use-cases/recover-document-transaction.d.ts +10 -0
  201. package/dist/document-authoring/application/use-cases/recover-document-transaction.d.ts.map +1 -0
  202. package/dist/document-authoring/application/use-cases/recover-document-transaction.js +233 -0
  203. package/dist/document-authoring/application/use-cases/recover-document-transaction.js.map +1 -0
  204. package/dist/document-authoring/application/use-cases/run-document-doctor.d.ts +18 -0
  205. package/dist/document-authoring/application/use-cases/run-document-doctor.d.ts.map +1 -0
  206. package/dist/document-authoring/application/use-cases/run-document-doctor.js +171 -0
  207. package/dist/document-authoring/application/use-cases/run-document-doctor.js.map +1 -0
  208. package/dist/document-authoring/application/use-cases/run-document-new.d.ts +30 -0
  209. package/dist/document-authoring/application/use-cases/run-document-new.d.ts.map +1 -0
  210. package/dist/document-authoring/application/use-cases/run-document-new.js +221 -0
  211. package/dist/document-authoring/application/use-cases/run-document-new.js.map +1 -0
  212. package/dist/document-authoring/application/use-cases/run-document-recover.d.ts +21 -0
  213. package/dist/document-authoring/application/use-cases/run-document-recover.d.ts.map +1 -0
  214. package/dist/document-authoring/application/use-cases/run-document-recover.js +126 -0
  215. package/dist/document-authoring/application/use-cases/run-document-recover.js.map +1 -0
  216. package/dist/document-authoring/composition/document-command-cli.d.ts +7 -0
  217. package/dist/document-authoring/composition/document-command-cli.d.ts.map +1 -0
  218. package/dist/document-authoring/composition/document-command-cli.js +32 -0
  219. package/dist/document-authoring/composition/document-command-cli.js.map +1 -0
  220. package/dist/document-authoring/composition/inspect-document-transaction.d.ts +8 -0
  221. package/dist/document-authoring/composition/inspect-document-transaction.d.ts.map +1 -0
  222. package/dist/document-authoring/composition/inspect-document-transaction.js +177 -0
  223. package/dist/document-authoring/composition/inspect-document-transaction.js.map +1 -0
  224. package/dist/document-authoring/composition/node-document-authority-recompiler.d.ts +11 -0
  225. package/dist/document-authoring/composition/node-document-authority-recompiler.d.ts.map +1 -0
  226. package/dist/document-authoring/composition/node-document-authority-recompiler.js +62 -0
  227. package/dist/document-authoring/composition/node-document-authority-recompiler.js.map +1 -0
  228. package/dist/document-authoring/composition/node-document-commands.d.ts +10 -0
  229. package/dist/document-authoring/composition/node-document-commands.d.ts.map +1 -0
  230. package/dist/document-authoring/composition/node-document-commands.js +68 -0
  231. package/dist/document-authoring/composition/node-document-commands.js.map +1 -0
  232. package/dist/document-authoring/composition/node-document-planning.d.ts +7 -0
  233. package/dist/document-authoring/composition/node-document-planning.d.ts.map +1 -0
  234. package/dist/document-authoring/composition/node-document-planning.js +77 -0
  235. package/dist/document-authoring/composition/node-document-planning.js.map +1 -0
  236. package/dist/document-authoring/composition/node-document-writing-private.d.ts +15 -0
  237. package/dist/document-authoring/composition/node-document-writing-private.d.ts.map +1 -0
  238. package/dist/document-authoring/composition/node-document-writing-private.js +52 -0
  239. package/dist/document-authoring/composition/node-document-writing-private.js.map +1 -0
  240. package/dist/document-authoring/composition/node-document-writing.d.ts +8 -0
  241. package/dist/document-authoring/composition/node-document-writing.d.ts.map +1 -0
  242. package/dist/document-authoring/composition/node-document-writing.js +10 -0
  243. package/dist/document-authoring/composition/node-document-writing.js.map +1 -0
  244. package/dist/document-authoring/index.d.ts +13 -1
  245. package/dist/document-authoring/index.d.ts.map +1 -1
  246. package/dist/document-authoring/index.js +12 -65
  247. package/dist/document-authoring/index.js.map +1 -1
  248. package/dist/document-command.d.ts +9 -0
  249. package/dist/document-command.d.ts.map +1 -1
  250. package/dist/document-command.js +64 -3
  251. package/dist/document-command.js.map +1 -1
  252. package/dist/foundation-state-contract.d.ts +1 -0
  253. package/dist/foundation-state-contract.d.ts.map +1 -1
  254. package/dist/foundation-state-contract.js +1 -0
  255. package/dist/foundation-state-contract.js.map +1 -1
  256. package/dist/local-mode/inspection.d.ts.map +1 -1
  257. package/dist/local-mode/inspection.js +51 -3
  258. package/dist/local-mode/inspection.js.map +1 -1
  259. package/dist/package-self-check.d.ts +2 -1
  260. package/dist/package-self-check.d.ts.map +1 -1
  261. package/dist/package-self-check.js +30 -7
  262. package/dist/package-self-check.js.map +1 -1
  263. package/dist/report-renderer.d.ts.map +1 -1
  264. package/dist/report-renderer.js +1 -0
  265. package/dist/report-renderer.js.map +1 -1
  266. package/dist/repository-mutation/adapters/node/node-absent-file-publication-private.d.ts +19 -0
  267. package/dist/repository-mutation/adapters/node/node-absent-file-publication-private.d.ts.map +1 -0
  268. package/dist/repository-mutation/adapters/node/node-absent-file-publication-private.js +74 -0
  269. package/dist/repository-mutation/adapters/node/node-absent-file-publication-private.js.map +1 -0
  270. package/dist/repository-mutation/adapters/node/node-absent-file-publication.d.ts +2 -0
  271. package/dist/repository-mutation/adapters/node/node-absent-file-publication.d.ts.map +1 -1
  272. package/dist/repository-mutation/adapters/node/node-absent-file-publication.js +56 -154
  273. package/dist/repository-mutation/adapters/node/node-absent-file-publication.js.map +1 -1
  274. package/dist/repository-mutation/adapters/node/node-cleanup-owned-temporary.d.ts +26 -0
  275. package/dist/repository-mutation/adapters/node/node-cleanup-owned-temporary.d.ts.map +1 -0
  276. package/dist/repository-mutation/adapters/node/node-cleanup-owned-temporary.js +151 -0
  277. package/dist/repository-mutation/adapters/node/node-cleanup-owned-temporary.js.map +1 -0
  278. package/dist/repository-mutation/adapters/node/node-directory-durability.d.ts +6 -0
  279. package/dist/repository-mutation/adapters/node/node-directory-durability.d.ts.map +1 -1
  280. package/dist/repository-mutation/adapters/node/node-directory-durability.js +15 -0
  281. package/dist/repository-mutation/adapters/node/node-directory-durability.js.map +1 -1
  282. package/dist/repository-mutation/adapters/node/node-prepare-exact-sibling-temporary.d.ts +14 -0
  283. package/dist/repository-mutation/adapters/node/node-prepare-exact-sibling-temporary.d.ts.map +1 -0
  284. package/dist/repository-mutation/adapters/node/node-prepare-exact-sibling-temporary.js +26 -0
  285. package/dist/repository-mutation/adapters/node/node-prepare-exact-sibling-temporary.js.map +1 -0
  286. package/dist/repository-mutation/adapters/node/node-publish-prepared-absent-file.d.ts +28 -0
  287. package/dist/repository-mutation/adapters/node/node-publish-prepared-absent-file.d.ts.map +1 -0
  288. package/dist/repository-mutation/adapters/node/node-publish-prepared-absent-file.js +47 -0
  289. package/dist/repository-mutation/adapters/node/node-publish-prepared-absent-file.js.map +1 -0
  290. package/dist/repository-mutation/adapters/node/node-terminal-evidence-directory.d.ts +22 -0
  291. package/dist/repository-mutation/adapters/node/node-terminal-evidence-directory.d.ts.map +1 -0
  292. package/dist/repository-mutation/adapters/node/node-terminal-evidence-directory.js +59 -0
  293. package/dist/repository-mutation/adapters/node/node-terminal-evidence-directory.js.map +1 -0
  294. package/dist/repository-mutation/application/ports/owned-temporary-cleanup-transition.d.ts +7 -0
  295. package/dist/repository-mutation/application/ports/owned-temporary-cleanup-transition.d.ts.map +1 -0
  296. package/dist/repository-mutation/application/ports/owned-temporary-cleanup-transition.js +2 -0
  297. package/dist/repository-mutation/application/ports/owned-temporary-cleanup-transition.js.map +1 -0
  298. package/dist/scaffolding/adapters/node/filesystem-authority-workspace.d.ts +1 -1
  299. package/dist/scaffolding/adapters/node/filesystem-authority-workspace.d.ts.map +1 -1
  300. package/dist/scaffolding/adapters/node/filesystem-authority-workspace.js +74 -53
  301. package/dist/scaffolding/adapters/node/filesystem-authority-workspace.js.map +1 -1
  302. package/dist/scaffolding/adapters/node/filesystem-finalization.d.ts +9 -1
  303. package/dist/scaffolding/adapters/node/filesystem-finalization.d.ts.map +1 -1
  304. package/dist/scaffolding/adapters/node/filesystem-finalization.js +34 -6
  305. package/dist/scaffolding/adapters/node/filesystem-finalization.js.map +1 -1
  306. package/dist/scaffolding/adapters/node/filesystem-journal-state.d.ts.map +1 -1
  307. package/dist/scaffolding/adapters/node/filesystem-journal-state.js +2 -1
  308. package/dist/scaffolding/adapters/node/filesystem-journal-state.js.map +1 -1
  309. package/dist/scaffolding/adapters/node/filesystem-journal.d.ts +13 -5
  310. package/dist/scaffolding/adapters/node/filesystem-journal.d.ts.map +1 -1
  311. package/dist/scaffolding/adapters/node/filesystem-journal.js +112 -74
  312. package/dist/scaffolding/adapters/node/filesystem-journal.js.map +1 -1
  313. package/dist/scaffolding/adapters/node/filesystem-operation-state.d.ts +10 -1
  314. package/dist/scaffolding/adapters/node/filesystem-operation-state.d.ts.map +1 -1
  315. package/dist/scaffolding/adapters/node/filesystem-operation-state.js +40 -2
  316. package/dist/scaffolding/adapters/node/filesystem-operation-state.js.map +1 -1
  317. package/dist/scaffolding/adapters/node/node-scaffold-journal-evidence.d.ts +35 -0
  318. package/dist/scaffolding/adapters/node/node-scaffold-journal-evidence.d.ts.map +1 -0
  319. package/dist/scaffolding/adapters/node/node-scaffold-journal-evidence.js +137 -0
  320. package/dist/scaffolding/adapters/node/node-scaffold-journal-evidence.js.map +1 -0
  321. package/dist/scaffolding/adapters/node/node-scaffold-journal-gateway.d.ts +11 -0
  322. package/dist/scaffolding/adapters/node/node-scaffold-journal-gateway.d.ts.map +1 -0
  323. package/dist/scaffolding/adapters/node/node-scaffold-journal-gateway.js +95 -0
  324. package/dist/scaffolding/adapters/node/node-scaffold-journal-gateway.js.map +1 -0
  325. package/dist/scaffolding/adapters/node/node-scaffold-journal-reconciliation.d.ts +15 -0
  326. package/dist/scaffolding/adapters/node/node-scaffold-journal-reconciliation.d.ts.map +1 -0
  327. package/dist/scaffolding/adapters/node/node-scaffold-journal-reconciliation.js +29 -0
  328. package/dist/scaffolding/adapters/node/node-scaffold-journal-reconciliation.js.map +1 -0
  329. package/dist/scaffolding/adapters/node/node-scaffold-journal-store-faults.d.ts +46 -0
  330. package/dist/scaffolding/adapters/node/node-scaffold-journal-store-faults.d.ts.map +1 -0
  331. package/dist/scaffolding/adapters/node/node-scaffold-journal-store-faults.js +2 -0
  332. package/dist/scaffolding/adapters/node/node-scaffold-journal-store-faults.js.map +1 -0
  333. package/dist/scaffolding/adapters/node/node-scaffold-journal-store.d.ts +19 -0
  334. package/dist/scaffolding/adapters/node/node-scaffold-journal-store.d.ts.map +1 -0
  335. package/dist/scaffolding/adapters/node/node-scaffold-journal-store.js +288 -0
  336. package/dist/scaffolding/adapters/node/node-scaffold-journal-store.js.map +1 -0
  337. package/dist/scaffolding/adapters/node/node-scaffold-journal-transaction-evidence.d.ts +2 -0
  338. package/dist/scaffolding/adapters/node/node-scaffold-journal-transaction-evidence.d.ts.map +1 -0
  339. package/dist/scaffolding/adapters/node/node-scaffold-journal-transaction-evidence.js +34 -0
  340. package/dist/scaffolding/adapters/node/node-scaffold-journal-transaction-evidence.js.map +1 -0
  341. package/dist/schema-catalog.d.ts.map +1 -1
  342. package/dist/schema-catalog.js +4 -0
  343. package/dist/schema-catalog.js.map +1 -1
  344. package/dist/schema-ids.d.ts +1 -1
  345. package/dist/schema-ids.d.ts.map +1 -1
  346. package/dist/schema-ids.js +3 -0
  347. package/dist/schema-ids.js.map +1 -1
  348. package/dist/source-inventory/adapters/outbound/filesystem/filesystem-source-tree-reader.d.ts.map +1 -1
  349. package/dist/source-inventory/adapters/outbound/filesystem/filesystem-source-tree-reader.js +17 -10
  350. package/dist/source-inventory/adapters/outbound/filesystem/filesystem-source-tree-reader.js.map +1 -1
  351. package/dist/transaction-coordination/adapters/node/document-envelope-bindings.d.ts +22 -0
  352. package/dist/transaction-coordination/adapters/node/document-envelope-bindings.d.ts.map +1 -0
  353. package/dist/transaction-coordination/adapters/node/document-envelope-bindings.js +123 -0
  354. package/dist/transaction-coordination/adapters/node/document-envelope-bindings.js.map +1 -0
  355. package/dist/transaction-coordination/adapters/node/document-temporary-identity.d.ts +2 -2
  356. package/dist/transaction-coordination/adapters/node/document-temporary-identity.d.ts.map +1 -1
  357. package/dist/transaction-coordination/adapters/node/document-temporary-identity.js +4 -4
  358. package/dist/transaction-coordination/adapters/node/document-temporary-identity.js.map +1 -1
  359. package/dist/transaction-coordination/adapters/node/foundation-transition-evidence.d.ts +4 -0
  360. package/dist/transaction-coordination/adapters/node/foundation-transition-evidence.d.ts.map +1 -0
  361. package/dist/transaction-coordination/adapters/node/foundation-transition-evidence.js +58 -0
  362. package/dist/transaction-coordination/adapters/node/foundation-transition-evidence.js.map +1 -0
  363. package/dist/transaction-coordination/adapters/node/node-foundation-cleanup-transition.d.ts +17 -0
  364. package/dist/transaction-coordination/adapters/node/node-foundation-cleanup-transition.d.ts.map +1 -0
  365. package/dist/transaction-coordination/adapters/node/node-foundation-cleanup-transition.js +79 -0
  366. package/dist/transaction-coordination/adapters/node/node-foundation-cleanup-transition.js.map +1 -0
  367. package/dist/transaction-coordination/adapters/node/node-foundation-operation-lock.d.ts +9 -1
  368. package/dist/transaction-coordination/adapters/node/node-foundation-operation-lock.d.ts.map +1 -1
  369. package/dist/transaction-coordination/adapters/node/node-foundation-operation-lock.js +34 -11
  370. package/dist/transaction-coordination/adapters/node/node-foundation-operation-lock.js.map +1 -1
  371. package/dist/transaction-coordination/adapters/node/node-foundation-state-directory.d.ts +7 -0
  372. package/dist/transaction-coordination/adapters/node/node-foundation-state-directory.d.ts.map +1 -1
  373. package/dist/transaction-coordination/adapters/node/node-foundation-state-directory.js +15 -0
  374. package/dist/transaction-coordination/adapters/node/node-foundation-state-directory.js.map +1 -1
  375. package/dist/transaction-coordination/adapters/node/node-foundation-transaction-slot.d.ts +2 -2
  376. package/dist/transaction-coordination/adapters/node/node-foundation-transaction-slot.d.ts.map +1 -1
  377. package/dist/transaction-coordination/adapters/node/node-foundation-transaction-slot.js +123 -140
  378. package/dist/transaction-coordination/adapters/node/node-foundation-transaction-slot.js.map +1 -1
  379. package/dist/transaction-coordination/application/foundation-transaction-coordinator.d.ts +5 -4
  380. package/dist/transaction-coordination/application/foundation-transaction-coordinator.d.ts.map +1 -1
  381. package/dist/transaction-coordination/application/foundation-transaction-coordinator.js +14 -1
  382. package/dist/transaction-coordination/application/foundation-transaction-coordinator.js.map +1 -1
  383. package/dist/transaction-coordination/application/foundation-transaction-error.d.ts +4 -3
  384. package/dist/transaction-coordination/application/foundation-transaction-error.d.ts.map +1 -1
  385. package/dist/transaction-coordination/application/foundation-transaction-error.js.map +1 -1
  386. package/dist/transaction-coordination/application/model/internal-transaction-status.d.ts +26 -0
  387. package/dist/transaction-coordination/application/model/internal-transaction-status.d.ts.map +1 -0
  388. package/dist/transaction-coordination/application/model/internal-transaction-status.js +2 -0
  389. package/dist/transaction-coordination/application/model/internal-transaction-status.js.map +1 -0
  390. package/dist/transaction-coordination/application/ports/foundation-transaction-slot.d.ts +2 -2
  391. package/dist/transaction-coordination/application/ports/foundation-transaction-slot.d.ts.map +1 -1
  392. package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.d.ts.map +1 -1
  393. package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.js +13 -9
  394. package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.js.map +1 -1
  395. package/package.json +12 -3
  396. package/schemas/document-authoring-profile/v1.schema.json +31 -1
  397. package/schemas/document-command-envelope/v2.schema.json +205 -0
  398. package/schemas/foundation-check-report/v1.schema.json +1 -1
  399. package/schemas/foundation-command-error/v1.schema.json +24 -0
  400. package/schemas/foundation-transaction-envelope/v3.schema.json +169 -0
@@ -0,0 +1,221 @@
1
+ import { commandExecution, projectDocumentCommandFailure, receiptOutcome } from "../policies/document-command-projection.js";
2
+ import { projectSimilarDocumentAdvice } from "../policies/project-similar-document-advice.js";
3
+ import { projectDocumentCommandConsumerRoot } from "../policies/document-command-consumer-root.js";
4
+ function signalOption(signal) {
5
+ return signal === undefined ? {} : { signal };
6
+ }
7
+ function transactionDiagnostic(inspection, consumerRoot) {
8
+ const recovery = inspection.state === "recoverable"
9
+ ? {
10
+ commandId: "docs.recover",
11
+ args: {
12
+ consumerRoot: projectDocumentCommandConsumerRoot(consumerRoot),
13
+ exactFoundationVersion: inspection.recovery.exactFoundationVersion,
14
+ exactFoundationBuildIdentity: inspection.recovery.exactFoundationBuildIdentity
15
+ }
16
+ }
17
+ : inspection.recovery === undefined
18
+ ? undefined
19
+ : {
20
+ commandId: inspection.recovery.commandId === "docs-recover"
21
+ ? "docs.recover" : inspection.recovery.commandId,
22
+ args: {
23
+ ...inspection.recovery.args,
24
+ consumerRoot: projectDocumentCommandConsumerRoot(consumerRoot)
25
+ },
26
+ };
27
+ return {
28
+ ruleId: "document.new.transaction-active",
29
+ severity: "error",
30
+ phase: "recovery",
31
+ subject: "document.transaction",
32
+ message: inspection.state === "recoverable"
33
+ ? "A recoverable Foundation document transaction must be completed first."
34
+ : inspection.reason,
35
+ ...(recovery === undefined ? {} : { remediation: recovery }),
36
+ };
37
+ }
38
+ function receiptDiagnostics(receipt, consumerRoot) {
39
+ return receipt.diagnostics.map((entry) => ({
40
+ ...entry,
41
+ ...(receipt.outcome === "recovery-required"
42
+ ? { remediation: {
43
+ commandId: "docs.recover",
44
+ args: { consumerRoot: projectDocumentCommandConsumerRoot(consumerRoot) }
45
+ } }
46
+ : receipt.outcome === "manual-recovery-required"
47
+ ? { remediation: {
48
+ commandId: "docs.doctor",
49
+ args: { consumerRoot: projectDocumentCommandConsumerRoot(consumerRoot) }
50
+ } }
51
+ : {})
52
+ }));
53
+ }
54
+ async function similarDocumentDiagnostics(input) {
55
+ try {
56
+ const advice = await input.dependencies.similar.advise({
57
+ consumerRoot: input.consumerRoot,
58
+ profilePath: input.plan.authority.profile.path,
59
+ title: input.plan.intent.title,
60
+ ...signalOption(input.signal),
61
+ });
62
+ return projectSimilarDocumentAdvice(advice);
63
+ }
64
+ catch (error) {
65
+ input.signal?.throwIfAborted();
66
+ throw error;
67
+ }
68
+ }
69
+ export class RunDocumentNew {
70
+ #dependencies;
71
+ constructor(dependencies) {
72
+ this.#dependencies = dependencies;
73
+ }
74
+ async execute(request) {
75
+ let publicationCommitted = false;
76
+ let committedDocumentPath;
77
+ let committedWriteState;
78
+ let projectedReachability;
79
+ let advisoryDiagnostics = [];
80
+ try {
81
+ request.signal?.throwIfAborted();
82
+ const inspection = await this.#dependencies.inspect(request.consumerRoot);
83
+ request.signal?.throwIfAborted();
84
+ if (inspection.state !== "idle") {
85
+ return commandExecution({
86
+ command: "docs.new",
87
+ diagnostics: [transactionDiagnostic(inspection, request.consumerRoot)],
88
+ outcome: "recovery-required",
89
+ result: { kind: "new", reservation: "none" }
90
+ });
91
+ }
92
+ const plan = await this.#dependencies.plan({
93
+ consumerRoot: request.consumerRoot,
94
+ profilePath: request.profilePath,
95
+ intent: request.intent,
96
+ ...signalOption(request.signal)
97
+ });
98
+ advisoryDiagnostics = await similarDocumentDiagnostics({
99
+ dependencies: this.#dependencies,
100
+ consumerRoot: request.consumerRoot,
101
+ plan,
102
+ ...signalOption(request.signal),
103
+ });
104
+ request.signal?.throwIfAborted();
105
+ const reachability = await this.#dependencies.reachability.project({
106
+ consumerRoot: request.consumerRoot,
107
+ plan
108
+ });
109
+ projectedReachability = reachability;
110
+ request.signal?.throwIfAborted();
111
+ if (request.dryRun) {
112
+ return commandExecution({
113
+ command: "docs.new",
114
+ diagnostics: advisoryDiagnostics,
115
+ outcome: "success",
116
+ result: {
117
+ kind: "new",
118
+ documentPath: plan.destination,
119
+ writeState: "preview",
120
+ reservation: "none",
121
+ reachability
122
+ }
123
+ });
124
+ }
125
+ const receipt = await this.#dependencies.apply({
126
+ consumerRoot: request.consumerRoot,
127
+ plan,
128
+ ...signalOption(request.signal)
129
+ });
130
+ const outcome = receiptOutcome(receipt);
131
+ publicationCommitted = receipt.outcome === "applied" ||
132
+ receipt.outcome === "already-applied";
133
+ if (publicationCommitted) {
134
+ committedDocumentPath = plan.destination;
135
+ committedWriteState = receipt.outcome === "already-applied"
136
+ ? "already-applied" : "applied";
137
+ }
138
+ if (outcome !== "success") {
139
+ return commandExecution({
140
+ command: "docs.new",
141
+ diagnostics: [
142
+ ...advisoryDiagnostics,
143
+ ...receiptDiagnostics(receipt, request.consumerRoot)
144
+ ],
145
+ outcome,
146
+ result: {
147
+ kind: "new",
148
+ documentPath: plan.destination,
149
+ reservation: "none",
150
+ receiptOutcome: receipt.outcome,
151
+ reachability
152
+ }
153
+ });
154
+ }
155
+ const verification = await this.#dependencies.structure.verify({
156
+ consumerRoot: request.consumerRoot,
157
+ plan,
158
+ ...signalOption(request.signal)
159
+ });
160
+ const diagnostics = [
161
+ ...advisoryDiagnostics,
162
+ ...receiptDiagnostics(receipt, request.consumerRoot),
163
+ ...verification.diagnostics.map((entry) => ({
164
+ ...entry,
165
+ phase: "apply",
166
+ severity: "error"
167
+ }))
168
+ ];
169
+ return commandExecution({
170
+ command: "docs.new",
171
+ diagnostics,
172
+ outcome: verification.valid ? "success" : "violation",
173
+ result: {
174
+ kind: "new",
175
+ documentPath: plan.destination,
176
+ writeState: receipt.outcome === "already-applied"
177
+ ? "already-applied" : "applied",
178
+ reservation: "none",
179
+ receiptOutcome: receipt.outcome,
180
+ reachability
181
+ }
182
+ });
183
+ }
184
+ catch (error) {
185
+ if (publicationCommitted) {
186
+ return commandExecution({
187
+ command: "docs.new",
188
+ diagnostics: [...advisoryDiagnostics, {
189
+ ruleId: "document.new.post-publication-verification",
190
+ severity: "error",
191
+ phase: "apply",
192
+ subject: "document.new",
193
+ message: "The document was published, but post-publication structural verification failed. The created output was preserved."
194
+ }],
195
+ outcome: "violation",
196
+ result: {
197
+ kind: "new",
198
+ ...(committedDocumentPath === undefined
199
+ ? {} : { documentPath: committedDocumentPath }),
200
+ ...(committedWriteState === undefined
201
+ ? {} : { writeState: committedWriteState }),
202
+ ...(projectedReachability === undefined
203
+ ? {} : { reachability: projectedReachability }),
204
+ reservation: "none"
205
+ }
206
+ });
207
+ }
208
+ const failure = projectDocumentCommandFailure({
209
+ command: "docs.new", error, phase: "planning", subject: "document.new",
210
+ allowCancellation: true
211
+ });
212
+ return commandExecution({
213
+ command: "docs.new",
214
+ diagnostics: [...advisoryDiagnostics, failure.diagnostic],
215
+ outcome: failure.outcome,
216
+ result: { kind: "new", reservation: "none" }
217
+ });
218
+ }
219
+ }
220
+ }
221
+ //# sourceMappingURL=run-document-new.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-document-new.js","sourceRoot":"","sources":["../../../../src/document-authoring/application/use-cases/run-document-new.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,gBAAgB,EAChB,6BAA6B,EAC7B,cAAc,EACf,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AAmBnG,SAAS,YAAY,CAAC,MAA+B;IACnD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,qBAAqB,CAC5B,UAAgF,EAChF,YAAoB;IAEpB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,KAAK,aAAa;QACjD,CAAC,CAAC;YACE,SAAS,EAAE,cAAuB;YAClC,IAAI,EAAE;gBACJ,YAAY,EAAE,kCAAkC,CAAC,YAAY,CAAC;gBAC9D,sBAAsB,EAAE,UAAU,CAAC,QAAQ,CAAC,sBAAsB;gBAClE,4BAA4B,EAAE,UAAU,CAAC,QAAQ,CAAC,4BAA4B;aAC/E;SACF;QACH,CAAC,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS;YACjC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,KAAK,cAAc;oBACzD,CAAC,CAAC,cAAuB,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS;gBAC3D,IAAI,EAAE;oBACJ,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI;oBAC3B,YAAY,EAAE,kCAAkC,CAAC,YAAY,CAAC;iBAC/D;aACF,CAAC;IACR,OAAO;QACL,MAAM,EAAE,iCAAiC;QACzC,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,UAAU;QACjB,OAAO,EAAE,sBAAsB;QAC/B,OAAO,EAAE,UAAU,CAAC,KAAK,KAAK,aAAa;YACzC,CAAC,CAAC,wEAAwE;YAC1E,CAAC,CAAC,UAAU,CAAC,MAAM;QACrB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAwB,EACxB,YAAoB;IAEpB,OAAO,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzC,GAAG,KAAK;QACR,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,mBAAmB;YACzC,CAAC,CAAC,EAAE,WAAW,EAAE;oBACb,SAAS,EAAE,cAAuB;oBAClC,IAAI,EAAE,EAAE,YAAY,EAAE,kCAAkC,CAAC,YAAY,CAAC,EAAE;iBACzE,EAAE;YACL,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,0BAA0B;gBAC9C,CAAC,CAAC,EAAE,WAAW,EAAE;wBACf,SAAS,EAAE,aAAsB;wBACjC,IAAI,EAAE,EAAE,YAAY,EAAE,kCAAkC,CAAC,YAAY,CAAC,EAAE;qBACzE,EAAE;gBACL,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC,CAAC;AACN,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,KAKzC;IACC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;YACrD,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI;YAC9C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;YAC9B,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;SAC9B,CAAC,CAAC;QACH,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QAC/B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAO,cAAc;IAChB,aAAa,CAAe;IAErC,YAAY,YAA0B;QACpC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,OAAO,CACX,OAA8B;QAE9B,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,IAAI,qBAAyC,CAAC;QAC9C,IAAI,mBAA8D,CAAC;QACnE,IAAI,qBAEU,CAAC;QACf,IAAI,mBAAmB,GAAyC,EAAE,CAAC;QACnE,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC1E,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YACjC,IAAI,UAAU,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBAChC,OAAO,gBAAgB,CAAC;oBACtB,OAAO,EAAE,UAAU;oBACnB,WAAW,EAAE,CAAC,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;oBACtE,OAAO,EAAE,mBAAmB;oBAC5B,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE;iBAC7C,CAAC,CAAC;YACL,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBACzC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;aAChC,CAAC,CAAC;YACH,mBAAmB,GAAG,MAAM,0BAA0B,CAAC;gBACrD,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,IAAI;gBACJ,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;aAChC,CAAC,CAAC;YACH,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC;gBACjE,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,IAAI;aACL,CAAC,CAAC;YACH,qBAAqB,GAAG,YAAY,CAAC;YACrC,OAAO,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,gBAAgB,CAAC;oBACtB,OAAO,EAAE,UAAU;oBACnB,WAAW,EAAE,mBAAmB;oBAChC,OAAO,EAAE,SAAS;oBAClB,MAAM,EAAE;wBACN,IAAI,EAAE,KAAK;wBACX,YAAY,EAAE,IAAI,CAAC,WAAW;wBAC9B,UAAU,EAAE,SAAS;wBACrB,WAAW,EAAE,MAAM;wBACnB,YAAY;qBACb;iBACF,CAAC,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBAC7C,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,IAAI;gBACJ,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;aAChC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YACxC,oBAAoB,GAAG,OAAO,CAAC,OAAO,KAAK,SAAS;gBAClD,OAAO,CAAC,OAAO,KAAK,iBAAiB,CAAC;YACxC,IAAI,oBAAoB,EAAE,CAAC;gBACzB,qBAAqB,GAAG,IAAI,CAAC,WAAW,CAAC;gBACzC,mBAAmB,GAAG,OAAO,CAAC,OAAO,KAAK,iBAAiB;oBACzD,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;YACpC,CAAC;YACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,gBAAgB,CAAC;oBACtB,OAAO,EAAE,UAAU;oBACnB,WAAW,EAAE;wBACX,GAAG,mBAAmB;wBACtB,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC;qBACrD;oBACD,OAAO;oBACP,MAAM,EAAE;wBACN,IAAI,EAAE,KAAK;wBACX,YAAY,EAAE,IAAI,CAAC,WAAW;wBAC9B,WAAW,EAAE,MAAM;wBACnB,cAAc,EAAE,OAAO,CAAC,OAAO;wBAC/B,YAAY;qBACb;iBACF,CAAC,CAAC;YACL,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC7D,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,IAAI;gBACJ,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;aAChC,CAAC,CAAC;YACH,MAAM,WAAW,GAAyC;gBACxD,GAAG,mBAAmB;gBACtB,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC;gBACpD,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC1C,GAAG,KAAK;oBACR,KAAK,EAAE,OAAgB;oBACvB,QAAQ,EAAE,OAAgB;iBAC3B,CAAC,CAAC;aACJ,CAAC;YACF,OAAO,gBAAgB,CAAC;gBACtB,OAAO,EAAE,UAAU;gBACnB,WAAW;gBACX,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;gBACrD,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK;oBACX,YAAY,EAAE,IAAI,CAAC,WAAW;oBAC9B,UAAU,EAAE,OAAO,CAAC,OAAO,KAAK,iBAAiB;wBAC/C,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;oBACjC,WAAW,EAAE,MAAM;oBACnB,cAAc,EAAE,OAAO,CAAC,OAAO;oBAC/B,YAAY;iBACb;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,oBAAoB,EAAE,CAAC;gBACzB,OAAO,gBAAgB,CAAC;oBACtB,OAAO,EAAE,UAAU;oBACnB,WAAW,EAAE,CAAC,GAAG,mBAAmB,EAAE;4BACpC,MAAM,EAAE,4CAA4C;4BACpD,QAAQ,EAAE,OAAO;4BACjB,KAAK,EAAE,OAAO;4BACd,OAAO,EAAE,cAAc;4BACvB,OAAO,EAAE,oHAAoH;yBAC9H,CAAC;oBACF,OAAO,EAAE,WAAW;oBACpB,MAAM,EAAE;wBACN,IAAI,EAAE,KAAK;wBACX,GAAG,CAAC,qBAAqB,KAAK,SAAS;4BACrC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC;wBACjD,GAAG,CAAC,mBAAmB,KAAK,SAAS;4BACnC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;wBAC7C,GAAG,CAAC,qBAAqB,KAAK,SAAS;4BACrC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC;wBACjD,WAAW,EAAE,MAAM;qBACpB;iBACF,CAAC,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,6BAA6B,CAAC;gBAC5C,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc;gBACtE,iBAAiB,EAAE,IAAI;aACxB,CAAC,CAAC;YACH,OAAO,gBAAgB,CAAC;gBACtB,OAAO,EAAE,UAAU;gBACnB,WAAW,EAAE,CAAC,GAAG,mBAAmB,EAAE,OAAO,CAAC,UAAU,CAAC;gBACzD,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE;aAC7C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import type { DocumentCommandExecution, DocumentRecoverResult } from "../model/document-command.js";
2
+ import type { DocumentReceipt } from "../model/document-receipt.js";
3
+ import type { DocumentTransactionInspectionV1 } from "../model/document-transaction-inspection.js";
4
+ export interface RunDocumentRecoverRequest {
5
+ readonly consumerRoot: string;
6
+ readonly signal?: AbortSignal;
7
+ }
8
+ interface Dependencies {
9
+ inspect(consumerRoot: string): Promise<DocumentTransactionInspectionV1>;
10
+ recover(request: {
11
+ readonly consumerRoot: string;
12
+ readonly signal?: AbortSignal;
13
+ }): Promise<DocumentReceipt>;
14
+ }
15
+ export declare class RunDocumentRecover {
16
+ #private;
17
+ constructor(dependencies: Dependencies);
18
+ execute(request: RunDocumentRecoverRequest): Promise<DocumentCommandExecution<DocumentRecoverResult>>;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=run-document-recover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-document-recover.d.ts","sourceRoot":"","sources":["../../../../src/document-authoring/application/use-cases/run-document-recover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAQnG,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,UAAU,YAAY;IACpB,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IACxE,OAAO,CAAC,OAAO,EAAE;QACf,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;KAC/B,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC9B;AAmDD,qBAAa,kBAAkB;;IAG7B,YAAY,YAAY,EAAE,YAAY,EAErC;IAEK,OAAO,CACX,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC,CA4E1D;CACF"}
@@ -0,0 +1,126 @@
1
+ import { commandExecution, projectDocumentCommandFailure, receiptOutcome } from "../policies/document-command-projection.js";
2
+ import { projectDocumentCommandConsumerRoot } from "../policies/document-command-consumer-root.js";
3
+ function manualDiagnostics(inspection, consumerRoot) {
4
+ return inspection.diagnostics.map((entry) => ({
5
+ ruleId: entry.code.toLowerCase().replaceAll("_", "."),
6
+ severity: "error",
7
+ phase: "recovery",
8
+ subject: "document.transaction",
9
+ message: entry.message,
10
+ ...(inspection.recovery === undefined
11
+ ? {}
12
+ : { remediation: {
13
+ commandId: inspection.recovery.commandId === "docs-recover"
14
+ ? "docs.recover" : inspection.recovery.commandId,
15
+ args: {
16
+ ...inspection.recovery.args,
17
+ consumerRoot: projectDocumentCommandConsumerRoot(consumerRoot)
18
+ }
19
+ } })
20
+ }));
21
+ }
22
+ function writeState(receipt) {
23
+ switch (receipt.commit.publication) {
24
+ case "published": return "committed";
25
+ case "preexisting-exact": return "already-committed";
26
+ case "none": return "unchanged";
27
+ case "unknown": return "unknown";
28
+ }
29
+ }
30
+ function recoveryState(receipt) {
31
+ switch (receipt.outcome) {
32
+ case "applied": return "recovered";
33
+ case "already-applied": return "already-applied";
34
+ case "cancelled": return "cancelled";
35
+ case "recovery-required": return "recovery-required";
36
+ case "manual-recovery-required": return "manual-required";
37
+ case "authority-stale":
38
+ case "failed-before-publication":
39
+ case "rejected": return "failed";
40
+ }
41
+ }
42
+ export class RunDocumentRecover {
43
+ #dependencies;
44
+ constructor(dependencies) {
45
+ this.#dependencies = dependencies;
46
+ }
47
+ async execute(request) {
48
+ try {
49
+ request.signal?.throwIfAborted();
50
+ const inspection = await this.#dependencies.inspect(request.consumerRoot);
51
+ request.signal?.throwIfAborted();
52
+ if (inspection.state === "idle") {
53
+ return commandExecution({
54
+ command: "docs.recover", outcome: "success",
55
+ result: {
56
+ kind: "recover", transactionState: "no-pending-transaction",
57
+ writeState: "unchanged", recoveryRequired: false
58
+ }
59
+ });
60
+ }
61
+ if (inspection.state === "manual-recovery-required") {
62
+ return commandExecution({
63
+ command: "docs.recover",
64
+ diagnostics: manualDiagnostics(inspection, request.consumerRoot),
65
+ outcome: "recovery-required",
66
+ result: {
67
+ kind: "recover", transactionState: "manual-required",
68
+ writeState: "unknown", recoveryRequired: true,
69
+ ...(inspection.recovery === undefined
70
+ ? {}
71
+ : { recoveryCommand: {
72
+ commandId: inspection.recovery.commandId === "docs-recover"
73
+ ? "docs.recover" : inspection.recovery.commandId,
74
+ args: {
75
+ ...inspection.recovery.args,
76
+ consumerRoot: projectDocumentCommandConsumerRoot(request.consumerRoot)
77
+ }
78
+ } })
79
+ }
80
+ });
81
+ }
82
+ const receipt = await this.#dependencies.recover({
83
+ consumerRoot: request.consumerRoot,
84
+ ...(request.signal === undefined ? {} : { signal: request.signal })
85
+ });
86
+ const outcome = receiptOutcome(receipt);
87
+ return commandExecution({
88
+ command: "docs.recover",
89
+ diagnostics: receipt.diagnostics.map((entry) => ({
90
+ ...entry,
91
+ ...(outcome === "recovery-required"
92
+ ? { remediation: {
93
+ commandId: "docs.doctor",
94
+ args: {
95
+ consumerRoot: projectDocumentCommandConsumerRoot(request.consumerRoot)
96
+ }
97
+ } }
98
+ : {})
99
+ })),
100
+ outcome,
101
+ result: {
102
+ kind: "recover",
103
+ transactionState: recoveryState(receipt),
104
+ writeState: writeState(receipt),
105
+ recoveryRequired: outcome === "recovery-required",
106
+ receiptDigest: receipt.receiptDigest
107
+ }
108
+ });
109
+ }
110
+ catch (error) {
111
+ const failure = projectDocumentCommandFailure({
112
+ command: "docs.recover", error, phase: "recovery", subject: "document.transaction"
113
+ });
114
+ return commandExecution({
115
+ command: "docs.recover", diagnostics: [failure.diagnostic], outcome: failure.outcome,
116
+ result: {
117
+ kind: "recover",
118
+ transactionState: failure.outcome === "cancelled" ? "cancelled" : "failed",
119
+ writeState: "unknown",
120
+ recoveryRequired: false
121
+ }
122
+ });
123
+ }
124
+ }
125
+ }
126
+ //# sourceMappingURL=run-document-recover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-document-recover.js","sourceRoot":"","sources":["../../../../src/document-authoring/application/use-cases/run-document-recover.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { renderDocumentCommandJson, renderDocumentCommandText, } from "../adapters/inbound/cli/document-command-renderer.js";
2
+ export { createNodeDocumentCommands } from "./node-document-commands.js";
3
+ export declare function projectDocumentLaunchFailure(rawArguments: readonly string[], error: unknown): {
4
+ readonly exitCode: number;
5
+ readonly stdout: string;
6
+ } | undefined;
7
+ //# sourceMappingURL=document-command-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-command-cli.d.ts","sourceRoot":"","sources":["../../../src/document-authoring/composition/document-command-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAMzE,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,KAAK,EAAE,OAAO,GACb;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA8BpE"}
@@ -0,0 +1,32 @@
1
+ export { renderDocumentCommandJson, renderDocumentCommandText, } from "../adapters/inbound/cli/document-command-renderer.js";
2
+ export { createNodeDocumentCommands } from "./node-document-commands.js";
3
+ import { documentMutationFailure } from "../adapters/inbound/cli/document-command-failure.js";
4
+ import { documentFindFailure } from "../find-command.js";
5
+ export function projectDocumentLaunchFailure(rawArguments, error) {
6
+ if (rawArguments[0] !== "docs") {
7
+ return undefined;
8
+ }
9
+ const json = rawArguments.includes("--json") || rawArguments.some((argument, index) => argument === "--format" && rawArguments[index + 1] === "json");
10
+ if (!json) {
11
+ return undefined;
12
+ }
13
+ if (rawArguments[1] === "find") {
14
+ const result = documentFindFailure(error);
15
+ return {
16
+ exitCode: result.exitCode,
17
+ stdout: `${JSON.stringify(result.envelope)}\n`
18
+ };
19
+ }
20
+ const requested = `docs.${rawArguments[1] ?? ""}`;
21
+ const command = requested === "docs.new" ||
22
+ requested === "docs.doctor" ||
23
+ requested === "docs.recover"
24
+ ? requested
25
+ : "docs.doctor";
26
+ const result = documentMutationFailure(command, error);
27
+ return {
28
+ exitCode: result.exitCode,
29
+ stdout: `${JSON.stringify(result.envelope)}\n`
30
+ };
31
+ }
32
+ //# sourceMappingURL=document-command-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-command-cli.js","sourceRoot":"","sources":["../../../src/document-authoring/composition/document-command-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAGzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,UAAU,4BAA4B,CAC1C,YAA+B,EAC/B,KAAc;IAEd,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,IAAI,CAC/D,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAClB,QAAQ,KAAK,UAAU,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,MAAM,CAChE,CAAC;IACF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI;SAC/C,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IAClD,MAAM,OAAO,GACX,SAAS,KAAK,UAAU;QACxB,SAAS,KAAK,aAAa;QAC3B,SAAS,KAAK,cAAc;QAC1B,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,aAAa,CAAC;IACpB,MAAM,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACvD,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI;KAC/C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { NodeFoundationTransactionSlot } from "../../transaction-coordination/adapters/node/node-foundation-transaction-slot.js";
2
+ import type { DocumentTransactionInspectionV1 } from "../application/model/document-transaction-inspection.js";
3
+ type ObservedTransactionStatus = Awaited<ReturnType<NodeFoundationTransactionSlot["inspect"]>>;
4
+ export declare function projectDocumentTransactionInspectionV1(status: ObservedTransactionStatus): DocumentTransactionInspectionV1;
5
+ /** Inspects the shared transaction slot without acquiring mutation authority. */
6
+ export declare function inspectDocumentTransactionV1(consumerRoot: string): Promise<DocumentTransactionInspectionV1>;
7
+ export {};
8
+ //# sourceMappingURL=inspect-document-transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect-document-transaction.d.ts","sourceRoot":"","sources":["../../../src/document-authoring/composition/inspect-document-transaction.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kFAAkF,CAAC;AACjI,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yDAAyD,CAAC;AAG/G,KAAK,yBAAyB,GAAG,OAAO,CACtC,UAAU,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CACrD,CAAC;AAgHF,wBAAgB,sCAAsC,CACpD,MAAM,EAAE,yBAAyB,GAChC,+BAA+B,CAwCjC;AAED,iFAAiF;AACjF,wBAAsB,4BAA4B,CAChD,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,+BAA+B,CAAC,CAqC1C"}
@@ -0,0 +1,177 @@
1
+ import { lstat, realpath } from "node:fs/promises";
2
+ import { join, resolve } from "node:path";
3
+ import { FOUNDATION_TRANSACTION_FILE, LOCAL_STATE_DIRECTORY, } from "../../foundation-state-contract.js";
4
+ import { installedFoundationVersion } from "../../package-version.js";
5
+ import { installedFoundationBuildIdentity } from "../../transaction-coordination/adapters/node/installed-foundation-build-identity.js";
6
+ import { NodeFoundationTransactionSlot } from "../../transaction-coordination/adapters/node/node-foundation-transaction-slot.js";
7
+ import { recaptureDocumentPublicationPaths } from "../adapters/node/recapture-document-publication-paths.js";
8
+ function property(value, key) {
9
+ return typeof value === "object" && value !== null
10
+ ? Reflect.get(value, key)
11
+ : undefined;
12
+ }
13
+ function isExactDocumentRecovery(status) {
14
+ return status.state === "pending" &&
15
+ status.operationKind === "document-authoring" &&
16
+ property(status, "format") === "document-authoring-envelope-v3" &&
17
+ property(property(status, "recovery"), "commandId") === "docs-recover" &&
18
+ status.recovery.exactFoundationVersion === status.foundationVersion &&
19
+ status.recovery.exactFoundationBuildIdentity === status.foundationBuildIdentity &&
20
+ !status.diagnostics.some(({ code }) => code === "FOUNDATION_TRANSACTION_VERSION_MISMATCH");
21
+ }
22
+ function operationKind(status) {
23
+ return property(status, "operationKind");
24
+ }
25
+ function stringProperty(value, key) {
26
+ const candidate = property(value, key);
27
+ return typeof candidate === "string" ? candidate : undefined;
28
+ }
29
+ function hasVersionMismatch(status) {
30
+ return status.diagnostics.some(({ code }) => code === "FOUNDATION_TRANSACTION_VERSION_MISMATCH");
31
+ }
32
+ function transactionKind(status) {
33
+ if (hasVersionMismatch(status)) {
34
+ return "version-mismatch";
35
+ }
36
+ if (status.state === "pending") {
37
+ switch (status.operationKind) {
38
+ case "document-authoring": return "document";
39
+ case "local-mode": return "local-mode";
40
+ case "scaffolding": return "scaffold";
41
+ }
42
+ }
43
+ switch (status.reason) {
44
+ case "journal-transition-residue":
45
+ case "orphan-temporary": return "transition-residue";
46
+ case "corrupt-or-incompatible":
47
+ case "invalid-slot":
48
+ case "local-mode-evidence-invalid":
49
+ case "physical-identity-unverifiable":
50
+ case "unstable-slot": return "corrupt";
51
+ case "unsupported-schema": return "version-mismatch";
52
+ case "recovery-handler-unavailable":
53
+ switch (status.operationKind) {
54
+ case "document-authoring": return "document";
55
+ case "scaffolding": return "scaffold";
56
+ case undefined: return "unknown";
57
+ }
58
+ return "unknown";
59
+ case "multiple-transactions": return "unknown";
60
+ }
61
+ }
62
+ function exactRecovery(status) {
63
+ const recovery = property(status, "recovery");
64
+ const commandId = stringProperty(recovery, "commandId");
65
+ if (commandId === "detach") {
66
+ return { commandId, args: {} };
67
+ }
68
+ if (commandId !== "docs-recover" && commandId !== "scaffold-recover") {
69
+ return undefined;
70
+ }
71
+ const exactFoundationVersion = stringProperty(recovery, "exactFoundationVersion");
72
+ if (exactFoundationVersion === undefined) {
73
+ return undefined;
74
+ }
75
+ const exactFoundationBuildIdentity = stringProperty(recovery, "exactFoundationBuildIdentity");
76
+ return {
77
+ commandId,
78
+ args: {
79
+ exactFoundationVersion,
80
+ ...(exactFoundationBuildIdentity === undefined
81
+ ? {} : { exactFoundationBuildIdentity }),
82
+ },
83
+ };
84
+ }
85
+ export function projectDocumentTransactionInspectionV1(status) {
86
+ if (status.state === "idle") {
87
+ return { schemaVersion: 1, state: "idle", diagnostics: [] };
88
+ }
89
+ if (isExactDocumentRecovery(status)) {
90
+ return {
91
+ schemaVersion: 1,
92
+ state: "recoverable",
93
+ operationKind: "document-authoring",
94
+ format: status.format,
95
+ foundationVersion: status.foundationVersion,
96
+ foundationBuildIdentity: status.foundationBuildIdentity,
97
+ recovery: status.recovery,
98
+ diagnostics: status.diagnostics,
99
+ };
100
+ }
101
+ const kind = operationKind(status);
102
+ const format = stringProperty(status, "format");
103
+ const foundationVersion = stringProperty(status, "foundationVersion");
104
+ const foundationBuildIdentity = stringProperty(status, "foundationBuildIdentity");
105
+ const recovery = exactRecovery(status);
106
+ return {
107
+ schemaVersion: 1,
108
+ state: "manual-recovery-required",
109
+ reason: status.state === "manual-recovery-required"
110
+ ? status.reason
111
+ : status.diagnostics[0]?.message ??
112
+ "A foreign Foundation transaction blocks document authoring.",
113
+ ...(kind === undefined ? {} : { operationKind: kind }),
114
+ transactionKind: transactionKind(status),
115
+ ...(format === undefined ? {} : { format }),
116
+ ...(foundationVersion === undefined ? {} : { foundationVersion }),
117
+ ...(foundationBuildIdentity === undefined
118
+ ? {} : { foundationBuildIdentity }),
119
+ ...(recovery === undefined ? {} : { recovery }),
120
+ diagnostics: status.diagnostics,
121
+ };
122
+ }
123
+ /** Inspects the shared transaction slot without acquiring mutation authority. */
124
+ export async function inspectDocumentTransactionV1(consumerRoot) {
125
+ const root = await realpath(resolve(consumerRoot));
126
+ const stateDirectory = join(root, LOCAL_STATE_DIRECTORY);
127
+ try {
128
+ await lstat(stateDirectory);
129
+ }
130
+ catch (error) {
131
+ if (error instanceof Error && "code" in error &&
132
+ error.code === "ENOENT") {
133
+ return { schemaVersion: 1, state: "idle", diagnostics: [] };
134
+ }
135
+ return unsafeTransactionPathInspection();
136
+ }
137
+ try {
138
+ // Reuse the writer's strict real-directory ancestry recapture. This rejects
139
+ // redirected state directories, portable aliases, and roots that escape the
140
+ // canonical consumer root before the shared slot is allowed to read evidence.
141
+ await recaptureDocumentPublicationPaths({
142
+ consumerRoot: root,
143
+ destination: `${LOCAL_STATE_DIRECTORY}/${FOUNDATION_TRANSACTION_FILE}`,
144
+ });
145
+ }
146
+ catch {
147
+ try {
148
+ await lstat(stateDirectory);
149
+ }
150
+ catch (error) {
151
+ if (error instanceof Error && "code" in error &&
152
+ error.code === "ENOENT") {
153
+ return { schemaVersion: 1, state: "idle", diagnostics: [] };
154
+ }
155
+ }
156
+ return unsafeTransactionPathInspection();
157
+ }
158
+ const status = await new NodeFoundationTransactionSlot({
159
+ consumerRoot: root,
160
+ installedVersion: await installedFoundationVersion(),
161
+ installedBuildIdentity: await installedFoundationBuildIdentity(),
162
+ }).inspect();
163
+ return projectDocumentTransactionInspectionV1(status);
164
+ }
165
+ function unsafeTransactionPathInspection() {
166
+ return {
167
+ schemaVersion: 1,
168
+ state: "manual-recovery-required",
169
+ reason: "Foundation transaction evidence path is redirected or cannot be inspected safely.",
170
+ transactionKind: "corrupt",
171
+ diagnostics: [{
172
+ code: "FOUNDATION_TRANSACTION_MANUAL_RECOVERY_REQUIRED",
173
+ message: "Foundation transaction evidence path is redirected or cannot be inspected safely.",
174
+ }],
175
+ };
176
+ }
177
+ //# sourceMappingURL=inspect-document-transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect-document-transaction.js","sourceRoot":"","sources":["../../../src/document-authoring/composition/inspect-document-transaction.ts"],"names":[],"mappings":"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"}