@warpgogol/forge 2.1.0 → 2.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 (695) hide show
  1. package/AGENTS.md +2 -2
  2. package/README.md +39 -87
  3. package/README.uk.md +39 -87
  4. package/dist/bin/cli.d.ts +3 -0
  5. package/dist/bin/cli.d.ts.map +1 -0
  6. package/dist/bin/cli.js +292 -0
  7. package/dist/bin/cli.js.map +1 -0
  8. package/dist/os/adr/adr.module.d.ts +3 -0
  9. package/dist/os/adr/adr.module.d.ts.map +1 -0
  10. package/dist/os/adr/adr.module.js +145 -0
  11. package/dist/os/adr/adr.module.js.map +1 -0
  12. package/dist/os/adr/frontmatter-io.d.ts +12 -0
  13. package/dist/os/adr/frontmatter-io.d.ts.map +1 -0
  14. package/dist/os/adr/frontmatter-io.js +67 -0
  15. package/dist/os/adr/frontmatter-io.js.map +1 -0
  16. package/dist/os/adr/handlers/archive.d.ts +24 -0
  17. package/dist/os/adr/handlers/archive.d.ts.map +1 -0
  18. package/dist/os/adr/handlers/archive.js +194 -0
  19. package/dist/os/adr/handlers/archive.js.map +1 -0
  20. package/dist/os/adr/handlers/implement-stamp.d.ts +4 -0
  21. package/dist/os/adr/handlers/implement-stamp.d.ts.map +1 -0
  22. package/dist/os/adr/handlers/implement-stamp.js +258 -0
  23. package/dist/os/adr/handlers/implement-stamp.js.map +1 -0
  24. package/dist/os/adr/handlers/list-create.d.ts +5 -0
  25. package/dist/os/adr/handlers/list-create.d.ts.map +1 -0
  26. package/dist/os/adr/handlers/list-create.js +165 -0
  27. package/dist/os/adr/handlers/list-create.js.map +1 -0
  28. package/dist/os/adr/handlers/validate.d.ts +4 -0
  29. package/dist/os/adr/handlers/validate.d.ts.map +1 -0
  30. package/dist/os/adr/handlers/validate.js +265 -0
  31. package/dist/os/adr/handlers/validate.js.map +1 -0
  32. package/dist/os/adr/index.d.ts +8 -0
  33. package/dist/os/adr/index.d.ts.map +1 -0
  34. package/dist/os/adr/index.js +18 -0
  35. package/dist/os/adr/index.js.map +1 -0
  36. package/dist/os/adr/types.d.ts +75 -0
  37. package/dist/os/adr/types.d.ts.map +1 -0
  38. package/dist/os/adr/types.js +55 -0
  39. package/dist/os/adr/types.js.map +1 -0
  40. package/dist/os/audit/audit.module.d.ts +3 -0
  41. package/dist/os/audit/audit.module.d.ts.map +1 -0
  42. package/dist/os/audit/audit.module.js +44 -0
  43. package/dist/os/audit/audit.module.js.map +1 -0
  44. package/dist/os/audit/frontmatter-io.d.ts +12 -0
  45. package/dist/os/audit/frontmatter-io.d.ts.map +1 -0
  46. package/dist/os/audit/frontmatter-io.js +71 -0
  47. package/dist/os/audit/frontmatter-io.js.map +1 -0
  48. package/dist/os/audit/handlers/archive.d.ts +4 -0
  49. package/dist/os/audit/handlers/archive.d.ts.map +1 -0
  50. package/dist/os/audit/handlers/archive.js +207 -0
  51. package/dist/os/audit/handlers/archive.js.map +1 -0
  52. package/dist/os/audit/index.d.ts +6 -0
  53. package/dist/os/audit/index.d.ts.map +1 -0
  54. package/dist/os/audit/index.js +16 -0
  55. package/dist/os/audit/index.js.map +1 -0
  56. package/dist/os/audit/types.d.ts +12 -0
  57. package/dist/os/audit/types.d.ts.map +1 -0
  58. package/dist/os/audit/types.js +17 -0
  59. package/dist/os/audit/types.js.map +1 -0
  60. package/dist/os/compass/compass.module.d.ts +3 -0
  61. package/dist/os/compass/compass.module.d.ts.map +1 -0
  62. package/dist/os/compass/compass.module.js +166 -0
  63. package/dist/os/compass/compass.module.js.map +1 -0
  64. package/dist/os/compass/handlers/compass-audit-handler.d.ts +36 -0
  65. package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +1 -0
  66. package/dist/os/compass/handlers/compass-audit-handler.js +238 -0
  67. package/dist/os/compass/handlers/compass-audit-handler.js.map +1 -0
  68. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +19 -0
  69. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +1 -0
  70. package/dist/os/compass/handlers/compass-change-summary-handler.js +205 -0
  71. package/dist/os/compass/handlers/compass-change-summary-handler.js.map +1 -0
  72. package/dist/os/compass/handlers/compass-inventory-handler.d.ts +28 -0
  73. package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +1 -0
  74. package/dist/os/compass/handlers/compass-inventory-handler.js +213 -0
  75. package/dist/os/compass/handlers/compass-inventory-handler.js.map +1 -0
  76. package/dist/os/compass/handlers/compass-inventory.d.ts +30 -0
  77. package/dist/os/compass/handlers/compass-inventory.d.ts.map +1 -0
  78. package/dist/os/compass/handlers/compass-inventory.js +418 -0
  79. package/dist/os/compass/handlers/compass-inventory.js.map +1 -0
  80. package/dist/os/compass/handlers/git-revision.d.ts +8 -0
  81. package/dist/os/compass/handlers/git-revision.d.ts.map +1 -0
  82. package/dist/os/compass/handlers/git-revision.js +99 -0
  83. package/dist/os/compass/handlers/git-revision.js.map +1 -0
  84. package/dist/os/compass/handlers/resolve-scan-root.d.ts +3 -0
  85. package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +1 -0
  86. package/dist/os/compass/handlers/resolve-scan-root.js +57 -0
  87. package/dist/os/compass/handlers/resolve-scan-root.js.map +1 -0
  88. package/dist/os/compass/index.d.ts +8 -0
  89. package/dist/os/compass/index.d.ts.map +1 -0
  90. package/dist/os/compass/index.js +19 -0
  91. package/dist/os/compass/index.js.map +1 -0
  92. package/dist/os/core/core.module.d.ts +3 -0
  93. package/dist/os/core/core.module.d.ts.map +1 -0
  94. package/dist/os/core/core.module.js +758 -0
  95. package/dist/os/core/core.module.js.map +1 -0
  96. package/dist/os/core/handlers/assets-check.d.ts +19 -0
  97. package/dist/os/core/handlers/assets-check.d.ts.map +1 -0
  98. package/dist/os/core/handlers/assets-check.js +89 -0
  99. package/dist/os/core/handlers/assets-check.js.map +1 -0
  100. package/dist/os/core/handlers/assets-helpers.d.ts +28 -0
  101. package/dist/os/core/handlers/assets-helpers.d.ts.map +1 -0
  102. package/dist/os/core/handlers/assets-helpers.js +128 -0
  103. package/dist/os/core/handlers/assets-helpers.js.map +1 -0
  104. package/dist/os/core/handlers/assets-list.d.ts +9 -0
  105. package/dist/os/core/handlers/assets-list.d.ts.map +1 -0
  106. package/dist/os/core/handlers/assets-list.js +72 -0
  107. package/dist/os/core/handlers/assets-list.js.map +1 -0
  108. package/dist/os/core/handlers/build.d.ts +16 -0
  109. package/dist/os/core/handlers/build.d.ts.map +1 -0
  110. package/dist/os/core/handlers/build.js +123 -0
  111. package/dist/os/core/handlers/build.js.map +1 -0
  112. package/dist/os/core/handlers/determinism-check.d.ts +20 -0
  113. package/dist/os/core/handlers/determinism-check.d.ts.map +1 -0
  114. package/dist/os/core/handlers/determinism-check.js +289 -0
  115. package/dist/os/core/handlers/determinism-check.js.map +1 -0
  116. package/dist/os/core/handlers/dev.d.ts +10 -0
  117. package/dist/os/core/handlers/dev.d.ts.map +1 -0
  118. package/dist/os/core/handlers/dev.js +102 -0
  119. package/dist/os/core/handlers/dev.js.map +1 -0
  120. package/dist/os/core/handlers/knowledge-compact.d.ts +4 -0
  121. package/dist/os/core/handlers/knowledge-compact.d.ts.map +1 -0
  122. package/dist/os/core/handlers/knowledge-compact.js +198 -0
  123. package/dist/os/core/handlers/knowledge-compact.js.map +1 -0
  124. package/dist/os/core/handlers/pinned-check.d.ts +49 -0
  125. package/dist/os/core/handlers/pinned-check.d.ts.map +1 -0
  126. package/dist/os/core/handlers/pinned-check.js +159 -0
  127. package/dist/os/core/handlers/pinned-check.js.map +1 -0
  128. package/dist/os/core/handlers/pinned-init.d.ts +19 -0
  129. package/dist/os/core/handlers/pinned-init.d.ts.map +1 -0
  130. package/dist/os/core/handlers/pinned-init.js +283 -0
  131. package/dist/os/core/handlers/pinned-init.js.map +1 -0
  132. package/dist/os/core/handlers/pinned-types.d.ts +29 -0
  133. package/dist/os/core/handlers/pinned-types.d.ts.map +1 -0
  134. package/dist/os/core/handlers/pinned-types.js +16 -0
  135. package/dist/os/core/handlers/pinned-types.js.map +1 -0
  136. package/dist/os/core/handlers/pinned-validate.d.ts +4 -0
  137. package/dist/os/core/handlers/pinned-validate.d.ts.map +1 -0
  138. package/dist/os/core/handlers/pinned-validate.js +248 -0
  139. package/dist/os/core/handlers/pinned-validate.js.map +1 -0
  140. package/dist/os/core/handlers/profile-resolve.d.ts +13 -0
  141. package/dist/os/core/handlers/profile-resolve.d.ts.map +1 -0
  142. package/dist/os/core/handlers/profile-resolve.js +65 -0
  143. package/dist/os/core/handlers/profile-resolve.js.map +1 -0
  144. package/dist/os/core/handlers/release-prepare.d.ts +25 -0
  145. package/dist/os/core/handlers/release-prepare.d.ts.map +1 -0
  146. package/dist/os/core/handlers/release-prepare.js +228 -0
  147. package/dist/os/core/handlers/release-prepare.js.map +1 -0
  148. package/dist/os/core/handlers/release-publish.d.ts +13 -0
  149. package/dist/os/core/handlers/release-publish.d.ts.map +1 -0
  150. package/dist/os/core/handlers/release-publish.js +173 -0
  151. package/dist/os/core/handlers/release-publish.js.map +1 -0
  152. package/dist/os/core/handlers/validate.d.ts +26 -0
  153. package/dist/os/core/handlers/validate.d.ts.map +1 -0
  154. package/dist/os/core/handlers/validate.js +208 -0
  155. package/dist/os/core/handlers/validate.js.map +1 -0
  156. package/dist/os/core/handlers/workspace-deps.d.ts +12 -0
  157. package/dist/os/core/handlers/workspace-deps.d.ts.map +1 -0
  158. package/dist/os/core/handlers/workspace-deps.js +39 -0
  159. package/dist/os/core/handlers/workspace-deps.js.map +1 -0
  160. package/dist/os/core/index.d.ts +2 -0
  161. package/dist/os/core/index.d.ts.map +1 -0
  162. package/dist/os/core/index.js +13 -0
  163. package/dist/os/core/index.js.map +1 -0
  164. package/dist/os/exploration/exploration.module.d.ts +3 -0
  165. package/dist/os/exploration/exploration.module.d.ts.map +1 -0
  166. package/dist/os/exploration/exploration.module.js +82 -0
  167. package/dist/os/exploration/exploration.module.js.map +1 -0
  168. package/dist/os/exploration/frontmatter-io.d.ts +13 -0
  169. package/dist/os/exploration/frontmatter-io.d.ts.map +1 -0
  170. package/dist/os/exploration/frontmatter-io.js +61 -0
  171. package/dist/os/exploration/frontmatter-io.js.map +1 -0
  172. package/dist/os/exploration/handlers/archive.d.ts +4 -0
  173. package/dist/os/exploration/handlers/archive.d.ts.map +1 -0
  174. package/dist/os/exploration/handlers/archive.js +135 -0
  175. package/dist/os/exploration/handlers/archive.js.map +1 -0
  176. package/dist/os/exploration/handlers/list.d.ts +4 -0
  177. package/dist/os/exploration/handlers/list.d.ts.map +1 -0
  178. package/dist/os/exploration/handlers/list.js +56 -0
  179. package/dist/os/exploration/handlers/list.js.map +1 -0
  180. package/dist/os/exploration/handlers/show.d.ts +4 -0
  181. package/dist/os/exploration/handlers/show.d.ts.map +1 -0
  182. package/dist/os/exploration/handlers/show.js +91 -0
  183. package/dist/os/exploration/handlers/show.js.map +1 -0
  184. package/dist/os/exploration/index.d.ts +7 -0
  185. package/dist/os/exploration/index.d.ts.map +1 -0
  186. package/dist/os/exploration/index.js +17 -0
  187. package/dist/os/exploration/index.js.map +1 -0
  188. package/dist/os/exploration/types.d.ts +38 -0
  189. package/dist/os/exploration/types.d.ts.map +1 -0
  190. package/dist/os/exploration/types.js +23 -0
  191. package/dist/os/exploration/types.js.map +1 -0
  192. package/dist/os/mission/handlers/archive.d.ts +4 -0
  193. package/dist/os/mission/handlers/archive.d.ts.map +1 -0
  194. package/dist/os/mission/handlers/archive.js +356 -0
  195. package/dist/os/mission/handlers/archive.js.map +1 -0
  196. package/dist/os/mission/index.d.ts +2 -0
  197. package/dist/os/mission/index.d.ts.map +1 -0
  198. package/dist/os/mission/index.js +2 -0
  199. package/dist/os/mission/index.js.map +1 -0
  200. package/dist/os/mission/mission.module.d.ts +3 -0
  201. package/dist/os/mission/mission.module.d.ts.map +1 -0
  202. package/dist/os/mission/mission.module.js +44 -0
  203. package/dist/os/mission/mission.module.js.map +1 -0
  204. package/dist/os/mission/types.d.ts +23 -0
  205. package/dist/os/mission/types.d.ts.map +1 -0
  206. package/dist/os/mission/types.js +18 -0
  207. package/dist/os/mission/types.js.map +1 -0
  208. package/dist/os/naming/index.d.ts +3 -0
  209. package/dist/os/naming/index.d.ts.map +1 -0
  210. package/dist/os/naming/index.js +14 -0
  211. package/dist/os/naming/index.js.map +1 -0
  212. package/dist/os/naming/naming-convention.d.ts +25 -0
  213. package/dist/os/naming/naming-convention.d.ts.map +1 -0
  214. package/dist/os/naming/naming-convention.js +324 -0
  215. package/dist/os/naming/naming-convention.js.map +1 -0
  216. package/dist/os/naming/naming.module.d.ts +3 -0
  217. package/dist/os/naming/naming.module.d.ts.map +1 -0
  218. package/dist/os/naming/naming.module.js +33 -0
  219. package/dist/os/naming/naming.module.js.map +1 -0
  220. package/dist/os/notes/index.d.ts +2 -0
  221. package/dist/os/notes/index.d.ts.map +1 -0
  222. package/dist/os/notes/index.js +10 -0
  223. package/dist/os/notes/index.js.map +1 -0
  224. package/dist/os/notes/notes.module.d.ts +3 -0
  225. package/dist/os/notes/notes.module.d.ts.map +1 -0
  226. package/dist/os/notes/notes.module.js +83 -0
  227. package/dist/os/notes/notes.module.js.map +1 -0
  228. package/dist/os/plan/frontmatter-io.d.ts +12 -0
  229. package/dist/os/plan/frontmatter-io.d.ts.map +1 -0
  230. package/dist/os/plan/frontmatter-io.js +69 -0
  231. package/dist/os/plan/frontmatter-io.js.map +1 -0
  232. package/dist/os/plan/handlers/archive.d.ts +4 -0
  233. package/dist/os/plan/handlers/archive.d.ts.map +1 -0
  234. package/dist/os/plan/handlers/archive.js +206 -0
  235. package/dist/os/plan/handlers/archive.js.map +1 -0
  236. package/dist/os/plan/index.d.ts +6 -0
  237. package/dist/os/plan/index.d.ts.map +1 -0
  238. package/dist/os/plan/index.js +16 -0
  239. package/dist/os/plan/index.js.map +1 -0
  240. package/dist/os/plan/plan.module.d.ts +3 -0
  241. package/dist/os/plan/plan.module.d.ts.map +1 -0
  242. package/dist/os/plan/plan.module.js +44 -0
  243. package/dist/os/plan/plan.module.js.map +1 -0
  244. package/dist/os/plan/types.d.ts +12 -0
  245. package/dist/os/plan/types.d.ts.map +1 -0
  246. package/dist/os/plan/types.js +17 -0
  247. package/dist/os/plan/types.js.map +1 -0
  248. package/dist/os/program/discovery.d.ts +61 -0
  249. package/dist/os/program/discovery.d.ts.map +1 -0
  250. package/dist/os/program/discovery.js +236 -0
  251. package/dist/os/program/discovery.js.map +1 -0
  252. package/dist/os/program/handlers/complete.d.ts +12 -0
  253. package/dist/os/program/handlers/complete.d.ts.map +1 -0
  254. package/dist/os/program/handlers/complete.js +344 -0
  255. package/dist/os/program/handlers/complete.js.map +1 -0
  256. package/dist/os/program/handlers/lease.d.ts +13 -0
  257. package/dist/os/program/handlers/lease.d.ts.map +1 -0
  258. package/dist/os/program/handlers/lease.js +322 -0
  259. package/dist/os/program/handlers/lease.js.map +1 -0
  260. package/dist/os/program/handlers/seal.d.ts +12 -0
  261. package/dist/os/program/handlers/seal.d.ts.map +1 -0
  262. package/dist/os/program/handlers/seal.js +265 -0
  263. package/dist/os/program/handlers/seal.js.map +1 -0
  264. package/dist/os/program/handlers/validate.d.ts +14 -0
  265. package/dist/os/program/handlers/validate.d.ts.map +1 -0
  266. package/dist/os/program/handlers/validate.js +164 -0
  267. package/dist/os/program/handlers/validate.js.map +1 -0
  268. package/dist/os/program/lease.d.ts +39 -0
  269. package/dist/os/program/lease.d.ts.map +1 -0
  270. package/dist/os/program/lease.js +129 -0
  271. package/dist/os/program/lease.js.map +1 -0
  272. package/dist/os/program/program.module.d.ts +3 -0
  273. package/dist/os/program/program.module.d.ts.map +1 -0
  274. package/dist/os/program/program.module.js +201 -0
  275. package/dist/os/program/program.module.js.map +1 -0
  276. package/dist/os/program/schemas.d.ts +225 -0
  277. package/dist/os/program/schemas.d.ts.map +1 -0
  278. package/dist/os/program/schemas.js +174 -0
  279. package/dist/os/program/schemas.js.map +1 -0
  280. package/dist/os/program/state.d.ts +38 -0
  281. package/dist/os/program/state.d.ts.map +1 -0
  282. package/dist/os/program/state.js +189 -0
  283. package/dist/os/program/state.js.map +1 -0
  284. package/dist/os/rfc/acceptance.d.ts +15 -0
  285. package/dist/os/rfc/acceptance.d.ts.map +1 -0
  286. package/dist/os/rfc/acceptance.js +310 -0
  287. package/dist/os/rfc/acceptance.js.map +1 -0
  288. package/dist/os/rfc/decision-log.d.ts +6 -0
  289. package/dist/os/rfc/decision-log.d.ts.map +1 -0
  290. package/dist/os/rfc/decision-log.js +269 -0
  291. package/dist/os/rfc/decision-log.js.map +1 -0
  292. package/dist/os/rfc/dna-trace.d.ts +27 -0
  293. package/dist/os/rfc/dna-trace.d.ts.map +1 -0
  294. package/dist/os/rfc/dna-trace.js +214 -0
  295. package/dist/os/rfc/dna-trace.js.map +1 -0
  296. package/dist/os/rfc/frontmatter-io.d.ts +18 -0
  297. package/dist/os/rfc/frontmatter-io.d.ts.map +1 -0
  298. package/dist/os/rfc/frontmatter-io.js +110 -0
  299. package/dist/os/rfc/frontmatter-io.js.map +1 -0
  300. package/dist/os/rfc/handlers/archive.d.ts +25 -0
  301. package/dist/os/rfc/handlers/archive.d.ts.map +1 -0
  302. package/dist/os/rfc/handlers/archive.js +247 -0
  303. package/dist/os/rfc/handlers/archive.js.map +1 -0
  304. package/dist/os/rfc/handlers/check.d.ts +4 -0
  305. package/dist/os/rfc/handlers/check.d.ts.map +1 -0
  306. package/dist/os/rfc/handlers/check.js +195 -0
  307. package/dist/os/rfc/handlers/check.js.map +1 -0
  308. package/dist/os/rfc/handlers/implement-stamp.d.ts +4 -0
  309. package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -0
  310. package/dist/os/rfc/handlers/implement-stamp.js +420 -0
  311. package/dist/os/rfc/handlers/implement-stamp.js.map +1 -0
  312. package/dist/os/rfc/handlers/index-graph.d.ts +13 -0
  313. package/dist/os/rfc/handlers/index-graph.d.ts.map +1 -0
  314. package/dist/os/rfc/handlers/index-graph.js +192 -0
  315. package/dist/os/rfc/handlers/index-graph.js.map +1 -0
  316. package/dist/os/rfc/handlers/lifecycle.d.ts +13 -0
  317. package/dist/os/rfc/handlers/lifecycle.d.ts.map +1 -0
  318. package/dist/os/rfc/handlers/lifecycle.js +155 -0
  319. package/dist/os/rfc/handlers/lifecycle.js.map +1 -0
  320. package/dist/os/rfc/handlers/list-create.d.ts +6 -0
  321. package/dist/os/rfc/handlers/list-create.d.ts.map +1 -0
  322. package/dist/os/rfc/handlers/list-create.js +240 -0
  323. package/dist/os/rfc/handlers/list-create.js.map +1 -0
  324. package/dist/os/rfc/handlers/pipeline-status.d.ts +26 -0
  325. package/dist/os/rfc/handlers/pipeline-status.d.ts.map +1 -0
  326. package/dist/os/rfc/handlers/pipeline-status.js +124 -0
  327. package/dist/os/rfc/handlers/pipeline-status.js.map +1 -0
  328. package/dist/os/rfc/handlers/shared.d.ts +22 -0
  329. package/dist/os/rfc/handlers/shared.d.ts.map +1 -0
  330. package/dist/os/rfc/handlers/shared.js +105 -0
  331. package/dist/os/rfc/handlers/shared.js.map +1 -0
  332. package/dist/os/rfc/handlers/supersede-propose.d.ts +4 -0
  333. package/dist/os/rfc/handlers/supersede-propose.d.ts.map +1 -0
  334. package/dist/os/rfc/handlers/supersede-propose.js +203 -0
  335. package/dist/os/rfc/handlers/supersede-propose.js.map +1 -0
  336. package/dist/os/rfc/handlers/validate-rules.d.ts +32 -0
  337. package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -0
  338. package/dist/os/rfc/handlers/validate-rules.js +590 -0
  339. package/dist/os/rfc/handlers/validate-rules.js.map +1 -0
  340. package/dist/os/rfc/handlers/validate.d.ts +4 -0
  341. package/dist/os/rfc/handlers/validate.d.ts.map +1 -0
  342. package/dist/os/rfc/handlers/validate.js +108 -0
  343. package/dist/os/rfc/handlers/validate.js.map +1 -0
  344. package/dist/os/rfc/handlers.d.ts +7 -0
  345. package/dist/os/rfc/handlers.d.ts.map +1 -0
  346. package/dist/os/rfc/handlers.js +19 -0
  347. package/dist/os/rfc/handlers.js.map +1 -0
  348. package/dist/os/rfc/index.d.ts +18 -0
  349. package/dist/os/rfc/index.d.ts.map +1 -0
  350. package/dist/os/rfc/index.js +24 -0
  351. package/dist/os/rfc/index.js.map +1 -0
  352. package/dist/os/rfc/rfc.module.d.ts +3 -0
  353. package/dist/os/rfc/rfc.module.d.ts.map +1 -0
  354. package/dist/os/rfc/rfc.module.js +366 -0
  355. package/dist/os/rfc/rfc.module.js.map +1 -0
  356. package/dist/os/rfc/types.d.ts +483 -0
  357. package/dist/os/rfc/types.d.ts.map +1 -0
  358. package/dist/os/rfc/types.js +100 -0
  359. package/dist/os/rfc/types.js.map +1 -0
  360. package/dist/os/rfc/verification-evidence.d.ts +8 -0
  361. package/dist/os/rfc/verification-evidence.d.ts.map +1 -0
  362. package/dist/os/rfc/verification-evidence.js +184 -0
  363. package/dist/os/rfc/verification-evidence.js.map +1 -0
  364. package/dist/os/session/atif-parser.d.ts +29 -0
  365. package/dist/os/session/atif-parser.d.ts.map +1 -0
  366. package/dist/os/session/atif-parser.js +140 -0
  367. package/dist/os/session/atif-parser.js.map +1 -0
  368. package/dist/os/session/frontmatter-io.d.ts +31 -0
  369. package/dist/os/session/frontmatter-io.d.ts.map +1 -0
  370. package/dist/os/session/frontmatter-io.js +146 -0
  371. package/dist/os/session/frontmatter-io.js.map +1 -0
  372. package/dist/os/session/handlers/archive.d.ts +4 -0
  373. package/dist/os/session/handlers/archive.d.ts.map +1 -0
  374. package/dist/os/session/handlers/archive.js +241 -0
  375. package/dist/os/session/handlers/archive.js.map +1 -0
  376. package/dist/os/session/handlers/list.d.ts +4 -0
  377. package/dist/os/session/handlers/list.d.ts.map +1 -0
  378. package/dist/os/session/handlers/list.js +147 -0
  379. package/dist/os/session/handlers/list.js.map +1 -0
  380. package/dist/os/session/handlers/save.d.ts +6 -0
  381. package/dist/os/session/handlers/save.d.ts.map +1 -0
  382. package/dist/os/session/handlers/save.js +297 -0
  383. package/dist/os/session/handlers/save.js.map +1 -0
  384. package/dist/os/session/handlers/validate.d.ts +4 -0
  385. package/dist/os/session/handlers/validate.d.ts.map +1 -0
  386. package/dist/os/session/handlers/validate.js +188 -0
  387. package/dist/os/session/handlers/validate.js.map +1 -0
  388. package/dist/os/session/index.d.ts +9 -0
  389. package/dist/os/session/index.d.ts.map +1 -0
  390. package/dist/os/session/index.js +20 -0
  391. package/dist/os/session/index.js.map +1 -0
  392. package/dist/os/session/session.module.d.ts +3 -0
  393. package/dist/os/session/session.module.d.ts.map +1 -0
  394. package/dist/os/session/session.module.js +115 -0
  395. package/dist/os/session/session.module.js.map +1 -0
  396. package/dist/os/session/types.d.ts +101 -0
  397. package/dist/os/session/types.d.ts.map +1 -0
  398. package/dist/os/session/types.js +52 -0
  399. package/dist/os/session/types.js.map +1 -0
  400. package/dist/os/spec/live-spec-list.d.ts +4 -0
  401. package/dist/os/spec/live-spec-list.d.ts.map +1 -0
  402. package/dist/os/spec/live-spec-list.js +64 -0
  403. package/dist/os/spec/live-spec-list.js.map +1 -0
  404. package/dist/os/spec/live-spec-merge.d.ts +4 -0
  405. package/dist/os/spec/live-spec-merge.d.ts.map +1 -0
  406. package/dist/os/spec/live-spec-merge.js +345 -0
  407. package/dist/os/spec/live-spec-merge.js.map +1 -0
  408. package/dist/os/spec/live-spec-show.d.ts +4 -0
  409. package/dist/os/spec/live-spec-show.d.ts.map +1 -0
  410. package/dist/os/spec/live-spec-show.js +99 -0
  411. package/dist/os/spec/live-spec-show.js.map +1 -0
  412. package/dist/os/spec/live-spec-types.d.ts +71 -0
  413. package/dist/os/spec/live-spec-types.d.ts.map +1 -0
  414. package/dist/os/spec/live-spec-types.js +14 -0
  415. package/dist/os/spec/live-spec-types.js.map +1 -0
  416. package/dist/os/spec/live-spec-validate.d.ts +4 -0
  417. package/dist/os/spec/live-spec-validate.d.ts.map +1 -0
  418. package/dist/os/spec/live-spec-validate.js +140 -0
  419. package/dist/os/spec/live-spec-validate.js.map +1 -0
  420. package/dist/os/spec/spec-materialize.d.ts +21 -0
  421. package/dist/os/spec/spec-materialize.d.ts.map +1 -0
  422. package/dist/os/spec/spec-materialize.js +336 -0
  423. package/dist/os/spec/spec-materialize.js.map +1 -0
  424. package/dist/os/spec/spec-schema.d.ts +126 -0
  425. package/dist/os/spec/spec-schema.d.ts.map +1 -0
  426. package/dist/os/spec/spec-schema.js +118 -0
  427. package/dist/os/spec/spec-schema.js.map +1 -0
  428. package/dist/os/spec/spec-status.d.ts +33 -0
  429. package/dist/os/spec/spec-status.d.ts.map +1 -0
  430. package/dist/os/spec/spec-status.js +222 -0
  431. package/dist/os/spec/spec-status.js.map +1 -0
  432. package/dist/os/spec/spec-validate.d.ts +4 -0
  433. package/dist/os/spec/spec-validate.d.ts.map +1 -0
  434. package/dist/os/spec/spec-validate.js +435 -0
  435. package/dist/os/spec/spec-validate.js.map +1 -0
  436. package/dist/os/spec/spec.module.d.ts +3 -0
  437. package/dist/os/spec/spec.module.d.ts.map +1 -0
  438. package/dist/os/spec/spec.module.js +119 -0
  439. package/dist/os/spec/spec.module.js.map +1 -0
  440. package/dist/os/werkstatt/handlers/lock.d.ts +10 -0
  441. package/dist/os/werkstatt/handlers/lock.d.ts.map +1 -0
  442. package/dist/os/werkstatt/handlers/lock.js +153 -0
  443. package/dist/os/werkstatt/handlers/lock.js.map +1 -0
  444. package/dist/os/werkstatt/handlers/schema.d.ts +33 -0
  445. package/dist/os/werkstatt/handlers/schema.d.ts.map +1 -0
  446. package/dist/os/werkstatt/handlers/schema.js +42 -0
  447. package/dist/os/werkstatt/handlers/schema.js.map +1 -0
  448. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts +15 -0
  449. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +1 -0
  450. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +144 -0
  451. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +1 -0
  452. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts +18 -0
  453. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +1 -0
  454. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +43 -0
  455. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +1 -0
  456. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts +11 -0
  457. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +1 -0
  458. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +79 -0
  459. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +1 -0
  460. package/dist/os/werkstatt/index.d.ts +7 -0
  461. package/dist/os/werkstatt/index.d.ts.map +1 -0
  462. package/dist/os/werkstatt/index.js +18 -0
  463. package/dist/os/werkstatt/index.js.map +1 -0
  464. package/dist/os/werkstatt/werkstatt.module.d.ts +3 -0
  465. package/dist/os/werkstatt/werkstatt.module.d.ts.map +1 -0
  466. package/dist/os/werkstatt/werkstatt.module.js +58 -0
  467. package/dist/os/werkstatt/werkstatt.module.js.map +1 -0
  468. package/dist/os/workflow/handlers.d.ts +12 -0
  469. package/dist/os/workflow/handlers.d.ts.map +1 -0
  470. package/dist/os/workflow/handlers.js +254 -0
  471. package/dist/os/workflow/handlers.js.map +1 -0
  472. package/dist/os/workflow/index.d.ts +4 -0
  473. package/dist/os/workflow/index.d.ts.map +1 -0
  474. package/dist/os/workflow/index.js +18 -0
  475. package/dist/os/workflow/index.js.map +1 -0
  476. package/dist/os/workflow/types.d.ts +69 -0
  477. package/dist/os/workflow/types.d.ts.map +1 -0
  478. package/dist/os/workflow/types.js +23 -0
  479. package/dist/os/workflow/types.js.map +1 -0
  480. package/dist/os/workflow/workflow.module.d.ts +3 -0
  481. package/dist/os/workflow/workflow.module.d.ts.map +1 -0
  482. package/dist/os/workflow/workflow.module.js +48 -0
  483. package/dist/os/workflow/workflow.module.js.map +1 -0
  484. package/dist/src/cli-output.d.ts +5 -0
  485. package/dist/src/cli-output.d.ts.map +1 -0
  486. package/dist/src/cli-output.js +53 -0
  487. package/dist/src/cli-output.js.map +1 -0
  488. package/dist/src/config/forge-config.d.ts +242 -0
  489. package/dist/src/config/forge-config.d.ts.map +1 -0
  490. package/dist/src/config/forge-config.js +359 -0
  491. package/dist/src/config/forge-config.js.map +1 -0
  492. package/dist/src/forge-module.d.ts +16 -0
  493. package/dist/src/forge-module.d.ts.map +1 -0
  494. package/dist/src/forge-module.js +15 -0
  495. package/dist/src/forge-module.js.map +1 -0
  496. package/dist/src/index.d.ts +36 -0
  497. package/dist/src/index.d.ts.map +1 -0
  498. package/dist/src/index.js +56 -0
  499. package/dist/src/index.js.map +1 -0
  500. package/dist/src/knowledge/budgets.d.ts +38 -0
  501. package/dist/src/knowledge/budgets.d.ts.map +1 -0
  502. package/dist/src/knowledge/budgets.js +157 -0
  503. package/dist/src/knowledge/budgets.js.map +1 -0
  504. package/dist/src/knowledge/compact.d.ts +47 -0
  505. package/dist/src/knowledge/compact.d.ts.map +1 -0
  506. package/dist/src/knowledge/compact.js +320 -0
  507. package/dist/src/knowledge/compact.js.map +1 -0
  508. package/dist/src/knowledge/index.d.ts +7 -0
  509. package/dist/src/knowledge/index.d.ts.map +1 -0
  510. package/dist/src/knowledge/index.js +19 -0
  511. package/dist/src/knowledge/index.js.map +1 -0
  512. package/dist/src/knowledge/parse.d.ts +3 -0
  513. package/dist/src/knowledge/parse.d.ts.map +1 -0
  514. package/dist/src/knowledge/parse.js +205 -0
  515. package/dist/src/knowledge/parse.js.map +1 -0
  516. package/dist/src/knowledge/promote.d.ts +37 -0
  517. package/dist/src/knowledge/promote.d.ts.map +1 -0
  518. package/dist/src/knowledge/promote.js +120 -0
  519. package/dist/src/knowledge/promote.js.map +1 -0
  520. package/dist/src/knowledge/schema.d.ts +61 -0
  521. package/dist/src/knowledge/schema.d.ts.map +1 -0
  522. package/dist/src/knowledge/schema.js +64 -0
  523. package/dist/src/knowledge/schema.js.map +1 -0
  524. package/dist/src/knowledge/serialize.d.ts +3 -0
  525. package/dist/src/knowledge/serialize.d.ts.map +1 -0
  526. package/dist/src/knowledge/serialize.js +67 -0
  527. package/dist/src/knowledge/serialize.js.map +1 -0
  528. package/dist/src/migration-adapters/git-utils.d.ts +3 -0
  529. package/dist/src/migration-adapters/git-utils.d.ts.map +1 -0
  530. package/dist/src/migration-adapters/git-utils.js +56 -0
  531. package/dist/src/migration-adapters/git-utils.js.map +1 -0
  532. package/dist/src/migration-adapters/ignored-files.d.ts +12 -0
  533. package/dist/src/migration-adapters/ignored-files.d.ts.map +1 -0
  534. package/dist/src/migration-adapters/ignored-files.js +190 -0
  535. package/dist/src/migration-adapters/ignored-files.js.map +1 -0
  536. package/dist/src/migration-adapters/index.d.ts +8 -0
  537. package/dist/src/migration-adapters/index.d.ts.map +1 -0
  538. package/dist/src/migration-adapters/index.js +17 -0
  539. package/dist/src/migration-adapters/index.js.map +1 -0
  540. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts +3 -0
  541. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts.map +1 -0
  542. package/dist/src/migration-adapters/node-typescript-pnpm/index.js +141 -0
  543. package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +1 -0
  544. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts +3 -0
  545. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts.map +1 -0
  546. package/dist/src/migration-adapters/phaser-pnpm/index.js +142 -0
  547. package/dist/src/migration-adapters/phaser-pnpm/index.js.map +1 -0
  548. package/dist/src/migration-adapters/registry.d.ts +6 -0
  549. package/dist/src/migration-adapters/registry.d.ts.map +1 -0
  550. package/dist/src/migration-adapters/registry.js +55 -0
  551. package/dist/src/migration-adapters/registry.js.map +1 -0
  552. package/dist/src/migration-adapters/types.d.ts +35 -0
  553. package/dist/src/migration-adapters/types.d.ts.map +1 -0
  554. package/dist/src/migration-adapters/types.js +31 -0
  555. package/dist/src/migration-adapters/types.js.map +1 -0
  556. package/dist/src/onboarding/agents-generate.d.ts +30 -0
  557. package/dist/src/onboarding/agents-generate.d.ts.map +1 -0
  558. package/dist/src/onboarding/agents-generate.js +352 -0
  559. package/dist/src/onboarding/agents-generate.js.map +1 -0
  560. package/dist/src/onboarding/create.d.ts +12 -0
  561. package/dist/src/onboarding/create.d.ts.map +1 -0
  562. package/dist/src/onboarding/create.js +318 -0
  563. package/dist/src/onboarding/create.js.map +1 -0
  564. package/dist/src/onboarding/doctor.d.ts +45 -0
  565. package/dist/src/onboarding/doctor.d.ts.map +1 -0
  566. package/dist/src/onboarding/doctor.js +1108 -0
  567. package/dist/src/onboarding/doctor.js.map +1 -0
  568. package/dist/src/onboarding/init.d.ts +32 -0
  569. package/dist/src/onboarding/init.d.ts.map +1 -0
  570. package/dist/src/onboarding/init.js +291 -0
  571. package/dist/src/onboarding/init.js.map +1 -0
  572. package/dist/src/onboarding/invariant-engine.d.ts +17 -0
  573. package/dist/src/onboarding/invariant-engine.d.ts.map +1 -0
  574. package/dist/src/onboarding/invariant-engine.js +416 -0
  575. package/dist/src/onboarding/invariant-engine.js.map +1 -0
  576. package/dist/src/onboarding/memory-scaffold.d.ts +18 -0
  577. package/dist/src/onboarding/memory-scaffold.d.ts.map +1 -0
  578. package/dist/src/onboarding/memory-scaffold.js +151 -0
  579. package/dist/src/onboarding/memory-scaffold.js.map +1 -0
  580. package/dist/src/onboarding/nested-agents-generate.d.ts +18 -0
  581. package/dist/src/onboarding/nested-agents-generate.d.ts.map +1 -0
  582. package/dist/src/onboarding/nested-agents-generate.js +69 -0
  583. package/dist/src/onboarding/nested-agents-generate.js.map +1 -0
  584. package/dist/src/onboarding/nested-agents-templates.d.ts +26 -0
  585. package/dist/src/onboarding/nested-agents-templates.d.ts.map +1 -0
  586. package/dist/src/onboarding/nested-agents-templates.js +178 -0
  587. package/dist/src/onboarding/nested-agents-templates.js.map +1 -0
  588. package/dist/src/onboarding/profile-validate.d.ts +13 -0
  589. package/dist/src/onboarding/profile-validate.d.ts.map +1 -0
  590. package/dist/src/onboarding/profile-validate.js +109 -0
  591. package/dist/src/onboarding/profile-validate.js.map +1 -0
  592. package/dist/src/onboarding/scaffold-project.d.ts +12 -0
  593. package/dist/src/onboarding/scaffold-project.d.ts.map +1 -0
  594. package/dist/src/onboarding/scaffold-project.js +248 -0
  595. package/dist/src/onboarding/scaffold-project.js.map +1 -0
  596. package/dist/src/onboarding/scaffold.d.ts +15 -0
  597. package/dist/src/onboarding/scaffold.d.ts.map +1 -0
  598. package/dist/src/onboarding/scaffold.js +120 -0
  599. package/dist/src/onboarding/scaffold.js.map +1 -0
  600. package/dist/src/onboarding/upgrade.d.ts +25 -0
  601. package/dist/src/onboarding/upgrade.d.ts.map +1 -0
  602. package/dist/src/onboarding/upgrade.js +391 -0
  603. package/dist/src/onboarding/upgrade.js.map +1 -0
  604. package/dist/src/onboarding/workspace-discovery.d.ts +11 -0
  605. package/dist/src/onboarding/workspace-discovery.d.ts.map +1 -0
  606. package/dist/src/onboarding/workspace-discovery.js +138 -0
  607. package/dist/src/onboarding/workspace-discovery.js.map +1 -0
  608. package/dist/src/profiles/profile-schema.d.ts +351 -0
  609. package/dist/src/profiles/profile-schema.d.ts.map +1 -0
  610. package/dist/src/profiles/profile-schema.js +201 -0
  611. package/dist/src/profiles/profile-schema.js.map +1 -0
  612. package/dist/src/profiles/stack-profile.d.ts +168 -0
  613. package/dist/src/profiles/stack-profile.d.ts.map +1 -0
  614. package/dist/src/profiles/stack-profile.js +144 -0
  615. package/dist/src/profiles/stack-profile.js.map +1 -0
  616. package/dist/src/profiles/terminology-utils.d.ts +8 -0
  617. package/dist/src/profiles/terminology-utils.d.ts.map +1 -0
  618. package/dist/src/profiles/terminology-utils.js +31 -0
  619. package/dist/src/profiles/terminology-utils.js.map +1 -0
  620. package/dist/src/registry.d.ts +38 -0
  621. package/dist/src/registry.d.ts.map +1 -0
  622. package/dist/src/registry.js +135 -0
  623. package/dist/src/registry.js.map +1 -0
  624. package/dist/src/skill-schema.d.ts +30 -0
  625. package/dist/src/skill-schema.d.ts.map +1 -0
  626. package/dist/src/skill-schema.js +34 -0
  627. package/dist/src/skill-schema.js.map +1 -0
  628. package/dist/src/types.d.ts +152 -0
  629. package/dist/src/types.d.ts.map +1 -0
  630. package/dist/src/types.js +17 -0
  631. package/dist/src/types.js.map +1 -0
  632. package/dist/src/utils/fs-atomic.d.ts +7 -0
  633. package/dist/src/utils/fs-atomic.d.ts.map +1 -0
  634. package/dist/src/utils/fs-atomic.js +81 -0
  635. package/dist/src/utils/fs-atomic.js.map +1 -0
  636. package/dist/src/utils/fs-idempotent.d.ts +2 -0
  637. package/dist/src/utils/fs-idempotent.d.ts.map +1 -0
  638. package/dist/src/utils/fs-idempotent.js +39 -0
  639. package/dist/src/utils/fs-idempotent.js.map +1 -0
  640. package/dist/src/utils/fs-trash-sync.d.ts +2 -0
  641. package/dist/src/utils/fs-trash-sync.d.ts.map +1 -0
  642. package/dist/src/utils/fs-trash-sync.js +34 -0
  643. package/dist/src/utils/fs-trash-sync.js.map +1 -0
  644. package/dist/src/utils/fs-trash.d.ts +2 -0
  645. package/dist/src/utils/fs-trash.d.ts.map +1 -0
  646. package/dist/src/utils/fs-trash.js +24 -0
  647. package/dist/src/utils/fs-trash.js.map +1 -0
  648. package/dist/src/utils/fs.d.ts +8 -0
  649. package/dist/src/utils/fs.d.ts.map +1 -0
  650. package/dist/src/utils/fs.js +60 -0
  651. package/dist/src/utils/fs.js.map +1 -0
  652. package/dist/src/utils/generated-marker.d.ts +21 -0
  653. package/dist/src/utils/generated-marker.d.ts.map +1 -0
  654. package/dist/src/utils/generated-marker.js +128 -0
  655. package/dist/src/utils/generated-marker.js.map +1 -0
  656. package/dist/src/utils/hash.d.ts +2 -0
  657. package/dist/src/utils/hash.d.ts.map +1 -0
  658. package/dist/src/utils/hash.js +18 -0
  659. package/dist/src/utils/hash.js.map +1 -0
  660. package/dist/src/utils/index.d.ts +9 -0
  661. package/dist/src/utils/index.d.ts.map +1 -0
  662. package/dist/src/utils/index.js +21 -0
  663. package/dist/src/utils/index.js.map +1 -0
  664. package/dist/src/utils/string-utils.d.ts +2 -0
  665. package/dist/src/utils/string-utils.d.ts.map +1 -0
  666. package/dist/src/utils/string-utils.js +19 -0
  667. package/dist/src/utils/string-utils.js.map +1 -0
  668. package/dist/src/validators/note-frontmatter-validate.d.ts +20 -0
  669. package/dist/src/validators/note-frontmatter-validate.d.ts.map +1 -0
  670. package/dist/src/validators/note-frontmatter-validate.js +117 -0
  671. package/dist/src/validators/note-frontmatter-validate.js.map +1 -0
  672. package/dist/src/validators/note-link-validate.d.ts +21 -0
  673. package/dist/src/validators/note-link-validate.d.ts.map +1 -0
  674. package/dist/src/validators/note-link-validate.js +121 -0
  675. package/dist/src/validators/note-link-validate.js.map +1 -0
  676. package/dist/src/validators/note-orphan-detect.d.ts +19 -0
  677. package/dist/src/validators/note-orphan-detect.d.ts.map +1 -0
  678. package/dist/src/validators/note-orphan-detect.js +123 -0
  679. package/dist/src/validators/note-orphan-detect.js.map +1 -0
  680. package/dist/src/validators/port-validate.d.ts +12 -0
  681. package/dist/src/validators/port-validate.d.ts.map +1 -0
  682. package/dist/src/validators/port-validate.js +78 -0
  683. package/dist/src/validators/port-validate.js.map +1 -0
  684. package/dist/src/validators/skill-validate.d.ts +29 -0
  685. package/dist/src/validators/skill-validate.d.ts.map +1 -0
  686. package/dist/src/validators/skill-validate.js +689 -0
  687. package/dist/src/validators/skill-validate.js.map +1 -0
  688. package/package.json +6 -3
  689. package/profiles/forge-shell.yaml +2 -0
  690. package/profiles/godot-csharp.yaml +212 -9
  691. package/profiles/phaser-turborepo.yaml +5 -3
  692. package/src/onboarding/templates/behavioral-layer-core.md +4 -5
  693. package/src/onboarding/templates/root-agents-business.md +1 -1
  694. package/src/onboarding/templates/root-agents-creative.md +1 -1
  695. package/profiles/astro-typescript-turborepo.yaml +0 -378
@@ -0,0 +1,242 @@
1
+ import { z } from "zod";
2
+ import { type StackProfile } from "../profiles/stack-profile.ts";
3
+ export declare const forgeBindingsSchema: z.ZodObject<{
4
+ schema: z.ZodLiteral<"forge/bindings@1">;
5
+ commands: z.ZodObject<{
6
+ validateRfc: z.ZodDefault<z.ZodNullable<z.ZodString>>;
7
+ validateAdr: z.ZodDefault<z.ZodNullable<z.ZodString>>;
8
+ implementStamp: z.ZodDefault<z.ZodNullable<z.ZodString>>;
9
+ typecheck: z.ZodDefault<z.ZodNullable<z.ZodString>>;
10
+ test: z.ZodDefault<z.ZodNullable<z.ZodString>>;
11
+ scopedBuild: z.ZodDefault<z.ZodNullable<z.ZodString>>;
12
+ specValidate: z.ZodDefault<z.ZodNullable<z.ZodString>>;
13
+ sessionSave: z.ZodDefault<z.ZodNullable<z.ZodString>>;
14
+ validate: z.ZodDefault<z.ZodNullable<z.ZodString>>;
15
+ produce: z.ZodDefault<z.ZodNullable<z.ZodString>>;
16
+ verify: z.ZodDefault<z.ZodNullable<z.ZodString>>;
17
+ preview: z.ZodDefault<z.ZodNullable<z.ZodString>>;
18
+ lint: z.ZodDefault<z.ZodNullable<z.ZodString>>;
19
+ }, z.core.$strip>;
20
+ paths: z.ZodObject<{
21
+ invariantsFile: z.ZodDefault<z.ZodNullable<z.ZodString>>;
22
+ compassDocs: z.ZodDefault<z.ZodArray<z.ZodString>>;
23
+ reviewsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
24
+ handoffsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
25
+ sessionsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
26
+ }, z.core.$strip>;
27
+ terminology: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
28
+ compass: z.ZodOptional<z.ZodObject<{
29
+ fileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
30
+ testPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
31
+ }, z.core.$strip>>;
32
+ knowledge: z.ZodOptional<z.ZodObject<{
33
+ budgets: z.ZodOptional<z.ZodObject<{
34
+ hot: z.ZodNumber;
35
+ warm: z.ZodNumber;
36
+ }, z.core.$strip>>;
37
+ retentionDays: z.ZodOptional<z.ZodNumber>;
38
+ staleDays: z.ZodOptional<z.ZodNumber>;
39
+ }, z.core.$strip>>;
40
+ memory: z.ZodOptional<z.ZodObject<{
41
+ budget: z.ZodDefault<z.ZodNumber>;
42
+ }, z.core.$strip>>;
43
+ }, z.core.$strip>;
44
+ export interface ForgeBindings {
45
+ schema: "forge/bindings@1";
46
+ commands: {
47
+ validateRfc: string | null;
48
+ validateAdr: string | null;
49
+ implementStamp: string | null;
50
+ typecheck: string | null;
51
+ test: string | null;
52
+ scopedBuild: string | null;
53
+ specValidate: string | null;
54
+ sessionSave: string | null;
55
+ validate: string | null;
56
+ produce: string | null;
57
+ verify: string | null;
58
+ preview: string | null;
59
+ lint: string | null;
60
+ };
61
+ paths: {
62
+ invariantsFile: string | null;
63
+ compassDocs: string[];
64
+ reviewsDir: string | null;
65
+ handoffsDir: string | null;
66
+ sessionsDir: string | null;
67
+ };
68
+ terminology: Record<string, string>;
69
+ compass?: {
70
+ fileExtensions?: string[];
71
+ testPatterns?: string[];
72
+ };
73
+ knowledge?: {
74
+ budgets?: {
75
+ hot: number;
76
+ warm: number;
77
+ };
78
+ retentionDays?: number;
79
+ staleDays?: number;
80
+ };
81
+ memory?: {
82
+ budget: number;
83
+ };
84
+ }
85
+ export declare const forgeSkillPackSchema: z.ZodObject<{
86
+ prefix: z.ZodString;
87
+ dir: z.ZodString;
88
+ }, z.core.$strip>;
89
+ export interface ForgeSkillPack {
90
+ prefix: string;
91
+ dir: string;
92
+ }
93
+ export declare const forgeMigrationAdapterSchema: z.ZodObject<{
94
+ id: z.ZodString;
95
+ module: z.ZodOptional<z.ZodString>;
96
+ }, z.core.$strip>;
97
+ export interface ForgeMigrationAdapter {
98
+ id: string;
99
+ module?: string;
100
+ }
101
+ export declare const forgeConfigSchema: z.ZodObject<{
102
+ schema: z.ZodLiteral<"forge/config@1">;
103
+ project: z.ZodObject<{
104
+ name: z.ZodString;
105
+ stack: z.ZodDefault<z.ZodArray<z.ZodString>>;
106
+ packageManager: z.ZodDefault<z.ZodEnum<{
107
+ pnpm: "pnpm";
108
+ npm: "npm";
109
+ yarn: "yarn";
110
+ bun: "bun";
111
+ none: "none";
112
+ }>>;
113
+ domain: z.ZodOptional<z.ZodString>;
114
+ }, z.core.$strip>;
115
+ paths: z.ZodObject<{
116
+ rfcsDir: z.ZodDefault<z.ZodString>;
117
+ adrsDir: z.ZodDefault<z.ZodString>;
118
+ plansDir: z.ZodDefault<z.ZodString>;
119
+ auditsDir: z.ZodDefault<z.ZodString>;
120
+ specsDir: z.ZodDefault<z.ZodString>;
121
+ skillsDir: z.ZodDefault<z.ZodString>;
122
+ sessionsDir: z.ZodDefault<z.ZodString>;
123
+ }, z.core.$strip>;
124
+ bindings: z.ZodOptional<z.ZodObject<{
125
+ schema: z.ZodLiteral<"forge/bindings@1">;
126
+ commands: z.ZodObject<{
127
+ validateRfc: z.ZodDefault<z.ZodNullable<z.ZodString>>;
128
+ validateAdr: z.ZodDefault<z.ZodNullable<z.ZodString>>;
129
+ implementStamp: z.ZodDefault<z.ZodNullable<z.ZodString>>;
130
+ typecheck: z.ZodDefault<z.ZodNullable<z.ZodString>>;
131
+ test: z.ZodDefault<z.ZodNullable<z.ZodString>>;
132
+ scopedBuild: z.ZodDefault<z.ZodNullable<z.ZodString>>;
133
+ specValidate: z.ZodDefault<z.ZodNullable<z.ZodString>>;
134
+ sessionSave: z.ZodDefault<z.ZodNullable<z.ZodString>>;
135
+ validate: z.ZodDefault<z.ZodNullable<z.ZodString>>;
136
+ produce: z.ZodDefault<z.ZodNullable<z.ZodString>>;
137
+ verify: z.ZodDefault<z.ZodNullable<z.ZodString>>;
138
+ preview: z.ZodDefault<z.ZodNullable<z.ZodString>>;
139
+ lint: z.ZodDefault<z.ZodNullable<z.ZodString>>;
140
+ }, z.core.$strip>;
141
+ paths: z.ZodObject<{
142
+ invariantsFile: z.ZodDefault<z.ZodNullable<z.ZodString>>;
143
+ compassDocs: z.ZodDefault<z.ZodArray<z.ZodString>>;
144
+ reviewsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
145
+ handoffsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
146
+ sessionsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
147
+ }, z.core.$strip>;
148
+ terminology: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
149
+ compass: z.ZodOptional<z.ZodObject<{
150
+ fileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
151
+ testPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
152
+ }, z.core.$strip>>;
153
+ knowledge: z.ZodOptional<z.ZodObject<{
154
+ budgets: z.ZodOptional<z.ZodObject<{
155
+ hot: z.ZodNumber;
156
+ warm: z.ZodNumber;
157
+ }, z.core.$strip>>;
158
+ retentionDays: z.ZodOptional<z.ZodNumber>;
159
+ staleDays: z.ZodOptional<z.ZodNumber>;
160
+ }, z.core.$strip>>;
161
+ memory: z.ZodOptional<z.ZodObject<{
162
+ budget: z.ZodDefault<z.ZodNumber>;
163
+ }, z.core.$strip>>;
164
+ }, z.core.$strip>>;
165
+ skillPacks: z.ZodOptional<z.ZodArray<z.ZodObject<{
166
+ prefix: z.ZodString;
167
+ dir: z.ZodString;
168
+ }, z.core.$strip>>>;
169
+ migrationAdapters: z.ZodOptional<z.ZodArray<z.ZodObject<{
170
+ id: z.ZodString;
171
+ module: z.ZodOptional<z.ZodString>;
172
+ }, z.core.$strip>>>;
173
+ forge: z.ZodOptional<z.ZodObject<{
174
+ syncedVersion: z.ZodDefault<z.ZodNullable<z.ZodString>>;
175
+ }, z.core.$strip>>;
176
+ profile: z.ZodOptional<z.ZodString>;
177
+ independentVersionPackages: z.ZodOptional<z.ZodArray<z.ZodString>>;
178
+ }, z.core.$strip>;
179
+ export interface ForgeConfig {
180
+ schema: "forge/config@1";
181
+ project: {
182
+ name: string;
183
+ stack: string[];
184
+ packageManager: "pnpm" | "npm" | "yarn" | "bun" | "none";
185
+ /** RFC-0640: optional domain field — absent means software-domain fallback */
186
+ domain?: string;
187
+ };
188
+ paths: {
189
+ rfcsDir: string;
190
+ adrsDir: string;
191
+ plansDir: string;
192
+ auditsDir: string;
193
+ specsDir: string;
194
+ skillsDir: string;
195
+ sessionsDir: string;
196
+ };
197
+ /** Bindings contract (RFC-0393). Optional — absent means no bindings. */
198
+ bindings?: ForgeBindings;
199
+ /** Skill packs (RFC-0539). Optional — absent means no project-local packs. */
200
+ skillPacks?: ForgeSkillPack[];
201
+ /** Migration adapters (RFC-0546). Optional — absent means built-in adapters only. */
202
+ migrationAdapters?: ForgeMigrationAdapter[];
203
+ /** Forge sync metadata (RFC-0543). Optional — absent means never synced. */
204
+ forge?: {
205
+ syncedVersion: string | null;
206
+ };
207
+ /** RFC-0643: loaded stack profile — present when forge.yaml has a `profile` field */
208
+ profile?: StackProfile;
209
+ /** RFC-0704: packages with autonomous npm versions — ecosystem.commit skips platform bump when all staged files belong to these packages */
210
+ independentVersionPackages?: string[];
211
+ }
212
+ export interface ForgeCliBindingDefault {
213
+ key: string;
214
+ template: string;
215
+ }
216
+ export declare const FORGE_CLI_BINDING_DEFAULTS: ForgeCliBindingDefault[];
217
+ export declare const PM_RUNNER_MAP: Record<string, string>;
218
+ export declare function resolvePmRunner(pm: string): string;
219
+ export declare const PM_INSTALL_MAP: Record<string, string>;
220
+ export declare function resolvePmInstall(pm: string): string;
221
+ export declare function applyCliBindingDefaults(pm: string): ForgeBindings["commands"];
222
+ export type ForgePackageManager = ForgeConfig["project"]["packageManager"];
223
+ export declare function resolvePackageManager(pm: string): ForgePackageManager;
224
+ export declare function defaultForgeConfig(projectName: string, packageManager?: string): ForgeConfig;
225
+ export declare function loadForgeConfig(workspaceRoot: string): ForgeConfig;
226
+ export declare function resolveForgeRoot(workspaceRoot: string): string;
227
+ /**
228
+ * Resolve a binding key (e.g. "commands.validateRfc") from the config.
229
+ * Returns the resolved string/array, or null if the binding is absent or explicitly null.
230
+ * Supports placeholder substitution: {id}, {workspace}, {file}.
231
+ */
232
+ export declare function resolveBinding(config: ForgeConfig, key: string, placeholders?: Record<string, string>): string | string[] | null;
233
+ /**
234
+ * Resolve a terminology key using a three-tier chain:
235
+ * 1. Per-project override in bindings.terminology
236
+ * 2. Caller-provided terminology map (typically from profile.terminology, RFC-0638)
237
+ * 3. Universal default from TERMINOLOGY_DEFAULTS (RFC-0638)
238
+ *
239
+ * If the key is not found in any tier, the key itself is returned.
240
+ */
241
+ export declare function resolveTerminology(config: ForgeConfig, terminology: Record<string, string> | undefined, key: string): string;
242
+ //# sourceMappingURL=forge-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forge-config.d.ts","sourceRoot":"","sources":["../../../src/config/forge-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,359 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>Forge project configuration — forge.yaml schema, loader, forge root resolver, and bindings contract. Single source of truth for how forge is deployed in a project.</purpose>
4
+ <non-goals>
5
+ <item>Do not import from @warpgogol/* — this module is portable.</item>
6
+ </non-goals>
7
+ </MODULE_CONTRACT>
8
+ <CHANGE_SUMMARY>
9
+ <item>RFC-0391: initial forge-config module with zod schema, loadForgeConfig, resolveForgeRoot.</item>
10
+ <item>RFC-0393: added ForgeBindings schema, resolveBinding with placeholder substitution.</item>
11
+ <item>RFC-0538: added optional compass binding section (fileExtensions, testPatterns).</item>
12
+ <item>RFC-0537: added sessionsDir to paths and bindings.paths schemas.</item>
13
+ <item>RFC-0539: added ForgeSkillPack schema and skillPacks to forge config for project-declared skill packs.</item>
14
+ <item>RFC-0540: added implementStamp to bindings schema, FORGE_CLI_BINDING_DEFAULTS, PM_RUNNER_MAP, resolvePmRunner, applyCliBindingDefaults.</item>
15
+ <item>RFC-0540 fix: eliminated type casts — applyCliBindingDefaults returns ForgeBindings["commands"] directly, resolvePackageManager validates pm against enum.</item>
16
+ <item>RFC-0543: added optional forge.syncedVersion field to forgeConfigSchema and defaultForgeConfig for consumer upgrade tracking.</item>
17
+ <item>RFC-0546: added optional migrationAdapters field to forgeConfigSchema for migration-adapter registry discovery.</item>
18
+ <item>RFC-0639: added 5 semantic command keys (validate, produce, verify, preview, lint), terminology promoted from .optional() to .default({}), resolveTerminology function.</item>
19
+ <item>RFC-0640: added optional domain field to project section for domain-aware bootstrapping and health checks.</item>
20
+ <item>RFC-0643: added optional profile field to forgeConfigSchema and ForgeConfig; loadForgeConfig loads profiles/<id>.yaml when present.</item>
21
+ <item>RFC-0661: added optional knowledge.budgets binding for hot/warm layer character budget overrides.</item>
22
+ <item>RFC-0662: added optional knowledge.retentionDays and knowledge.staleDays bindings for compaction overrides.</item>
23
+ <item>RFC-0704: added optional independentVersionPackages field to forgeConfigSchema for packages with autonomous npm versions.</item>
24
+ </CHANGE_SUMMARY>
25
+ */
26
+ import fs from "node:fs";
27
+ import path from "node:path";
28
+ import { z } from "zod";
29
+ import { parse as parseYaml } from "yaml";
30
+ import { TERMINOLOGY_DEFAULTS } from "../profiles/profile-schema.js";
31
+ import { listStackProfiles } from "../profiles/stack-profile.js";
32
+ // ---------------------------------------------------------------------------
33
+ // Bindings schema (forge/bindings@1) — RFC-0393
34
+ // ---------------------------------------------------------------------------
35
+ export const forgeBindingsSchema = z.object({
36
+ schema: z.literal("forge/bindings@1"),
37
+ commands: z.object({
38
+ validateRfc: z.string().nullable().default(null),
39
+ validateAdr: z.string().nullable().default(null),
40
+ implementStamp: z.string().nullable().default(null),
41
+ typecheck: z.string().nullable().default(null),
42
+ test: z.string().nullable().default(null),
43
+ scopedBuild: z.string().nullable().default(null),
44
+ specValidate: z.string().nullable().default(null),
45
+ sessionSave: z.string().nullable().default(null),
46
+ // Semantic keys (RFC-0639) — domain-neutral, optional
47
+ validate: z.string().nullable().default(null),
48
+ produce: z.string().nullable().default(null),
49
+ verify: z.string().nullable().default(null),
50
+ preview: z.string().nullable().default(null),
51
+ lint: z.string().nullable().default(null),
52
+ }),
53
+ paths: z.object({
54
+ invariantsFile: z.string().nullable().default(null),
55
+ compassDocs: z.array(z.string()).default([]),
56
+ reviewsDir: z.string().nullable().default(null),
57
+ handoffsDir: z.string().nullable().default(null),
58
+ sessionsDir: z.string().nullable().default(null),
59
+ }),
60
+ terminology: z.record(z.string(), z.string()).default({}),
61
+ compass: z
62
+ .object({
63
+ fileExtensions: z.array(z.string()).optional(),
64
+ testPatterns: z.array(z.string()).optional(),
65
+ })
66
+ .optional(),
67
+ // RFC-0661: optional knowledge layer character budget overrides
68
+ // RFC-0662: optional retention/stale day overrides
69
+ knowledge: z
70
+ .object({
71
+ budgets: z
72
+ .object({
73
+ hot: z.number().positive(),
74
+ warm: z.number().positive(),
75
+ })
76
+ .optional(),
77
+ retentionDays: z.number().positive().optional(),
78
+ staleDays: z.number().positive().optional(),
79
+ })
80
+ .optional(),
81
+ // RFC-0664: optional memory layer budget override (MEMORY.md hot store)
82
+ memory: z
83
+ .object({
84
+ budget: z.number().int().positive().default(4096),
85
+ })
86
+ .optional(),
87
+ });
88
+ // ---------------------------------------------------------------------------
89
+ // Skill packs schema (RFC-0539)
90
+ // ---------------------------------------------------------------------------
91
+ export const forgeSkillPackSchema = z.object({
92
+ prefix: z
93
+ .string()
94
+ .regex(/^[a-z][a-z0-9]{1,7}$/, "prefix must be 2-8 chars: lowercase letter followed by lowercase alphanumeric")
95
+ .refine((v) => v !== "fo", "fo prefix is reserved for forge"),
96
+ dir: z.string().min(1),
97
+ });
98
+ // ---------------------------------------------------------------------------
99
+ // Migration adapters schema (RFC-0546)
100
+ // ---------------------------------------------------------------------------
101
+ export const forgeMigrationAdapterSchema = z.object({
102
+ id: z.string().min(1),
103
+ module: z.string().optional(),
104
+ });
105
+ // ---------------------------------------------------------------------------
106
+ // Schema (forge/config@1)
107
+ // ---------------------------------------------------------------------------
108
+ export const forgeConfigSchema = z.object({
109
+ schema: z.literal("forge/config@1"),
110
+ project: z.object({
111
+ name: z.string().min(1),
112
+ stack: z.array(z.string()).default([]),
113
+ packageManager: z.enum(["pnpm", "npm", "yarn", "bun", "none"]).default("pnpm"),
114
+ // RFC-0640: optional domain field — absent means software-domain fallback
115
+ domain: z.string().optional(),
116
+ }),
117
+ paths: z.object({
118
+ rfcsDir: z.string().default("docs/rfcs"),
119
+ adrsDir: z.string().default("docs/adrs"),
120
+ plansDir: z.string().default("docs/plans"),
121
+ auditsDir: z.string().default("docs/audits"),
122
+ specsDir: z.string().default("docs/specs"),
123
+ skillsDir: z.string().default(".agents/skills"),
124
+ sessionsDir: z.string().default("docs/sessions"),
125
+ }),
126
+ /** Bindings contract (RFC-0393). Optional — absent means no bindings. */
127
+ bindings: forgeBindingsSchema.optional(),
128
+ /** Skill packs (RFC-0539). Optional — absent means no project-local packs. */
129
+ skillPacks: z.array(forgeSkillPackSchema).optional(),
130
+ /** Migration adapters (RFC-0546). Optional — absent means built-in adapters only. */
131
+ migrationAdapters: z.array(forgeMigrationAdapterSchema).optional(),
132
+ /** Forge sync metadata (RFC-0543). Optional — absent means never synced. */
133
+ forge: z
134
+ .object({
135
+ syncedVersion: z.string().nullable().default(null),
136
+ })
137
+ .optional(),
138
+ /** RFC-0643: profile id — when present, loadForgeConfig loads the corresponding profiles/<id>.yaml */
139
+ profile: z.string().optional(),
140
+ /** RFC-0704: packages with autonomous npm versions — ecosystem.commit skips platform bump when all staged files belong to these packages */
141
+ independentVersionPackages: z.array(z.string()).optional(),
142
+ });
143
+ export const FORGE_CLI_BINDING_DEFAULTS = [
144
+ { key: "commands.validateRfc", template: "forge rfc.validate --id {id} --json" },
145
+ { key: "commands.validateAdr", template: "forge adr.validate --id {id} --json" },
146
+ {
147
+ key: "commands.implementStamp",
148
+ template: "forge rfc.implement.stamp --id {id} --implementation-commit {commit}",
149
+ },
150
+ { key: "commands.specValidate", template: "forge spec.validate --spec={id} --json" },
151
+ { key: "commands.sessionSave", template: "forge session.save --json" },
152
+ ];
153
+ export const PM_RUNNER_MAP = {
154
+ pnpm: "pnpm exec",
155
+ npm: "npx",
156
+ yarn: "yarn exec",
157
+ bun: "bunx",
158
+ none: "npx",
159
+ };
160
+ export function resolvePmRunner(pm) {
161
+ return PM_RUNNER_MAP[pm] ?? "npx";
162
+ }
163
+ export const PM_INSTALL_MAP = {
164
+ pnpm: "pnpm add",
165
+ npm: "npm install",
166
+ yarn: "yarn add",
167
+ bun: "bun add",
168
+ none: "npm install",
169
+ };
170
+ export function resolvePmInstall(pm) {
171
+ return PM_INSTALL_MAP[pm] ?? "npm install";
172
+ }
173
+ export function applyCliBindingDefaults(pm) {
174
+ const runner = resolvePmRunner(pm);
175
+ const commands = {
176
+ validateRfc: null,
177
+ validateAdr: null,
178
+ implementStamp: null,
179
+ typecheck: null,
180
+ test: null,
181
+ scopedBuild: null,
182
+ specValidate: null,
183
+ sessionSave: null,
184
+ // Semantic keys (RFC-0639) — stack-dependent, not CLI-backed
185
+ validate: null,
186
+ produce: null,
187
+ verify: null,
188
+ preview: null,
189
+ lint: null,
190
+ };
191
+ for (const entry of FORGE_CLI_BINDING_DEFAULTS) {
192
+ const bareKey = entry.key.replace("commands.", "");
193
+ commands[bareKey] = `${runner} ${entry.template}`;
194
+ }
195
+ return commands;
196
+ }
197
+ const VALID_PACKAGE_MANAGERS = ["pnpm", "npm", "yarn", "bun", "none"];
198
+ export function resolvePackageManager(pm) {
199
+ return VALID_PACKAGE_MANAGERS.includes(pm) ? pm : "pnpm";
200
+ }
201
+ export function defaultForgeConfig(projectName, packageManager) {
202
+ const pm = resolvePackageManager(packageManager ?? "pnpm");
203
+ return {
204
+ schema: "forge/config@1",
205
+ project: {
206
+ name: projectName,
207
+ stack: [],
208
+ packageManager: pm,
209
+ },
210
+ paths: {
211
+ rfcsDir: "docs/rfcs",
212
+ adrsDir: "docs/adrs",
213
+ plansDir: "docs/plans",
214
+ auditsDir: "docs/audits",
215
+ specsDir: "docs/specs",
216
+ skillsDir: ".agents/skills",
217
+ sessionsDir: "docs/sessions",
218
+ },
219
+ bindings: {
220
+ schema: "forge/bindings@1",
221
+ commands: applyCliBindingDefaults(pm),
222
+ paths: {
223
+ invariantsFile: null,
224
+ compassDocs: [],
225
+ reviewsDir: "docs/reviews",
226
+ handoffsDir: "docs/handoffs",
227
+ sessionsDir: "docs/sessions",
228
+ },
229
+ terminology: {},
230
+ compass: {},
231
+ },
232
+ forge: { syncedVersion: null },
233
+ };
234
+ }
235
+ // ---------------------------------------------------------------------------
236
+ // Loader
237
+ // ---------------------------------------------------------------------------
238
+ export function loadForgeConfig(workspaceRoot) {
239
+ const configPath = path.join(workspaceRoot, "forge.yaml");
240
+ if (!fs.existsSync(configPath)) {
241
+ throw new Error(`forge.yaml not found at ${configPath}. Run 'forge create' to create project configuration.`);
242
+ }
243
+ const raw = fs.readFileSync(configPath, "utf8");
244
+ let parsed;
245
+ try {
246
+ parsed = parseYaml(raw);
247
+ }
248
+ catch (err) {
249
+ throw new Error(`forge.yaml at ${configPath} is not valid YAML: ${err.message}`);
250
+ }
251
+ const result = forgeConfigSchema.safeParse(parsed);
252
+ if (!result.success) {
253
+ const issues = result.error.issues
254
+ .map((i) => ` - ${i.path.join(".")}: ${i.message}`)
255
+ .join("\n");
256
+ throw new Error(`forge.yaml at ${configPath} failed schema validation:\n${issues}\nFix the listed fields or run 'forge create' to regenerate defaults.`);
257
+ }
258
+ const rawData = result.data;
259
+ const profileId = rawData["profile"];
260
+ // RFC-0643: load stack profile when `profile` field is present in forge.yaml
261
+ let loadedProfile;
262
+ if (profileId) {
263
+ try {
264
+ const forgeRoot = resolveForgeRoot(workspaceRoot);
265
+ const profiles = listStackProfiles(forgeRoot);
266
+ loadedProfile = profiles.find((p) => p.id === profileId);
267
+ }
268
+ catch {
269
+ // forge root not resolvable — profile not loaded
270
+ }
271
+ }
272
+ const config = { ...rawData };
273
+ if (loadedProfile) {
274
+ config.profile = loadedProfile;
275
+ }
276
+ else {
277
+ delete config.profile;
278
+ }
279
+ return config;
280
+ }
281
+ // ---------------------------------------------------------------------------
282
+ // Forge root resolver — the single place that decides monorepo vs npm-installed
283
+ // ---------------------------------------------------------------------------
284
+ export function resolveForgeRoot(workspaceRoot) {
285
+ const monorepoPath = path.join(workspaceRoot, "packages", "forge");
286
+ if (fs.existsSync(path.join(monorepoPath, "package.json"))) {
287
+ return monorepoPath;
288
+ }
289
+ const npmPath = path.join(workspaceRoot, "node_modules", "@warpgogol", "forge");
290
+ if (fs.existsSync(path.join(npmPath, "package.json"))) {
291
+ return npmPath;
292
+ }
293
+ throw new Error(`Could not resolve forge root. Checked:\n ${monorepoPath}\n ${npmPath}\nEnsure @warpgogol/forge is installed or packages/forge exists.`);
294
+ }
295
+ // ---------------------------------------------------------------------------
296
+ // Binding resolver — RFC-0393
297
+ // ---------------------------------------------------------------------------
298
+ /**
299
+ * Resolve a binding key (e.g. "commands.validateRfc") from the config.
300
+ * Returns the resolved string/array, or null if the binding is absent or explicitly null.
301
+ * Supports placeholder substitution: {id}, {workspace}, {file}.
302
+ */
303
+ export function resolveBinding(config, key, placeholders) {
304
+ if (!config.bindings) {
305
+ return null;
306
+ }
307
+ const parts = key.split(".");
308
+ let current = config.bindings;
309
+ for (const part of parts) {
310
+ if (current === null || current === undefined) {
311
+ return null;
312
+ }
313
+ if (typeof current !== "object" || !(part in current)) {
314
+ return null;
315
+ }
316
+ current = current[part];
317
+ }
318
+ if (current === null || current === undefined) {
319
+ return null;
320
+ }
321
+ if (Array.isArray(current)) {
322
+ return current;
323
+ }
324
+ if (typeof current === "string") {
325
+ if (placeholders) {
326
+ return substitutePlaceholders(current, placeholders);
327
+ }
328
+ return current;
329
+ }
330
+ return null;
331
+ }
332
+ function substitutePlaceholders(template, placeholders) {
333
+ let result = template;
334
+ for (const [key, value] of Object.entries(placeholders)) {
335
+ result = result.replaceAll(`{${key}}`, value);
336
+ }
337
+ return result;
338
+ }
339
+ // ---------------------------------------------------------------------------
340
+ // Terminology resolver — RFC-0639
341
+ // ---------------------------------------------------------------------------
342
+ /**
343
+ * Resolve a terminology key using a three-tier chain:
344
+ * 1. Per-project override in bindings.terminology
345
+ * 2. Caller-provided terminology map (typically from profile.terminology, RFC-0638)
346
+ * 3. Universal default from TERMINOLOGY_DEFAULTS (RFC-0638)
347
+ *
348
+ * If the key is not found in any tier, the key itself is returned.
349
+ */
350
+ export function resolveTerminology(config, terminology, key) {
351
+ if (config.bindings?.terminology?.[key]) {
352
+ return config.bindings.terminology[key];
353
+ }
354
+ if (terminology?.[key]) {
355
+ return terminology[key];
356
+ }
357
+ return TERMINOLOGY_DEFAULTS[key] ?? key;
358
+ }
359
+ //# sourceMappingURL=forge-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forge-config.js","sourceRoot":"","sources":["../../../src/config/forge-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { ForgeCommandDefinition } from "./types.ts";
2
+ export interface ForgeModuleRegistry {
3
+ registerCommand(command: ForgeCommandDefinition): void;
4
+ registerPipeline(name: string, steps: ForgePipelineStep[]): void;
5
+ }
6
+ export interface ForgeModule {
7
+ name: string;
8
+ version: string;
9
+ register(registry: ForgeModuleRegistry): void | Promise<void>;
10
+ }
11
+ export type { ForgeCommandDefinition, ForgeCommandResult, ForgeFlagSpec } from "./types.ts";
12
+ export interface ForgePipelineStep {
13
+ command: string;
14
+ args?: string[];
15
+ }
16
+ //# sourceMappingURL=forge-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forge-module.d.ts","sourceRoot":"","sources":["../../src/forge-module.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAOzD,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACvD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAGD,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5F,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB"}
@@ -0,0 +1,15 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>ForgeModule interfaces — structurally compatible with KernelModule from @warpgogol/site-kernel. Forge does NOT import from site-kernel.</purpose>
4
+ <non-goals>
5
+ <item>Do not import from @warpgogol/site-kernel — forge must be installable without it.</item>
6
+ <item>Do not add project-specific fields to ForgeModule — keep it minimal and portable.</item>
7
+ </non-goals>
8
+ </MODULE_CONTRACT>
9
+ <CHANGE_SUMMARY>
10
+ <item>RFC-0374: initial ForgeModule, ForgeModuleRegistry, ForgeCommandDefinition, ForgePipelineStep interfaces.</item>
11
+ <item>Forge autonomy refactor: ForgeCommandDefinition and ForgeCommandResult now reference canonical types from types.ts.</item>
12
+ </CHANGE_SUMMARY>
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=forge-module.js.map