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,249 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BindingsYaml = exports.ActionBinding = exports.CheckBinding = exports.BINDINGS_FILE = void 0;
4
+ exports.collectionEntryKey = collectionEntryKey;
5
+ exports.collectionKeyIssues = collectionKeyIssues;
6
+ exports.tokenName = tokenName;
7
+ exports.memoryAddType = memoryAddType;
8
+ exports.typedStateType = typedStateType;
9
+ exports.isBuiltinToken = isBuiltinToken;
10
+ exports.resolveToken = resolveToken;
11
+ exports.isWholeInterpolation = isWholeInterpolation;
12
+ exports.runsAgentExecute = runsAgentExecute;
13
+ /**
14
+ * Layer 3 — the token-binding file `.wingfoil/workflows/bindings.yaml` (spec-003-workflows-yaml-schema
15
+ * § "Layer 3", `dl-090` Q1 (a), Q2 (c), Q3 (a), Q4, Q5 (c), Q6), and the **built-in** binding table
16
+ * (spec-003 § "Action expressions"). Every `actions:` and `checks:` token of a workflow resolves through
17
+ * one of the two: a token WingFoil implements itself is built in and may not be rebound; every other
18
+ * token is bound by the project here, or is unbound (`W_WORKFLOW_UNBOUND_TOKEN`, a warning in v0.3).
19
+ *
20
+ * Like `./schema.ts`, this module holds the **structural** (Zod) shape plus the pure readings the
21
+ * loader's checks and later commands share ({@link tokenName}, {@link isBuiltinToken},
22
+ * {@link resolveToken}, {@link isWholeInterpolation}, {@link runsAgentExecute}). The loader rows
23
+ * themselves are run by `src/core/loaders.ts` with `src/core/workflow-diagnostics.ts`
24
+ * (spec-009-validation-strategy §1). Every object node is `.passthrough()` per spec-009 §2, except
25
+ * where spec-003's shape is strict.
26
+ *
27
+ * Nothing here runs a binding: in v0.3 the loader validates and `workflow show` / `workflow next`
28
+ * display (spec-003 § "What v0.3 does with these fields"); the v1.0 engine executes (P4.10, P4.12).
29
+ */
30
+ const zod_1 = require("zod");
31
+ const format_1 = require("../validation/format");
32
+ const id_1 = require("../validation/id");
33
+ /** The bindings file, relative to `.wingfoil/` — the `file` of its diagnostics (spec-003 Layer 3). */
34
+ exports.BINDINGS_FILE = 'workflows/bindings.yaml';
35
+ /** spec-009's ID characters, anchored: what a collection entry's key must match (spec-003 § "Collections"). */
36
+ const ID_RE = new RegExp(`^[${id_1.ID_CHAR_CLASS}]+$`);
37
+ /** An argument vector: the first element is the program; never passed to a shell (`dl-090` Q3 (a)). */
38
+ const Argv = zod_1.z.array(zod_1.z.string()).min(1);
39
+ /** `args`: one declared pattern per interpolated placeholder; each must compile as a regular expression. */
40
+ const Args = zod_1.z.record(zod_1.z.string(), zod_1.z.string().superRefine((pattern, ctx) => {
41
+ try {
42
+ new RegExp(pattern);
43
+ }
44
+ catch (err) {
45
+ ctx.addIssue({ code: 'custom', message: `invalid argument pattern "${pattern}": ${err.message}` });
46
+ }
47
+ }));
48
+ /** A check token's binding: a command and a severity (`dl-090` Q4; default `reject`). */
49
+ exports.CheckBinding = zod_1.z
50
+ .object({
51
+ run: Argv,
52
+ severity: zod_1.z.enum(['warn', 'reject']).default('reject'),
53
+ args: Args.optional(),
54
+ })
55
+ .passthrough();
56
+ /** An action token's binding: exactly one of `run` (a command) or `manual: true` (`dl-090` Q2 (c)). */
57
+ exports.ActionBinding = zod_1.z
58
+ .object({
59
+ run: Argv.optional(),
60
+ manual: zod_1.z.literal(true).optional(),
61
+ args: Args.optional(),
62
+ })
63
+ .passthrough()
64
+ .superRefine((binding, ctx) => {
65
+ if ((binding.run === undefined) === (binding.manual === undefined)) {
66
+ ctx.addIssue({ code: 'custom', message: 'an action binding declares exactly one of run or manual' });
67
+ }
68
+ });
69
+ /** One collection entry: a scalar, or a map keyed by its `id` (else its `name`) field. */
70
+ const CollectionEntry = zod_1.z.union([zod_1.z.string(), zod_1.z.number(), zod_1.z.boolean(), zod_1.z.record(zod_1.z.string(), zod_1.z.unknown())]);
71
+ /**
72
+ * The key of one collection entry (spec-003 § "Collections"): the entry itself for a scalar, the
73
+ * entry's `id` field, else its `name` field, for a map. `null` when a map entry has neither as a
74
+ * scalar.
75
+ */
76
+ function collectionEntryKey(entry) {
77
+ if (typeof entry !== 'object' || entry === null)
78
+ return String(entry);
79
+ const key = entry['id'] ?? entry['name'];
80
+ return typeof key === 'string' || typeof key === 'number' ? String(key) : null;
81
+ }
82
+ /**
83
+ * A named collection: a list of entries, in declared order. Its key rules (a key per entry, unique,
84
+ * in spec-009's ID characters) are a loader row, not part of this structural pass
85
+ * ({@link collectionKeyIssues}; approver ruling D1 (a), 2026-10-05), so a bad key leaves the rest of
86
+ * the file decided.
87
+ */
88
+ const Collection = zod_1.z.array(CollectionEntry);
89
+ /**
90
+ * The key problems of one collection (spec-003 § "Collections"), in entry order: a map entry with no
91
+ * `id` / `name`, a key outside spec-009's ID characters, a key already used by an earlier entry.
92
+ */
93
+ function collectionKeyIssues(entries) {
94
+ const issues = [];
95
+ const seen = new Set();
96
+ entries.forEach((entry, index) => {
97
+ const key = collectionEntryKey(entry);
98
+ if (key === null) {
99
+ issues.push({ index, message: 'a collection entry map needs an id or name field' });
100
+ return;
101
+ }
102
+ if (!ID_RE.test(key))
103
+ issues.push({ index, message: `collection key '${key}' is outside the ID characters [${id_1.ID_CHAR_CLASS}]` });
104
+ if (seen.has(key))
105
+ issues.push({ index, message: `duplicate collection key '${key}'` });
106
+ seen.add(key);
107
+ });
108
+ return issues;
109
+ }
110
+ /**
111
+ * Layer 3 — `.wingfoil/workflows/bindings.yaml`. Optional: an absent file is no bindings. A `dl-149` file
112
+ * kind (`dl-153` (A)): `format` is optional (absent = 1), and a newer one is refused by the loader before
113
+ * this structural pass.
114
+ */
115
+ exports.BindingsYaml = zod_1.z
116
+ .object({
117
+ version: zod_1.z.number().positive().optional(),
118
+ format: (0, format_1.formatField)(format_1.BINDINGS_YAML_FORMAT),
119
+ checks: zod_1.z.record(zod_1.z.string(), exports.CheckBinding).optional(),
120
+ actions: zod_1.z.record(zod_1.z.string(), exports.ActionBinding).optional(),
121
+ collections: zod_1.z.record(zod_1.z.string(), Collection).optional(),
122
+ })
123
+ .passthrough();
124
+ /**
125
+ * The name of an action or check token: the text before its first `(` or `:`, trimmed
126
+ * (`memory.add(type: adr)` → `memory.add`; `tests.coverage(min: 80)` → `tests.coverage`;
127
+ * `frontmatter.required: [title]` → `frontmatter.required`). A prose check keeps its prose, which no
128
+ * binding key names, so it stays unbound.
129
+ */
130
+ function tokenName(token) {
131
+ const cut = token.search(/[(:]/);
132
+ return (cut === -1 ? token : token.slice(0, cut)).trim();
133
+ }
134
+ /** The `type:` argument of a `memory.add(...)` token, or `null` (`memory.add(type: tech-spec)` → `tech-spec`). */
135
+ function memoryAddType(token) {
136
+ if (tokenName(token) !== 'memory.add')
137
+ return null;
138
+ const match = /\btype\s*:\s*["']?([^"',)\s]+)/.exec(token);
139
+ return match ? match[1] : null;
140
+ }
141
+ const MEMORY_VERB_TOKENS = {
142
+ 'memory.add': 'add',
143
+ 'memory.submit': 'submit',
144
+ 'memory.approve': 'approve',
145
+ 'memory.reject': 'reject',
146
+ 'memory.deprecate': 'deprecate',
147
+ };
148
+ /** `<type>.set_state` / `<type>.sync_state` — `element` included, as the workflow's own element. */
149
+ const TYPED_STATE_RE = /^([a-z][a-z0-9-]*)\.(set_state|sync_state)$/;
150
+ /**
151
+ * The Memory type a typed state action names — the `T` of `<T>.set_state(…)` / `<T>.sync_state(…)` —
152
+ * or `null` for `element.set_state` / `element.sync_state` (the workflow's own element, not a type) and
153
+ * for any other token. The core check `E_WORKFLOW_ELEMENT_TYPE_UNKNOWN` (spec-003, `bug-282`) checks it
154
+ * against `memory.yaml`.
155
+ */
156
+ function typedStateType(token) {
157
+ const typed = TYPED_STATE_RE.exec(tokenName(token));
158
+ return typed && typed[1] !== 'element' ? typed[1] : null;
159
+ }
160
+ /**
161
+ * Whether `name` (a {@link tokenName}) is a **built-in** token (spec-003's built-in table):
162
+ * `memory.add|submit|approve|reject|deprecate`, `element.set_state`, `<type>.set_state`,
163
+ * `<type>.sync_state`, `element.set_release`, `config.init` and every `agent.*`. A project may not
164
+ * rebind one (`E_BINDING_BUILTIN_TOKEN`).
165
+ */
166
+ function isBuiltinToken(name) {
167
+ return (name in MEMORY_VERB_TOKENS ||
168
+ TYPED_STATE_RE.test(name) ||
169
+ name === 'element.set_release' ||
170
+ name === 'config.init' ||
171
+ name.startsWith('agent.'));
172
+ }
173
+ /** The built-in binding of an action token, or `null` when `name` is not built in. */
174
+ function builtinBinding(token, name) {
175
+ const verb = MEMORY_VERB_TOKENS[name];
176
+ if (verb !== undefined) {
177
+ const type = memoryAddType(token);
178
+ const argv = ['wingfoil', 'memory', verb, ...(verb === 'add' && type !== null ? ['--type', type] : [])];
179
+ return { kind: 'wingfoil', source: 'built-in', argv, expectedCommit: { type: verb === 'add' ? type : null, verbs: [verb] } };
180
+ }
181
+ const typed = TYPED_STATE_RE.exec(name);
182
+ if (typed) {
183
+ const type = typed[1] === 'element' ? null : typed[1];
184
+ const verbs = typed[2] === 'set_state' ? ['approve', 'finalize', 'start'] : ['sync'];
185
+ return { kind: 'manual', source: 'built-in', expectedCommit: { type, verbs } };
186
+ }
187
+ if (name === 'element.set_release')
188
+ return { kind: 'manual', source: 'built-in', expectedCommit: { type: null, verbs: ['assign'] } };
189
+ if (name === 'config.init')
190
+ return { kind: 'wingfoil', source: 'built-in', argv: ['wingfoil', 'init'] };
191
+ if (name.startsWith('agent.'))
192
+ return { kind: 'agent', source: 'built-in', argv: ['wingfoil', 'agent', 'execute'] };
193
+ return null;
194
+ }
195
+ /**
196
+ * Resolve one token to its binding (spec-003 § "Action expressions" built-in table, Layer 3): an
197
+ * action resolves through the built-in table first, then `bindings.actions`; a check only through
198
+ * `bindings.checks` (no check is built in, and none may be bound to an agent). An unresolved token is
199
+ * `{ kind: 'unbound', source: 'none' }`. Pure and total: the same inputs give the same answer.
200
+ *
201
+ * @param token - The token as written in `actions:` / `checks:` / `awaits.evidence`, arguments included.
202
+ * @param role - Whether the token is an action or a check.
203
+ * @param bindings - The validated `bindings.yaml`, or `null` when the project has none.
204
+ */
205
+ function resolveToken(token, role, bindings) {
206
+ const name = tokenName(token);
207
+ if (role === 'action') {
208
+ const builtin = builtinBinding(token, name);
209
+ if (builtin)
210
+ return builtin;
211
+ const bound = bindings?.actions?.[name];
212
+ if (bound)
213
+ return bound.manual === true ? { kind: 'manual', source: 'project' } : { kind: 'run', source: 'project', argv: bound.run };
214
+ }
215
+ else {
216
+ const bound = bindings?.checks?.[name];
217
+ if (bound)
218
+ return { kind: 'run', source: 'project', argv: bound.run, severity: bound.severity };
219
+ }
220
+ return { kind: 'unbound', source: 'none' };
221
+ }
222
+ /** A `{…}` placeholder anywhere in a string. */
223
+ const PLACEHOLDER_RE = /\{[^{}]*\}/;
224
+ /** A string that is one whole placeholder and nothing else. */
225
+ const WHOLE_PLACEHOLDER_RE = /^\{[^{}]+\}$/;
226
+ /** Whether one `run` element interpolates only as a whole element (`dl-090` Q3 (a)). */
227
+ function isWholeInterpolation(element) {
228
+ return !PLACEHOLDER_RE.test(element) || WHOLE_PLACEHOLDER_RE.test(element);
229
+ }
230
+ /** The basename of a program path (`/usr/bin/wingfoil` → `wingfoil`; `dist/cli.js` → `cli.js`). */
231
+ function basename(program) {
232
+ return program.slice(program.lastIndexOf('/') + 1);
233
+ }
234
+ /**
235
+ * Whether an argument vector runs `wingfoil agent execute` (`E_BINDING_AGENT_CHECK`, `dl-090` Q6): an
236
+ * `agent`, `execute` pair after a `wingfoil` program — called directly, through `npx`, or as the
237
+ * built `cli.js`.
238
+ */
239
+ function runsAgentExecute(run) {
240
+ const wingfoilAt = run.findIndex((element) => basename(element) === 'wingfoil' || basename(element) === 'cli.js');
241
+ if (wingfoilAt === -1)
242
+ return false;
243
+ for (let i = wingfoilAt + 1; i < run.length - 1; i += 1) {
244
+ if (run[i] === 'agent' && run[i + 1] === 'execute')
245
+ return true;
246
+ }
247
+ return false;
248
+ }
249
+ //# sourceMappingURL=bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../src/workflow/bindings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** What `workflow create` writes, after `--kind` has been read as the two booleans. */
2
+ export interface NewWorkflow {
3
+ readonly name: string;
4
+ readonly startable: boolean;
5
+ readonly includable: boolean;
6
+ readonly element?: string;
7
+ readonly description?: string;
8
+ }
9
+ /** The phase every created workflow starts with (`spec-017` §7.7). */
10
+ export declare const FIRST_PHASE_NAME = "step-1";
11
+ /** The text of `.wingfoil/workflows/custom/<name>.yaml` for `workflow`, keys in a fixed order. Pure. */
12
+ export declare function renderCustomWorkflow(workflow: NewWorkflow): string;
13
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/workflow/create.ts"],"names":[],"mappings":"AAaA,uFAAuF;AACvF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAWzC,wGAAwG;AACxG,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAQlE"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FIRST_PHASE_NAME = void 0;
4
+ exports.renderCustomWorkflow = renderCustomWorkflow;
5
+ /**
6
+ * The scaffold `wingfoil workflow create` writes (task-211, `spec-017` §7.7, P4.8). The Workflow pillar owns
7
+ * what a new workflow file *contains*; `src/core`'s `workflowCreate` composes it with the identity pre-flight,
8
+ * the uniqueness checks, the manifest edit and the commit. Pure (REQ-SYS-07): the same request always yields
9
+ * byte-identical text.
10
+ *
11
+ * The file is the smallest one `spec-003` Layer 2 accepts: `name`, the startable/includable declaration as the
12
+ * two booleans `dl-109` K1 (a) makes canonical (`--kind` maps onto them before this is called), the optional
13
+ * `description` and `element`, `version: 1.0`, and one phase `step-1` (Layer 2 requires one; it has no role, so
14
+ * it is a checkpoint until the author replaces it).
15
+ */
16
+ const schema_1 = require("./schema");
17
+ /** The phase every created workflow starts with (`spec-017` §7.7). */
18
+ exports.FIRST_PHASE_NAME = 'step-1';
19
+ /**
20
+ * A YAML scalar for `value`: plain when it is a name of `spec-003`'s class (nothing YAML could read otherwise),
21
+ * else double-quoted. JSON's string syntax is a subset of YAML's double-quoted scalar, so `JSON.stringify`
22
+ * escapes quotes, backslashes and control characters the way the YAML reader undoes them.
23
+ */
24
+ function scalar(value) {
25
+ return schema_1.WORKFLOW_NAME_RE.test(value) ? value : JSON.stringify(value);
26
+ }
27
+ /** The text of `.wingfoil/workflows/custom/<name>.yaml` for `workflow`, keys in a fixed order. Pure. */
28
+ function renderCustomWorkflow(workflow) {
29
+ const lines = [`name: ${workflow.name}`];
30
+ if (workflow.startable)
31
+ lines.push('startable: true');
32
+ if (workflow.includable)
33
+ lines.push('includable: true');
34
+ if (workflow.description !== undefined)
35
+ lines.push(`description: ${JSON.stringify(workflow.description)}`);
36
+ if (workflow.element !== undefined)
37
+ lines.push(`element: ${scalar(workflow.element)}`);
38
+ lines.push('version: 1.0', 'phases:', ` - name: ${exports.FIRST_PHASE_NAME}`);
39
+ return `${lines.join('\n')}\n`;
40
+ }
41
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/workflow/create.ts"],"names":[],"mappings":";;;AAmCA,oDAQC;AA3CD;;;;;;;;;;GAUG;AACH,qCAA4C;AAW5C,sEAAsE;AACzD,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAEzC;;;;GAIG;AACH,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,yBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,wGAAwG;AACxG,SAAgB,oBAAoB,CAAC,QAAqB;IACxD,MAAM,KAAK,GAAG,CAAC,SAAS,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,IAAI,QAAQ,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACxD,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC3G,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvF,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,aAAa,wBAAgB,EAAE,CAAC,CAAC;IACvE,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACjC,CAAC"}