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
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/core/context.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,21 @@
1
1
  import type { CoreError, CoreResult } from './types';
2
+ /**
3
+ * The `CONFLICT` reason when `setRoleAssignmentsInText` cannot edit `roles.yaml` in place and the
4
+ * caller did not pass `force` (task-169, `dl-062` Q1 option 3). Pinned in `spec-008` §6.
5
+ */
6
+ export declare function rolesRewriteConflict(role: string): string;
7
+ /**
8
+ * The warning a `force`d whole-file rewrite of an existing `roles.yaml` carries on its success
9
+ * (task-169, `dl-062` Q1 option 3: "the stderr warning enumerating the normalizations"). Pinned in
10
+ * `spec-008` §6. It names what a `js-yaml` `dump` of the parsed file does not keep, which `dl-062`'s
11
+ * Context measured: comments, explicit quoting, the blank lines, CRLF line endings, and the
12
+ * `version: 1.0` → `1` number formatting, plus flow style (the dump writes block style). It does not
13
+ * name key order, which the dump keeps, and it says comments "are not kept" rather than "were
14
+ * dropped", which would be false of a file that had none (task-169 review).
15
+ */
16
+ export declare const ROLES_REWRITE_WARNING: string;
17
+ /** {@link ROLES_REWRITE_WARNING} as a `--dry-run` words it: the rewrite is planned, not done (task-210 review). */
18
+ export declare const ROLES_REWRITE_PLANNED_WARNING: string;
2
19
  /** The outcome of {@link updateRoleAssignments}: the role's list as it stands afterwards. */
3
20
  export interface RoleAssignmentUpdate {
4
21
  /** `assignments.<role>` after the update (unchanged when nothing needed writing). */
@@ -75,9 +92,12 @@ export declare function checkAssignable(root: string, role: string, ids: readonl
75
92
  * `cannot remove '<id>': still assigned to every role via roles.yaml 'global'`. Recorded in
76
93
  * `task-052-directive-remove`'s Execution Notes and raised for ratification, not assumed settled.
77
94
  *
78
- * A directive referenced from a *workflow* step is deliberately not checked: `src/workflow/schema.ts`
79
- * has no field that can reference a directive, so P3.3's "or workflow step" precondition is vacuous
80
- * today, and P4.9's workflow half of clause (b) has no owner in v0.2 per `dl-030`.
95
+ * A directive referenced from a *workflow* step is deliberately not checked: under `dl-066` option 1 a
96
+ * phase reaches directives only through its `role` (`spec-003` `Phase.role`; `src/workflow/schema.ts`
97
+ * has no field that names a directive), so the `roles.yaml` bindings above are the whole referrer source
98
+ * and P3.3 no longer says "or workflow step". The workflow half of clause (b) — a workflow still included
99
+ * by another, or with an open instance — is `wingfoil workflow remove`'s (`workflowRemove`,
100
+ * `./workflow-create-remove.ts`, task-211, `dl-030`); it checks no directive either.
81
101
  *
82
102
  * **The bindings are read from the `roles.yaml` committed at `HEAD`**, never from the working tree
83
103
  * (task-096, `bug-086-directive-inventory-read-from-the-worktree`, `dl-080` option (B)). This
@@ -111,8 +131,10 @@ export declare function checkUnreferenced(root: string, id: string): CoreError |
111
131
  * deterministic `dump` — there is nothing to preserve.
112
132
  * - An unchanged list is an idempotent success: nothing is written and no commit is made.
113
133
  * - The edit goes through `setRoleAssignmentsInText`, keeping every comment and unrelated line. When it
114
- * cannot apply, a whole-file `dump` is used only if the file contains no `#` at all; otherwise the
115
- * result is `CONFLICT` and the file is left untouched.
134
+ * cannot apply, the result is `CONFLICT` ({@link rolesRewriteConflict}) and the file is left
135
+ * untouched, unless `options.force` authorizes the whole-file `dump`; that success then carries
136
+ * {@link ROLES_REWRITE_WARNING} (`dl-062` Q1 option 3, task-169). `force` authorizes the rewrite,
137
+ * it does not demand it: an edit the in-place editor can make is still made in place, unwarned.
116
138
  * - No second schema pass on the output is needed: the in-place edit is only accepted when its
117
139
  * re-parse equals the validated input with `assignments.<role>` replaced by a string list
118
140
  * (`setRoleAssignmentsInText`'s self-check), and the whole-file `dump` serializes exactly that object.
@@ -124,8 +146,12 @@ export declare function checkUnreferenced(root: string, id: string): CoreError |
124
146
  * @param role - The role whose list is updated (already validated by the caller).
125
147
  * @param update - Pure function from the current list to the desired list.
126
148
  * @param message - The commit subject.
127
- * @returns The role's resulting list, with the commit when one was made.
149
+ * @param options - `force`: authorize the whole-file rewrite when the in-place edit cannot apply.
150
+ * @returns The role's resulting list, with the commit when one was made and the rewrite warning when
151
+ * `force` was used.
128
152
  * @throws whatever `git` raises inside `commitPaths`.
129
153
  */
130
- export declare function updateRoleAssignments(root: string, role: string, update: (current: readonly string[]) => readonly string[], message: string): CoreResult<RoleAssignmentUpdate>;
154
+ export declare function updateRoleAssignments(root: string, role: string, update: (current: readonly string[]) => readonly string[], message: string, options: {
155
+ readonly force: boolean;
156
+ }): CoreResult<RoleAssignmentUpdate>;
131
157
  //# sourceMappingURL=directive-assign.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directive-assign.d.ts","sourceRoot":"","sources":["../../src/core/directive-assign.ts"],"names":[],"mappings":"AA2EA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIrD,6FAA6F;AAC7F,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,SAAS,CAkDzG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CA8BjF;AAqBD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,EAAE,EACzD,OAAO,EAAE,MAAM,GACd,UAAU,CAAC,oBAAoB,CAAC,CA6ClC"}
1
+ {"version":3,"file":"directive-assign.d.ts","sourceRoot":"","sources":["../../src/core/directive-assign.ts"],"names":[],"mappings":"AA0EA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIrD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,QAEgC,CAAC;AAEnE,mHAAmH;AACnH,eAAO,MAAM,6BAA6B,QAA6F,CAAC;AAExI,6FAA6F;AAC7F,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,SAAS,CAkDzG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CA8BjF;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,SAAS,MAAM,EAAE,EACzD,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACnC,UAAU,CAAC,oBAAoB,CAAC,CAmDlC"}
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ROLES_REWRITE_PLANNED_WARNING = exports.ROLES_REWRITE_WARNING = void 0;
4
+ exports.rolesRewriteConflict = rolesRewriteConflict;
3
5
  exports.checkAssignable = checkAssignable;
4
6
  exports.checkUnreferenced = checkUnreferenced;
5
7
  exports.updateRoleAssignments = updateRoleAssignments;
@@ -42,16 +44,13 @@ exports.updateRoleAssignments = updateRoleAssignments;
42
44
  * binds, naming the referrer.
43
45
  * - {@link updateRoleAssignments} — the ONE read → edit → validate → write → commit path for
44
46
  * `.wingfoil/roles.yaml`. It edits through the comment-preserving `setRoleAssignmentsInText`
45
- * (`src/directives/roles-edit.ts`); only when that cannot apply does it consider a whole-file
46
- * `dump`, and then only for a file with no comment to lose — otherwise it fails closed (bug-019's
47
- * lesson: never a silent comment loss). **This `#`-gated split is what `dl-062` ratified away**
48
- * (Q1 option 3, `ready`, approve commit `4cd1876`): `undefined` is to mean `CONFLICT` regardless of
49
- * any `#`, with the whole-file rewrite reachable only behind an explicit `--force` and a stderr
50
- * warning naming what it normalizes. That is **not implemented here** — it needs a
51
- * success-warning channel this codebase does not have (`CoreResult`'s success arm carries `value`
52
- * and `commit` and nothing else) — and is scheduled to v0.3 as its own task. The code below is
53
- * therefore knowingly one step behind a ratified decision; read `dl-062`, not this paragraph, for
54
- * the intended contract.
47
+ * (`src/directives/roles-edit.ts`). When that cannot apply, the result is `CONFLICT` whether or not
48
+ * the file has a comment, and the whole-file `dump` runs only when the caller passes `force`
49
+ * (`wingfoil directive assign --force`), with a success warning naming what it normalizes. That is
50
+ * `dl-062` Q1 option 3 (`ready`, approve commit `4cd1876`), implemented by task-169; the refusal and
51
+ * the warning are pinned in `spec-008` §6. It replaced a `#`-gated split that rewrote a comment-free
52
+ * file silently at exit 0. A missing `roles.yaml` is still written whole without the flag: there is
53
+ * nothing to preserve.
55
54
  *
56
55
  * Lives in `src/core` (not `src/directives`) for the same reason `directives-list.ts` does: it
57
56
  * operates on `DirectiveFile` (`./loaders`) and returns `CoreResult`s, so a `src/directives` home
@@ -64,9 +63,31 @@ const roles_edit_1 = require("../directives/roles-edit");
64
63
  const schema_1 = require("../directives/schema");
65
64
  const storage_1 = require("../storage");
66
65
  const validation_1 = require("../validation");
66
+ const format_1 = require("../validation/format");
67
+ const confinement_1 = require("./confinement");
67
68
  const loaders_1 = require("./loaders");
68
69
  const types_1 = require("./types");
69
70
  const write_guard_1 = require("./write-guard");
71
+ /**
72
+ * The `CONFLICT` reason when `setRoleAssignmentsInText` cannot edit `roles.yaml` in place and the
73
+ * caller did not pass `force` (task-169, `dl-062` Q1 option 3). Pinned in `spec-008` §6.
74
+ */
75
+ function rolesRewriteConflict(role) {
76
+ return `roles.yaml cannot be updated in place; edit assignments.${role} by hand, or pass --force to rewrite the whole file`;
77
+ }
78
+ /**
79
+ * The warning a `force`d whole-file rewrite of an existing `roles.yaml` carries on its success
80
+ * (task-169, `dl-062` Q1 option 3: "the stderr warning enumerating the normalizations"). Pinned in
81
+ * `spec-008` §6. It names what a `js-yaml` `dump` of the parsed file does not keep, which `dl-062`'s
82
+ * Context measured: comments, explicit quoting, the blank lines, CRLF line endings, and the
83
+ * `version: 1.0` → `1` number formatting, plus flow style (the dump writes block style). It does not
84
+ * name key order, which the dump keeps, and it says comments "are not kept" rather than "were
85
+ * dropped", which would be false of a file that had none (task-169 review).
86
+ */
87
+ exports.ROLES_REWRITE_WARNING = 'roles.yaml was rewritten as a whole file (--force): comments are not kept, and neither are quoting, flow style, ' +
88
+ 'blank lines, line endings or number formatting (1.0 becomes 1)';
89
+ /** {@link ROLES_REWRITE_WARNING} as a `--dry-run` words it: the rewrite is planned, not done (task-210 review). */
90
+ exports.ROLES_REWRITE_PLANNED_WARNING = exports.ROLES_REWRITE_WARNING.replace('roles.yaml was rewritten', 'roles.yaml would be rewritten');
70
91
  /**
71
92
  * A second sentence for the unknown-role refusal, appended **only** when the *working tree's*
72
93
  * `dna.yaml` does define the role — the same diagnostic shape as `task-090`'s `workingTreeWouldGrant`
@@ -202,9 +223,12 @@ function checkAssignable(root, role, ids) {
202
223
  * `cannot remove '<id>': still assigned to every role via roles.yaml 'global'`. Recorded in
203
224
  * `task-052-directive-remove`'s Execution Notes and raised for ratification, not assumed settled.
204
225
  *
205
- * A directive referenced from a *workflow* step is deliberately not checked: `src/workflow/schema.ts`
206
- * has no field that can reference a directive, so P3.3's "or workflow step" precondition is vacuous
207
- * today, and P4.9's workflow half of clause (b) has no owner in v0.2 per `dl-030`.
226
+ * A directive referenced from a *workflow* step is deliberately not checked: under `dl-066` option 1 a
227
+ * phase reaches directives only through its `role` (`spec-003` `Phase.role`; `src/workflow/schema.ts`
228
+ * has no field that names a directive), so the `roles.yaml` bindings above are the whole referrer source
229
+ * and P3.3 no longer says "or workflow step". The workflow half of clause (b) — a workflow still included
230
+ * by another, or with an open instance — is `wingfoil workflow remove`'s (`workflowRemove`,
231
+ * `./workflow-create-remove.ts`, task-211, `dl-030`); it checks no directive either.
208
232
  *
209
233
  * **The bindings are read from the `roles.yaml` committed at `HEAD`**, never from the working tree
210
234
  * (task-096, `bug-086-directive-inventory-read-from-the-worktree`, `dl-080` option (B)). This
@@ -276,6 +300,10 @@ function parseRoles(text, filePath) {
276
300
  // (`src/validation/yaml.ts`).
277
301
  return validationError(error);
278
302
  }
303
+ // A `roles.yaml` from a newer WingFoil is never rewritten by this one (`dl-149`, task-251).
304
+ const newerFormat = (0, format_1.newerFormatIssue)(raw, format_1.ROLES_YAML_FORMAT, filePath);
305
+ if (newerFormat)
306
+ return validationError(new validation_1.ValidationError([newerFormat]));
279
307
  const parsed = schema_1.RolesYaml.safeParse(raw);
280
308
  if (!parsed.success)
281
309
  return validationError((0, validation_1.toValidationError)(parsed.error, filePath));
@@ -289,8 +317,10 @@ function parseRoles(text, filePath) {
289
317
  * deterministic `dump` — there is nothing to preserve.
290
318
  * - An unchanged list is an idempotent success: nothing is written and no commit is made.
291
319
  * - The edit goes through `setRoleAssignmentsInText`, keeping every comment and unrelated line. When it
292
- * cannot apply, a whole-file `dump` is used only if the file contains no `#` at all; otherwise the
293
- * result is `CONFLICT` and the file is left untouched.
320
+ * cannot apply, the result is `CONFLICT` ({@link rolesRewriteConflict}) and the file is left
321
+ * untouched, unless `options.force` authorizes the whole-file `dump`; that success then carries
322
+ * {@link ROLES_REWRITE_WARNING} (`dl-062` Q1 option 3, task-169). `force` authorizes the rewrite,
323
+ * it does not demand it: an edit the in-place editor can make is still made in place, unwarned.
294
324
  * - No second schema pass on the output is needed: the in-place edit is only accepted when its
295
325
  * re-parse equals the validated input with `assignments.<role>` replaced by a string list
296
326
  * (`setRoleAssignmentsInText`'s self-check), and the whole-file `dump` serializes exactly that object.
@@ -302,15 +332,22 @@ function parseRoles(text, filePath) {
302
332
  * @param role - The role whose list is updated (already validated by the caller).
303
333
  * @param update - Pure function from the current list to the desired list.
304
334
  * @param message - The commit subject.
305
- * @returns The role's resulting list, with the commit when one was made.
335
+ * @param options - `force`: authorize the whole-file rewrite when the in-place edit cannot apply.
336
+ * @returns The role's resulting list, with the commit when one was made and the rewrite warning when
337
+ * `force` was used.
306
338
  * @throws whatever `git` raises inside `commitPaths`.
307
339
  */
308
- function updateRoleAssignments(root, role, update, message) {
340
+ function updateRoleAssignments(root, role, update, message, options) {
309
341
  // dl-080 (B) / bug-078: refuse while `roles.yaml` carries modifications this operation does not
310
342
  // own — otherwise an unrelated uncommitted edit rides into `wf(directive): assign <id> to <role>`,
311
343
  // whose subject names only the binding. Before the read, so the refusal cannot depend on a value
312
344
  // the dirty copy contributed. An ABSENT `roles.yaml` is clean (porcelain reports nothing), which is
313
345
  // what keeps the first `directive assign` on a fresh project working.
346
+ // REQ-SEC-06 / bug-121 (task-172): `writeDocument` follows a symlinked `roles.yaml`; one that leads
347
+ // outside the project, or is itself a link, is refused before any read or write.
348
+ const confined = (0, confinement_1.requireConfinedWriteTarget)(root, loaders_1.ROLES_YAML_PATH, 'write');
349
+ if (!confined.ok)
350
+ return confined;
314
351
  const unmodified = (0, write_guard_1.requireUnmodifiedTarget)(root, loaders_1.ROLES_YAML_PATH);
315
352
  if (!unmodified.ok)
316
353
  return unmodified;
@@ -320,7 +357,8 @@ function updateRoleAssignments(root, role, update, message) {
320
357
  let raw = { version: 1, assignments: {}, global: [] };
321
358
  let current = [];
322
359
  if (exists) {
323
- const parsed = parseRoles(text, filePath);
360
+ // Labelled repository-relative, never by the host path (task-179 review F5, `bug-245` class).
361
+ const parsed = parseRoles(text, loaders_1.ROLES_YAML_PATH);
324
362
  if (!parsed.ok)
325
363
  return parsed;
326
364
  raw = parsed.value.raw;
@@ -333,20 +371,22 @@ function updateRoleAssignments(root, role, update, message) {
333
371
  return (0, types_1.coreOk)({ assignments: current });
334
372
  const wholeFile = () => (0, js_yaml_1.dump)({ ...raw, assignments: { ...raw.assignments, [role]: next } }, { lineWidth: -1 });
335
373
  let serialized = exists ? (0, roles_edit_1.setRoleAssignmentsInText)(text, role, next) : wholeFile();
374
+ const warnings = [];
375
+ const plannedWarnings = [];
336
376
  if (serialized === undefined) {
337
- if (text.includes('#')) {
338
- return (0, types_1.coreErr)({
339
- code: 'CONFLICT',
340
- message: `roles.yaml cannot be updated without discarding its comments; edit assignments.${role} by hand`,
341
- });
342
- }
377
+ if (!options.force)
378
+ return (0, types_1.coreErr)({ code: 'CONFLICT', message: rolesRewriteConflict(role) });
343
379
  serialized = wholeFile();
380
+ warnings.push(exports.ROLES_REWRITE_WARNING);
381
+ plannedWarnings.push(exports.ROLES_REWRITE_PLANNED_WARNING);
344
382
  }
345
- (0, storage_1.writeDocument)(filePath, serialized);
346
- const sha = (0, storage_1.commitPaths)(root, [loaders_1.ROLES_YAML_PATH], message);
383
+ const sha = (0, storage_1.writeAndCommit)(root, [{ path: loaders_1.ROLES_YAML_PATH, content: serialized }], message, {
384
+ warnings,
385
+ plannedWarnings,
386
+ });
347
387
  const leaked = (0, write_guard_1.committedScopeError)(root, sha, loaders_1.ROLES_YAML_PATH, serialized);
348
388
  if (leaked)
349
389
  return leaked;
350
- return (0, types_1.coreOk)({ assignments: next }, { sha, message });
390
+ return (0, types_1.coreOk)({ assignments: next }, { sha, message }, warnings);
351
391
  }
352
392
  //# sourceMappingURL=directive-assign.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directive-assign.js","sourceRoot":"","sources":["../../src/core/directive-assign.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directive-assign.js","sourceRoot":"","sources":["../../src/core/directive-assign.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Reconcile a directive's `scope: global` frontmatter with `roles.yaml`'s `global:` list
3
+ * (task-144, bug-148; `spec-013-directive-frontmatter-schema`, Revision 2026-10-01).
4
+ *
5
+ * Both sites state whether a directive binds every role. **`roles.yaml` is the authority**: it is what
6
+ * {@link resolveRoleDirectives} and the `directives list` entries read, and nothing here changes a
7
+ * binding. `scope` is the directive author's declaration of the same fact, kept so a reader of the file
8
+ * sees it; when the two disagree the disagreement is reported in `directives list`'s own `warnings`
9
+ * array rather than lost (bug-148: before this, `scope` was dropped with a stderr line only).
10
+ *
11
+ * Only a **declared** `scope` is compared — an absent one claims nothing and is never reported (approver
12
+ * ruling R3 at `task-144`'s review, 2026-10-02: a project scaffolded before `scope` was declared, or one
13
+ * that never writes it, lists clean). At most one warning per directive id, for the file in force:
14
+ *
15
+ * - it declares `scope: global` and `roles.yaml`'s `global:` does not list its id — the directive is NOT
16
+ * global, whatever the file says (also when there is no `roles.yaml` at all);
17
+ * - it declares another scope and `global:` lists its id — the directive IS global, whatever the file
18
+ * says;
19
+ * - it declares another scope and `global:` does not list it — the value is one `spec-013` does not
20
+ * define, so it has no effect. A warning, never a validation failure: spec-013 keeps unknown values
21
+ * forward-compatible (approver ruling R2).
22
+ *
23
+ * A `global:` id with no directive file is not reported here: nothing declares a scope for it, and a
24
+ * binding without a file is the dangling-binding warning's case (`./context.ts`). For a shadowed id the
25
+ * file compared is the one {@link selectDirectivesById} puts in force — the rule decided once there.
26
+ *
27
+ * Determinism (REQ-SYS-07): ascending by directive id, never file or YAML order.
28
+ */
29
+ import type { RolesYaml } from '../directives/schema';
30
+ import type { DirectiveFile } from './loaders';
31
+ /**
32
+ * The scope-disagreement warnings for `directiveFiles` against `rolesYaml` (`undefined` when the
33
+ * project has no `roles.yaml`: nothing is global). Empty when no declared scope disagrees.
34
+ */
35
+ export declare function directiveScopeWarnings(directiveFiles: readonly DirectiveFile[], rolesYaml: RolesYaml | undefined): string[];
36
+ //# sourceMappingURL=directive-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive-scope.d.ts","sourceRoot":"","sources":["../../src/core/directive-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAK/C;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,SAAS,aAAa,EAAE,EACxC,SAAS,EAAE,SAAS,GAAG,SAAS,GAC/B,MAAM,EAAE,CAyBV"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.directiveScopeWarnings = directiveScopeWarnings;
4
+ const context_1 = require("./context");
5
+ /** The `scope:` value spec-013 defines: the directive binds every role. */
6
+ const GLOBAL_SCOPE = 'global';
7
+ /**
8
+ * The scope-disagreement warnings for `directiveFiles` against `rolesYaml` (`undefined` when the
9
+ * project has no `roles.yaml`: nothing is global). Empty when no declared scope disagrees.
10
+ */
11
+ function directiveScopeWarnings(directiveFiles, rolesYaml) {
12
+ const globalIds = new Set(rolesYaml?.global ?? []);
13
+ const warnings = [];
14
+ // `byId` is already in ascending id order (selectDirectivesById's own contract).
15
+ for (const [id, file] of (0, context_1.selectDirectivesById)(directiveFiles).byId) {
16
+ const scope = file.frontmatter.scope;
17
+ if (scope === undefined)
18
+ continue;
19
+ const listedGlobal = globalIds.has(id);
20
+ if (scope === GLOBAL_SCOPE) {
21
+ if (!listedGlobal) {
22
+ warnings.push(`directive '${id}' declares scope: global in ${file.path}, but roles.yaml 'global' does not list it; roles.yaml decides: not global`);
23
+ }
24
+ }
25
+ else if (listedGlobal) {
26
+ warnings.push(`directive '${id}' declares scope: ${scope} in ${file.path}, but roles.yaml 'global' lists it; roles.yaml decides: global`);
27
+ }
28
+ else {
29
+ warnings.push(`directive '${id}' declares scope: ${scope} in ${file.path}, which spec-013 does not define (only global); it has no effect`);
30
+ }
31
+ }
32
+ return warnings;
33
+ }
34
+ //# sourceMappingURL=directive-scope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive-scope.js","sourceRoot":"","sources":["../../src/core/directive-scope.ts"],"names":[],"mappings":";;AAwCA,wDA4BC;AAtCD,uCAAiD;AAGjD,2EAA2E;AAC3E,MAAM,YAAY,GAAG,QAAQ,CAAC;AAE9B;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,cAAwC,EACxC,SAAgC;IAEhC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,iFAAiF;IACjF,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,IAAA,8BAAoB,EAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,QAAQ,CAAC,IAAI,CACX,cAAc,EAAE,+BAA+B,IAAI,CAAC,IAAI,4EAA4E,CACrI,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CACX,cAAc,EAAE,qBAAqB,KAAK,OAAO,IAAI,CAAC,IAAI,gEAAgE,CAC3H,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CACX,cAAc,EAAE,qBAAqB,KAAK,OAAO,IAAI,CAAC,IAAI,kEAAkE,CAC7H,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -47,8 +47,9 @@ export interface DirectiveListEntry {
47
47
  export interface DirectiveListing {
48
48
  /** One entry per directive file on disk — never deduplicated (see the module doc comment). */
49
49
  readonly entries: readonly DirectiveListEntry[];
50
- /** Shadowed ids (always); no-assignments and dangling-binding warnings (with a role filter). Fixed
51
- * order, empty when there is nothing to report. */
50
+ /** Without a role filter: shadowed ids, then `scope`/`roles.yaml` disagreements (task-144). With a
51
+ * role filter: no-assignments, dangling-binding and shadowed-id warnings. Fixed order, empty when
52
+ * there is nothing to report. */
52
53
  readonly warnings: readonly string[];
53
54
  }
54
55
  /**
@@ -64,8 +65,12 @@ export interface DirectiveListing {
64
65
  * role is therefore not an error and not empty: it lists exactly the globals, matching
65
66
  * `dl-029-role-with-no-directive-assignments` (the ratified hybrid) rather than inventing a
66
67
  * `NOT_FOUND` this read-only command has no grounds to return.
68
+ *
69
+ * `skippedWarnings` are the loader's own — one per directive entry it could not resolve and skipped
70
+ * (task-143, `bug-125`, {@link loadDirectiveInventory}) — and lead the `warnings` array, ahead of the
71
+ * shadow and role warnings, since they qualify the inventory every later warning is computed over.
67
72
  */
68
- export declare function buildDirectiveListing(directiveFiles: readonly DirectiveFile[], rolesYaml: RolesYaml | undefined, role?: string): DirectiveListing;
73
+ export declare function buildDirectiveListing(directiveFiles: readonly DirectiveFile[], rolesYaml: RolesYaml | undefined, role?: string, skippedWarnings?: readonly string[]): DirectiveListing;
69
74
  /**
70
75
  * Load both pillars' artefacts and build the listing — the filesystem half of
71
76
  * {@link buildDirectiveListing}, kept separate so the annotation rules stay unit-testable without
@@ -75,6 +80,11 @@ export declare function buildDirectiveListing(directiveFiles: readonly Directive
75
80
  * validating `loadRolesYaml` every other consumer uses, so a malformed or schema-invalid file still
76
81
  * raises a `ValidationError` (surfaced as `VALIDATION`, exit 1) rather than being silently downgraded
77
82
  * to "nothing is bound". Only a genuinely absent file is tolerated.
83
+ *
84
+ * The directive files come from {@link loadDirectiveInventory}, so an entry it skipped (a dangling
85
+ * symbolic link, task-143) is named in the listing's `warnings` instead of failing the whole read.
86
+ * Whether the project is initialized at all is the operation's pre-flight, not this function's
87
+ * (`requireInitializedProject`, `./init.ts`).
78
88
  */
79
89
  export declare function loadDirectiveListing(root: string, role?: string): DirectiveListing;
80
90
  //# sourceMappingURL=directives-list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"directives-list.d.ts","sourceRoot":"","sources":["../../src/core/directives-list.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EAAiC,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAEtD,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,oGAAoG;IACpG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0GAA0G;IAC1G,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,qGAAqG;IACrG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8FAA8F;IAC9F,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD;uDACmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAsCD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,SAAS,aAAa,EAAE,EACxC,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,IAAI,CAAC,EAAE,MAAM,GACZ,gBAAgB,CAsBlB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAIlF"}
1
+ {"version":3,"file":"directives-list.d.ts","sourceRoot":"","sources":["../../src/core/directives-list.ts"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAI5E,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAEtF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAEtD,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,oGAAoG;IACpG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,0GAA0G;IAC1G,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,qGAAqG;IACrG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8FAA8F;IAC9F,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD;;qCAEiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAsCD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,SAAS,aAAa,EAAE,EACxC,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,IAAI,CAAC,EAAE,MAAM,EACb,eAAe,GAAE,SAAS,MAAM,EAAO,GACtC,gBAAgB,CAsBlB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAIlF"}
@@ -26,7 +26,9 @@ exports.loadDirectiveListing = loadDirectiveListing;
26
26
  * The payload is {@link DirectiveListing} — `entries` plus a `warnings` channel — so the two things a
27
27
  * reader cannot see in the inventory are said out loud: which of two same-id files is in force, and
28
28
  * whether a role is bound at all. Neither is computed here. Without a role filter the warnings are
29
- * {@link selectDirectivesById}'s shadow warnings over every file; with `--role` they are exactly
29
+ * {@link selectDirectivesById}'s shadow warnings over every file, followed by
30
+ * {@link directiveScopeWarnings}' report of every directive whose `scope: global` frontmatter disagrees
31
+ * with `roles.yaml`'s `global:` list (task-144, bug-148 — `roles.yaml` decides); with `--role` they are exactly
30
32
  * {@link resolveRoleDirectives}' warnings for that role (no-assignments, dangling binding, shadowed
31
33
  * ids). Both live in `./context.ts`, so the precedence rule the listing reports is the one context
32
34
  * assembly applies — it is never implemented twice.
@@ -43,6 +45,7 @@ exports.loadDirectiveListing = loadDirectiveListing;
43
45
  const path_1 = require("path");
44
46
  const storage_1 = require("../storage");
45
47
  const context_1 = require("./context");
48
+ const directive_scope_1 = require("./directive-scope");
46
49
  const loaders_1 = require("./loaders");
47
50
  /**
48
51
  * {@link DirectiveListEntry.assignment} for a directive no role names and `roles.yaml`'s `global`
@@ -106,8 +109,12 @@ function renderAssignment(roles, isGlobal) {
106
109
  * role is therefore not an error and not empty: it lists exactly the globals, matching
107
110
  * `dl-029-role-with-no-directive-assignments` (the ratified hybrid) rather than inventing a
108
111
  * `NOT_FOUND` this read-only command has no grounds to return.
112
+ *
113
+ * `skippedWarnings` are the loader's own — one per directive entry it could not resolve and skipped
114
+ * (task-143, `bug-125`, {@link loadDirectiveInventory}) — and lead the `warnings` array, ahead of the
115
+ * shadow and role warnings, since they qualify the inventory every later warning is computed over.
109
116
  */
110
- function buildDirectiveListing(directiveFiles, rolesYaml, role) {
117
+ function buildDirectiveListing(directiveFiles, rolesYaml, role, skippedWarnings = []) {
111
118
  const byId = rolesByDirectiveId(rolesYaml);
112
119
  const globalIds = new Set(rolesYaml?.global ?? []);
113
120
  const entries = [];
@@ -126,9 +133,9 @@ function buildDirectiveListing(directiveFiles, rolesYaml, role) {
126
133
  });
127
134
  }
128
135
  const warnings = role === undefined
129
- ? (0, context_1.selectDirectivesById)(directiveFiles).warnings
136
+ ? [...(0, context_1.selectDirectivesById)(directiveFiles).warnings, ...(0, directive_scope_1.directiveScopeWarnings)(directiveFiles, rolesYaml)]
130
137
  : (0, context_1.resolveRoleDirectives)(directiveFiles, rolesYaml ?? NO_BINDINGS, role).warnings;
131
- return { entries, warnings };
138
+ return { entries, warnings: [...skippedWarnings, ...warnings] };
132
139
  }
133
140
  /**
134
141
  * Load both pillars' artefacts and build the listing — the filesystem half of
@@ -139,10 +146,15 @@ function buildDirectiveListing(directiveFiles, rolesYaml, role) {
139
146
  * validating `loadRolesYaml` every other consumer uses, so a malformed or schema-invalid file still
140
147
  * raises a `ValidationError` (surfaced as `VALIDATION`, exit 1) rather than being silently downgraded
141
148
  * to "nothing is bound". Only a genuinely absent file is tolerated.
149
+ *
150
+ * The directive files come from {@link loadDirectiveInventory}, so an entry it skipped (a dangling
151
+ * symbolic link, task-143) is named in the listing's `warnings` instead of failing the whole read.
152
+ * Whether the project is initialized at all is the operation's pre-flight, not this function's
153
+ * (`requireInitializedProject`, `./init.ts`).
142
154
  */
143
155
  function loadDirectiveListing(root, role) {
144
- const directiveFiles = (0, loaders_1.loadDirectives)(root);
156
+ const { files, warnings } = (0, loaders_1.loadDirectiveInventory)(root);
145
157
  const rolesYaml = (0, storage_1.documentExists)((0, path_1.join)(root, '.wingfoil', 'roles.yaml')) ? (0, loaders_1.loadRolesYaml)(root) : undefined;
146
- return buildDirectiveListing(directiveFiles, rolesYaml, role);
158
+ return buildDirectiveListing(files, rolesYaml, role, warnings);
147
159
  }
148
160
  //# sourceMappingURL=directives-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directives-list.js","sourceRoot":"","sources":["../../src/core/directives-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directives-list.js","sourceRoot":"","sources":["../../src/core/directives-list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `--dry-run` for every mutating operation (task-210, `dl-106` W2, `spec-008-cli-grammar` §2).
3
+ *
4
+ * A surface runs an operation through {@link runAsDryRun} instead of calling its `fn` directly. The
5
+ * operation itself never learns of the mode: the commit primitive (`writeAndCommit`, `src/storage`)
6
+ * plans the commit instead of making it (`src/storage/dry-run.ts`). So every operation registered
7
+ * `mutates: true` — those in `CORE_MODULES` today and any added later — takes the flag by construction,
8
+ * and `test/cli/dry-run.integration.test.ts` holds each of them to it.
9
+ */
10
+ import { type DryRunPlan } from '../storage';
11
+ import type { CoreFlag } from './registry';
12
+ import { type CoreResult } from './types';
13
+ export type { DryRunPlan } from '../storage';
14
+ /**
15
+ * The flag the CLI registrar adds to every command whose operation `mutates` (`src/cli/registrar.ts`).
16
+ * An operation never declares it; a command whose operation writes nothing does not take it.
17
+ */
18
+ export declare const DRY_RUN_FLAG: CoreFlag;
19
+ /**
20
+ * Run `run` — one operation's `fn` — as a dry run:
21
+ *
22
+ * - it reached its commit → a success whose value is the {@link DryRunPlan} (exit `0`), with no
23
+ * `commit`, since none was made, and the warnings the operation handed to the commit primitive
24
+ * (`CommitOptions.warnings`) — the ones the real run would print;
25
+ * - it refused before writing → its own failed result, unchanged, so the exit code is the refusal's;
26
+ * - it threw → the same throw, for the surface to render as it renders any thrown error;
27
+ * - it succeeded without committing (a change that is already in place) → its own result, which is
28
+ * what the real run would print too.
29
+ *
30
+ * A dry run stops at the operation's first commit (see `src/storage/dry-run.ts`).
31
+ */
32
+ export declare function runAsDryRun<T>(run: () => Promise<CoreResult<T>>): Promise<CoreResult<T | DryRunPlan>>;
33
+ //# sourceMappingURL=dry-run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dry-run.d.ts","sourceRoot":"","sources":["../../src/core/dry-run.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAU,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAElD,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,QAG1B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAK3G"}