@warpgogol/forge 2.19.0 → 2.21.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 (737) hide show
  1. package/README.md +13 -1
  2. package/README.uk.md +7 -1
  3. package/os/adr/adr.module.ts +2 -0
  4. package/os/compass/compass.module.ts +6 -0
  5. package/os/core/core.module.ts +17 -1
  6. package/os/naming/naming.module.ts +2 -0
  7. package/os/notes/notes.module.ts +4 -0
  8. package/os/plugin/plugin.module.ts +2 -0
  9. package/os/program/program.module.ts +2 -0
  10. package/os/rfc/acceptance.ts +1 -1
  11. package/os/rfc/rfc.module.ts +10 -0
  12. package/os/session/session.module.ts +2 -0
  13. package/os/spec/live-spec-merge.test.ts +76 -0
  14. package/os/spec/live-spec-merge.ts +14 -49
  15. package/os/spec/spec.module.ts +4 -0
  16. package/os/werkstatt/werkstatt.module.ts +2 -0
  17. package/os/workflow/workflow.module.ts +2 -0
  18. package/package.json +1 -1
  19. package/profiles/godot-csharp.yaml +4 -4
  20. package/profiles/typescript-turborepo.yaml +222 -0
  21. package/skills/meta/forge-bootstrap/SKILL.md +6 -6
  22. package/src/migration-adapters/git-utils.ts +4 -3
  23. package/src/onboarding/create.ts +19 -0
  24. package/src/onboarding/doctor.ts +37 -0
  25. package/src/tests/migration-adapters.test.ts +21 -0
  26. package/src/tests/profile-schema.test.ts +1 -1
  27. package/src/types/werkstatt-engine-shims.d.ts +99 -12
  28. package/src/types/werkstatt-shared-shims.d.ts +71 -0
  29. package/src/types.ts +4 -0
  30. package/dist/bin/cli.d.ts +0 -3
  31. package/dist/bin/cli.d.ts.map +0 -1
  32. package/dist/bin/cli.js +0 -291
  33. package/dist/bin/cli.js.map +0 -1
  34. package/dist/os/adr/adr.module.d.ts +0 -3
  35. package/dist/os/adr/adr.module.d.ts.map +0 -1
  36. package/dist/os/adr/adr.module.js +0 -146
  37. package/dist/os/adr/adr.module.js.map +0 -1
  38. package/dist/os/adr/frontmatter-io.d.ts +0 -12
  39. package/dist/os/adr/frontmatter-io.d.ts.map +0 -1
  40. package/dist/os/adr/frontmatter-io.js +0 -67
  41. package/dist/os/adr/frontmatter-io.js.map +0 -1
  42. package/dist/os/adr/handlers/archive.d.ts +0 -24
  43. package/dist/os/adr/handlers/archive.d.ts.map +0 -1
  44. package/dist/os/adr/handlers/archive.js +0 -194
  45. package/dist/os/adr/handlers/archive.js.map +0 -1
  46. package/dist/os/adr/handlers/implement-stamp.d.ts +0 -4
  47. package/dist/os/adr/handlers/implement-stamp.d.ts.map +0 -1
  48. package/dist/os/adr/handlers/implement-stamp.js +0 -264
  49. package/dist/os/adr/handlers/implement-stamp.js.map +0 -1
  50. package/dist/os/adr/handlers/list-create.d.ts +0 -5
  51. package/dist/os/adr/handlers/list-create.d.ts.map +0 -1
  52. package/dist/os/adr/handlers/list-create.js +0 -201
  53. package/dist/os/adr/handlers/list-create.js.map +0 -1
  54. package/dist/os/adr/handlers/validate.d.ts +0 -4
  55. package/dist/os/adr/handlers/validate.d.ts.map +0 -1
  56. package/dist/os/adr/handlers/validate.js +0 -279
  57. package/dist/os/adr/handlers/validate.js.map +0 -1
  58. package/dist/os/adr/index.d.ts +0 -8
  59. package/dist/os/adr/index.d.ts.map +0 -1
  60. package/dist/os/adr/index.js +0 -18
  61. package/dist/os/adr/index.js.map +0 -1
  62. package/dist/os/adr/types.d.ts +0 -76
  63. package/dist/os/adr/types.d.ts.map +0 -1
  64. package/dist/os/adr/types.js +0 -56
  65. package/dist/os/adr/types.js.map +0 -1
  66. package/dist/os/audit/audit.module.d.ts +0 -3
  67. package/dist/os/audit/audit.module.d.ts.map +0 -1
  68. package/dist/os/audit/audit.module.js +0 -45
  69. package/dist/os/audit/audit.module.js.map +0 -1
  70. package/dist/os/audit/frontmatter-io.d.ts +0 -12
  71. package/dist/os/audit/frontmatter-io.d.ts.map +0 -1
  72. package/dist/os/audit/frontmatter-io.js +0 -71
  73. package/dist/os/audit/frontmatter-io.js.map +0 -1
  74. package/dist/os/audit/handlers/archive.d.ts +0 -4
  75. package/dist/os/audit/handlers/archive.d.ts.map +0 -1
  76. package/dist/os/audit/handlers/archive.js +0 -207
  77. package/dist/os/audit/handlers/archive.js.map +0 -1
  78. package/dist/os/audit/index.d.ts +0 -6
  79. package/dist/os/audit/index.d.ts.map +0 -1
  80. package/dist/os/audit/index.js +0 -16
  81. package/dist/os/audit/index.js.map +0 -1
  82. package/dist/os/audit/types.d.ts +0 -12
  83. package/dist/os/audit/types.d.ts.map +0 -1
  84. package/dist/os/audit/types.js +0 -17
  85. package/dist/os/audit/types.js.map +0 -1
  86. package/dist/os/compass/compass.module.d.ts +0 -3
  87. package/dist/os/compass/compass.module.d.ts.map +0 -1
  88. package/dist/os/compass/compass.module.js +0 -183
  89. package/dist/os/compass/compass.module.js.map +0 -1
  90. package/dist/os/compass/handlers/compass-audit-handler.d.ts +0 -36
  91. package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +0 -1
  92. package/dist/os/compass/handlers/compass-audit-handler.js +0 -260
  93. package/dist/os/compass/handlers/compass-audit-handler.js.map +0 -1
  94. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +0 -19
  95. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +0 -1
  96. package/dist/os/compass/handlers/compass-change-summary-handler.js +0 -222
  97. package/dist/os/compass/handlers/compass-change-summary-handler.js.map +0 -1
  98. package/dist/os/compass/handlers/compass-inventory-handler.d.ts +0 -28
  99. package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +0 -1
  100. package/dist/os/compass/handlers/compass-inventory-handler.js +0 -377
  101. package/dist/os/compass/handlers/compass-inventory-handler.js.map +0 -1
  102. package/dist/os/compass/handlers/compass-inventory.d.ts +0 -30
  103. package/dist/os/compass/handlers/compass-inventory.d.ts.map +0 -1
  104. package/dist/os/compass/handlers/compass-inventory.js +0 -462
  105. package/dist/os/compass/handlers/compass-inventory.js.map +0 -1
  106. package/dist/os/compass/handlers/git-revision.d.ts +0 -8
  107. package/dist/os/compass/handlers/git-revision.d.ts.map +0 -1
  108. package/dist/os/compass/handlers/git-revision.js +0 -99
  109. package/dist/os/compass/handlers/git-revision.js.map +0 -1
  110. package/dist/os/compass/handlers/resolve-scan-root.d.ts +0 -3
  111. package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +0 -1
  112. package/dist/os/compass/handlers/resolve-scan-root.js +0 -57
  113. package/dist/os/compass/handlers/resolve-scan-root.js.map +0 -1
  114. package/dist/os/compass/index.d.ts +0 -8
  115. package/dist/os/compass/index.d.ts.map +0 -1
  116. package/dist/os/compass/index.js +0 -19
  117. package/dist/os/compass/index.js.map +0 -1
  118. package/dist/os/core/core.module.d.ts +0 -3
  119. package/dist/os/core/core.module.d.ts.map +0 -1
  120. package/dist/os/core/core.module.js +0 -836
  121. package/dist/os/core/core.module.js.map +0 -1
  122. package/dist/os/core/handlers/assets-check.d.ts +0 -19
  123. package/dist/os/core/handlers/assets-check.d.ts.map +0 -1
  124. package/dist/os/core/handlers/assets-check.js +0 -89
  125. package/dist/os/core/handlers/assets-check.js.map +0 -1
  126. package/dist/os/core/handlers/assets-helpers.d.ts +0 -28
  127. package/dist/os/core/handlers/assets-helpers.d.ts.map +0 -1
  128. package/dist/os/core/handlers/assets-helpers.js +0 -128
  129. package/dist/os/core/handlers/assets-helpers.js.map +0 -1
  130. package/dist/os/core/handlers/assets-list.d.ts +0 -9
  131. package/dist/os/core/handlers/assets-list.d.ts.map +0 -1
  132. package/dist/os/core/handlers/assets-list.js +0 -72
  133. package/dist/os/core/handlers/assets-list.js.map +0 -1
  134. package/dist/os/core/handlers/build.d.ts +0 -16
  135. package/dist/os/core/handlers/build.d.ts.map +0 -1
  136. package/dist/os/core/handlers/build.js +0 -123
  137. package/dist/os/core/handlers/build.js.map +0 -1
  138. package/dist/os/core/handlers/determinism-check.d.ts +0 -20
  139. package/dist/os/core/handlers/determinism-check.d.ts.map +0 -1
  140. package/dist/os/core/handlers/determinism-check.js +0 -289
  141. package/dist/os/core/handlers/determinism-check.js.map +0 -1
  142. package/dist/os/core/handlers/dev.d.ts +0 -10
  143. package/dist/os/core/handlers/dev.d.ts.map +0 -1
  144. package/dist/os/core/handlers/dev.js +0 -102
  145. package/dist/os/core/handlers/dev.js.map +0 -1
  146. package/dist/os/core/handlers/forge-autonomy-validate.d.ts +0 -18
  147. package/dist/os/core/handlers/forge-autonomy-validate.d.ts.map +0 -1
  148. package/dist/os/core/handlers/forge-autonomy-validate.js +0 -115
  149. package/dist/os/core/handlers/forge-autonomy-validate.js.map +0 -1
  150. package/dist/os/core/handlers/knowledge-compact.d.ts +0 -4
  151. package/dist/os/core/handlers/knowledge-compact.d.ts.map +0 -1
  152. package/dist/os/core/handlers/knowledge-compact.js +0 -204
  153. package/dist/os/core/handlers/knowledge-compact.js.map +0 -1
  154. package/dist/os/core/handlers/package-health.d.ts +0 -17
  155. package/dist/os/core/handlers/package-health.d.ts.map +0 -1
  156. package/dist/os/core/handlers/package-health.js +0 -196
  157. package/dist/os/core/handlers/package-health.js.map +0 -1
  158. package/dist/os/core/handlers/pinned-check.d.ts +0 -49
  159. package/dist/os/core/handlers/pinned-check.d.ts.map +0 -1
  160. package/dist/os/core/handlers/pinned-check.js +0 -159
  161. package/dist/os/core/handlers/pinned-check.js.map +0 -1
  162. package/dist/os/core/handlers/pinned-init.d.ts +0 -19
  163. package/dist/os/core/handlers/pinned-init.d.ts.map +0 -1
  164. package/dist/os/core/handlers/pinned-init.js +0 -283
  165. package/dist/os/core/handlers/pinned-init.js.map +0 -1
  166. package/dist/os/core/handlers/pinned-types.d.ts +0 -29
  167. package/dist/os/core/handlers/pinned-types.d.ts.map +0 -1
  168. package/dist/os/core/handlers/pinned-types.js +0 -16
  169. package/dist/os/core/handlers/pinned-types.js.map +0 -1
  170. package/dist/os/core/handlers/pinned-validate.d.ts +0 -4
  171. package/dist/os/core/handlers/pinned-validate.d.ts.map +0 -1
  172. package/dist/os/core/handlers/pinned-validate.js +0 -248
  173. package/dist/os/core/handlers/pinned-validate.js.map +0 -1
  174. package/dist/os/core/handlers/profile-resolve.d.ts +0 -13
  175. package/dist/os/core/handlers/profile-resolve.d.ts.map +0 -1
  176. package/dist/os/core/handlers/profile-resolve.js +0 -65
  177. package/dist/os/core/handlers/profile-resolve.js.map +0 -1
  178. package/dist/os/core/handlers/release-prepare.d.ts +0 -25
  179. package/dist/os/core/handlers/release-prepare.d.ts.map +0 -1
  180. package/dist/os/core/handlers/release-prepare.js +0 -228
  181. package/dist/os/core/handlers/release-prepare.js.map +0 -1
  182. package/dist/os/core/handlers/release-publish.d.ts +0 -13
  183. package/dist/os/core/handlers/release-publish.d.ts.map +0 -1
  184. package/dist/os/core/handlers/release-publish.js +0 -173
  185. package/dist/os/core/handlers/release-publish.js.map +0 -1
  186. package/dist/os/core/handlers/validate.d.ts +0 -26
  187. package/dist/os/core/handlers/validate.d.ts.map +0 -1
  188. package/dist/os/core/handlers/validate.js +0 -208
  189. package/dist/os/core/handlers/validate.js.map +0 -1
  190. package/dist/os/core/index.d.ts +0 -2
  191. package/dist/os/core/index.d.ts.map +0 -1
  192. package/dist/os/core/index.js +0 -13
  193. package/dist/os/core/index.js.map +0 -1
  194. package/dist/os/exploration/exploration.module.d.ts +0 -3
  195. package/dist/os/exploration/exploration.module.d.ts.map +0 -1
  196. package/dist/os/exploration/exploration.module.js +0 -83
  197. package/dist/os/exploration/exploration.module.js.map +0 -1
  198. package/dist/os/exploration/frontmatter-io.d.ts +0 -13
  199. package/dist/os/exploration/frontmatter-io.d.ts.map +0 -1
  200. package/dist/os/exploration/frontmatter-io.js +0 -61
  201. package/dist/os/exploration/frontmatter-io.js.map +0 -1
  202. package/dist/os/exploration/handlers/archive.d.ts +0 -4
  203. package/dist/os/exploration/handlers/archive.d.ts.map +0 -1
  204. package/dist/os/exploration/handlers/archive.js +0 -141
  205. package/dist/os/exploration/handlers/archive.js.map +0 -1
  206. package/dist/os/exploration/handlers/list.d.ts +0 -4
  207. package/dist/os/exploration/handlers/list.d.ts.map +0 -1
  208. package/dist/os/exploration/handlers/list.js +0 -64
  209. package/dist/os/exploration/handlers/list.js.map +0 -1
  210. package/dist/os/exploration/handlers/show.d.ts +0 -4
  211. package/dist/os/exploration/handlers/show.d.ts.map +0 -1
  212. package/dist/os/exploration/handlers/show.js +0 -97
  213. package/dist/os/exploration/handlers/show.js.map +0 -1
  214. package/dist/os/exploration/index.d.ts +0 -7
  215. package/dist/os/exploration/index.d.ts.map +0 -1
  216. package/dist/os/exploration/index.js +0 -17
  217. package/dist/os/exploration/index.js.map +0 -1
  218. package/dist/os/exploration/types.d.ts +0 -38
  219. package/dist/os/exploration/types.d.ts.map +0 -1
  220. package/dist/os/exploration/types.js +0 -23
  221. package/dist/os/exploration/types.js.map +0 -1
  222. package/dist/os/mission/handlers/archive.d.ts +0 -4
  223. package/dist/os/mission/handlers/archive.d.ts.map +0 -1
  224. package/dist/os/mission/handlers/archive.js +0 -356
  225. package/dist/os/mission/handlers/archive.js.map +0 -1
  226. package/dist/os/mission/index.d.ts +0 -2
  227. package/dist/os/mission/index.d.ts.map +0 -1
  228. package/dist/os/mission/index.js +0 -2
  229. package/dist/os/mission/index.js.map +0 -1
  230. package/dist/os/mission/mission.module.d.ts +0 -3
  231. package/dist/os/mission/mission.module.d.ts.map +0 -1
  232. package/dist/os/mission/mission.module.js +0 -45
  233. package/dist/os/mission/mission.module.js.map +0 -1
  234. package/dist/os/mission/types.d.ts +0 -23
  235. package/dist/os/mission/types.d.ts.map +0 -1
  236. package/dist/os/mission/types.js +0 -18
  237. package/dist/os/mission/types.js.map +0 -1
  238. package/dist/os/naming/index.d.ts +0 -3
  239. package/dist/os/naming/index.d.ts.map +0 -1
  240. package/dist/os/naming/index.js +0 -14
  241. package/dist/os/naming/index.js.map +0 -1
  242. package/dist/os/naming/naming-convention.d.ts +0 -25
  243. package/dist/os/naming/naming-convention.d.ts.map +0 -1
  244. package/dist/os/naming/naming-convention.js +0 -324
  245. package/dist/os/naming/naming-convention.js.map +0 -1
  246. package/dist/os/naming/naming.module.d.ts +0 -3
  247. package/dist/os/naming/naming.module.d.ts.map +0 -1
  248. package/dist/os/naming/naming.module.js +0 -34
  249. package/dist/os/naming/naming.module.js.map +0 -1
  250. package/dist/os/notes/index.d.ts +0 -2
  251. package/dist/os/notes/index.d.ts.map +0 -1
  252. package/dist/os/notes/index.js +0 -10
  253. package/dist/os/notes/index.js.map +0 -1
  254. package/dist/os/notes/notes.module.d.ts +0 -3
  255. package/dist/os/notes/notes.module.d.ts.map +0 -1
  256. package/dist/os/notes/notes.module.js +0 -84
  257. package/dist/os/notes/notes.module.js.map +0 -1
  258. package/dist/os/plan/frontmatter-io.d.ts +0 -12
  259. package/dist/os/plan/frontmatter-io.d.ts.map +0 -1
  260. package/dist/os/plan/frontmatter-io.js +0 -69
  261. package/dist/os/plan/frontmatter-io.js.map +0 -1
  262. package/dist/os/plan/handlers/archive.d.ts +0 -4
  263. package/dist/os/plan/handlers/archive.d.ts.map +0 -1
  264. package/dist/os/plan/handlers/archive.js +0 -206
  265. package/dist/os/plan/handlers/archive.js.map +0 -1
  266. package/dist/os/plan/index.d.ts +0 -6
  267. package/dist/os/plan/index.d.ts.map +0 -1
  268. package/dist/os/plan/index.js +0 -16
  269. package/dist/os/plan/index.js.map +0 -1
  270. package/dist/os/plan/plan.module.d.ts +0 -3
  271. package/dist/os/plan/plan.module.d.ts.map +0 -1
  272. package/dist/os/plan/plan.module.js +0 -45
  273. package/dist/os/plan/plan.module.js.map +0 -1
  274. package/dist/os/plan/types.d.ts +0 -12
  275. package/dist/os/plan/types.d.ts.map +0 -1
  276. package/dist/os/plan/types.js +0 -17
  277. package/dist/os/plan/types.js.map +0 -1
  278. package/dist/os/plugin/plugin.module.d.ts +0 -25
  279. package/dist/os/plugin/plugin.module.d.ts.map +0 -1
  280. package/dist/os/plugin/plugin.module.js +0 -208
  281. package/dist/os/plugin/plugin.module.js.map +0 -1
  282. package/dist/os/program/discovery.d.ts +0 -61
  283. package/dist/os/program/discovery.d.ts.map +0 -1
  284. package/dist/os/program/discovery.js +0 -236
  285. package/dist/os/program/discovery.js.map +0 -1
  286. package/dist/os/program/handlers/complete.d.ts +0 -12
  287. package/dist/os/program/handlers/complete.d.ts.map +0 -1
  288. package/dist/os/program/handlers/complete.js +0 -362
  289. package/dist/os/program/handlers/complete.js.map +0 -1
  290. package/dist/os/program/handlers/lease.d.ts +0 -13
  291. package/dist/os/program/handlers/lease.d.ts.map +0 -1
  292. package/dist/os/program/handlers/lease.js +0 -328
  293. package/dist/os/program/handlers/lease.js.map +0 -1
  294. package/dist/os/program/handlers/seal.d.ts +0 -12
  295. package/dist/os/program/handlers/seal.d.ts.map +0 -1
  296. package/dist/os/program/handlers/seal.js +0 -277
  297. package/dist/os/program/handlers/seal.js.map +0 -1
  298. package/dist/os/program/handlers/validate.d.ts +0 -14
  299. package/dist/os/program/handlers/validate.d.ts.map +0 -1
  300. package/dist/os/program/handlers/validate.js +0 -170
  301. package/dist/os/program/handlers/validate.js.map +0 -1
  302. package/dist/os/program/lease.d.ts +0 -39
  303. package/dist/os/program/lease.d.ts.map +0 -1
  304. package/dist/os/program/lease.js +0 -129
  305. package/dist/os/program/lease.js.map +0 -1
  306. package/dist/os/program/program.module.d.ts +0 -3
  307. package/dist/os/program/program.module.d.ts.map +0 -1
  308. package/dist/os/program/program.module.js +0 -202
  309. package/dist/os/program/program.module.js.map +0 -1
  310. package/dist/os/program/schemas.d.ts +0 -225
  311. package/dist/os/program/schemas.d.ts.map +0 -1
  312. package/dist/os/program/schemas.js +0 -174
  313. package/dist/os/program/schemas.js.map +0 -1
  314. package/dist/os/program/state.d.ts +0 -38
  315. package/dist/os/program/state.d.ts.map +0 -1
  316. package/dist/os/program/state.js +0 -189
  317. package/dist/os/program/state.js.map +0 -1
  318. package/dist/os/rfc/acceptance.d.ts +0 -15
  319. package/dist/os/rfc/acceptance.d.ts.map +0 -1
  320. package/dist/os/rfc/acceptance.js +0 -318
  321. package/dist/os/rfc/acceptance.js.map +0 -1
  322. package/dist/os/rfc/decision-log.d.ts +0 -6
  323. package/dist/os/rfc/decision-log.d.ts.map +0 -1
  324. package/dist/os/rfc/decision-log.js +0 -269
  325. package/dist/os/rfc/decision-log.js.map +0 -1
  326. package/dist/os/rfc/dna-trace.d.ts +0 -27
  327. package/dist/os/rfc/dna-trace.d.ts.map +0 -1
  328. package/dist/os/rfc/dna-trace.js +0 -214
  329. package/dist/os/rfc/dna-trace.js.map +0 -1
  330. package/dist/os/rfc/frontmatter-io.d.ts +0 -18
  331. package/dist/os/rfc/frontmatter-io.d.ts.map +0 -1
  332. package/dist/os/rfc/frontmatter-io.js +0 -110
  333. package/dist/os/rfc/frontmatter-io.js.map +0 -1
  334. package/dist/os/rfc/handlers/archive.d.ts +0 -25
  335. package/dist/os/rfc/handlers/archive.d.ts.map +0 -1
  336. package/dist/os/rfc/handlers/archive.js +0 -247
  337. package/dist/os/rfc/handlers/archive.js.map +0 -1
  338. package/dist/os/rfc/handlers/check.d.ts +0 -4
  339. package/dist/os/rfc/handlers/check.d.ts.map +0 -1
  340. package/dist/os/rfc/handlers/check.js +0 -203
  341. package/dist/os/rfc/handlers/check.js.map +0 -1
  342. package/dist/os/rfc/handlers/implement-stamp.d.ts +0 -4
  343. package/dist/os/rfc/handlers/implement-stamp.d.ts.map +0 -1
  344. package/dist/os/rfc/handlers/implement-stamp.js +0 -426
  345. package/dist/os/rfc/handlers/implement-stamp.js.map +0 -1
  346. package/dist/os/rfc/handlers/index-graph.d.ts +0 -13
  347. package/dist/os/rfc/handlers/index-graph.d.ts.map +0 -1
  348. package/dist/os/rfc/handlers/index-graph.js +0 -192
  349. package/dist/os/rfc/handlers/index-graph.js.map +0 -1
  350. package/dist/os/rfc/handlers/lifecycle.d.ts +0 -13
  351. package/dist/os/rfc/handlers/lifecycle.d.ts.map +0 -1
  352. package/dist/os/rfc/handlers/lifecycle.js +0 -155
  353. package/dist/os/rfc/handlers/lifecycle.js.map +0 -1
  354. package/dist/os/rfc/handlers/list-create.d.ts +0 -6
  355. package/dist/os/rfc/handlers/list-create.d.ts.map +0 -1
  356. package/dist/os/rfc/handlers/list-create.js +0 -260
  357. package/dist/os/rfc/handlers/list-create.js.map +0 -1
  358. package/dist/os/rfc/handlers/pipeline-status.d.ts +0 -26
  359. package/dist/os/rfc/handlers/pipeline-status.d.ts.map +0 -1
  360. package/dist/os/rfc/handlers/pipeline-status.js +0 -124
  361. package/dist/os/rfc/handlers/pipeline-status.js.map +0 -1
  362. package/dist/os/rfc/handlers/shared.d.ts +0 -22
  363. package/dist/os/rfc/handlers/shared.d.ts.map +0 -1
  364. package/dist/os/rfc/handlers/shared.js +0 -105
  365. package/dist/os/rfc/handlers/shared.js.map +0 -1
  366. package/dist/os/rfc/handlers/supersede-propose.d.ts +0 -4
  367. package/dist/os/rfc/handlers/supersede-propose.d.ts.map +0 -1
  368. package/dist/os/rfc/handlers/supersede-propose.js +0 -203
  369. package/dist/os/rfc/handlers/supersede-propose.js.map +0 -1
  370. package/dist/os/rfc/handlers/validate-rules.d.ts +0 -32
  371. package/dist/os/rfc/handlers/validate-rules.d.ts.map +0 -1
  372. package/dist/os/rfc/handlers/validate-rules.js +0 -590
  373. package/dist/os/rfc/handlers/validate-rules.js.map +0 -1
  374. package/dist/os/rfc/handlers/validate.d.ts +0 -4
  375. package/dist/os/rfc/handlers/validate.d.ts.map +0 -1
  376. package/dist/os/rfc/handlers/validate.js +0 -122
  377. package/dist/os/rfc/handlers/validate.js.map +0 -1
  378. package/dist/os/rfc/handlers.d.ts +0 -7
  379. package/dist/os/rfc/handlers.d.ts.map +0 -1
  380. package/dist/os/rfc/handlers.js +0 -19
  381. package/dist/os/rfc/handlers.js.map +0 -1
  382. package/dist/os/rfc/index.d.ts +0 -18
  383. package/dist/os/rfc/index.d.ts.map +0 -1
  384. package/dist/os/rfc/index.js +0 -24
  385. package/dist/os/rfc/index.js.map +0 -1
  386. package/dist/os/rfc/rfc.module.d.ts +0 -3
  387. package/dist/os/rfc/rfc.module.d.ts.map +0 -1
  388. package/dist/os/rfc/rfc.module.js +0 -367
  389. package/dist/os/rfc/rfc.module.js.map +0 -1
  390. package/dist/os/rfc/types.d.ts +0 -483
  391. package/dist/os/rfc/types.d.ts.map +0 -1
  392. package/dist/os/rfc/types.js +0 -100
  393. package/dist/os/rfc/types.js.map +0 -1
  394. package/dist/os/rfc/verification-evidence.d.ts +0 -8
  395. package/dist/os/rfc/verification-evidence.d.ts.map +0 -1
  396. package/dist/os/rfc/verification-evidence.js +0 -184
  397. package/dist/os/rfc/verification-evidence.js.map +0 -1
  398. package/dist/os/session/atif-parser.d.ts +0 -29
  399. package/dist/os/session/atif-parser.d.ts.map +0 -1
  400. package/dist/os/session/atif-parser.js +0 -140
  401. package/dist/os/session/atif-parser.js.map +0 -1
  402. package/dist/os/session/frontmatter-io.d.ts +0 -31
  403. package/dist/os/session/frontmatter-io.d.ts.map +0 -1
  404. package/dist/os/session/frontmatter-io.js +0 -146
  405. package/dist/os/session/frontmatter-io.js.map +0 -1
  406. package/dist/os/session/handlers/archive.d.ts +0 -4
  407. package/dist/os/session/handlers/archive.d.ts.map +0 -1
  408. package/dist/os/session/handlers/archive.js +0 -241
  409. package/dist/os/session/handlers/archive.js.map +0 -1
  410. package/dist/os/session/handlers/list.d.ts +0 -4
  411. package/dist/os/session/handlers/list.d.ts.map +0 -1
  412. package/dist/os/session/handlers/list.js +0 -147
  413. package/dist/os/session/handlers/list.js.map +0 -1
  414. package/dist/os/session/handlers/save.d.ts +0 -6
  415. package/dist/os/session/handlers/save.d.ts.map +0 -1
  416. package/dist/os/session/handlers/save.js +0 -297
  417. package/dist/os/session/handlers/save.js.map +0 -1
  418. package/dist/os/session/handlers/validate.d.ts +0 -4
  419. package/dist/os/session/handlers/validate.d.ts.map +0 -1
  420. package/dist/os/session/handlers/validate.js +0 -224
  421. package/dist/os/session/handlers/validate.js.map +0 -1
  422. package/dist/os/session/index.d.ts +0 -9
  423. package/dist/os/session/index.d.ts.map +0 -1
  424. package/dist/os/session/index.js +0 -20
  425. package/dist/os/session/index.js.map +0 -1
  426. package/dist/os/session/session.module.d.ts +0 -3
  427. package/dist/os/session/session.module.d.ts.map +0 -1
  428. package/dist/os/session/session.module.js +0 -116
  429. package/dist/os/session/session.module.js.map +0 -1
  430. package/dist/os/session/types.d.ts +0 -131
  431. package/dist/os/session/types.d.ts.map +0 -1
  432. package/dist/os/session/types.js +0 -59
  433. package/dist/os/session/types.js.map +0 -1
  434. package/dist/os/spec/live-spec-list.d.ts +0 -4
  435. package/dist/os/spec/live-spec-list.d.ts.map +0 -1
  436. package/dist/os/spec/live-spec-list.js +0 -72
  437. package/dist/os/spec/live-spec-list.js.map +0 -1
  438. package/dist/os/spec/live-spec-merge.d.ts +0 -4
  439. package/dist/os/spec/live-spec-merge.d.ts.map +0 -1
  440. package/dist/os/spec/live-spec-merge.js +0 -345
  441. package/dist/os/spec/live-spec-merge.js.map +0 -1
  442. package/dist/os/spec/live-spec-show.d.ts +0 -4
  443. package/dist/os/spec/live-spec-show.d.ts.map +0 -1
  444. package/dist/os/spec/live-spec-show.js +0 -105
  445. package/dist/os/spec/live-spec-show.js.map +0 -1
  446. package/dist/os/spec/live-spec-types.d.ts +0 -71
  447. package/dist/os/spec/live-spec-types.d.ts.map +0 -1
  448. package/dist/os/spec/live-spec-types.js +0 -14
  449. package/dist/os/spec/live-spec-types.js.map +0 -1
  450. package/dist/os/spec/live-spec-validate.d.ts +0 -4
  451. package/dist/os/spec/live-spec-validate.d.ts.map +0 -1
  452. package/dist/os/spec/live-spec-validate.js +0 -140
  453. package/dist/os/spec/live-spec-validate.js.map +0 -1
  454. package/dist/os/spec/spec-materialize.d.ts +0 -21
  455. package/dist/os/spec/spec-materialize.d.ts.map +0 -1
  456. package/dist/os/spec/spec-materialize.js +0 -342
  457. package/dist/os/spec/spec-materialize.js.map +0 -1
  458. package/dist/os/spec/spec-schema.d.ts +0 -126
  459. package/dist/os/spec/spec-schema.d.ts.map +0 -1
  460. package/dist/os/spec/spec-schema.js +0 -118
  461. package/dist/os/spec/spec-schema.js.map +0 -1
  462. package/dist/os/spec/spec-status.d.ts +0 -33
  463. package/dist/os/spec/spec-status.d.ts.map +0 -1
  464. package/dist/os/spec/spec-status.js +0 -228
  465. package/dist/os/spec/spec-status.js.map +0 -1
  466. package/dist/os/spec/spec-validate.d.ts +0 -4
  467. package/dist/os/spec/spec-validate.d.ts.map +0 -1
  468. package/dist/os/spec/spec-validate.js +0 -435
  469. package/dist/os/spec/spec-validate.js.map +0 -1
  470. package/dist/os/spec/spec.module.d.ts +0 -3
  471. package/dist/os/spec/spec.module.d.ts.map +0 -1
  472. package/dist/os/spec/spec.module.js +0 -120
  473. package/dist/os/spec/spec.module.js.map +0 -1
  474. package/dist/os/werkstatt/handlers/lock.d.ts +0 -10
  475. package/dist/os/werkstatt/handlers/lock.d.ts.map +0 -1
  476. package/dist/os/werkstatt/handlers/lock.js +0 -153
  477. package/dist/os/werkstatt/handlers/lock.js.map +0 -1
  478. package/dist/os/werkstatt/handlers/schema.d.ts +0 -33
  479. package/dist/os/werkstatt/handlers/schema.d.ts.map +0 -1
  480. package/dist/os/werkstatt/handlers/schema.js +0 -42
  481. package/dist/os/werkstatt/handlers/schema.js.map +0 -1
  482. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts +0 -15
  483. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +0 -1
  484. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +0 -152
  485. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +0 -1
  486. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts +0 -18
  487. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +0 -1
  488. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +0 -51
  489. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +0 -1
  490. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts +0 -11
  491. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +0 -1
  492. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +0 -79
  493. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +0 -1
  494. package/dist/os/werkstatt/handlers/workspace-deps.d.ts +0 -12
  495. package/dist/os/werkstatt/handlers/workspace-deps.d.ts.map +0 -1
  496. package/dist/os/werkstatt/handlers/workspace-deps.js +0 -42
  497. package/dist/os/werkstatt/handlers/workspace-deps.js.map +0 -1
  498. package/dist/os/werkstatt/index.d.ts +0 -7
  499. package/dist/os/werkstatt/index.d.ts.map +0 -1
  500. package/dist/os/werkstatt/index.js +0 -18
  501. package/dist/os/werkstatt/index.js.map +0 -1
  502. package/dist/os/werkstatt/werkstatt.module.d.ts +0 -3
  503. package/dist/os/werkstatt/werkstatt.module.d.ts.map +0 -1
  504. package/dist/os/werkstatt/werkstatt.module.js +0 -59
  505. package/dist/os/werkstatt/werkstatt.module.js.map +0 -1
  506. package/dist/os/workflow/handlers.d.ts +0 -12
  507. package/dist/os/workflow/handlers.d.ts.map +0 -1
  508. package/dist/os/workflow/handlers.js +0 -262
  509. package/dist/os/workflow/handlers.js.map +0 -1
  510. package/dist/os/workflow/index.d.ts +0 -4
  511. package/dist/os/workflow/index.d.ts.map +0 -1
  512. package/dist/os/workflow/index.js +0 -18
  513. package/dist/os/workflow/index.js.map +0 -1
  514. package/dist/os/workflow/types.d.ts +0 -69
  515. package/dist/os/workflow/types.d.ts.map +0 -1
  516. package/dist/os/workflow/types.js +0 -23
  517. package/dist/os/workflow/types.js.map +0 -1
  518. package/dist/os/workflow/workflow.module.d.ts +0 -3
  519. package/dist/os/workflow/workflow.module.d.ts.map +0 -1
  520. package/dist/os/workflow/workflow.module.js +0 -49
  521. package/dist/os/workflow/workflow.module.js.map +0 -1
  522. package/dist/src/cli-output.d.ts +0 -5
  523. package/dist/src/cli-output.d.ts.map +0 -1
  524. package/dist/src/cli-output.js +0 -53
  525. package/dist/src/cli-output.js.map +0 -1
  526. package/dist/src/compass/contract-registry.d.ts +0 -7
  527. package/dist/src/compass/contract-registry.d.ts.map +0 -1
  528. package/dist/src/compass/contract-registry.js +0 -93
  529. package/dist/src/compass/contract-registry.js.map +0 -1
  530. package/dist/src/compass/types.d.ts +0 -28
  531. package/dist/src/compass/types.d.ts.map +0 -1
  532. package/dist/src/compass/types.js +0 -14
  533. package/dist/src/compass/types.js.map +0 -1
  534. package/dist/src/config/forge-config.d.ts +0 -242
  535. package/dist/src/config/forge-config.d.ts.map +0 -1
  536. package/dist/src/config/forge-config.js +0 -363
  537. package/dist/src/config/forge-config.js.map +0 -1
  538. package/dist/src/forge-module.d.ts +0 -17
  539. package/dist/src/forge-module.d.ts.map +0 -1
  540. package/dist/src/forge-module.js +0 -16
  541. package/dist/src/forge-module.js.map +0 -1
  542. package/dist/src/index.d.ts +0 -39
  543. package/dist/src/index.d.ts.map +0 -1
  544. package/dist/src/index.js +0 -59
  545. package/dist/src/index.js.map +0 -1
  546. package/dist/src/knowledge/budgets.d.ts +0 -38
  547. package/dist/src/knowledge/budgets.d.ts.map +0 -1
  548. package/dist/src/knowledge/budgets.js +0 -157
  549. package/dist/src/knowledge/budgets.js.map +0 -1
  550. package/dist/src/knowledge/compact.d.ts +0 -47
  551. package/dist/src/knowledge/compact.d.ts.map +0 -1
  552. package/dist/src/knowledge/compact.js +0 -320
  553. package/dist/src/knowledge/compact.js.map +0 -1
  554. package/dist/src/knowledge/index.d.ts +0 -7
  555. package/dist/src/knowledge/index.d.ts.map +0 -1
  556. package/dist/src/knowledge/index.js +0 -19
  557. package/dist/src/knowledge/index.js.map +0 -1
  558. package/dist/src/knowledge/parse.d.ts +0 -3
  559. package/dist/src/knowledge/parse.d.ts.map +0 -1
  560. package/dist/src/knowledge/parse.js +0 -205
  561. package/dist/src/knowledge/parse.js.map +0 -1
  562. package/dist/src/knowledge/promote.d.ts +0 -37
  563. package/dist/src/knowledge/promote.d.ts.map +0 -1
  564. package/dist/src/knowledge/promote.js +0 -120
  565. package/dist/src/knowledge/promote.js.map +0 -1
  566. package/dist/src/knowledge/schema.d.ts +0 -61
  567. package/dist/src/knowledge/schema.d.ts.map +0 -1
  568. package/dist/src/knowledge/schema.js +0 -64
  569. package/dist/src/knowledge/schema.js.map +0 -1
  570. package/dist/src/knowledge/serialize.d.ts +0 -3
  571. package/dist/src/knowledge/serialize.d.ts.map +0 -1
  572. package/dist/src/knowledge/serialize.js +0 -67
  573. package/dist/src/knowledge/serialize.js.map +0 -1
  574. package/dist/src/migration-adapters/git-utils.d.ts +0 -3
  575. package/dist/src/migration-adapters/git-utils.d.ts.map +0 -1
  576. package/dist/src/migration-adapters/git-utils.js +0 -64
  577. package/dist/src/migration-adapters/git-utils.js.map +0 -1
  578. package/dist/src/migration-adapters/ignored-files.d.ts +0 -12
  579. package/dist/src/migration-adapters/ignored-files.d.ts.map +0 -1
  580. package/dist/src/migration-adapters/ignored-files.js +0 -190
  581. package/dist/src/migration-adapters/ignored-files.js.map +0 -1
  582. package/dist/src/migration-adapters/index.d.ts +0 -8
  583. package/dist/src/migration-adapters/index.d.ts.map +0 -1
  584. package/dist/src/migration-adapters/index.js +0 -17
  585. package/dist/src/migration-adapters/index.js.map +0 -1
  586. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts +0 -3
  587. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts.map +0 -1
  588. package/dist/src/migration-adapters/node-typescript-pnpm/index.js +0 -141
  589. package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +0 -1
  590. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts +0 -3
  591. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts.map +0 -1
  592. package/dist/src/migration-adapters/phaser-pnpm/index.js +0 -142
  593. package/dist/src/migration-adapters/phaser-pnpm/index.js.map +0 -1
  594. package/dist/src/migration-adapters/registry.d.ts +0 -6
  595. package/dist/src/migration-adapters/registry.d.ts.map +0 -1
  596. package/dist/src/migration-adapters/registry.js +0 -55
  597. package/dist/src/migration-adapters/registry.js.map +0 -1
  598. package/dist/src/migration-adapters/types.d.ts +0 -35
  599. package/dist/src/migration-adapters/types.d.ts.map +0 -1
  600. package/dist/src/migration-adapters/types.js +0 -31
  601. package/dist/src/migration-adapters/types.js.map +0 -1
  602. package/dist/src/onboarding/agents-generate.d.ts +0 -31
  603. package/dist/src/onboarding/agents-generate.d.ts.map +0 -1
  604. package/dist/src/onboarding/agents-generate.js +0 -372
  605. package/dist/src/onboarding/agents-generate.js.map +0 -1
  606. package/dist/src/onboarding/create.d.ts +0 -12
  607. package/dist/src/onboarding/create.d.ts.map +0 -1
  608. package/dist/src/onboarding/create.js +0 -389
  609. package/dist/src/onboarding/create.js.map +0 -1
  610. package/dist/src/onboarding/doctor.d.ts +0 -45
  611. package/dist/src/onboarding/doctor.d.ts.map +0 -1
  612. package/dist/src/onboarding/doctor.js +0 -1190
  613. package/dist/src/onboarding/doctor.js.map +0 -1
  614. package/dist/src/onboarding/init.d.ts +0 -36
  615. package/dist/src/onboarding/init.d.ts.map +0 -1
  616. package/dist/src/onboarding/init.js +0 -362
  617. package/dist/src/onboarding/init.js.map +0 -1
  618. package/dist/src/onboarding/invariant-engine.d.ts +0 -17
  619. package/dist/src/onboarding/invariant-engine.d.ts.map +0 -1
  620. package/dist/src/onboarding/invariant-engine.js +0 -416
  621. package/dist/src/onboarding/invariant-engine.js.map +0 -1
  622. package/dist/src/onboarding/memory-scaffold.d.ts +0 -18
  623. package/dist/src/onboarding/memory-scaffold.d.ts.map +0 -1
  624. package/dist/src/onboarding/memory-scaffold.js +0 -151
  625. package/dist/src/onboarding/memory-scaffold.js.map +0 -1
  626. package/dist/src/onboarding/nested-agents-generate.d.ts +0 -18
  627. package/dist/src/onboarding/nested-agents-generate.d.ts.map +0 -1
  628. package/dist/src/onboarding/nested-agents-generate.js +0 -69
  629. package/dist/src/onboarding/nested-agents-generate.js.map +0 -1
  630. package/dist/src/onboarding/nested-agents-templates.d.ts +0 -26
  631. package/dist/src/onboarding/nested-agents-templates.d.ts.map +0 -1
  632. package/dist/src/onboarding/nested-agents-templates.js +0 -178
  633. package/dist/src/onboarding/nested-agents-templates.js.map +0 -1
  634. package/dist/src/onboarding/profile-validate.d.ts +0 -13
  635. package/dist/src/onboarding/profile-validate.d.ts.map +0 -1
  636. package/dist/src/onboarding/profile-validate.js +0 -109
  637. package/dist/src/onboarding/profile-validate.js.map +0 -1
  638. package/dist/src/onboarding/scaffold-project.d.ts +0 -12
  639. package/dist/src/onboarding/scaffold-project.d.ts.map +0 -1
  640. package/dist/src/onboarding/scaffold-project.js +0 -264
  641. package/dist/src/onboarding/scaffold-project.js.map +0 -1
  642. package/dist/src/onboarding/scaffold.d.ts +0 -15
  643. package/dist/src/onboarding/scaffold.d.ts.map +0 -1
  644. package/dist/src/onboarding/scaffold.js +0 -121
  645. package/dist/src/onboarding/scaffold.js.map +0 -1
  646. package/dist/src/onboarding/upgrade.d.ts +0 -27
  647. package/dist/src/onboarding/upgrade.d.ts.map +0 -1
  648. package/dist/src/onboarding/upgrade.js +0 -453
  649. package/dist/src/onboarding/upgrade.js.map +0 -1
  650. package/dist/src/onboarding/workspace-discovery.d.ts +0 -11
  651. package/dist/src/onboarding/workspace-discovery.d.ts.map +0 -1
  652. package/dist/src/onboarding/workspace-discovery.js +0 -138
  653. package/dist/src/onboarding/workspace-discovery.js.map +0 -1
  654. package/dist/src/plugin/ForgePluginManifest.d.ts +0 -38
  655. package/dist/src/plugin/ForgePluginManifest.d.ts.map +0 -1
  656. package/dist/src/plugin/ForgePluginManifest.js +0 -52
  657. package/dist/src/plugin/ForgePluginManifest.js.map +0 -1
  658. package/dist/src/profiles/profile-schema.d.ts +0 -361
  659. package/dist/src/profiles/profile-schema.d.ts.map +0 -1
  660. package/dist/src/profiles/profile-schema.js +0 -208
  661. package/dist/src/profiles/profile-schema.js.map +0 -1
  662. package/dist/src/profiles/stack-profile.d.ts +0 -173
  663. package/dist/src/profiles/stack-profile.d.ts.map +0 -1
  664. package/dist/src/profiles/stack-profile.js +0 -148
  665. package/dist/src/profiles/stack-profile.js.map +0 -1
  666. package/dist/src/profiles/terminology-utils.d.ts +0 -8
  667. package/dist/src/profiles/terminology-utils.d.ts.map +0 -1
  668. package/dist/src/profiles/terminology-utils.js +0 -31
  669. package/dist/src/profiles/terminology-utils.js.map +0 -1
  670. package/dist/src/registry.d.ts +0 -38
  671. package/dist/src/registry.d.ts.map +0 -1
  672. package/dist/src/registry.js +0 -174
  673. package/dist/src/registry.js.map +0 -1
  674. package/dist/src/skill-schema.d.ts +0 -30
  675. package/dist/src/skill-schema.d.ts.map +0 -1
  676. package/dist/src/skill-schema.js +0 -34
  677. package/dist/src/skill-schema.js.map +0 -1
  678. package/dist/src/types.d.ts +0 -154
  679. package/dist/src/types.d.ts.map +0 -1
  680. package/dist/src/types.js +0 -17
  681. package/dist/src/types.js.map +0 -1
  682. package/dist/src/utils/fs-atomic.d.ts +0 -7
  683. package/dist/src/utils/fs-atomic.d.ts.map +0 -1
  684. package/dist/src/utils/fs-atomic.js +0 -81
  685. package/dist/src/utils/fs-atomic.js.map +0 -1
  686. package/dist/src/utils/fs-idempotent.d.ts +0 -2
  687. package/dist/src/utils/fs-idempotent.d.ts.map +0 -1
  688. package/dist/src/utils/fs-idempotent.js +0 -39
  689. package/dist/src/utils/fs-idempotent.js.map +0 -1
  690. package/dist/src/utils/fs-trash-sync.d.ts +0 -2
  691. package/dist/src/utils/fs-trash-sync.d.ts.map +0 -1
  692. package/dist/src/utils/fs-trash-sync.js +0 -34
  693. package/dist/src/utils/fs-trash-sync.js.map +0 -1
  694. package/dist/src/utils/fs-trash.d.ts +0 -2
  695. package/dist/src/utils/fs-trash.d.ts.map +0 -1
  696. package/dist/src/utils/fs-trash.js +0 -24
  697. package/dist/src/utils/fs-trash.js.map +0 -1
  698. package/dist/src/utils/fs.d.ts +0 -8
  699. package/dist/src/utils/fs.d.ts.map +0 -1
  700. package/dist/src/utils/fs.js +0 -60
  701. package/dist/src/utils/fs.js.map +0 -1
  702. package/dist/src/utils/generated-marker.d.ts +0 -21
  703. package/dist/src/utils/generated-marker.d.ts.map +0 -1
  704. package/dist/src/utils/generated-marker.js +0 -128
  705. package/dist/src/utils/generated-marker.js.map +0 -1
  706. package/dist/src/utils/hash.d.ts +0 -2
  707. package/dist/src/utils/hash.d.ts.map +0 -1
  708. package/dist/src/utils/hash.js +0 -18
  709. package/dist/src/utils/hash.js.map +0 -1
  710. package/dist/src/utils/index.d.ts +0 -9
  711. package/dist/src/utils/index.d.ts.map +0 -1
  712. package/dist/src/utils/index.js +0 -21
  713. package/dist/src/utils/index.js.map +0 -1
  714. package/dist/src/utils/string-utils.d.ts +0 -2
  715. package/dist/src/utils/string-utils.d.ts.map +0 -1
  716. package/dist/src/utils/string-utils.js +0 -19
  717. package/dist/src/utils/string-utils.js.map +0 -1
  718. package/dist/src/validators/note-frontmatter-validate.d.ts +0 -20
  719. package/dist/src/validators/note-frontmatter-validate.d.ts.map +0 -1
  720. package/dist/src/validators/note-frontmatter-validate.js +0 -117
  721. package/dist/src/validators/note-frontmatter-validate.js.map +0 -1
  722. package/dist/src/validators/note-link-validate.d.ts +0 -21
  723. package/dist/src/validators/note-link-validate.d.ts.map +0 -1
  724. package/dist/src/validators/note-link-validate.js +0 -121
  725. package/dist/src/validators/note-link-validate.js.map +0 -1
  726. package/dist/src/validators/note-orphan-detect.d.ts +0 -19
  727. package/dist/src/validators/note-orphan-detect.d.ts.map +0 -1
  728. package/dist/src/validators/note-orphan-detect.js +0 -123
  729. package/dist/src/validators/note-orphan-detect.js.map +0 -1
  730. package/dist/src/validators/port-validate.d.ts +0 -12
  731. package/dist/src/validators/port-validate.d.ts.map +0 -1
  732. package/dist/src/validators/port-validate.js +0 -78
  733. package/dist/src/validators/port-validate.js.map +0 -1
  734. package/dist/src/validators/skill-validate.d.ts +0 -29
  735. package/dist/src/validators/skill-validate.d.ts.map +0 -1
  736. package/dist/src/validators/skill-validate.js +0 -689
  737. package/dist/src/validators/skill-validate.js.map +0 -1
@@ -1,836 +0,0 @@
1
- /*
2
- <MODULE_CONTRACT>
3
- <purpose>Register the core forge onboarding, scaffold, and validation commands with the kernel registry.</purpose>
4
- <non-goals>
5
- <item>Do not implement handler logic here — delegate to src/ handlers.</item>
6
- </non-goals>
7
- </MODULE_CONTRACT>
8
- <CHANGE_SUMMARY>
9
- <item>RFC-0374: initial forgeCoreModule registering 4 forge commands.</item>
10
- <item>RFC-0521: register docs.archive umbrella command dispatching to rfc/adr/plan/audit archive commands.</item>
11
- <item>RFC-0539: extended forge.skill.list to include pack skills with pack column.</item>
12
- <item>RFC-0542: populate nextSteps in forge.init, forge.scaffold, forge.doctor, forge.port.scaffold results.</item>
13
- <item>RFC-0543: register forge.upgrade command for additive consumer sync.</item>
14
- <item>RFC-0544: register forge.create command composing scaffold + init.</item>
15
- <item>RFC-0544 fix: simplify createWrapper — runCreate already populates nextSteps.</item>
16
- <item>RFC-0546: remove forge.init CLI registration; runInit() remains as internal primitive called by forge.create.</item>
17
- <item>RFC-0640: register forge.profile.validate command, add --strict flag to forge.doctor.</item>
18
- <item>RFC-0662: register forge.skill.knowledge.compact command for skill knowledge lifecycle compaction.</item>
19
- <item>RFC-0674: register forge.dev, forge.build, forge.validate lifecycle commands.</item>
20
- <item>RFC-0678: register forge.determinism.check lifecycle command.</item>
21
- <item>RFC-0679: register forge.assets.list, forge.assets.check commands.</item>
22
- <item>RFC-0680: register forge.release.prepare, forge.release.publish commands.</item>
23
- <item>ADR-0021: profile-driven video lifecycle — all lifecycle commands read behavior from profile YAML, zero domain-specific code in Forge source.</item>
24
- <item>RFC-0711: docs.archive post-loop step calls spec.live.merge for implemented RFCs with liveSpec field; skips rejected RFCs.</item>
25
- <item>RFC-0733: register forge pinned.validate and forge pinned.init commands for pinned-files protection system.</item>
26
- <item>Lockfile safety net: docs.archive post-loop refreshes pnpm-lock.yaml after mission workpiece moves.</item>
27
- <item>RFC-0877: forge.create --in-place required, --profile required, --name optional (derived from folder), strict empty-directory check (only .git/ tolerated).</item>
28
- <item>RFC-0940: register forge.autonomy.validate command enforcing FORGE-AUTONOMY-01 (no @warpgogol/werkstatt-engine imports outside os/werkstatt/).</item>
29
- </CHANGE_SUMMARY>
30
- */
31
- import path from "node:path";
32
- import { FORGE_SKILLS, discoverPackSkills, } from "../../src/registry.js";
33
- import { loadForgeConfig } from "../../src/config/forge-config.js";
34
- export const forgeCoreModule = {
35
- name: "forge-core",
36
- version: "0.1.0",
37
- runtime: "autonomous",
38
- async register(registry) {
39
- const { runScaffold } = await import("../../src/onboarding/scaffold.js");
40
- const { runSkillValidate } = await import("../../src/validators/skill-validate.js");
41
- const { runPortValidate } = await import("../../src/validators/port-validate.js");
42
- const { runDoctor } = await import("../../src/onboarding/doctor.js");
43
- const { runAgentsGenerate } = await import("../../src/onboarding/agents-generate.js");
44
- const { runScaffoldProject } = await import("../../src/onboarding/scaffold-project.js");
45
- const { runUpgrade } = await import("../../src/onboarding/upgrade.js");
46
- const { runCreate } = await import("../../src/onboarding/create.js");
47
- const { runProfileValidate } = await import("../../src/onboarding/profile-validate.js");
48
- const { runDev } = await import("./handlers/dev.js");
49
- const { runBuild } = await import("./handlers/build.js");
50
- const { runValidate } = await import("./handlers/validate.js");
51
- const { runPinnedValidate } = await import("./handlers/pinned-validate.js");
52
- const { runPinnedInit } = await import("./handlers/pinned-init.js");
53
- const scaffoldWrapper = async (input, context) => {
54
- const result = runScaffold(input, context);
55
- const nextSteps = result.status === "pass"
56
- ? [
57
- { action: "Edit the scaffolded SKILL.md to implement your skill", kind: "required" },
58
- { action: "Run forge.skill.validate to check compliance", kind: "optional" },
59
- ]
60
- : [{ action: "Fix the errors above and re-run forge.port.scaffold", kind: "required" }];
61
- return {
62
- data: result,
63
- nextSteps,
64
- exitCode: result.status === "pass" ? 0 : 1,
65
- summary: result.status === "pass"
66
- ? `[forge.port.scaffold] OK — ${result.created.length} files created`
67
- : undefined,
68
- };
69
- };
70
- const skillValidateWrapper = async (_input, context) => {
71
- const result = runSkillValidate({ flags: {} }, context);
72
- return {
73
- data: result,
74
- exitCode: result.status === "pass" ? 0 : 1,
75
- summary: result.status === "pass" ? `[forge.skill.validate] OK — 0 violations` : undefined,
76
- };
77
- };
78
- const portValidateWrapper = async (input, context) => {
79
- const result = runPortValidate(input, context);
80
- return {
81
- data: result,
82
- exitCode: result.status === "pass" ? 0 : 1,
83
- summary: result.status === "pass" ? `[forge.port.validate] OK — 0 violations` : undefined,
84
- };
85
- };
86
- const skillListWrapper = async (_input, context) => {
87
- const forgeSkills = FORGE_SKILLS;
88
- // RFC-0539: Include pack skills from declared skillPacks
89
- let packSkills = [];
90
- try {
91
- const config = loadForgeConfig(context.workspaceRoot);
92
- packSkills = discoverPackSkills(context.workspaceRoot, config);
93
- }
94
- catch {
95
- // Config not found or invalid — skip pack skills
96
- }
97
- const skills = [...forgeSkills, ...packSkills];
98
- const result = {
99
- data: { command: "forge.skill.list", skills, count: skills.length },
100
- exitCode: 0,
101
- summary: `forge.skill.list: ${skills.length} skill(s) registered (${forgeSkills.length} forge + ${packSkills.length} pack)`,
102
- };
103
- if (context.outputFormat === "pretty") {
104
- context.logger.section(`Forge Skills (${skills.length})`);
105
- for (const skill of forgeSkills) {
106
- context.logger.info(`${skill.name} [${skill.category}] — ${skill.invocation}/${skill.concerns}`);
107
- }
108
- for (const skill of packSkills) {
109
- context.logger.info(`${skill.name} [pack:${skill.pack}]`);
110
- }
111
- }
112
- return result;
113
- };
114
- const doctorWrapper = async (input, context) => {
115
- const result = await runDoctor(input, context);
116
- const allPass = result.data?.allPass === true;
117
- const nextSteps = allPass
118
- ? []
119
- : [{ action: "Fix the violations above and re-run forge.doctor", kind: "required" }];
120
- return { ...result, nextSteps };
121
- };
122
- registry.registerCommand({
123
- name: "forge.doctor",
124
- description: "Diagnose forge state in an existing project.",
125
- scope: "workspace",
126
- supportsAllSites: false,
127
- flags: {
128
- strict: {
129
- kind: "boolean",
130
- description: "Elevate domain invariant warnings to errors (RFC-0640).",
131
- },
132
- },
133
- cacheable: false,
134
- execute: doctorWrapper,
135
- });
136
- registry.registerCommand({
137
- name: "forge.port.scaffold",
138
- description: "Generate a skeleton for a new forge skill or command.",
139
- scope: "workspace",
140
- supportsAllSites: false,
141
- flags: {
142
- name: { kind: "string", description: "Skill or command name (kebab-case)." },
143
- type: { kind: "string", description: "Type: 'skill' or 'command' (default: skill)." },
144
- },
145
- cacheable: false,
146
- execute: scaffoldWrapper,
147
- });
148
- registry.registerCommand({
149
- name: "forge.skill.validate",
150
- description: "Validate all forge skills against frontmatter contract and invariants SKILL-01..SKILL-20.",
151
- scope: "workspace",
152
- supportsAllSites: false,
153
- flags: {},
154
- reads: ["packages/forge/src/**/*.ts", "packages/forge/os/**/*.ts"],
155
- execute: skillValidateWrapper,
156
- });
157
- registry.registerCommand({
158
- name: "forge.skill.list",
159
- description: "List all registered forge skills.",
160
- scope: "workspace",
161
- supportsAllSites: false,
162
- flags: {},
163
- reads: ["packages/forge/src/registry.ts"],
164
- execute: skillListWrapper,
165
- });
166
- registry.registerCommand({
167
- name: "forge.port.validate",
168
- description: "Validate a single ported skill or command for compliance with forge contracts.",
169
- scope: "workspace",
170
- supportsAllSites: false,
171
- flags: {
172
- name: { kind: "string", description: "Skill or command name to validate." },
173
- },
174
- reads: ["packages/forge/src/**/*.ts", "packages/forge/os/**/*.ts"],
175
- execute: portValidateWrapper,
176
- });
177
- registry.registerCommand({
178
- name: "forge.agents.generate",
179
- description: "Regenerate AGENTS.md deterministically from forge.yaml and the skill registry.",
180
- scope: "workspace",
181
- supportsAllSites: false,
182
- flags: {},
183
- cacheable: false,
184
- execute: runAgentsGenerate,
185
- });
186
- // ── forge.upgrade ───────────────────────────────────────────────────────
187
- registry.registerCommand({
188
- name: "forge.upgrade",
189
- description: "Additive sync for npm consumers: refresh .agents/skills/ from installed forge, add missing binding defaults, update forge.syncedVersion, run doctor.",
190
- scope: "workspace",
191
- supportsAllSites: false,
192
- flags: {
193
- "dry-run": {
194
- kind: "boolean",
195
- description: "Preview what would change without writing files.",
196
- },
197
- "update-npm": {
198
- kind: "boolean",
199
- description: "Update @warpgogol/forge from npm before syncing. Skipped in monorepo (local package).",
200
- },
201
- },
202
- writes: [".agents/skills/**", "forge.yaml"],
203
- reads: ["forge.yaml", "packages/forge/skills/**", "packages/forge/package.json"],
204
- cacheable: false,
205
- execute: runUpgrade,
206
- });
207
- registry.registerCommand({
208
- name: "forge.scaffold",
209
- description: "Create a working pnpm + Turborepo monorepo from a stack profile in an empty directory.",
210
- scope: "workspace",
211
- supportsAllSites: false,
212
- flags: {
213
- profile: {
214
- kind: "string",
215
- required: true,
216
- description: "Stack profile id (e.g. phaser-turborepo).",
217
- },
218
- name: { kind: "string", required: true, description: "Project name (kebab-case)." },
219
- template: {
220
- kind: "string",
221
- required: false,
222
- description: "Template id for multi-template profiles (e.g. react, html).",
223
- },
224
- },
225
- cacheable: false,
226
- execute: runScaffoldProject,
227
- });
228
- // ── forge.create ─────────────────────────────────────────────────────────
229
- const createWrapper = async (input, context) => {
230
- return runCreate(input, context);
231
- };
232
- registry.registerCommand({
233
- name: "forge.create",
234
- description: "Create a forge project in-place: scaffold + init + binding defaults. The target directory must be empty (only .git/ tolerated). Usage: forge create --in-place --profile <profile-id> [--name <name>] [--package-manager pnpm]",
235
- scope: "workspace",
236
- supportsAllSites: false,
237
- flags: {
238
- "in-place": {
239
- kind: "boolean",
240
- required: true,
241
- description: "Scaffold in the current directory (no subdirectory). Required.",
242
- },
243
- profile: {
244
- kind: "string",
245
- required: true,
246
- description: "Stack profile id. Required. Available: forge-shell, phaser-turborepo, godot-csharp.",
247
- },
248
- name: {
249
- kind: "string",
250
- required: false,
251
- description: "Project name override. If omitted, derived from the current folder name.",
252
- },
253
- "package-manager": {
254
- kind: "string",
255
- description: "Package manager to write into forge.yaml (default: pnpm).",
256
- },
257
- template: {
258
- kind: "string",
259
- description: "Template id for multi-template profiles (e.g. react, html).",
260
- },
261
- },
262
- cacheable: false,
263
- execute: createWrapper,
264
- });
265
- // ── forge.init (hidden, for recovery after partial create failure) ────────
266
- const { runInit } = await import("../../src/onboarding/init.js");
267
- const initWrapper = async (input, context) => {
268
- const result = runInit({
269
- flags: input.flags,
270
- }, context);
271
- return {
272
- data: result,
273
- exitCode: result.status === "pass" ? 0 : 1,
274
- summary: result.status === "pass"
275
- ? `[forge.init] OK — ${result.created.length} created, ${result.skipped.length} skipped`
276
- : undefined,
277
- };
278
- };
279
- registry.registerCommand({
280
- name: "forge.init",
281
- description: "Deploy forge into a project: create forge.yaml, PREFERENCES.md, copy skills, create docs dirs. Hidden recovery command — normally called by forge.create.",
282
- scope: "workspace",
283
- supportsAllSites: false,
284
- hidden: true,
285
- flags: {
286
- "ai-language": { kind: "string", description: "AI communication language (default: en)." },
287
- "documentation-language": {
288
- kind: "string",
289
- description: "Documentation language (default: en).",
290
- },
291
- from: { kind: "string", description: "Detect stack from existing project path." },
292
- },
293
- cacheable: false,
294
- execute: initWrapper,
295
- });
296
- // ── forge.profile.validate (RFC-0640) ────────────────────────────────────
297
- const profileValidateWrapper = async (input, context) => {
298
- const result = await runProfileValidate(input, context);
299
- const nextSteps = result.data?.valid === true
300
- ? []
301
- : [{ action: "Fix the profile validation errors above", kind: "required" }];
302
- return { ...result, nextSteps };
303
- };
304
- registry.registerCommand({
305
- name: "forge.profile.validate",
306
- description: "Validate profile YAML files under packages/forge/profiles/ against the stack-profile schema (RFC-0640).",
307
- scope: "workspace",
308
- supportsAllSites: false,
309
- flags: {
310
- id: {
311
- kind: "string",
312
- description: "Validate only the profile with this id.",
313
- },
314
- },
315
- reads: ["packages/forge/profiles/*.yaml"],
316
- cacheable: false,
317
- execute: profileValidateWrapper,
318
- });
319
- // ── forge.dev (RFC-0674) ──────────────────────────────────────────────────
320
- registry.registerCommand({
321
- name: "forge.dev",
322
- description: "Start the dev/preview server declared in the active stack profile. Use --dry-run to print the resolved command without executing.",
323
- scope: "workspace",
324
- supportsAllSites: false,
325
- longRunning: true,
326
- flags: {
327
- "dry-run": {
328
- kind: "boolean",
329
- description: "Print the resolved dev server command without executing.",
330
- },
331
- profile: {
332
- kind: "string",
333
- description: "Override the active profile id.",
334
- },
335
- },
336
- reads: ["forge.yaml", "packages/forge/profiles/*.yaml"],
337
- cacheable: false,
338
- execute: runDev,
339
- });
340
- // ── forge.build (RFC-0674) ────────────────────────────────────────────────
341
- registry.registerCommand({
342
- name: "forge.build",
343
- description: "Execute produce commands for all artifacts declared in the active stack profile. Use --dry-run to print resolved commands.",
344
- scope: "workspace",
345
- supportsAllSites: false,
346
- flags: {
347
- "dry-run": {
348
- kind: "boolean",
349
- description: "Print resolved produce commands without executing.",
350
- },
351
- profile: {
352
- kind: "string",
353
- description: "Override the active profile id.",
354
- },
355
- },
356
- reads: ["forge.yaml", "packages/forge/profiles/*.yaml"],
357
- cacheable: false,
358
- execute: runBuild,
359
- });
360
- // ── forge.validate (RFC-0674, RFC-0677) ───────────────────────────────────
361
- registry.registerCommand({
362
- name: "forge.validate",
363
- description: "Execute validate commands for all artifacts declared in the active stack profile. Use --dry-run to print resolved commands. Use --artifact to validate a single artifact.",
364
- scope: "workspace",
365
- supportsAllSites: false,
366
- flags: {
367
- "dry-run": {
368
- kind: "boolean",
369
- description: "Print resolved validate commands without executing.",
370
- },
371
- profile: {
372
- kind: "string",
373
- description: "Override the active profile id.",
374
- },
375
- artifact: {
376
- kind: "string",
377
- description: "Validate only the specified artifact id.",
378
- },
379
- },
380
- reads: ["forge.yaml", "packages/forge/profiles/*.yaml"],
381
- cacheable: false,
382
- execute: runValidate,
383
- });
384
- // ── forge.determinism.check (RFC-0678) ─────────────────────────────────────
385
- const { runDeterminismCheck } = await import("./handlers/determinism-check.js");
386
- registry.registerCommand({
387
- name: "forge.determinism.check",
388
- description: "Verify artifact determinism by building twice and comparing output hashes. Reads determinism.inputs glob patterns from the active stack profile. Use --dry-run to print resolved inputs, --artifact to check a single artifact.",
389
- scope: "workspace",
390
- supportsAllSites: false,
391
- flags: {
392
- "dry-run": {
393
- kind: "boolean",
394
- description: "Print resolved determinism inputs without executing builds.",
395
- },
396
- profile: {
397
- kind: "string",
398
- description: "Override the active profile id.",
399
- },
400
- artifact: {
401
- kind: "string",
402
- description: "Check only the specified artifact id.",
403
- },
404
- },
405
- reads: ["forge.yaml", "packages/forge/profiles/*.yaml", "dist/.determinism-cache.json"],
406
- writes: ["dist/.determinism-cache.json"],
407
- cacheable: false,
408
- execute: runDeterminismCheck,
409
- });
410
- // ── forge.assets.list (RFC-0679) ───────────────────────────────────────────
411
- const { runAssetsList } = await import("./handlers/assets-list.js");
412
- registry.registerCommand({
413
- name: "forge.assets.list",
414
- description: "List all assets declared in the active stack profile, grouped by type. Use --dry-run to skip hashing, --type to filter by asset type.",
415
- scope: "workspace",
416
- supportsAllSites: false,
417
- flags: {
418
- "dry-run": {
419
- kind: "boolean",
420
- description: "List assets without computing hashes.",
421
- },
422
- profile: {
423
- kind: "string",
424
- description: "Override the active profile id.",
425
- },
426
- type: {
427
- kind: "string",
428
- description: "Filter assets by type id (e.g. video, audio, image).",
429
- },
430
- },
431
- reads: ["forge.yaml", "packages/forge/profiles/*.yaml", "assets/**"],
432
- cacheable: false,
433
- execute: runAssetsList,
434
- });
435
- // ── forge.assets.check (RFC-0679) ──────────────────────────────────────────
436
- const { runAssetsCheck } = await import("./handlers/assets-check.js");
437
- registry.registerCommand({
438
- name: "forge.assets.check",
439
- description: "Check for missing, orphaned, and unreferenced assets. Use --strict to fail on orphaned assets, --dry-run to skip hashing.",
440
- scope: "workspace",
441
- supportsAllSites: false,
442
- flags: {
443
- "dry-run": {
444
- kind: "boolean",
445
- description: "Check file existence without computing hashes.",
446
- },
447
- strict: {
448
- kind: "boolean",
449
- description: "Exit non-zero when orphaned assets are found.",
450
- },
451
- profile: {
452
- kind: "string",
453
- description: "Override the active profile id.",
454
- },
455
- },
456
- reads: ["forge.yaml", "packages/forge/profiles/*.yaml", "assets/**"],
457
- cacheable: false,
458
- execute: runAssetsCheck,
459
- });
460
- // ── forge.release.prepare (RFC-0680) ────────────────────────────────────────
461
- const { runReleasePrepare } = await import("./handlers/release-prepare.js");
462
- registry.registerCommand({
463
- name: "forge.release.prepare",
464
- description: "Bundle built artifacts into a release package with a manifest. Use --dry-run to preview without writing.",
465
- scope: "workspace",
466
- supportsAllSites: false,
467
- flags: {
468
- "dry-run": {
469
- kind: "boolean",
470
- description: "Print the resolved release steps without executing.",
471
- },
472
- profile: {
473
- kind: "string",
474
- description: "Override the active profile id.",
475
- },
476
- },
477
- reads: ["forge.yaml", "packages/forge/profiles/*.yaml", "dist/**"],
478
- writes: ["release/**"],
479
- cacheable: false,
480
- execute: runReleasePrepare,
481
- });
482
- // ── forge.release.publish (RFC-0680) ───────────────────────────────────────
483
- const { runReleasePublish } = await import("./handlers/release-publish.js");
484
- registry.registerCommand({
485
- name: "forge.release.publish",
486
- description: "Publish a prepared release to the declared target (local, R2, S3). Use --dry-run to preview without uploading.",
487
- scope: "workspace",
488
- supportsAllSites: false,
489
- flags: {
490
- "dry-run": {
491
- kind: "boolean",
492
- description: "Print the resolved publish target and file list without uploading.",
493
- },
494
- profile: {
495
- kind: "string",
496
- description: "Override the active profile id.",
497
- },
498
- },
499
- reads: ["forge.yaml", "packages/forge/profiles/*.yaml", "release/**"],
500
- writes: ["release/published/**"],
501
- cacheable: false,
502
- execute: runReleasePublish,
503
- });
504
- // ── forge.skill.knowledge.compact (RFC-0662) ──────────────────────────────
505
- const { runKnowledgeCompact } = await import("./handlers/knowledge-compact.js");
506
- registry.registerCommand({
507
- name: "forge.skill.knowledge.compact",
508
- description: "Compact skill knowledge files: archive expired/superseded/aged L0 entries, mark stale L2 principles. " +
509
- "Usage: forge.skill.knowledge.compact --all-skills [--dry-run] [--json] | --skill <name> [--dry-run] [--json]",
510
- scope: "workspace",
511
- supportsAllSites: false,
512
- flags: {
513
- skill: {
514
- kind: "string",
515
- description: "Compact a single skill's declared knowledge files. Mutually exclusive with --all-skills.",
516
- },
517
- "all-skills": {
518
- kind: "boolean",
519
- description: "Compact all forge and pack skills declaring knowledge: files. (Named --all-skills because the CLI reserves --all.)",
520
- },
521
- "dry-run": {
522
- kind: "boolean",
523
- description: "Report planned mutations; write nothing.",
524
- },
525
- json: {
526
- kind: "boolean",
527
- description: "Machine-readable report.",
528
- },
529
- "retention-days": {
530
- kind: "string",
531
- description: "L0 entries older than this many days are archived (default: 90).",
532
- },
533
- "stale-days": {
534
- kind: "string",
535
- description: "L2 entries with lastConfirmedAt older than this become stale (default: 90).",
536
- },
537
- },
538
- writes: ["packages/forge/skills/**/*.md", "packages/forge/skills/**/*.archive.md"],
539
- reads: [
540
- "packages/forge/skills/**/*.md",
541
- "packages/forge/skills/**/*.archive.md",
542
- "forge.yaml",
543
- ],
544
- cacheable: false,
545
- execute: runKnowledgeCompact,
546
- });
547
- // ── pinned.validate ─────────────────────────────────────────────────────
548
- registry.registerCommand({
549
- name: "pinned.validate",
550
- description: "Validate working tree against .forge/pinned.yaml manifest. " +
551
- "Checks staged changes (default) or last commit (--mode ci) for " +
552
- "delete/move/modify operations on pinned files. " +
553
- "Use --allow-pinned-override <path> for audited escape hatch.",
554
- scope: "workspace",
555
- reads: [".forge/pinned.yaml", ".forge/pinned-audit.log"],
556
- writes: [".forge/pinned-audit.log"],
557
- cacheable: false,
558
- flags: {
559
- "allow-pinned-override": {
560
- kind: "string[]",
561
- description: "Path(s) to exempt from pinned-files validation on this invocation. " +
562
- "Each override is logged to .forge/pinned-audit.log.",
563
- },
564
- mode: {
565
- kind: "string",
566
- description: "Validation mode: 'staged' (pre-commit, default) or 'ci' (last-commit diff).",
567
- },
568
- json: {
569
- kind: "boolean",
570
- description: "Output structured JSON result.",
571
- },
572
- },
573
- execute: runPinnedValidate,
574
- });
575
- // ── pinned.init ─────────────────────────────────────────────────────────
576
- registry.registerCommand({
577
- name: "pinned.init",
578
- description: "Initialize .forge/pinned.yaml with default foundation entries, " +
579
- "install pre-commit hook, and add audit log to .gitignore. " +
580
- "Use --ci to also generate .github/workflows/pinned-check.yml.",
581
- scope: "workspace",
582
- mutatesState: true,
583
- writes: [
584
- ".forge/pinned.yaml",
585
- ".git/hooks/pre-commit",
586
- ".gitignore",
587
- ".github/workflows/pinned-check.yml",
588
- ],
589
- reads: [".forge/pinned.yaml", ".git/hooks/pre-commit", ".gitignore"],
590
- cacheable: false,
591
- flags: {
592
- ci: {
593
- kind: "boolean",
594
- description: "Also generate .github/workflows/pinned-check.yml CI workflow.",
595
- },
596
- },
597
- execute: runPinnedInit,
598
- });
599
- // ── forge.package.health ───────────────────────────────────────────────────
600
- const { runPackageHealth } = await import("./handlers/package-health.js");
601
- registry.registerCommand({
602
- name: "forge.package.health",
603
- description: "Validate all published packages (private: false) for standalone extraction readiness. " +
604
- "Checks engines.node, embedded .github/workflows/ci.yml, extract.config.yaml, " +
605
- "and devDependencies completeness (no hoisted tool deps). " +
606
- "Exits non-zero on errors. Use --json for machine-readable output.",
607
- scope: "workspace",
608
- supportsAllSites: false,
609
- reads: [
610
- "packages/*/package.json",
611
- "packages/*/.github/workflows/ci.yml",
612
- "packages/*/extract.config.yaml",
613
- ],
614
- cacheable: false,
615
- flags: {
616
- json: {
617
- kind: "boolean",
618
- description: "Output structured JSON result.",
619
- },
620
- },
621
- execute: runPackageHealth,
622
- });
623
- // ── forge.autonomy.validate (RFC-0940) ─────────────────────────────────────
624
- const { runForgeAutonomyValidate } = await import("./handlers/forge-autonomy-validate.js");
625
- registry.registerCommand({
626
- name: "forge.autonomy.validate",
627
- description: "Scan packages/forge/os/** for forbidden @warpgogol/werkstatt-engine imports outside os/werkstatt/. " +
628
- "Enforces FORGE-AUTONOMY-01 (RFC-0940, DNA-64). @warpgogol/werkstatt-shared is exempt. " +
629
- "Type-only imports (import type) are exempt.",
630
- scope: "workspace",
631
- supportsAllSites: false,
632
- reads: ["packages/forge/os/**/*.ts"],
633
- cacheable: false,
634
- flags: {},
635
- execute: runForgeAutonomyValidate,
636
- });
637
- // ── docs.archive ─────────────────────────────────────────────────────────
638
- registry.registerCommand({
639
- name: "docs.archive",
640
- description: "Umbrella command that runs rfc.archive, adr.archive, plan.archive, " +
641
- "audit.archive, session.archive, and mission.archive in sequence. " +
642
- "Passes --dry-run and --status through to all sub-commands. Not atomic " +
643
- "— if one sub-command fails, prior moves are not rolled back. " +
644
- "Re-running is safe (idempotent).",
645
- scope: "workspace",
646
- mutatesState: true,
647
- writes: [
648
- "docs/rfcs/*.md",
649
- "docs/rfcs/archive/**",
650
- "docs/adrs/*.md",
651
- "docs/adrs/archive/**",
652
- "docs/plans/*.md",
653
- "docs/plans/archive/**",
654
- "docs/audits/*.md",
655
- "docs/audits/archive/**",
656
- "docs/sessions/*.md",
657
- "docs/sessions/archive/**",
658
- "missions/*",
659
- "missions/archive/**",
660
- ],
661
- reads: [
662
- "docs/rfcs/**/*.md",
663
- "docs/adrs/**/*.md",
664
- "docs/plans/**/*.md",
665
- "docs/audits/**/*.md",
666
- "docs/sessions/**/*.md",
667
- "missions/**",
668
- ],
669
- cacheable: false,
670
- flags: {
671
- "dry-run": {
672
- kind: "boolean",
673
- description: "Preview what would be moved without touching the filesystem.",
674
- },
675
- status: {
676
- kind: "string",
677
- description: "Filter to a single terminal status (implemented, rejected, superseded).",
678
- },
679
- },
680
- execute: async (input, context) => {
681
- const { logger, outputFormat } = context;
682
- const dryRun = context.dryRun || input.flags["dry-run"] === true;
683
- const results = {};
684
- let totalMoved = 0;
685
- let totalSkipped = 0;
686
- const { runRfcArchive } = await import("../rfc/handlers/archive.js");
687
- const { runAdrArchive } = await import("../adr/handlers/archive.js");
688
- const { runPlanArchive } = await import("../plan/handlers/archive.js");
689
- const { runAuditArchive } = await import("../audit/handlers/archive.js");
690
- const { runSessionArchive } = await import("../session/handlers/archive.js");
691
- const { runMissionArchive } = await import("../mission/handlers/archive.js");
692
- const subCommands = [
693
- { name: "rfc.archive", fn: runRfcArchive },
694
- { name: "adr.archive", fn: runAdrArchive },
695
- { name: "plan.archive", fn: runPlanArchive },
696
- { name: "audit.archive", fn: runAuditArchive },
697
- { name: "session.archive", fn: runSessionArchive },
698
- { name: "mission.archive", fn: runMissionArchive },
699
- ];
700
- for (const { name: cmdName, fn } of subCommands) {
701
- try {
702
- const result = await fn(input, context);
703
- const data = result?.data;
704
- if (data) {
705
- totalMoved += Array.isArray(data.moved) ? data.moved.length : 0;
706
- totalSkipped += Array.isArray(data.skipped) ? data.skipped.length : 0;
707
- }
708
- results[cmdName] = data ?? result;
709
- }
710
- catch (err) {
711
- results[cmdName] = { error: String(err.message) };
712
- }
713
- }
714
- // ── RFC-0711: post-loop spec.live.merge for implemented RFCs with liveSpec ──
715
- const { listRfcFiles, readAndParseRfc } = await import("../rfc/frontmatter-io.js");
716
- const { RFC_DIR } = await import("../rfc/types.js");
717
- const { runSpecLiveMerge } = await import("../spec/live-spec-merge.js");
718
- const rfcDirPath = path.join(context.workspaceRoot, RFC_DIR);
719
- const statusFilter = input.flags["status"];
720
- const allRfcFiles = await listRfcFiles(rfcDirPath);
721
- const liveMergeResults = [];
722
- let liveMergeSkipped = 0;
723
- for (const rfcFile of allRfcFiles) {
724
- const parsed = await readAndParseRfc(rfcDirPath, rfcFile);
725
- if (!parsed || "error" in parsed)
726
- continue;
727
- const fm = parsed.parsed.frontmatter;
728
- const rfcStatus = String(fm["status"] ?? "").trim();
729
- const liveSpec = fm["liveSpec"];
730
- const rfcId = String(fm["id"] ?? "");
731
- if (!liveSpec || rfcStatus !== "implemented") {
732
- if (liveSpec && rfcStatus === "rejected") {
733
- liveMergeSkipped++;
734
- if (outputFormat === "pretty") {
735
- logger.info(` spec.live.merge: skipping ${rfcId} (status: rejected)`);
736
- }
737
- }
738
- continue;
739
- }
740
- if (statusFilter && rfcStatus !== statusFilter)
741
- continue;
742
- try {
743
- const mergeInput = {
744
- argv: [],
745
- flags: { id: rfcId, "dry-run": dryRun },
746
- };
747
- const mergeResult = await runSpecLiveMerge(mergeInput, context);
748
- const mergeData = mergeResult.data;
749
- if (mergeData) {
750
- liveMergeResults.push({
751
- id: rfcId,
752
- domain: String(mergeData.domain ?? ""),
753
- operation: String(mergeData.operation ?? ""),
754
- conflicts: Array.isArray(mergeData.conflicts) ? mergeData.conflicts.length : 0,
755
- });
756
- }
757
- }
758
- catch (err) {
759
- if (outputFormat === "pretty") {
760
- logger.error(` spec.live.merge: failed for ${rfcId}: ${String(err.message)}`);
761
- }
762
- }
763
- }
764
- if (liveMergeResults.length > 0 || liveMergeSkipped > 0) {
765
- results["spec.live.merge"] = {
766
- merged: liveMergeResults,
767
- skipped: liveMergeSkipped,
768
- dryRun,
769
- };
770
- if (outputFormat === "pretty") {
771
- for (const r of liveMergeResults) {
772
- logger.info(` spec.live.merge: ${r.id} → ${r.domain} (${r.operation})${r.conflicts > 0 ? ` [${r.conflicts} conflicts]` : ""}${dryRun ? " [dry-run]" : ""}`);
773
- }
774
- }
775
- }
776
- // Post-loop lockfile refresh — safety net for mission.archive's own refresh.
777
- // If mission.archive moved workpieces but its pnpm install / git commit failed
778
- // silently, the lockfile stays dirty. This catches it and stages the lockfile
779
- // so the caller (or the next commit) includes it.
780
- if (!dryRun && totalMoved > 0) {
781
- try {
782
- const { execSync } = await import("node:child_process");
783
- const lockfileStatus = execSync("git status --porcelain pnpm-lock.yaml", {
784
- cwd: context.workspaceRoot,
785
- encoding: "utf-8",
786
- stdio: ["pipe", "pipe", "pipe"],
787
- }).trim();
788
- if (lockfileStatus) {
789
- execSync("pnpm install", {
790
- cwd: context.workspaceRoot,
791
- stdio: ["pipe", "pipe", "pipe"],
792
- timeout: 120_000,
793
- });
794
- execSync("git add pnpm-lock.yaml", {
795
- cwd: context.workspaceRoot,
796
- stdio: ["pipe", "pipe", "pipe"],
797
- });
798
- if (outputFormat === "pretty") {
799
- logger.info(" docs.archive: staged pnpm-lock.yaml refresh (safety net)");
800
- }
801
- }
802
- }
803
- catch (refreshErr) {
804
- if (outputFormat === "pretty") {
805
- logger.warn(` docs.archive: lockfile safety-net refresh failed — run 'pnpm install' manually: ${refreshErr instanceof Error ? refreshErr.message : String(refreshErr)}`);
806
- }
807
- }
808
- }
809
- if (outputFormat === "pretty") {
810
- if (dryRun) {
811
- logger.info(`[dry-run] docs.archive: would move ${totalMoved} file(s), skip ${totalSkipped} across all domains`);
812
- }
813
- else {
814
- logger.success(`docs.archive: moved ${totalMoved} file(s), skipped ${totalSkipped} across all domains`);
815
- }
816
- }
817
- return {
818
- data: {
819
- command: "docs.archive",
820
- status: "ok",
821
- totalMoved,
822
- totalSkipped,
823
- results,
824
- dryRun,
825
- liveSpecMerges: liveMergeResults.length,
826
- liveSpecSkipped: liveMergeSkipped,
827
- },
828
- summary: dryRun
829
- ? `[dry-run] Would move ${totalMoved} file(s), skip ${totalSkipped}`
830
- : `Moved ${totalMoved} file(s), skipped ${totalSkipped}`,
831
- };
832
- },
833
- });
834
- },
835
- };
836
- //# sourceMappingURL=core.module.js.map