wingfoil 0.2.2 → 0.3.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 (454) hide show
  1. package/README.md +83 -43
  2. package/dist/agent/discovery.d.ts +72 -0
  3. package/dist/agent/discovery.d.ts.map +1 -0
  4. package/dist/agent/discovery.js +210 -0
  5. package/dist/agent/discovery.js.map +1 -0
  6. package/dist/agent/execute.d.ts +206 -0
  7. package/dist/agent/execute.d.ts.map +1 -0
  8. package/dist/agent/execute.js +581 -0
  9. package/dist/agent/execute.js.map +1 -0
  10. package/dist/agent/index.d.ts +23 -0
  11. package/dist/agent/index.d.ts.map +1 -0
  12. package/dist/agent/index.js +85 -0
  13. package/dist/agent/index.js.map +1 -0
  14. package/dist/agent/launch.d.ts +133 -0
  15. package/dist/agent/launch.d.ts.map +1 -0
  16. package/dist/agent/launch.js +380 -0
  17. package/dist/agent/launch.js.map +1 -0
  18. package/dist/agent/manifest.d.ts +30 -0
  19. package/dist/agent/manifest.d.ts.map +1 -0
  20. package/dist/agent/manifest.js +93 -0
  21. package/dist/agent/manifest.js.map +1 -0
  22. package/dist/agent/placeholders.d.ts +49 -0
  23. package/dist/agent/placeholders.d.ts.map +1 -0
  24. package/dist/agent/placeholders.js +177 -0
  25. package/dist/agent/placeholders.js.map +1 -0
  26. package/dist/agent/run-log.d.ts +254 -0
  27. package/dist/agent/run-log.d.ts.map +1 -0
  28. package/dist/agent/run-log.js +612 -0
  29. package/dist/agent/run-log.js.map +1 -0
  30. package/dist/agent/schema.d.ts +100 -0
  31. package/dist/agent/schema.d.ts.map +1 -0
  32. package/dist/agent/schema.js +89 -0
  33. package/dist/agent/schema.js.map +1 -0
  34. package/dist/agent/step.d.ts +41 -0
  35. package/dist/agent/step.d.ts.map +1 -0
  36. package/dist/agent/step.js +95 -0
  37. package/dist/agent/step.js.map +1 -0
  38. package/dist/build-info.json +4 -0
  39. package/dist/cli/error.d.ts +11 -2
  40. package/dist/cli/error.d.ts.map +1 -1
  41. package/dist/cli/error.js +27 -6
  42. package/dist/cli/error.js.map +1 -1
  43. package/dist/cli/exit.d.ts +33 -3
  44. package/dist/cli/exit.d.ts.map +1 -1
  45. package/dist/cli/exit.js +54 -3
  46. package/dist/cli/exit.js.map +1 -1
  47. package/dist/cli/index.d.ts +1 -1
  48. package/dist/cli/index.d.ts.map +1 -1
  49. package/dist/cli/index.js +2 -1
  50. package/dist/cli/index.js.map +1 -1
  51. package/dist/cli/init-command.d.ts.map +1 -1
  52. package/dist/cli/init-command.js +4 -2
  53. package/dist/cli/init-command.js.map +1 -1
  54. package/dist/cli/mcp-command.d.ts +13 -4
  55. package/dist/cli/mcp-command.d.ts.map +1 -1
  56. package/dist/cli/mcp-command.js +25 -8
  57. package/dist/cli/mcp-command.js.map +1 -1
  58. package/dist/cli/output.d.ts +12 -4
  59. package/dist/cli/output.d.ts.map +1 -1
  60. package/dist/cli/output.js +15 -4
  61. package/dist/cli/output.js.map +1 -1
  62. package/dist/cli/program.d.ts +1 -1
  63. package/dist/cli/program.d.ts.map +1 -1
  64. package/dist/cli/program.js +162 -40
  65. package/dist/cli/program.js.map +1 -1
  66. package/dist/cli/registrar.d.ts +1 -1
  67. package/dist/cli/registrar.d.ts.map +1 -1
  68. package/dist/cli/registrar.js +67 -6
  69. package/dist/cli/registrar.js.map +1 -1
  70. package/dist/cli/suggest.d.ts +20 -0
  71. package/dist/cli/suggest.d.ts.map +1 -0
  72. package/dist/cli/suggest.js +49 -0
  73. package/dist/cli/suggest.js.map +1 -0
  74. package/dist/cli/warning.d.ts +26 -0
  75. package/dist/cli/warning.d.ts.map +1 -0
  76. package/dist/cli/warning.js +66 -0
  77. package/dist/cli/warning.js.map +1 -0
  78. package/dist/cli.js +11 -2
  79. package/dist/cli.js.map +1 -1
  80. package/dist/core/agent-execute.d.ts +44 -0
  81. package/dist/core/agent-execute.d.ts.map +1 -0
  82. package/dist/core/agent-execute.js +71 -0
  83. package/dist/core/agent-execute.js.map +1 -0
  84. package/dist/core/agent-list.d.ts +95 -0
  85. package/dist/core/agent-list.d.ts.map +1 -0
  86. package/dist/core/agent-list.js +207 -0
  87. package/dist/core/agent-list.js.map +1 -0
  88. package/dist/core/agent-show.d.ts +44 -0
  89. package/dist/core/agent-show.d.ts.map +1 -0
  90. package/dist/core/agent-show.js +188 -0
  91. package/dist/core/agent-show.js.map +1 -0
  92. package/dist/core/approval-authority.d.ts +17 -14
  93. package/dist/core/approval-authority.d.ts.map +1 -1
  94. package/dist/core/approval-authority.js +9 -9
  95. package/dist/core/approval-authority.js.map +1 -1
  96. package/dist/core/builtin-asset.d.ts +18 -15
  97. package/dist/core/builtin-asset.d.ts.map +1 -1
  98. package/dist/core/builtin-asset.js +17 -14
  99. package/dist/core/builtin-asset.js.map +1 -1
  100. package/dist/core/builtin-integrity.d.ts +12 -2
  101. package/dist/core/builtin-integrity.d.ts.map +1 -1
  102. package/dist/core/builtin-integrity.js +85 -9
  103. package/dist/core/builtin-integrity.js.map +1 -1
  104. package/dist/core/confinement.d.ts +3 -1
  105. package/dist/core/confinement.d.ts.map +1 -1
  106. package/dist/core/confinement.js +7 -4
  107. package/dist/core/confinement.js.map +1 -1
  108. package/dist/core/context.d.ts +150 -98
  109. package/dist/core/context.d.ts.map +1 -1
  110. package/dist/core/context.js +602 -66
  111. package/dist/core/context.js.map +1 -1
  112. package/dist/core/directive-assign.d.ts +33 -7
  113. package/dist/core/directive-assign.d.ts.map +1 -1
  114. package/dist/core/directive-assign.js +67 -27
  115. package/dist/core/directive-assign.js.map +1 -1
  116. package/dist/core/directive-scope.d.ts +36 -0
  117. package/dist/core/directive-scope.d.ts.map +1 -0
  118. package/dist/core/directive-scope.js +34 -0
  119. package/dist/core/directive-scope.js.map +1 -0
  120. package/dist/core/directives-list.d.ts +13 -3
  121. package/dist/core/directives-list.d.ts.map +1 -1
  122. package/dist/core/directives-list.js +18 -6
  123. package/dist/core/directives-list.js.map +1 -1
  124. package/dist/core/dry-run.d.ts +33 -0
  125. package/dist/core/dry-run.d.ts.map +1 -0
  126. package/dist/core/dry-run.js +45 -0
  127. package/dist/core/dry-run.js.map +1 -0
  128. package/dist/core/element-ref.d.ts +23 -0
  129. package/dist/core/element-ref.d.ts.map +1 -0
  130. package/dist/core/element-ref.js +24 -0
  131. package/dist/core/element-ref.js.map +1 -0
  132. package/dist/core/error-details.d.ts +20 -0
  133. package/dist/core/error-details.d.ts.map +1 -0
  134. package/dist/core/error-details.js +65 -0
  135. package/dist/core/error-details.js.map +1 -0
  136. package/dist/core/exit-code.d.ts.map +1 -1
  137. package/dist/core/exit-code.js +6 -7
  138. package/dist/core/exit-code.js.map +1 -1
  139. package/dist/core/git-identity.d.ts +46 -11
  140. package/dist/core/git-identity.d.ts.map +1 -1
  141. package/dist/core/git-identity.js +140 -27
  142. package/dist/core/git-identity.js.map +1 -1
  143. package/dist/core/index.d.ts +184 -10
  144. package/dist/core/index.d.ts.map +1 -1
  145. package/dist/core/index.js +1045 -185
  146. package/dist/core/index.js.map +1 -1
  147. package/dist/core/init.d.ts +45 -5
  148. package/dist/core/init.d.ts.map +1 -1
  149. package/dist/core/init.js +134 -24
  150. package/dist/core/init.js.map +1 -1
  151. package/dist/core/loaders.d.ts +170 -14
  152. package/dist/core/loaders.d.ts.map +1 -1
  153. package/dist/core/loaders.js +570 -89
  154. package/dist/core/loaders.js.map +1 -1
  155. package/dist/core/memory-add-link.d.ts +28 -0
  156. package/dist/core/memory-add-link.d.ts.map +1 -0
  157. package/dist/core/memory-add-link.js +67 -0
  158. package/dist/core/memory-add-link.js.map +1 -0
  159. package/dist/core/memory-add-type.d.ts +25 -1
  160. package/dist/core/memory-add-type.d.ts.map +1 -1
  161. package/dist/core/memory-add-type.js +59 -1
  162. package/dist/core/memory-add-type.js.map +1 -1
  163. package/dist/core/memory-amend.d.ts +80 -0
  164. package/dist/core/memory-amend.d.ts.map +1 -0
  165. package/dist/core/memory-amend.js +160 -0
  166. package/dist/core/memory-amend.js.map +1 -0
  167. package/dist/core/memory-supersede.d.ts +28 -0
  168. package/dist/core/memory-supersede.d.ts.map +1 -0
  169. package/dist/core/memory-supersede.js +79 -0
  170. package/dist/core/memory-supersede.js.map +1 -0
  171. package/dist/core/memory-transition.d.ts +190 -30
  172. package/dist/core/memory-transition.d.ts.map +1 -1
  173. package/dist/core/memory-transition.js +480 -59
  174. package/dist/core/memory-transition.js.map +1 -1
  175. package/dist/core/registry.d.ts +82 -10
  176. package/dist/core/registry.d.ts.map +1 -1
  177. package/dist/core/registry.js +50 -0
  178. package/dist/core/registry.js.map +1 -1
  179. package/dist/core/relevance.d.ts +74 -12
  180. package/dist/core/relevance.d.ts.map +1 -1
  181. package/dist/core/relevance.js +45 -27
  182. package/dist/core/relevance.js.map +1 -1
  183. package/dist/core/require-reason.d.ts.map +1 -1
  184. package/dist/core/require-reason.js +6 -5
  185. package/dist/core/require-reason.js.map +1 -1
  186. package/dist/core/required-fields.d.ts +28 -0
  187. package/dist/core/required-fields.d.ts.map +1 -0
  188. package/dist/core/required-fields.js +60 -0
  189. package/dist/core/required-fields.js.map +1 -0
  190. package/dist/core/revision.d.ts +82 -0
  191. package/dist/core/revision.d.ts.map +1 -0
  192. package/dist/core/revision.js +144 -0
  193. package/dist/core/revision.js.map +1 -0
  194. package/dist/core/types.d.ts +28 -2
  195. package/dist/core/types.d.ts.map +1 -1
  196. package/dist/core/types.js +12 -3
  197. package/dist/core/types.js.map +1 -1
  198. package/dist/core/workflow-core-checks.d.ts +34 -0
  199. package/dist/core/workflow-core-checks.d.ts.map +1 -0
  200. package/dist/core/workflow-core-checks.js +403 -0
  201. package/dist/core/workflow-core-checks.js.map +1 -0
  202. package/dist/core/workflow-create-remove.d.ts +65 -0
  203. package/dist/core/workflow-create-remove.d.ts.map +1 -0
  204. package/dist/core/workflow-create-remove.js +277 -0
  205. package/dist/core/workflow-create-remove.js.map +1 -0
  206. package/dist/core/workflow-deduction.d.ts +48 -0
  207. package/dist/core/workflow-deduction.d.ts.map +1 -0
  208. package/dist/core/workflow-deduction.js +523 -0
  209. package/dist/core/workflow-deduction.js.map +1 -0
  210. package/dist/core/workflow-diagnostics.d.ts +83 -0
  211. package/dist/core/workflow-diagnostics.d.ts.map +1 -0
  212. package/dist/core/workflow-diagnostics.js +375 -0
  213. package/dist/core/workflow-diagnostics.js.map +1 -0
  214. package/dist/core/workflow-exit-state.d.ts +125 -0
  215. package/dist/core/workflow-exit-state.d.ts.map +1 -0
  216. package/dist/core/workflow-exit-state.js +243 -0
  217. package/dist/core/workflow-exit-state.js.map +1 -0
  218. package/dist/core/workflow-finalize.d.ts +37 -0
  219. package/dist/core/workflow-finalize.d.ts.map +1 -0
  220. package/dist/core/workflow-finalize.js +153 -0
  221. package/dist/core/workflow-finalize.js.map +1 -0
  222. package/dist/core/workflow-list-show.d.ts +176 -0
  223. package/dist/core/workflow-list-show.d.ts.map +1 -0
  224. package/dist/core/workflow-list-show.js +268 -0
  225. package/dist/core/workflow-list-show.js.map +1 -0
  226. package/dist/core/workflow-next.d.ts +268 -0
  227. package/dist/core/workflow-next.d.ts.map +1 -0
  228. package/dist/core/workflow-next.js +503 -0
  229. package/dist/core/workflow-next.js.map +1 -0
  230. package/dist/core/workflow-registry.d.ts +52 -0
  231. package/dist/core/workflow-registry.d.ts.map +1 -0
  232. package/dist/core/workflow-registry.js +158 -0
  233. package/dist/core/workflow-registry.js.map +1 -0
  234. package/dist/core/workflow-start-end.d.ts +71 -0
  235. package/dist/core/workflow-start-end.d.ts.map +1 -0
  236. package/dist/core/workflow-start-end.js +298 -0
  237. package/dist/core/workflow-start-end.js.map +1 -0
  238. package/dist/core/workflow-status.d.ts +83 -0
  239. package/dist/core/workflow-status.d.ts.map +1 -0
  240. package/dist/core/workflow-status.js +125 -0
  241. package/dist/core/workflow-status.js.map +1 -0
  242. package/dist/core/write-guard.d.ts +51 -8
  243. package/dist/core/write-guard.d.ts.map +1 -1
  244. package/dist/core/write-guard.js +139 -9
  245. package/dist/core/write-guard.js.map +1 -1
  246. package/dist/directives/index.d.ts +3 -2
  247. package/dist/directives/index.d.ts.map +1 -1
  248. package/dist/directives/index.js +5 -3
  249. package/dist/directives/index.js.map +1 -1
  250. package/dist/directives/schema.d.ts +34 -29
  251. package/dist/directives/schema.d.ts.map +1 -1
  252. package/dist/directives/schema.js +35 -29
  253. package/dist/directives/schema.js.map +1 -1
  254. package/dist/directives/version.d.ts +28 -0
  255. package/dist/directives/version.d.ts.map +1 -0
  256. package/dist/directives/version.js +51 -0
  257. package/dist/directives/version.js.map +1 -0
  258. package/dist/dna/edit.d.ts +7 -6
  259. package/dist/dna/edit.d.ts.map +1 -1
  260. package/dist/dna/edit.js +96 -41
  261. package/dist/dna/edit.js.map +1 -1
  262. package/dist/dna/mutate.js +18 -3
  263. package/dist/dna/mutate.js.map +1 -1
  264. package/dist/dna/path.d.ts +2 -2
  265. package/dist/dna/roles.d.ts +1 -1
  266. package/dist/dna/schema.d.ts +61 -3
  267. package/dist/dna/schema.d.ts.map +1 -1
  268. package/dist/dna/schema.js +121 -6
  269. package/dist/dna/schema.js.map +1 -1
  270. package/dist/mcp/dna-resource.d.ts.map +1 -1
  271. package/dist/mcp/dna-resource.js +4 -4
  272. package/dist/mcp/dna-resource.js.map +1 -1
  273. package/dist/mcp/index.d.ts +8 -4
  274. package/dist/mcp/index.d.ts.map +1 -1
  275. package/dist/mcp/index.js +13 -2
  276. package/dist/mcp/index.js.map +1 -1
  277. package/dist/mcp/memory-resource.d.ts.map +1 -1
  278. package/dist/mcp/memory-resource.js +30 -19
  279. package/dist/mcp/memory-resource.js.map +1 -1
  280. package/dist/mcp/prompt.d.ts +61 -24
  281. package/dist/mcp/prompt.d.ts.map +1 -1
  282. package/dist/mcp/prompt.js +176 -47
  283. package/dist/mcp/prompt.js.map +1 -1
  284. package/dist/mcp/read-only.d.ts +39 -0
  285. package/dist/mcp/read-only.d.ts.map +1 -1
  286. package/dist/mcp/read-only.js +61 -0
  287. package/dist/mcp/read-only.js.map +1 -1
  288. package/dist/mcp/registrar.d.ts +10 -0
  289. package/dist/mcp/registrar.d.ts.map +1 -1
  290. package/dist/mcp/registrar.js +48 -12
  291. package/dist/mcp/registrar.js.map +1 -1
  292. package/dist/mcp/server.d.ts +21 -14
  293. package/dist/mcp/server.d.ts.map +1 -1
  294. package/dist/mcp/server.js +41 -15
  295. package/dist/mcp/server.js.map +1 -1
  296. package/dist/mcp/session-resource.d.ts +13 -0
  297. package/dist/mcp/session-resource.d.ts.map +1 -0
  298. package/dist/mcp/session-resource.js +65 -0
  299. package/dist/mcp/session-resource.js.map +1 -0
  300. package/dist/mcp/workflow-resource.d.ts +18 -0
  301. package/dist/mcp/workflow-resource.d.ts.map +1 -1
  302. package/dist/mcp/workflow-resource.js +37 -8
  303. package/dist/mcp/workflow-resource.js.map +1 -1
  304. package/dist/memory/add.d.ts +110 -24
  305. package/dist/memory/add.d.ts.map +1 -1
  306. package/dist/memory/add.js +251 -64
  307. package/dist/memory/add.js.map +1 -1
  308. package/dist/memory/audit.d.ts +152 -39
  309. package/dist/memory/audit.d.ts.map +1 -1
  310. package/dist/memory/audit.js +257 -103
  311. package/dist/memory/audit.js.map +1 -1
  312. package/dist/memory/commit-message.d.ts +60 -38
  313. package/dist/memory/commit-message.d.ts.map +1 -1
  314. package/dist/memory/commit-message.js +167 -21
  315. package/dist/memory/commit-message.js.map +1 -1
  316. package/dist/memory/entry.d.ts.map +1 -1
  317. package/dist/memory/entry.js +1 -2
  318. package/dist/memory/entry.js.map +1 -1
  319. package/dist/memory/frontmatter-edit.d.ts +16 -4
  320. package/dist/memory/frontmatter-edit.d.ts.map +1 -1
  321. package/dist/memory/frontmatter-edit.js +13 -1
  322. package/dist/memory/frontmatter-edit.js.map +1 -1
  323. package/dist/memory/git-log.d.ts +18 -6
  324. package/dist/memory/git-log.d.ts.map +1 -1
  325. package/dist/memory/git-log.js +40 -13
  326. package/dist/memory/git-log.js.map +1 -1
  327. package/dist/memory/history.d.ts +73 -12
  328. package/dist/memory/history.d.ts.map +1 -1
  329. package/dist/memory/history.js +128 -44
  330. package/dist/memory/history.js.map +1 -1
  331. package/dist/memory/index.d.ts +13 -11
  332. package/dist/memory/index.d.ts.map +1 -1
  333. package/dist/memory/index.js +34 -3
  334. package/dist/memory/index.js.map +1 -1
  335. package/dist/memory/query.d.ts +161 -19
  336. package/dist/memory/query.d.ts.map +1 -1
  337. package/dist/memory/query.js +435 -55
  338. package/dist/memory/query.js.map +1 -1
  339. package/dist/memory/schema.d.ts +52 -3
  340. package/dist/memory/schema.d.ts.map +1 -1
  341. package/dist/memory/schema.js +132 -8
  342. package/dist/memory/schema.js.map +1 -1
  343. package/dist/memory/state-machine.d.ts +65 -10
  344. package/dist/memory/state-machine.d.ts.map +1 -1
  345. package/dist/memory/state-machine.js +134 -46
  346. package/dist/memory/state-machine.js.map +1 -1
  347. package/dist/memory/submit.d.ts +52 -3
  348. package/dist/memory/submit.d.ts.map +1 -1
  349. package/dist/memory/submit.js +118 -11
  350. package/dist/memory/submit.js.map +1 -1
  351. package/dist/storage/build-stamp.d.ts +18 -0
  352. package/dist/storage/build-stamp.d.ts.map +1 -0
  353. package/dist/storage/build-stamp.js +68 -0
  354. package/dist/storage/build-stamp.js.map +1 -0
  355. package/dist/storage/builtin-adapters.d.ts +32 -0
  356. package/dist/storage/builtin-adapters.d.ts.map +1 -0
  357. package/dist/storage/builtin-adapters.js +100 -0
  358. package/dist/storage/builtin-adapters.js.map +1 -0
  359. package/dist/storage/builtin-directives.d.ts +0 -29
  360. package/dist/storage/builtin-directives.d.ts.map +1 -1
  361. package/dist/storage/builtin-directives.js +9 -4
  362. package/dist/storage/builtin-directives.js.map +1 -1
  363. package/dist/storage/commit.d.ts +310 -3
  364. package/dist/storage/commit.d.ts.map +1 -1
  365. package/dist/storage/commit.js +807 -33
  366. package/dist/storage/commit.js.map +1 -1
  367. package/dist/storage/document.d.ts +6 -0
  368. package/dist/storage/document.d.ts.map +1 -1
  369. package/dist/storage/document.js +10 -1
  370. package/dist/storage/document.js.map +1 -1
  371. package/dist/storage/dry-run.d.ts +65 -0
  372. package/dist/storage/dry-run.d.ts.map +1 -0
  373. package/dist/storage/dry-run.js +150 -0
  374. package/dist/storage/dry-run.js.map +1 -0
  375. package/dist/storage/errors.d.ts +26 -0
  376. package/dist/storage/errors.d.ts.map +1 -1
  377. package/dist/storage/errors.js +27 -1
  378. package/dist/storage/errors.js.map +1 -1
  379. package/dist/storage/frontmatter.d.ts +1 -1
  380. package/dist/storage/frontmatter.js +1 -1
  381. package/dist/storage/git-read.d.ts +64 -0
  382. package/dist/storage/git-read.d.ts.map +1 -0
  383. package/dist/storage/git-read.js +107 -0
  384. package/dist/storage/git-read.js.map +1 -0
  385. package/dist/storage/index.d.ts +13 -5
  386. package/dist/storage/index.d.ts.map +1 -1
  387. package/dist/storage/index.js +39 -2
  388. package/dist/storage/index.js.map +1 -1
  389. package/dist/storage/layout.d.ts +2 -2
  390. package/dist/storage/layout.d.ts.map +1 -1
  391. package/dist/storage/layout.js +2 -7
  392. package/dist/storage/layout.js.map +1 -1
  393. package/dist/storage/memory-path.d.ts +18 -5
  394. package/dist/storage/memory-path.d.ts.map +1 -1
  395. package/dist/storage/memory-path.js +41 -5
  396. package/dist/storage/memory-path.js.map +1 -1
  397. package/dist/storage/snapshot.js +1 -1
  398. package/dist/storage/templates.d.ts +33 -6
  399. package/dist/storage/templates.d.ts.map +1 -1
  400. package/dist/storage/templates.js +170 -16
  401. package/dist/storage/templates.js.map +1 -1
  402. package/dist/validation/config-version.d.ts +19 -0
  403. package/dist/validation/config-version.d.ts.map +1 -0
  404. package/dist/validation/config-version.js +53 -0
  405. package/dist/validation/config-version.js.map +1 -0
  406. package/dist/validation/diagnostic.d.ts +40 -0
  407. package/dist/validation/diagnostic.d.ts.map +1 -0
  408. package/dist/validation/diagnostic.js +41 -0
  409. package/dist/validation/diagnostic.js.map +1 -0
  410. package/dist/validation/format.d.ts +74 -0
  411. package/dist/validation/format.d.ts.map +1 -0
  412. package/dist/validation/format.js +104 -0
  413. package/dist/validation/format.js.map +1 -0
  414. package/dist/validation/id.d.ts +14 -0
  415. package/dist/validation/id.d.ts.map +1 -1
  416. package/dist/validation/id.js +35 -11
  417. package/dist/validation/id.js.map +1 -1
  418. package/dist/validation/identity.d.ts +40 -0
  419. package/dist/validation/identity.d.ts.map +1 -0
  420. package/dist/validation/identity.js +78 -0
  421. package/dist/validation/identity.js.map +1 -0
  422. package/dist/validation/index.d.ts +9 -3
  423. package/dist/validation/index.d.ts.map +1 -1
  424. package/dist/validation/index.js +30 -1
  425. package/dist/validation/index.js.map +1 -1
  426. package/dist/validation/secret-scan.d.ts +3 -2
  427. package/dist/validation/secret-scan.d.ts.map +1 -1
  428. package/dist/validation/secret-scan.js +32 -11
  429. package/dist/validation/secret-scan.js.map +1 -1
  430. package/dist/validation/warning.d.ts +30 -16
  431. package/dist/validation/warning.d.ts.map +1 -1
  432. package/dist/validation/warning.js +74 -7
  433. package/dist/validation/warning.js.map +1 -1
  434. package/dist/workflow/bindings.d.ts +152 -0
  435. package/dist/workflow/bindings.d.ts.map +1 -0
  436. package/dist/workflow/bindings.js +249 -0
  437. package/dist/workflow/bindings.js.map +1 -0
  438. package/dist/workflow/create.d.ts +13 -0
  439. package/dist/workflow/create.d.ts.map +1 -0
  440. package/dist/workflow/create.js +41 -0
  441. package/dist/workflow/create.js.map +1 -0
  442. package/dist/workflow/deduce.d.ts +400 -0
  443. package/dist/workflow/deduce.d.ts.map +1 -0
  444. package/dist/workflow/deduce.js +1109 -0
  445. package/dist/workflow/deduce.js.map +1 -0
  446. package/dist/workflow/manifest-edit.d.ts +19 -0
  447. package/dist/workflow/manifest-edit.d.ts.map +1 -0
  448. package/dist/workflow/manifest-edit.js +124 -0
  449. package/dist/workflow/manifest-edit.js.map +1 -0
  450. package/dist/workflow/schema.d.ts +158 -19
  451. package/dist/workflow/schema.d.ts.map +1 -1
  452. package/dist/workflow/schema.js +163 -15
  453. package/dist/workflow/schema.js.map +1 -1
  454. package/package.json +18 -8
@@ -0,0 +1,375 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NO_BINDINGS_FILE = void 0;
4
+ exports.indexWorkflowFiles = indexWorkflowFiles;
5
+ exports.workflowFileDiagnostics = workflowFileDiagnostics;
6
+ exports.noStartableDiagnostic = noStartableDiagnostic;
7
+ exports.creatingPhaseIndex = creatingPhaseIndex;
8
+ exports.isImplicitOwnerProduces = isImplicitOwnerProduces;
9
+ exports.bindingsFileDiagnostics = bindingsFileDiagnostics;
10
+ const bindings_1 = require("../workflow/bindings");
11
+ const schema_1 = require("../workflow/schema");
12
+ /**
13
+ * A collection reference (`dna:<path>`, `bindings:<name>`, `element:<field>`) rather than a Memory type
14
+ * (spec-003 § "Collections"; `element:` since task-230).
15
+ */
16
+ const COLLECTION_REF_RE = /^(dna|bindings|element):/;
17
+ /** The collection reference read from the bound element's frontmatter (spec-003 § "Collections", task-230). */
18
+ const ELEMENT_COLLECTION = 'element:';
19
+ /** A value that reads as a file path rather than a workflow name — the `bug-144` shape. */
20
+ function looksLikePath(value) {
21
+ return value.includes('/') || /\.ya?ml$/.test(value);
22
+ }
23
+ function error(file, path, code, message) {
24
+ return { code, severity: 'error', file, path, message };
25
+ }
26
+ function warning(file, path, code, message) {
27
+ return { code, severity: 'warning', file, path, message };
28
+ }
29
+ /** Index the loaded files by name; `missing` counts manifest entries whose file does not exist. */
30
+ function indexWorkflowFiles(files, missing) {
31
+ const byName = new Map();
32
+ let namesComplete = missing === 0;
33
+ files.forEach((loaded, index) => {
34
+ if (loaded.rawName === null) {
35
+ namesComplete = false;
36
+ return;
37
+ }
38
+ if (!byName.has(loaded.rawName))
39
+ byName.set(loaded.rawName, index);
40
+ });
41
+ return { byName, namesComplete };
42
+ }
43
+ /**
44
+ * The include target of `phaseInclude` as a loaded, structurally valid workflow's file index, or
45
+ * `null` when it does not resolve to one.
46
+ */
47
+ function resolveInclude(files, index, phaseInclude) {
48
+ const target = index.byName.get(phaseInclude);
49
+ if (target === undefined || files[target]?.workflow === null)
50
+ return null;
51
+ return target;
52
+ }
53
+ /**
54
+ * The include edges of file `i`, in phase order, as target file indices. `i` is always a structurally
55
+ * valid workflow: the search starts from one, and {@link resolveInclude} only ever yields valid ones.
56
+ */
57
+ function includeEdges(files, index, i) {
58
+ const workflow = files[i].workflow;
59
+ const edges = [];
60
+ for (const phase of workflow.phases) {
61
+ if (phase.include === undefined)
62
+ continue;
63
+ const target = resolveInclude(files, index, phase.include);
64
+ if (target !== null)
65
+ edges.push(target);
66
+ }
67
+ return edges;
68
+ }
69
+ /**
70
+ * The shortest include path from `from` back to `to` (breadth-first, neighbours in phase order, so
71
+ * the answer is deterministic), as file indices `[from, …, to]`, or `null` if `to` is unreachable.
72
+ */
73
+ function shortestIncludePath(files, index, from, to) {
74
+ if (from === to)
75
+ return [from];
76
+ const parent = new Map([[from, from]]);
77
+ const queue = [from];
78
+ while (queue.length > 0) {
79
+ const current = queue.shift();
80
+ for (const next of includeEdges(files, index, current)) {
81
+ if (parent.has(next))
82
+ continue;
83
+ parent.set(next, current);
84
+ if (next === to) {
85
+ const path = [to];
86
+ let step = current;
87
+ while (step !== from) {
88
+ path.unshift(step);
89
+ step = parent.get(step);
90
+ }
91
+ path.unshift(from);
92
+ return path;
93
+ }
94
+ queue.push(next);
95
+ }
96
+ }
97
+ return null;
98
+ }
99
+ /** `E_WORKFLOW_ELEMENT_MISMATCH`'s message, or `null` when the include binds the element legally. */
100
+ function elementMismatch(including, phase, included) {
101
+ const element = included.element;
102
+ const over = phase.iterate_over;
103
+ if (element === undefined)
104
+ return null;
105
+ // An `element:` collection keeps the enclosing bound element (task-230): the iterated workflow may declare
106
+ // the including workflow's own type, so that it can include a sub bound to it. An including workflow with no
107
+ // element is the core check's `E_WORKFLOW_COLLECTION_UNRESOLVED`, not a mismatch.
108
+ if (over !== undefined && over.startsWith(ELEMENT_COLLECTION)) {
109
+ if (including.element === undefined || element === including.element)
110
+ return null;
111
+ return `workflow '${included.name}' declares element '${element}', but collection '${over}' is read from workflow '${including.name}''s element '${including.element}'`;
112
+ }
113
+ if (over !== undefined && COLLECTION_REF_RE.test(over)) {
114
+ return `workflow '${included.name}' declares element '${element}' and cannot be iterated over collection '${over}'`;
115
+ }
116
+ if (over !== undefined) {
117
+ return over === element ? null : `workflow '${included.name}' declares element '${element}', but this phase iterates over '${over}'`;
118
+ }
119
+ if (including.element === element)
120
+ return null;
121
+ return `workflow '${included.name}' declares element '${element}', but this phase neither iterates over '${element}' nor runs in a workflow bound to '${element}'`;
122
+ }
123
+ // ---- task-185: executor attributes (spec-003 § "Execution independence") ---------------------------
124
+ /**
125
+ * The executor rows of spec-003 § "Diagnostics" for one phase, in table order:
126
+ * `E_PHASE_DISTINCT_FROM_UNKNOWN` and `E_PHASE_DISTINCT_FROM_SELF` (`dl-134` §4),
127
+ * `E_PHASE_MODE_NOT_INDEPENDENT` (`dl-135` point 3) and `E_PHASE_EXECUTOR_WITHOUT_ROLE` (spec-003
128
+ * open question 4). Every rule reads the raw declaration: the schema gives `mode` no default, so an
129
+ * absent `mode` is never a declared one. Validation only — no v0.3 command enforces `distinct_from`
130
+ * at run time (P4.12, v1.0).
131
+ */
132
+ function executorDiagnostics(file, phase, p, phaseNames) {
133
+ const out = [];
134
+ const at = (field) => `phases[${p}].${field}`;
135
+ const distinct = phase.distinct_from ?? [];
136
+ distinct.forEach((target, k) => {
137
+ if (!phaseNames.has(target)) {
138
+ out.push(error(file, at(`distinct_from[${k}]`), 'E_PHASE_DISTINCT_FROM_UNKNOWN', `distinct_from phase '${target}' not found in workflow`));
139
+ }
140
+ });
141
+ distinct.forEach((target, k) => {
142
+ if (target === phase.name) {
143
+ out.push(error(file, at(`distinct_from[${k}]`), 'E_PHASE_DISTINCT_FROM_SELF', `phase '${phase.name}' names itself in distinct_from`));
144
+ }
145
+ });
146
+ if (phase.role !== undefined && schema_1.INDEPENDENT_ROLES.includes(phase.role) && phase.mode !== undefined && phase.mode !== 'fresh') {
147
+ out.push(error(file, at('mode'), 'E_PHASE_MODE_NOT_INDEPENDENT', `phase '${phase.name}' has role '${phase.role}' and must run fresh (mode '${phase.mode}' is not allowed)`));
148
+ }
149
+ if (phase.role === undefined) {
150
+ for (const field of ['mode', 'distinct_from']) {
151
+ if (phase[field] === undefined)
152
+ continue;
153
+ out.push(error(file, at(field), 'E_PHASE_EXECUTOR_WITHOUT_ROLE', `phase '${phase.name}' declares ${field} but has no role (it has no executor)`));
154
+ }
155
+ }
156
+ return out;
157
+ }
158
+ // ---- end task-185 -----------------------------------------------------------------------------------
159
+ /**
160
+ * Every loader diagnostic of file `i` (spec-003 § "Diagnostics"), in spec-003's order. A file that
161
+ * failed its structural pass contributes nothing here — its structural diagnostics are the loader's.
162
+ */
163
+ function workflowFileDiagnostics(files, index, i, bindings = exports.NO_BINDINGS_FILE) {
164
+ const { file, workflow } = files[i];
165
+ if (!workflow)
166
+ return [];
167
+ const out = [];
168
+ const name = workflow.name;
169
+ // Workflow level, table order.
170
+ if (!schema_1.WORKFLOW_NAME_RE.test(name)) {
171
+ out.push(error(file, 'name', 'E_WORKFLOW_NAME_INVALID', `invalid workflow name '${name}' (allowed: [a-z][a-z0-9-]*)`));
172
+ }
173
+ const first = index.byName.get(name);
174
+ if (first !== undefined && first !== i) {
175
+ out.push(error(file, 'name', 'E_WORKFLOW_DUPLICATE_NAME', `duplicate workflow name '${name}' (already declared in ${files[first].file})`));
176
+ }
177
+ const declaresBoolean = workflow.startable !== undefined || workflow.includable !== undefined;
178
+ if (workflow.kind !== undefined && declaresBoolean) {
179
+ out.push(error(file, 'kind', 'E_WORKFLOW_KIND_CONFLICT', `workflow '${name}' declares kind together with startable/includable (declare one or the other)`));
180
+ }
181
+ else if (workflow.kind === undefined && workflow.startable !== true && workflow.includable !== true) {
182
+ out.push(error(file, 'startable', 'E_WORKFLOW_NEITHER_STARTABLE_NOR_INCLUDABLE', `workflow '${name}' is neither startable nor includable (set startable: true or includable: true)`));
183
+ }
184
+ // Phase level: phases in declared order, rows in table order.
185
+ const phaseNames = new Set(workflow.phases.map((phase) => phase.name));
186
+ const seen = new Set();
187
+ workflow.phases.forEach((phase, p) => {
188
+ const at = (field) => `phases[${p}].${field}`;
189
+ if (!schema_1.WORKFLOW_NAME_RE.test(phase.name)) {
190
+ out.push(error(file, at('name'), 'E_PHASE_NAME_INVALID', `invalid phase name '${phase.name}' (allowed: [a-z][a-z0-9-]*)`));
191
+ }
192
+ if (schema_1.RESERVED_PHASE_NAMES.includes(phase.name)) {
193
+ out.push(error(file, at('name'), 'E_PHASE_NAME_RESERVED', `phase name '${phase.name}' is reserved (a run without a step)`));
194
+ }
195
+ if (seen.has(phase.name)) {
196
+ out.push(error(file, at('name'), 'E_PHASE_DUPLICATE_NAME', `duplicate phase name '${phase.name}' in workflow '${name}'`));
197
+ }
198
+ seen.add(phase.name);
199
+ if (phase.include !== undefined) {
200
+ const target = index.byName.get(phase.include);
201
+ if (target === undefined) {
202
+ if (index.namesComplete) {
203
+ const hint = looksLikePath(phase.include) ? ' (a phase include is a workflow name, not a file path)' : '';
204
+ out.push(error(file, at('include'), 'E_WORKFLOW_INCLUDE_UNRESOLVED', `include '${phase.include}' names no loaded workflow${hint}`));
205
+ }
206
+ }
207
+ else {
208
+ const included = files[target].workflow;
209
+ if (included) {
210
+ if (!(0, schema_1.workflowFacts)(included).includable) {
211
+ out.push(error(file, at('include'), 'E_WORKFLOW_NOT_INCLUDABLE', `workflow '${included.name}' is not includable`));
212
+ }
213
+ const mismatch = elementMismatch(workflow, phase, included);
214
+ if (mismatch !== null)
215
+ out.push(error(file, at('include'), 'E_WORKFLOW_ELEMENT_MISMATCH', mismatch));
216
+ // A cycle is reported once, at the phase of its lowest-indexed member that closes it.
217
+ const cycle = shortestIncludePath(files, index, target, i);
218
+ if (cycle !== null && cycle.every((member) => member >= i)) {
219
+ const names = [i, ...cycle].map((member) => files[member].workflow.name);
220
+ out.push(error(file, at('include'), 'E_WORKFLOW_INCLUDE_CYCLE', `include cycle: ${names.join(' -> ')}`));
221
+ }
222
+ }
223
+ }
224
+ }
225
+ if (phase.fallback !== undefined && !phaseNames.has(phase.fallback.step)) {
226
+ out.push(error(file, at('fallback.step'), 'E_PHASE_FALLBACK_STEP_UNKNOWN', `fallback step '${phase.fallback.step}' not found in workflow`));
227
+ }
228
+ out.push(...executorDiagnostics(file, phase, p, phaseNames));
229
+ out.push(...phaseEvidenceDiagnostics(file, workflow, p, bindings));
230
+ });
231
+ return out;
232
+ }
233
+ /**
234
+ * `E_NO_MAIN_WORKFLOW` (spec-003 Layer 1; `dl-109` Action 1): a present manifest whose loaded files
235
+ * hold no startable workflow. Not decided while some file is missing or unreadable (see
236
+ * {@link WorkflowRegistryIndex.namesComplete}) or failed its structural pass.
237
+ */
238
+ function noStartableDiagnostic(files, index) {
239
+ if (!index.namesComplete || files.some((loaded) => loaded.workflow === null))
240
+ return null;
241
+ if (files.some((loaded) => (0, schema_1.workflowFacts)(loaded.workflow).startable))
242
+ return null;
243
+ return error('workflows.yaml', 'include', 'E_NO_MAIN_WORKFLOW', 'no startable workflow: at least one included workflow must be startable (startable: true or kind: main)');
244
+ }
245
+ /** An absent `bindings.yaml`: no bindings, and that is known (spec-003 Layer 3: "Optional"). */
246
+ exports.NO_BINDINGS_FILE = { bindings: null, decided: true };
247
+ /** An untyped Memory action: it acts on the workflow's element, a phase's selection, or what the phase added. */
248
+ const UNTYPED_MEMORY_ACTION_RE = /^(memory\.(submit|approve|reject|deprecate)|element\.[a-z_]+)$/;
249
+ /** A bare `{<field>}` token — `{id}`, `{version}` — owned by whichever element the reader assumes. */
250
+ const BARE_TOKEN_RE = /\{[^{}.]+\}/;
251
+ /**
252
+ * The index of a **self-creating** workflow's creating phase (spec-003 Layer 2 `element`): a
253
+ * startable workflow with no `element` whose phases `memory.add` — the phase holding the first such
254
+ * action. `-1` for every other workflow.
255
+ */
256
+ function creatingPhaseIndex(workflow) {
257
+ if (workflow.element !== undefined || !(0, schema_1.workflowFacts)(workflow).startable)
258
+ return -1;
259
+ return workflow.phases.findIndex((phase) => (phase.actions ?? []).some((action) => (0, bindings_1.tokenName)(action) === 'memory.add'));
260
+ }
261
+ /**
262
+ * Whether the string `produces` entry `entry` of phase `p` has an **implicit owner** (`dl-104` D3,
263
+ * `W_PHASE_PRODUCES_OWNER_IMPLICIT`): a bare `{<field>}` token in a phase that also `memory.add`s,
264
+ * other than a self-creating workflow's creating phase. The loader warns on it; state deduction
265
+ * (task-198, `spec-017` §4.3) shows it and does not count it as evidence — one rule for both.
266
+ */
267
+ function isImplicitOwnerProduces(workflow, p, entry) {
268
+ const adds = (workflow.phases[p]?.actions ?? []).some((action) => (0, bindings_1.tokenName)(action) === 'memory.add');
269
+ return adds && p !== creatingPhaseIndex(workflow) && BARE_TOKEN_RE.test(entry);
270
+ }
271
+ /**
272
+ * The evidence and binding rows of one phase (spec-003 § "Diagnostics"), in table order:
273
+ * `E_PHASE_PRODUCES_NOT_A_PATH`, `E_PHASE_PRODUCES_OWNER_NOT_CREATED`, `E_PHASE_SELECTION_UNTYPED`,
274
+ * then the warnings `W_WORKFLOW_UNBOUND_TOKEN`, `W_PHASE_PRODUCES_OWNER_IMPLICIT`,
275
+ * `W_PHASE_ACTION_UNTARGETED`.
276
+ */
277
+ function phaseEvidenceDiagnostics(file, workflow, p, bindings) {
278
+ const phase = workflow.phases[p];
279
+ const at = (field) => `phases[${p}].${field}`;
280
+ const out = [];
281
+ const actions = phase.actions ?? [];
282
+ const produces = phase.produces ?? [];
283
+ const added = new Set(actions.map(bindings_1.memoryAddType).filter((type) => type !== null));
284
+ const adds = actions.some((action) => (0, bindings_1.tokenName)(action) === 'memory.add');
285
+ produces.forEach((entry, k) => {
286
+ const path = (0, schema_1.producesPath)(entry);
287
+ if (!schema_1.PATH_PATTERN_RE.test(path)) {
288
+ const where = typeof entry === 'string' ? at(`produces[${k}]`) : at(`produces[${k}].path`);
289
+ out.push(error(file, where, 'E_PHASE_PRODUCES_NOT_A_PATH', `produces '${path}' is not a path pattern (allowed: [A-Za-z0-9._/{}-], no whitespace)`));
290
+ }
291
+ });
292
+ produces.forEach((entry, k) => {
293
+ if (typeof entry !== 'string' && !added.has(entry.type)) {
294
+ out.push(error(file, at(`produces[${k}].type`), 'E_PHASE_PRODUCES_OWNER_NOT_CREATED', `produces owner '${entry.type}' is not a type this phase creates (no memory.add(type: ${entry.type}))`));
295
+ }
296
+ });
297
+ const selection = phase.where !== undefined && phase.iterate_over === undefined;
298
+ if (selection && !Object.prototype.hasOwnProperty.call(phase.where, 'type')) {
299
+ out.push(error(file, at('where'), 'E_PHASE_SELECTION_UNTYPED', 'a selection (where without iterate_over) names the type(s) it selects with a type key'));
300
+ }
301
+ if (bindings.decided) {
302
+ const unbound = (token, where, role) => {
303
+ if ((0, bindings_1.resolveToken)(token, role, bindings.bindings).kind !== 'unbound')
304
+ return;
305
+ out.push(warning(file, where, 'W_WORKFLOW_UNBOUND_TOKEN', `${role} token '${(0, bindings_1.tokenName)(token)}' has no built-in or bindings.yaml binding`));
306
+ };
307
+ actions.forEach((action, a) => unbound(action, at(`actions[${a}]`), 'action'));
308
+ (phase.checks?.pre ?? []).forEach((check, c) => unbound(check, at(`checks.pre[${c}]`), 'check'));
309
+ (phase.checks?.post ?? []).forEach((check, c) => unbound(check, at(`checks.post[${c}]`), 'check'));
310
+ if (phase.awaits !== undefined)
311
+ unbound(phase.awaits.evidence, at('awaits.evidence'), 'check');
312
+ }
313
+ const creating = creatingPhaseIndex(workflow);
314
+ if (adds && p !== creating) {
315
+ produces.forEach((entry, k) => {
316
+ if (typeof entry === 'string' && isImplicitOwnerProduces(workflow, p, entry)) {
317
+ out.push(warning(file, at(`produces[${k}]`), 'W_PHASE_PRODUCES_OWNER_IMPLICIT', `produces '${entry}' in a phase that memory.adds: name its owner as { type, path } (dl-104 D3)`));
318
+ }
319
+ });
320
+ }
321
+ const bindsElement = workflow.element !== undefined || (creating !== -1 && p > creating);
322
+ if (!bindsElement && !selection) {
323
+ let addedBefore = false;
324
+ actions.forEach((action, a) => {
325
+ const name = (0, bindings_1.tokenName)(action);
326
+ if (UNTYPED_MEMORY_ACTION_RE.test(name) && !addedBefore) {
327
+ out.push(warning(file, at(`actions[${a}]`), 'W_PHASE_ACTION_UNTARGETED', `action '${name}' has no element to act on (the workflow binds none, no memory.add precedes it, no selection)`));
328
+ }
329
+ if (name === 'memory.add')
330
+ addedBefore = true;
331
+ });
332
+ }
333
+ return out;
334
+ }
335
+ /** A `run` vector's diagnostics path: `checks.<token>.run[<i>]`. */
336
+ function runPath(section, token, i) {
337
+ return `${section}.${token}.run[${i}]`;
338
+ }
339
+ /**
340
+ * The loader rows of `workflows/bindings.yaml` (spec-003 Layer 3), on a structurally valid file:
341
+ * sections in a fixed order (`checks`, then `actions`, then `collections`), entries in declared order,
342
+ * and per entry the table's rows in table order — `E_BINDING_PARTIAL_INTERPOLATION` (per `run`
343
+ * element), `E_BINDING_BUILTIN_TOKEN`, `E_BINDING_AGENT_CHECK`; then `E_BINDING_COLLECTION_KEY` per
344
+ * collection entry (approver ruling D1 (a)).
345
+ */
346
+ function bindingsFileDiagnostics(bindings) {
347
+ const out = [];
348
+ const sections = [
349
+ ['checks', bindings.checks ?? {}],
350
+ ['actions', bindings.actions ?? {}],
351
+ ];
352
+ for (const [section, entries] of sections) {
353
+ for (const [token, binding] of Object.entries(entries)) {
354
+ (binding.run ?? []).forEach((element, i) => {
355
+ if (!(0, bindings_1.isWholeInterpolation)(element)) {
356
+ out.push(error(bindings_1.BINDINGS_FILE, runPath(section, token, i), 'E_BINDING_PARTIAL_INTERPOLATION', `'${element}' interpolates part of an argument: a placeholder must be a whole run element`));
357
+ }
358
+ });
359
+ if ((0, bindings_1.isBuiltinToken)(token)) {
360
+ out.push(error(bindings_1.BINDINGS_FILE, `${section}.${token}`, 'E_BINDING_BUILTIN_TOKEN', `'${token}' is a built-in token and may not be rebound`));
361
+ }
362
+ if (section === 'checks' && (0, bindings_1.runsAgentExecute)(binding.run ?? [])) {
363
+ out.push(error(bindings_1.BINDINGS_FILE, `${section}.${token}.run`, 'E_BINDING_AGENT_CHECK', `check '${token}' is bound to wingfoil agent execute: a check an agent asserts about its own work is not a gate`));
364
+ }
365
+ }
366
+ }
367
+ for (const [name, entries] of Object.entries(bindings.collections ?? {})) {
368
+ for (const issue of (0, bindings_1.collectionKeyIssues)(entries)) {
369
+ out.push(error(bindings_1.BINDINGS_FILE, `collections.${name}[${issue.index}]`, 'E_BINDING_COLLECTION_KEY', issue.message));
370
+ }
371
+ }
372
+ return out;
373
+ }
374
+ // --- end task-175 ---
375
+ //# sourceMappingURL=workflow-diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-diagnostics.js","sourceRoot":"","sources":["../../src/core/workflow-diagnostics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * The exit-state computation of `spec-017` §4.4 (task-194): a phase's exit state for the element a
3
+ * workflow is bound to, computed **statically** by applying the phase's state-changing actions, in
4
+ * order, along the element's machine (`spec-001`), from the state the previous phase leaves it in.
5
+ * The same computation, applied from a type's first state at a `memory.add`, gives the state the
6
+ * elements a phase **creates** are left in (§4.3 `created`).
7
+ *
8
+ * Pure: it reads the workflow and `memory.yaml` it is handed and nothing else — no filesystem, no git,
9
+ * no clock (REQ-SYS-07). The core checks (`./workflow-core-checks.ts`) run it at load time for
10
+ * `W_PHASE_EXIT_STATE_UNDETERMINED`, `W_PHASE_FALLBACK_STATE_MISMATCH` and
11
+ * `W_PHASE_FALLBACK_NOT_REENTRANT`; state deduction (task-198) reuses it for `state` and `created`
12
+ * evidence.
13
+ *
14
+ * What an action targets is `spec-017` §4.2's table:
15
+ * - `memory.add(type: T)` creates an element of `T` in `T`'s first state; in a self-creating
16
+ * workflow's creating phase the first one created **is** the bound element (§3.4);
17
+ * - the untyped `memory.submit|approve|reject|deprecate` and `element.set_state(s)` act on the element
18
+ * the latest `memory.add` of the phase created; before any `memory.add`, on the phase's selection
19
+ * (which this function does not move: a selection's elements have no single state) or else on the
20
+ * bound element;
21
+ * - `<T>.set_state(s)` acts on the bound element when `T` is its type, otherwise on the elements of
22
+ * `T` an earlier phase of the same workflow pass created (its **run** elements), otherwise on the
23
+ * phase's selection when it selects `T` (not moved either; it holds each selected gate state whose
24
+ * approve target is `s`, §5.1), otherwise on nothing;
25
+ * - every other token (`<T>.sync_state`, `element.set_release`, `agent.*`, `git.*`, …) changes no
26
+ * state.
27
+ *
28
+ * The verbs: `memory.submit|approve|reject|deprecate` take the edge `resolveTransitionTarget`
29
+ * (`src/memory/state-machine.ts`) gives — the one engine every Memory verb uses, so a phase is never
30
+ * judged by a rule the CLI does not apply. `set_state(s)` yields `s` (`spec-003`'s verb rule), when `s`
31
+ * is a state of the type and lies **after** the current state in its `sequence`: a workflow action
32
+ * moves an element forward along its machine, and only a reject (or `memory park`) moves it back.
33
+ */
34
+ import type { MemoryYaml } from '../memory/schema';
35
+ import type { StateMachine } from '../memory/schema';
36
+ import { type Workflow } from '../workflow/schema';
37
+ /** Where the computation starts: the bound element's type and state when the first phase begins. */
38
+ export interface ExitStart {
39
+ /** The Memory type the workflow is bound to, or `null` when it is bound to none (yet). */
40
+ readonly boundType: string | null;
41
+ /** The bound element's state at the first phase, or `null` when it is not known. */
42
+ readonly state: string | null;
43
+ /**
44
+ * `true` when the workflow runs as an **instance** (started on its own): a startable workflow that
45
+ * declares no `element` then binds the first element its creating phase adds (`spec-017` §3.4). An
46
+ * included workflow never self-binds.
47
+ */
48
+ readonly instance: boolean;
49
+ }
50
+ /** One element a phase created, or moved as a run element: its type, the creating action, its state. */
51
+ export interface InstanceState {
52
+ /** The element's Memory type. */
53
+ readonly type: string;
54
+ /** The index, in the **creating** phase's `actions`, of the `memory.add` that created it. */
55
+ readonly action: number;
56
+ /** The state the phase leaves it in, or `null` when it cannot be computed. */
57
+ readonly state: string | null;
58
+ }
59
+ /** A gate state a phase holds an element in (`spec-017` §5.1): approving or rejecting it is the phase's decision. */
60
+ export interface HeldGate {
61
+ /** The element's Memory type. */
62
+ readonly type: string;
63
+ /** The `gates` state the element sits in while the phase awaits its decision. */
64
+ readonly gate: string;
65
+ /** The state `memory.yaml` sends the element to on a reject from that gate. */
66
+ readonly reject: string;
67
+ }
68
+ /** The first state-changing action of a phase that its machine cannot apply (`W_PHASE_EXIT_STATE_UNDETERMINED`). */
69
+ export interface UndeterminedAction {
70
+ /** The action's index in the phase's `actions`. */
71
+ readonly action: number;
72
+ /** The type of the element it acts on. */
73
+ readonly type: string;
74
+ /** The state the action starts from, or `null` when that state is itself unknown. */
75
+ readonly from: string | null;
76
+ /** Why it cannot be applied: the state engine's refusal, or the `set_state` rule's. */
77
+ readonly reason: string;
78
+ }
79
+ /** The exit-state computation's result for one phase. */
80
+ export interface PhaseExitState {
81
+ /** The phase's name. */
82
+ readonly phase: string;
83
+ /** The type the workflow is bound to while the phase runs (`null`: none yet). */
84
+ readonly boundType: string | null;
85
+ /** The bound element's state when the phase starts, or `null` (unknown, or no bound element). */
86
+ readonly entry: string | null;
87
+ /** The bound element's state when the phase ends — its **exit state** — or `null` (unknown, or none). */
88
+ readonly exit: string | null;
89
+ /** The first action the machine cannot apply, or `null`. */
90
+ readonly undetermined: UndeterminedAction | null;
91
+ /** The elements the phase creates, in action order, with the state the phase leaves each in. */
92
+ readonly created: readonly InstanceState[];
93
+ /** The elements an earlier phase of this pass created that a `<T>.set_state` here moves, after the move. */
94
+ readonly run: readonly InstanceState[];
95
+ /** The gate states the phase holds an element in, in action order, each listed once. */
96
+ readonly held: readonly HeldGate[];
97
+ /**
98
+ * The bound element's state just before each of the phase's actions, index-aligned with `actions`
99
+ * (`null`: unknown, or no bound element); empty for an `include` phase. `workflow next` reads the
100
+ * `<from>` of a `set_state`'s expected commit subject here (task-216, `spec-017` §6.1).
101
+ */
102
+ readonly actionStates: readonly (string | null)[];
103
+ }
104
+ /** Every state an element of a type can be in: its `sequence`, its reject and return targets, and `deprecated`. */
105
+ export declare function machineStates(machine: StateMachine): ReadonlySet<string>;
106
+ /**
107
+ * The state an element enters a workflow run under `iterate_over` in (`spec-017` §4.4): the
108
+ * lowest-`sequence` value of the governing `where.status`, otherwise the type's first state. `null`
109
+ * when `memory.yaml` does not register `type`.
110
+ */
111
+ export declare function iterationStartState(memoryYaml: MemoryYaml, type: string, where: Readonly<Record<string, unknown>> | undefined): string | null;
112
+ /**
113
+ * The exit states of every phase of `workflow` (`spec-017` §4.4), in declared order.
114
+ *
115
+ * A plain `include:` phase runs the included workflow on the same element (§4.5) — found by name in
116
+ * `workflows` — and leaves the element in the state the included workflow's last phase leaves it in.
117
+ * An `iterate_over` phase runs its sub on other elements: the bound element's state is unchanged.
118
+ *
119
+ * @param workflow - The workflow whose phases are computed.
120
+ * @param memoryYaml - The `memory.yaml` the machines come from.
121
+ * @param start - The bound element's type and state at the first phase.
122
+ * @param workflows - The registry, by name, a plain `include:` is resolved in (default: none).
123
+ */
124
+ export declare function workflowExitStates(workflow: Workflow, memoryYaml: MemoryYaml, start: ExitStart, workflows?: ReadonlyMap<string, Workflow>): PhaseExitState[];
125
+ //# sourceMappingURL=workflow-exit-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-exit-state.d.ts","sourceRoot":"","sources":["../../src/core/workflow-exit-state.ts"],"names":[],"mappings":"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"}