@warpgogol/forge 0.3.1

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 (516) hide show
  1. package/AGENTS.md +149 -0
  2. package/README.md +164 -0
  3. package/bin/cli.js +16 -0
  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 +265 -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 +112 -0
  11. package/dist/os/adr/adr.module.js.map +1 -0
  12. package/dist/os/adr/frontmatter-io.d.ts +11 -0
  13. package/dist/os/adr/frontmatter-io.d.ts.map +1 -0
  14. package/dist/os/adr/frontmatter-io.js +64 -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 +162 -0
  19. package/dist/os/adr/handlers/archive.js.map +1 -0
  20. package/dist/os/adr/handlers/list-create.d.ts +5 -0
  21. package/dist/os/adr/handlers/list-create.d.ts.map +1 -0
  22. package/dist/os/adr/handlers/list-create.js +165 -0
  23. package/dist/os/adr/handlers/list-create.js.map +1 -0
  24. package/dist/os/adr/handlers/validate.d.ts +4 -0
  25. package/dist/os/adr/handlers/validate.d.ts.map +1 -0
  26. package/dist/os/adr/handlers/validate.js +219 -0
  27. package/dist/os/adr/handlers/validate.js.map +1 -0
  28. package/dist/os/adr/index.d.ts +8 -0
  29. package/dist/os/adr/index.d.ts.map +1 -0
  30. package/dist/os/adr/index.js +18 -0
  31. package/dist/os/adr/index.js.map +1 -0
  32. package/dist/os/adr/types.d.ts +59 -0
  33. package/dist/os/adr/types.d.ts.map +1 -0
  34. package/dist/os/adr/types.js +54 -0
  35. package/dist/os/adr/types.js.map +1 -0
  36. package/dist/os/audit/audit.module.d.ts +3 -0
  37. package/dist/os/audit/audit.module.d.ts.map +1 -0
  38. package/dist/os/audit/audit.module.js +44 -0
  39. package/dist/os/audit/audit.module.js.map +1 -0
  40. package/dist/os/audit/frontmatter-io.d.ts +12 -0
  41. package/dist/os/audit/frontmatter-io.d.ts.map +1 -0
  42. package/dist/os/audit/frontmatter-io.js +73 -0
  43. package/dist/os/audit/frontmatter-io.js.map +1 -0
  44. package/dist/os/audit/handlers/archive.d.ts +4 -0
  45. package/dist/os/audit/handlers/archive.d.ts.map +1 -0
  46. package/dist/os/audit/handlers/archive.js +167 -0
  47. package/dist/os/audit/handlers/archive.js.map +1 -0
  48. package/dist/os/audit/index.d.ts +6 -0
  49. package/dist/os/audit/index.d.ts.map +1 -0
  50. package/dist/os/audit/index.js +16 -0
  51. package/dist/os/audit/index.js.map +1 -0
  52. package/dist/os/audit/types.d.ts +12 -0
  53. package/dist/os/audit/types.d.ts.map +1 -0
  54. package/dist/os/audit/types.js +17 -0
  55. package/dist/os/audit/types.js.map +1 -0
  56. package/dist/os/compass/compass.module.d.ts +3 -0
  57. package/dist/os/compass/compass.module.d.ts.map +1 -0
  58. package/dist/os/compass/compass.module.js +162 -0
  59. package/dist/os/compass/compass.module.js.map +1 -0
  60. package/dist/os/compass/handlers/compass-audit-handler.d.ts +36 -0
  61. package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +1 -0
  62. package/dist/os/compass/handlers/compass-audit-handler.js +238 -0
  63. package/dist/os/compass/handlers/compass-audit-handler.js.map +1 -0
  64. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +19 -0
  65. package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +1 -0
  66. package/dist/os/compass/handlers/compass-change-summary-handler.js +205 -0
  67. package/dist/os/compass/handlers/compass-change-summary-handler.js.map +1 -0
  68. package/dist/os/compass/handlers/compass-inventory-handler.d.ts +28 -0
  69. package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +1 -0
  70. package/dist/os/compass/handlers/compass-inventory-handler.js +213 -0
  71. package/dist/os/compass/handlers/compass-inventory-handler.js.map +1 -0
  72. package/dist/os/compass/handlers/compass-inventory.d.ts +30 -0
  73. package/dist/os/compass/handlers/compass-inventory.d.ts.map +1 -0
  74. package/dist/os/compass/handlers/compass-inventory.js +418 -0
  75. package/dist/os/compass/handlers/compass-inventory.js.map +1 -0
  76. package/dist/os/compass/handlers/git-revision.d.ts +8 -0
  77. package/dist/os/compass/handlers/git-revision.d.ts.map +1 -0
  78. package/dist/os/compass/handlers/git-revision.js +99 -0
  79. package/dist/os/compass/handlers/git-revision.js.map +1 -0
  80. package/dist/os/compass/handlers/resolve-scan-root.d.ts +3 -0
  81. package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +1 -0
  82. package/dist/os/compass/handlers/resolve-scan-root.js +41 -0
  83. package/dist/os/compass/handlers/resolve-scan-root.js.map +1 -0
  84. package/dist/os/compass/index.d.ts +8 -0
  85. package/dist/os/compass/index.d.ts.map +1 -0
  86. package/dist/os/compass/index.js +19 -0
  87. package/dist/os/compass/index.js.map +1 -0
  88. package/dist/os/core/core.module.d.ts +3 -0
  89. package/dist/os/core/core.module.d.ts.map +1 -0
  90. package/dist/os/core/core.module.js +318 -0
  91. package/dist/os/core/core.module.js.map +1 -0
  92. package/dist/os/core/index.d.ts +2 -0
  93. package/dist/os/core/index.d.ts.map +1 -0
  94. package/dist/os/core/index.js +13 -0
  95. package/dist/os/core/index.js.map +1 -0
  96. package/dist/os/mission/handlers/archive.d.ts +4 -0
  97. package/dist/os/mission/handlers/archive.d.ts.map +1 -0
  98. package/dist/os/mission/handlers/archive.js +209 -0
  99. package/dist/os/mission/handlers/archive.js.map +1 -0
  100. package/dist/os/mission/index.d.ts +2 -0
  101. package/dist/os/mission/index.d.ts.map +1 -0
  102. package/dist/os/mission/index.js +2 -0
  103. package/dist/os/mission/index.js.map +1 -0
  104. package/dist/os/mission/mission.module.d.ts +3 -0
  105. package/dist/os/mission/mission.module.d.ts.map +1 -0
  106. package/dist/os/mission/mission.module.js +44 -0
  107. package/dist/os/mission/mission.module.js.map +1 -0
  108. package/dist/os/mission/types.d.ts +23 -0
  109. package/dist/os/mission/types.d.ts.map +1 -0
  110. package/dist/os/mission/types.js +18 -0
  111. package/dist/os/mission/types.js.map +1 -0
  112. package/dist/os/naming/index.d.ts +3 -0
  113. package/dist/os/naming/index.d.ts.map +1 -0
  114. package/dist/os/naming/index.js +14 -0
  115. package/dist/os/naming/index.js.map +1 -0
  116. package/dist/os/naming/naming-convention.d.ts +25 -0
  117. package/dist/os/naming/naming-convention.d.ts.map +1 -0
  118. package/dist/os/naming/naming-convention.js +324 -0
  119. package/dist/os/naming/naming-convention.js.map +1 -0
  120. package/dist/os/naming/naming.module.d.ts +3 -0
  121. package/dist/os/naming/naming.module.d.ts.map +1 -0
  122. package/dist/os/naming/naming.module.js +33 -0
  123. package/dist/os/naming/naming.module.js.map +1 -0
  124. package/dist/os/plan/frontmatter-io.d.ts +12 -0
  125. package/dist/os/plan/frontmatter-io.d.ts.map +1 -0
  126. package/dist/os/plan/frontmatter-io.js +71 -0
  127. package/dist/os/plan/frontmatter-io.js.map +1 -0
  128. package/dist/os/plan/handlers/archive.d.ts +4 -0
  129. package/dist/os/plan/handlers/archive.d.ts.map +1 -0
  130. package/dist/os/plan/handlers/archive.js +166 -0
  131. package/dist/os/plan/handlers/archive.js.map +1 -0
  132. package/dist/os/plan/index.d.ts +6 -0
  133. package/dist/os/plan/index.d.ts.map +1 -0
  134. package/dist/os/plan/index.js +16 -0
  135. package/dist/os/plan/index.js.map +1 -0
  136. package/dist/os/plan/plan.module.d.ts +3 -0
  137. package/dist/os/plan/plan.module.d.ts.map +1 -0
  138. package/dist/os/plan/plan.module.js +44 -0
  139. package/dist/os/plan/plan.module.js.map +1 -0
  140. package/dist/os/plan/types.d.ts +12 -0
  141. package/dist/os/plan/types.d.ts.map +1 -0
  142. package/dist/os/plan/types.js +17 -0
  143. package/dist/os/plan/types.js.map +1 -0
  144. package/dist/os/rfc/acceptance.d.ts +15 -0
  145. package/dist/os/rfc/acceptance.d.ts.map +1 -0
  146. package/dist/os/rfc/acceptance.js +290 -0
  147. package/dist/os/rfc/acceptance.js.map +1 -0
  148. package/dist/os/rfc/decision-log.d.ts +6 -0
  149. package/dist/os/rfc/decision-log.d.ts.map +1 -0
  150. package/dist/os/rfc/decision-log.js +269 -0
  151. package/dist/os/rfc/decision-log.js.map +1 -0
  152. package/dist/os/rfc/dna-trace.d.ts +27 -0
  153. package/dist/os/rfc/dna-trace.d.ts.map +1 -0
  154. package/dist/os/rfc/dna-trace.js +214 -0
  155. package/dist/os/rfc/dna-trace.js.map +1 -0
  156. package/dist/os/rfc/frontmatter-io.d.ts +14 -0
  157. package/dist/os/rfc/frontmatter-io.d.ts.map +1 -0
  158. package/dist/os/rfc/frontmatter-io.js +98 -0
  159. package/dist/os/rfc/frontmatter-io.js.map +1 -0
  160. package/dist/os/rfc/handlers/archive.d.ts +24 -0
  161. package/dist/os/rfc/handlers/archive.d.ts.map +1 -0
  162. package/dist/os/rfc/handlers/archive.js +161 -0
  163. package/dist/os/rfc/handlers/archive.js.map +1 -0
  164. package/dist/os/rfc/handlers/check.d.ts +4 -0
  165. package/dist/os/rfc/handlers/check.d.ts.map +1 -0
  166. package/dist/os/rfc/handlers/check.js +195 -0
  167. package/dist/os/rfc/handlers/check.js.map +1 -0
  168. package/dist/os/rfc/handlers/implement-stamp.d.ts +4 -0
  169. package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -0
  170. package/dist/os/rfc/handlers/implement-stamp.js +334 -0
  171. package/dist/os/rfc/handlers/implement-stamp.js.map +1 -0
  172. package/dist/os/rfc/handlers/index-graph.d.ts +13 -0
  173. package/dist/os/rfc/handlers/index-graph.d.ts.map +1 -0
  174. package/dist/os/rfc/handlers/index-graph.js +189 -0
  175. package/dist/os/rfc/handlers/index-graph.js.map +1 -0
  176. package/dist/os/rfc/handlers/lifecycle.d.ts +13 -0
  177. package/dist/os/rfc/handlers/lifecycle.d.ts.map +1 -0
  178. package/dist/os/rfc/handlers/lifecycle.js +150 -0
  179. package/dist/os/rfc/handlers/lifecycle.js.map +1 -0
  180. package/dist/os/rfc/handlers/list-create.d.ts +6 -0
  181. package/dist/os/rfc/handlers/list-create.d.ts.map +1 -0
  182. package/dist/os/rfc/handlers/list-create.js +235 -0
  183. package/dist/os/rfc/handlers/list-create.js.map +1 -0
  184. package/dist/os/rfc/handlers/pipeline-status.d.ts +26 -0
  185. package/dist/os/rfc/handlers/pipeline-status.d.ts.map +1 -0
  186. package/dist/os/rfc/handlers/pipeline-status.js +124 -0
  187. package/dist/os/rfc/handlers/pipeline-status.js.map +1 -0
  188. package/dist/os/rfc/handlers/shared.d.ts +22 -0
  189. package/dist/os/rfc/handlers/shared.d.ts.map +1 -0
  190. package/dist/os/rfc/handlers/shared.js +99 -0
  191. package/dist/os/rfc/handlers/shared.js.map +1 -0
  192. package/dist/os/rfc/handlers/supersede-propose.d.ts +4 -0
  193. package/dist/os/rfc/handlers/supersede-propose.d.ts.map +1 -0
  194. package/dist/os/rfc/handlers/supersede-propose.js +200 -0
  195. package/dist/os/rfc/handlers/supersede-propose.js.map +1 -0
  196. package/dist/os/rfc/handlers/validate-rules.d.ts +29 -0
  197. package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -0
  198. package/dist/os/rfc/handlers/validate-rules.js +461 -0
  199. package/dist/os/rfc/handlers/validate-rules.js.map +1 -0
  200. package/dist/os/rfc/handlers/validate.d.ts +4 -0
  201. package/dist/os/rfc/handlers/validate.d.ts.map +1 -0
  202. package/dist/os/rfc/handlers/validate.js +101 -0
  203. package/dist/os/rfc/handlers/validate.js.map +1 -0
  204. package/dist/os/rfc/handlers.d.ts +7 -0
  205. package/dist/os/rfc/handlers.d.ts.map +1 -0
  206. package/dist/os/rfc/handlers.js +19 -0
  207. package/dist/os/rfc/handlers.js.map +1 -0
  208. package/dist/os/rfc/index.d.ts +18 -0
  209. package/dist/os/rfc/index.d.ts.map +1 -0
  210. package/dist/os/rfc/index.js +24 -0
  211. package/dist/os/rfc/index.js.map +1 -0
  212. package/dist/os/rfc/rfc.module.d.ts +3 -0
  213. package/dist/os/rfc/rfc.module.d.ts.map +1 -0
  214. package/dist/os/rfc/rfc.module.js +355 -0
  215. package/dist/os/rfc/rfc.module.js.map +1 -0
  216. package/dist/os/rfc/types.d.ts +448 -0
  217. package/dist/os/rfc/types.d.ts.map +1 -0
  218. package/dist/os/rfc/types.js +95 -0
  219. package/dist/os/rfc/types.js.map +1 -0
  220. package/dist/os/rfc/verification-evidence.d.ts +8 -0
  221. package/dist/os/rfc/verification-evidence.d.ts.map +1 -0
  222. package/dist/os/rfc/verification-evidence.js +182 -0
  223. package/dist/os/rfc/verification-evidence.js.map +1 -0
  224. package/dist/os/session/atif-parser.d.ts +29 -0
  225. package/dist/os/session/atif-parser.d.ts.map +1 -0
  226. package/dist/os/session/atif-parser.js +138 -0
  227. package/dist/os/session/atif-parser.js.map +1 -0
  228. package/dist/os/session/frontmatter-io.d.ts +31 -0
  229. package/dist/os/session/frontmatter-io.d.ts.map +1 -0
  230. package/dist/os/session/frontmatter-io.js +146 -0
  231. package/dist/os/session/frontmatter-io.js.map +1 -0
  232. package/dist/os/session/handlers/archive.d.ts +4 -0
  233. package/dist/os/session/handlers/archive.d.ts.map +1 -0
  234. package/dist/os/session/handlers/archive.js +209 -0
  235. package/dist/os/session/handlers/archive.js.map +1 -0
  236. package/dist/os/session/handlers/list.d.ts +4 -0
  237. package/dist/os/session/handlers/list.d.ts.map +1 -0
  238. package/dist/os/session/handlers/list.js +147 -0
  239. package/dist/os/session/handlers/list.js.map +1 -0
  240. package/dist/os/session/handlers/save.d.ts +6 -0
  241. package/dist/os/session/handlers/save.d.ts.map +1 -0
  242. package/dist/os/session/handlers/save.js +285 -0
  243. package/dist/os/session/handlers/save.js.map +1 -0
  244. package/dist/os/session/handlers/validate.d.ts +4 -0
  245. package/dist/os/session/handlers/validate.d.ts.map +1 -0
  246. package/dist/os/session/handlers/validate.js +188 -0
  247. package/dist/os/session/handlers/validate.js.map +1 -0
  248. package/dist/os/session/index.d.ts +9 -0
  249. package/dist/os/session/index.d.ts.map +1 -0
  250. package/dist/os/session/index.js +20 -0
  251. package/dist/os/session/index.js.map +1 -0
  252. package/dist/os/session/session.module.d.ts +3 -0
  253. package/dist/os/session/session.module.d.ts.map +1 -0
  254. package/dist/os/session/session.module.js +113 -0
  255. package/dist/os/session/session.module.js.map +1 -0
  256. package/dist/os/session/types.d.ts +101 -0
  257. package/dist/os/session/types.d.ts.map +1 -0
  258. package/dist/os/session/types.js +52 -0
  259. package/dist/os/session/types.js.map +1 -0
  260. package/dist/os/spec/spec-materialize.d.ts +21 -0
  261. package/dist/os/spec/spec-materialize.d.ts.map +1 -0
  262. package/dist/os/spec/spec-materialize.js +342 -0
  263. package/dist/os/spec/spec-materialize.js.map +1 -0
  264. package/dist/os/spec/spec-schema.d.ts +132 -0
  265. package/dist/os/spec/spec-schema.d.ts.map +1 -0
  266. package/dist/os/spec/spec-schema.js +118 -0
  267. package/dist/os/spec/spec-schema.js.map +1 -0
  268. package/dist/os/spec/spec-status.d.ts +33 -0
  269. package/dist/os/spec/spec-status.d.ts.map +1 -0
  270. package/dist/os/spec/spec-status.js +222 -0
  271. package/dist/os/spec/spec-status.js.map +1 -0
  272. package/dist/os/spec/spec-validate.d.ts +4 -0
  273. package/dist/os/spec/spec-validate.d.ts.map +1 -0
  274. package/dist/os/spec/spec-validate.js +435 -0
  275. package/dist/os/spec/spec-validate.js.map +1 -0
  276. package/dist/os/spec/spec.module.d.ts +3 -0
  277. package/dist/os/spec/spec.module.d.ts.map +1 -0
  278. package/dist/os/spec/spec.module.js +67 -0
  279. package/dist/os/spec/spec.module.js.map +1 -0
  280. package/dist/os/werkstatt/handlers/lock.d.ts +10 -0
  281. package/dist/os/werkstatt/handlers/lock.d.ts.map +1 -0
  282. package/dist/os/werkstatt/handlers/lock.js +127 -0
  283. package/dist/os/werkstatt/handlers/lock.js.map +1 -0
  284. package/dist/os/werkstatt/handlers/schema.d.ts +32 -0
  285. package/dist/os/werkstatt/handlers/schema.d.ts.map +1 -0
  286. package/dist/os/werkstatt/handlers/schema.js +41 -0
  287. package/dist/os/werkstatt/handlers/schema.js.map +1 -0
  288. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts +15 -0
  289. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +1 -0
  290. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +142 -0
  291. package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +1 -0
  292. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts +18 -0
  293. package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +1 -0
  294. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +43 -0
  295. package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +1 -0
  296. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts +11 -0
  297. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +1 -0
  298. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +79 -0
  299. package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +1 -0
  300. package/dist/os/werkstatt/index.d.ts +7 -0
  301. package/dist/os/werkstatt/index.d.ts.map +1 -0
  302. package/dist/os/werkstatt/index.js +18 -0
  303. package/dist/os/werkstatt/index.js.map +1 -0
  304. package/dist/os/werkstatt/werkstatt.module.d.ts +3 -0
  305. package/dist/os/werkstatt/werkstatt.module.d.ts.map +1 -0
  306. package/dist/os/werkstatt/werkstatt.module.js +58 -0
  307. package/dist/os/werkstatt/werkstatt.module.js.map +1 -0
  308. package/dist/os/workflow/handlers.d.ts +12 -0
  309. package/dist/os/workflow/handlers.d.ts.map +1 -0
  310. package/dist/os/workflow/handlers.js +254 -0
  311. package/dist/os/workflow/handlers.js.map +1 -0
  312. package/dist/os/workflow/index.d.ts +4 -0
  313. package/dist/os/workflow/index.d.ts.map +1 -0
  314. package/dist/os/workflow/index.js +18 -0
  315. package/dist/os/workflow/index.js.map +1 -0
  316. package/dist/os/workflow/types.d.ts +69 -0
  317. package/dist/os/workflow/types.d.ts.map +1 -0
  318. package/dist/os/workflow/types.js +23 -0
  319. package/dist/os/workflow/types.js.map +1 -0
  320. package/dist/os/workflow/workflow.module.d.ts +3 -0
  321. package/dist/os/workflow/workflow.module.d.ts.map +1 -0
  322. package/dist/os/workflow/workflow.module.js +48 -0
  323. package/dist/os/workflow/workflow.module.js.map +1 -0
  324. package/dist/src/cli-output.d.ts +5 -0
  325. package/dist/src/cli-output.d.ts.map +1 -0
  326. package/dist/src/cli-output.js +52 -0
  327. package/dist/src/cli-output.js.map +1 -0
  328. package/dist/src/config/forge-config.d.ts +170 -0
  329. package/dist/src/config/forge-config.d.ts.map +1 -0
  330. package/dist/src/config/forge-config.js +259 -0
  331. package/dist/src/config/forge-config.js.map +1 -0
  332. package/dist/src/forge-module.d.ts +16 -0
  333. package/dist/src/forge-module.d.ts.map +1 -0
  334. package/dist/src/forge-module.js +15 -0
  335. package/dist/src/forge-module.js.map +1 -0
  336. package/dist/src/index.d.ts +30 -0
  337. package/dist/src/index.d.ts.map +1 -0
  338. package/dist/src/index.js +48 -0
  339. package/dist/src/index.js.map +1 -0
  340. package/dist/src/migration-adapters/git-utils.d.ts +3 -0
  341. package/dist/src/migration-adapters/git-utils.d.ts.map +1 -0
  342. package/dist/src/migration-adapters/git-utils.js +46 -0
  343. package/dist/src/migration-adapters/git-utils.js.map +1 -0
  344. package/dist/src/migration-adapters/ignored-files.d.ts +12 -0
  345. package/dist/src/migration-adapters/ignored-files.d.ts.map +1 -0
  346. package/dist/src/migration-adapters/ignored-files.js +190 -0
  347. package/dist/src/migration-adapters/ignored-files.js.map +1 -0
  348. package/dist/src/migration-adapters/index.d.ts +8 -0
  349. package/dist/src/migration-adapters/index.d.ts.map +1 -0
  350. package/dist/src/migration-adapters/index.js +17 -0
  351. package/dist/src/migration-adapters/index.js.map +1 -0
  352. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts +3 -0
  353. package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts.map +1 -0
  354. package/dist/src/migration-adapters/node-typescript-pnpm/index.js +141 -0
  355. package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +1 -0
  356. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts +3 -0
  357. package/dist/src/migration-adapters/phaser-pnpm/index.d.ts.map +1 -0
  358. package/dist/src/migration-adapters/phaser-pnpm/index.js +142 -0
  359. package/dist/src/migration-adapters/phaser-pnpm/index.js.map +1 -0
  360. package/dist/src/migration-adapters/registry.d.ts +6 -0
  361. package/dist/src/migration-adapters/registry.d.ts.map +1 -0
  362. package/dist/src/migration-adapters/registry.js +58 -0
  363. package/dist/src/migration-adapters/registry.js.map +1 -0
  364. package/dist/src/migration-adapters/types.d.ts +35 -0
  365. package/dist/src/migration-adapters/types.d.ts.map +1 -0
  366. package/dist/src/migration-adapters/types.js +31 -0
  367. package/dist/src/migration-adapters/types.js.map +1 -0
  368. package/dist/src/onboarding/agents-generate.d.ts +11 -0
  369. package/dist/src/onboarding/agents-generate.d.ts.map +1 -0
  370. package/dist/src/onboarding/agents-generate.js +415 -0
  371. package/dist/src/onboarding/agents-generate.js.map +1 -0
  372. package/dist/src/onboarding/create.d.ts +12 -0
  373. package/dist/src/onboarding/create.d.ts.map +1 -0
  374. package/dist/src/onboarding/create.js +232 -0
  375. package/dist/src/onboarding/create.js.map +1 -0
  376. package/dist/src/onboarding/doctor.d.ts +30 -0
  377. package/dist/src/onboarding/doctor.d.ts.map +1 -0
  378. package/dist/src/onboarding/doctor.js +380 -0
  379. package/dist/src/onboarding/doctor.js.map +1 -0
  380. package/dist/src/onboarding/extended-behavioral-layer.d.ts +10 -0
  381. package/dist/src/onboarding/extended-behavioral-layer.d.ts.map +1 -0
  382. package/dist/src/onboarding/extended-behavioral-layer.js +82 -0
  383. package/dist/src/onboarding/extended-behavioral-layer.js.map +1 -0
  384. package/dist/src/onboarding/init.d.ts +25 -0
  385. package/dist/src/onboarding/init.d.ts.map +1 -0
  386. package/dist/src/onboarding/init.js +260 -0
  387. package/dist/src/onboarding/init.js.map +1 -0
  388. package/dist/src/onboarding/scaffold-project.d.ts +12 -0
  389. package/dist/src/onboarding/scaffold-project.d.ts.map +1 -0
  390. package/dist/src/onboarding/scaffold-project.js +167 -0
  391. package/dist/src/onboarding/scaffold-project.js.map +1 -0
  392. package/dist/src/onboarding/scaffold.d.ts +15 -0
  393. package/dist/src/onboarding/scaffold.d.ts.map +1 -0
  394. package/dist/src/onboarding/scaffold.js +120 -0
  395. package/dist/src/onboarding/scaffold.js.map +1 -0
  396. package/dist/src/onboarding/upgrade.d.ts +17 -0
  397. package/dist/src/onboarding/upgrade.d.ts.map +1 -0
  398. package/dist/src/onboarding/upgrade.js +293 -0
  399. package/dist/src/onboarding/upgrade.js.map +1 -0
  400. package/dist/src/profiles/stack-profile.d.ts +51 -0
  401. package/dist/src/profiles/stack-profile.d.ts.map +1 -0
  402. package/dist/src/profiles/stack-profile.js +119 -0
  403. package/dist/src/profiles/stack-profile.js.map +1 -0
  404. package/dist/src/registry.d.ts +38 -0
  405. package/dist/src/registry.d.ts.map +1 -0
  406. package/dist/src/registry.js +135 -0
  407. package/dist/src/registry.js.map +1 -0
  408. package/dist/src/skill-schema.d.ts +30 -0
  409. package/dist/src/skill-schema.d.ts.map +1 -0
  410. package/dist/src/skill-schema.js +34 -0
  411. package/dist/src/skill-schema.js.map +1 -0
  412. package/dist/src/types.d.ts +153 -0
  413. package/dist/src/types.d.ts.map +1 -0
  414. package/dist/src/types.js +17 -0
  415. package/dist/src/types.js.map +1 -0
  416. package/dist/src/utils/fs-atomic.d.ts +7 -0
  417. package/dist/src/utils/fs-atomic.d.ts.map +1 -0
  418. package/dist/src/utils/fs-atomic.js +81 -0
  419. package/dist/src/utils/fs-atomic.js.map +1 -0
  420. package/dist/src/utils/fs-idempotent.d.ts +2 -0
  421. package/dist/src/utils/fs-idempotent.d.ts.map +1 -0
  422. package/dist/src/utils/fs-idempotent.js +30 -0
  423. package/dist/src/utils/fs-idempotent.js.map +1 -0
  424. package/dist/src/utils/fs.d.ts +8 -0
  425. package/dist/src/utils/fs.d.ts.map +1 -0
  426. package/dist/src/utils/fs.js +60 -0
  427. package/dist/src/utils/fs.js.map +1 -0
  428. package/dist/src/utils/generated-marker.d.ts +21 -0
  429. package/dist/src/utils/generated-marker.d.ts.map +1 -0
  430. package/dist/src/utils/generated-marker.js +128 -0
  431. package/dist/src/utils/generated-marker.js.map +1 -0
  432. package/dist/src/utils/hash.d.ts +2 -0
  433. package/dist/src/utils/hash.d.ts.map +1 -0
  434. package/dist/src/utils/hash.js +18 -0
  435. package/dist/src/utils/hash.js.map +1 -0
  436. package/dist/src/utils/index.d.ts +7 -0
  437. package/dist/src/utils/index.d.ts.map +1 -0
  438. package/dist/src/utils/index.js +19 -0
  439. package/dist/src/utils/index.js.map +1 -0
  440. package/dist/src/utils/string-utils.d.ts +2 -0
  441. package/dist/src/utils/string-utils.d.ts.map +1 -0
  442. package/dist/src/utils/string-utils.js +19 -0
  443. package/dist/src/utils/string-utils.js.map +1 -0
  444. package/dist/src/validators/port-validate.d.ts +12 -0
  445. package/dist/src/validators/port-validate.d.ts.map +1 -0
  446. package/dist/src/validators/port-validate.js +73 -0
  447. package/dist/src/validators/port-validate.js.map +1 -0
  448. package/dist/src/validators/skill-validate.d.ts +14 -0
  449. package/dist/src/validators/skill-validate.d.ts.map +1 -0
  450. package/dist/src/validators/skill-validate.js +487 -0
  451. package/dist/src/validators/skill-validate.js.map +1 -0
  452. package/os/rfc/rfc-0000-template.md +222 -0
  453. package/package.json +262 -0
  454. package/profiles/astro-typescript-turborepo.yaml +144 -0
  455. package/profiles/forge-shell.yaml +77 -0
  456. package/profiles/phaser-turborepo.yaml +144 -0
  457. package/skills/_shared/fo-pipeline-conventions.md +119 -0
  458. package/skills/_shared/fo-session-summary.md +95 -0
  459. package/skills/fo/fo-add-tests/SKILL.md +166 -0
  460. package/skills/fo/fo-add-tests/mocking.md +60 -0
  461. package/skills/fo/fo-add-tests/pbt-guide.md +193 -0
  462. package/skills/fo/fo-add-tests/tests-reference.md +92 -0
  463. package/skills/fo/fo-architecture/SKILL.md +83 -0
  464. package/skills/fo/fo-architecture/architecture-vocabulary.md +104 -0
  465. package/skills/fo/fo-architecture/deepening.md +37 -0
  466. package/skills/fo/fo-architecture/design-it-twice.md +44 -0
  467. package/skills/fo/fo-architecture/html-report.md +104 -0
  468. package/skills/fo/fo-compass-annotate/SKILL.md +128 -0
  469. package/skills/fo/fo-compass-annotate/reference/comment-styles.md +25 -0
  470. package/skills/fo/fo-compass-annotate/reference/learned-principles.md +12 -0
  471. package/skills/fo/fo-compass-annotate/reference/risk-patterns.md +23 -0
  472. package/skills/fo/fo-compass-annotate/templates/audit-prompt.md +36 -0
  473. package/skills/fo/fo-compass-annotate/templates/header-format.md +57 -0
  474. package/skills/fo/fo-compass-annotate/templates/header-prompt.md +35 -0
  475. package/skills/fo/fo-doc-audit/SKILL.md +264 -0
  476. package/skills/fo/fo-extract-dna/SKILL.md +248 -0
  477. package/skills/fo/fo-fix/SKILL.md +152 -0
  478. package/skills/fo/fo-fix/bug-diagnosis.md +128 -0
  479. package/skills/fo/fo-handoff/SKILL.md +58 -0
  480. package/skills/fo/fo-harvest/SKILL.md +80 -0
  481. package/skills/fo/fo-idea/SKILL.md +242 -0
  482. package/skills/fo/fo-idea-audit/SKILL.md +248 -0
  483. package/skills/fo/fo-idea-create-adr/SKILL.md +130 -0
  484. package/skills/fo/fo-idea-create-rfc/SKILL.md +130 -0
  485. package/skills/fo/fo-idea-enhance/SKILL.md +218 -0
  486. package/skills/fo/fo-idea-i-just-want-to-see-the-plan/SKILL.md +36 -0
  487. package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +167 -0
  488. package/skills/fo/fo-idea-implement/SKILL.md +463 -0
  489. package/skills/fo/fo-idea-plan/SKILL.md +230 -0
  490. package/skills/fo/fo-idea-status/SKILL.md +103 -0
  491. package/skills/fo/fo-memory-sync/SKILL.md +204 -0
  492. package/skills/fo/fo-memory-sync/fix-patterns.md +24 -0
  493. package/skills/fo/fo-memory-sync/learned-principles.md +6 -0
  494. package/skills/fo/fo-memory-sync/qa-log.md +5 -0
  495. package/skills/fo/fo-qa/SKILL.md +142 -0
  496. package/skills/fo/fo-review/SKILL.md +273 -0
  497. package/skills/fo/fo-session-retro/SKILL.md +276 -0
  498. package/skills/fo/fo-session-save/SKILL.md +71 -0
  499. package/skills/fo/fo-session-save/fix-patterns.md +33 -0
  500. package/skills/fo/fo-session-save/learned-principles.md +19 -0
  501. package/skills/fo/fo-session-save/qa-log.md +11 -0
  502. package/skills/fo/fo-spec-ingest/SKILL.md +127 -0
  503. package/skills/fo/fo-triage/SKILL.md +97 -0
  504. package/skills/meta/forge-bootstrap/SKILL.md +335 -0
  505. package/skills/meta/forge-bootstrap/forge-about.md +35 -0
  506. package/skills/meta/forge-bootstrap/milestone-gallery/.gitkeep +0 -0
  507. package/skills/meta/forge-bootstrap/operator-profile-template.md +53 -0
  508. package/skills/meta/forge-bootstrap/project-narrative-template.md +31 -0
  509. package/skills/meta/port-to-forge/SKILL.md +65 -0
  510. package/skills/meta/skill-create/SKILL.md +73 -0
  511. package/skills/shared/grilling/SKILL.md +28 -0
  512. package/skills/shared/grilling/learned-principles.md +12 -0
  513. package/skills/shared/grilling/qa-log.md +10 -0
  514. package/skills/shared/my-preferences/SKILL.md +77 -0
  515. package/skills/shared/windows-ai-tooling/SKILL.md +200 -0
  516. package/skills/shared/writing-great-skills/SKILL.md +132 -0
@@ -0,0 +1,170 @@
1
+ import { z } from "zod";
2
+ export declare const forgeBindingsSchema: z.ZodObject<{
3
+ schema: z.ZodLiteral<"forge/bindings@1">;
4
+ commands: z.ZodObject<{
5
+ validateRfc: z.ZodDefault<z.ZodNullable<z.ZodString>>;
6
+ validateAdr: z.ZodDefault<z.ZodNullable<z.ZodString>>;
7
+ implementStamp: z.ZodDefault<z.ZodNullable<z.ZodString>>;
8
+ typecheck: z.ZodDefault<z.ZodNullable<z.ZodString>>;
9
+ test: z.ZodDefault<z.ZodNullable<z.ZodString>>;
10
+ scopedBuild: z.ZodDefault<z.ZodNullable<z.ZodString>>;
11
+ specValidate: z.ZodDefault<z.ZodNullable<z.ZodString>>;
12
+ }, z.core.$strip>;
13
+ paths: z.ZodObject<{
14
+ invariantsFile: z.ZodDefault<z.ZodNullable<z.ZodString>>;
15
+ compassDocs: z.ZodDefault<z.ZodArray<z.ZodString>>;
16
+ reviewsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
17
+ handoffsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
18
+ sessionsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
19
+ }, z.core.$strip>;
20
+ terminology: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
21
+ compass: z.ZodOptional<z.ZodObject<{
22
+ fileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
23
+ testPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
24
+ }, z.core.$strip>>;
25
+ }, z.core.$strip>;
26
+ export interface ForgeBindings {
27
+ schema: "forge/bindings@1";
28
+ commands: {
29
+ validateRfc: string | null;
30
+ validateAdr: string | null;
31
+ implementStamp: string | null;
32
+ typecheck: string | null;
33
+ test: string | null;
34
+ scopedBuild: string | null;
35
+ specValidate: string | null;
36
+ };
37
+ paths: {
38
+ invariantsFile: string | null;
39
+ compassDocs: string[];
40
+ reviewsDir: string | null;
41
+ handoffsDir: string | null;
42
+ sessionsDir: string | null;
43
+ };
44
+ terminology?: Record<string, string>;
45
+ compass?: {
46
+ fileExtensions?: string[];
47
+ testPatterns?: string[];
48
+ };
49
+ }
50
+ export declare const forgeSkillPackSchema: z.ZodObject<{
51
+ prefix: z.ZodString;
52
+ dir: z.ZodString;
53
+ }, z.core.$strip>;
54
+ export interface ForgeSkillPack {
55
+ prefix: string;
56
+ dir: string;
57
+ }
58
+ export declare const forgeMigrationAdapterSchema: z.ZodObject<{
59
+ id: z.ZodString;
60
+ module: z.ZodOptional<z.ZodString>;
61
+ }, z.core.$strip>;
62
+ export interface ForgeMigrationAdapter {
63
+ id: string;
64
+ module?: string;
65
+ }
66
+ export declare const forgeConfigSchema: z.ZodObject<{
67
+ schema: z.ZodLiteral<"forge/config@1">;
68
+ project: z.ZodObject<{
69
+ name: z.ZodString;
70
+ stack: z.ZodDefault<z.ZodArray<z.ZodString>>;
71
+ packageManager: z.ZodDefault<z.ZodEnum<{
72
+ pnpm: "pnpm";
73
+ npm: "npm";
74
+ yarn: "yarn";
75
+ bun: "bun";
76
+ none: "none";
77
+ }>>;
78
+ }, z.core.$strip>;
79
+ paths: z.ZodObject<{
80
+ rfcsDir: z.ZodDefault<z.ZodString>;
81
+ adrsDir: z.ZodDefault<z.ZodString>;
82
+ plansDir: z.ZodDefault<z.ZodString>;
83
+ auditsDir: z.ZodDefault<z.ZodString>;
84
+ specsDir: z.ZodDefault<z.ZodString>;
85
+ skillsDir: z.ZodDefault<z.ZodString>;
86
+ sessionsDir: z.ZodDefault<z.ZodString>;
87
+ }, z.core.$strip>;
88
+ bindings: z.ZodOptional<z.ZodObject<{
89
+ schema: z.ZodLiteral<"forge/bindings@1">;
90
+ commands: z.ZodObject<{
91
+ validateRfc: z.ZodDefault<z.ZodNullable<z.ZodString>>;
92
+ validateAdr: z.ZodDefault<z.ZodNullable<z.ZodString>>;
93
+ implementStamp: z.ZodDefault<z.ZodNullable<z.ZodString>>;
94
+ typecheck: z.ZodDefault<z.ZodNullable<z.ZodString>>;
95
+ test: z.ZodDefault<z.ZodNullable<z.ZodString>>;
96
+ scopedBuild: z.ZodDefault<z.ZodNullable<z.ZodString>>;
97
+ specValidate: z.ZodDefault<z.ZodNullable<z.ZodString>>;
98
+ }, z.core.$strip>;
99
+ paths: z.ZodObject<{
100
+ invariantsFile: z.ZodDefault<z.ZodNullable<z.ZodString>>;
101
+ compassDocs: z.ZodDefault<z.ZodArray<z.ZodString>>;
102
+ reviewsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
103
+ handoffsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
104
+ sessionsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
105
+ }, z.core.$strip>;
106
+ terminology: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
107
+ compass: z.ZodOptional<z.ZodObject<{
108
+ fileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
109
+ testPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
110
+ }, z.core.$strip>>;
111
+ }, z.core.$strip>>;
112
+ skillPacks: z.ZodOptional<z.ZodArray<z.ZodObject<{
113
+ prefix: z.ZodString;
114
+ dir: z.ZodString;
115
+ }, z.core.$strip>>>;
116
+ migrationAdapters: z.ZodOptional<z.ZodArray<z.ZodObject<{
117
+ id: z.ZodString;
118
+ module: z.ZodOptional<z.ZodString>;
119
+ }, z.core.$strip>>>;
120
+ forge: z.ZodOptional<z.ZodObject<{
121
+ syncedVersion: z.ZodDefault<z.ZodNullable<z.ZodString>>;
122
+ }, z.core.$strip>>;
123
+ }, z.core.$strip>;
124
+ export interface ForgeConfig {
125
+ schema: "forge/config@1";
126
+ project: {
127
+ name: string;
128
+ stack: string[];
129
+ packageManager: "pnpm" | "npm" | "yarn" | "bun" | "none";
130
+ };
131
+ paths: {
132
+ rfcsDir: string;
133
+ adrsDir: string;
134
+ plansDir: string;
135
+ auditsDir: string;
136
+ specsDir: string;
137
+ skillsDir: string;
138
+ sessionsDir: string;
139
+ };
140
+ /** Bindings contract (RFC-0393). Optional — absent means no bindings. */
141
+ bindings?: ForgeBindings;
142
+ /** Skill packs (RFC-0539). Optional — absent means no project-local packs. */
143
+ skillPacks?: ForgeSkillPack[];
144
+ /** Migration adapters (RFC-0546). Optional — absent means built-in adapters only. */
145
+ migrationAdapters?: ForgeMigrationAdapter[];
146
+ /** Forge sync metadata (RFC-0543). Optional — absent means never synced. */
147
+ forge?: {
148
+ syncedVersion: string | null;
149
+ };
150
+ }
151
+ export interface ForgeCliBindingDefault {
152
+ key: string;
153
+ template: string;
154
+ }
155
+ export declare const FORGE_CLI_BINDING_DEFAULTS: ForgeCliBindingDefault[];
156
+ export declare const PM_RUNNER_MAP: Record<string, string>;
157
+ export declare function resolvePmRunner(pm: string): string;
158
+ export declare function applyCliBindingDefaults(pm: string): ForgeBindings["commands"];
159
+ export type ForgePackageManager = ForgeConfig["project"]["packageManager"];
160
+ export declare function resolvePackageManager(pm: string): ForgePackageManager;
161
+ export declare function defaultForgeConfig(projectName: string, packageManager?: string): ForgeConfig;
162
+ export declare function loadForgeConfig(workspaceRoot: string): ForgeConfig;
163
+ export declare function resolveForgeRoot(workspaceRoot: string): string;
164
+ /**
165
+ * Resolve a binding key (e.g. "commands.validateRfc") from the config.
166
+ * Returns the resolved string/array, or null if the binding is absent or explicitly null.
167
+ * Supports placeholder substitution: {id}, {workspace}, {file}.
168
+ */
169
+ export declare function resolveBinding(config: ForgeConfig, key: string, placeholders?: Record<string, string>): string | string[] | null;
170
+ //# 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,259 @@
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
+ </CHANGE_SUMMARY>
19
+ */
20
+ import fs from "node:fs";
21
+ import path from "node:path";
22
+ import { z } from "zod";
23
+ import { parse as parseYaml } from "yaml";
24
+ // ---------------------------------------------------------------------------
25
+ // Bindings schema (forge/bindings@1) — RFC-0393
26
+ // ---------------------------------------------------------------------------
27
+ export const forgeBindingsSchema = z.object({
28
+ schema: z.literal("forge/bindings@1"),
29
+ commands: z.object({
30
+ validateRfc: z.string().nullable().default(null),
31
+ validateAdr: z.string().nullable().default(null),
32
+ implementStamp: z.string().nullable().default(null),
33
+ typecheck: z.string().nullable().default(null),
34
+ test: z.string().nullable().default(null),
35
+ scopedBuild: z.string().nullable().default(null),
36
+ specValidate: z.string().nullable().default(null),
37
+ }),
38
+ paths: z.object({
39
+ invariantsFile: z.string().nullable().default(null),
40
+ compassDocs: z.array(z.string()).default([]),
41
+ reviewsDir: z.string().nullable().default(null),
42
+ handoffsDir: z.string().nullable().default(null),
43
+ sessionsDir: z.string().nullable().default(null),
44
+ }),
45
+ terminology: z.record(z.string(), z.string()).optional(),
46
+ compass: z
47
+ .object({
48
+ fileExtensions: z.array(z.string()).optional(),
49
+ testPatterns: z.array(z.string()).optional(),
50
+ })
51
+ .optional(),
52
+ });
53
+ // ---------------------------------------------------------------------------
54
+ // Skill packs schema (RFC-0539)
55
+ // ---------------------------------------------------------------------------
56
+ export const forgeSkillPackSchema = z.object({
57
+ prefix: z
58
+ .string()
59
+ .regex(/^[a-z][a-z0-9]{1,7}$/, "prefix must be 2-8 chars: lowercase letter followed by lowercase alphanumeric")
60
+ .refine((v) => v !== "fo", "fo prefix is reserved for forge"),
61
+ dir: z.string().min(1),
62
+ });
63
+ // ---------------------------------------------------------------------------
64
+ // Migration adapters schema (RFC-0546)
65
+ // ---------------------------------------------------------------------------
66
+ export const forgeMigrationAdapterSchema = z.object({
67
+ id: z.string().min(1),
68
+ module: z.string().optional(),
69
+ });
70
+ // ---------------------------------------------------------------------------
71
+ // Schema (forge/config@1)
72
+ // ---------------------------------------------------------------------------
73
+ export const forgeConfigSchema = z.object({
74
+ schema: z.literal("forge/config@1"),
75
+ project: z.object({
76
+ name: z.string().min(1),
77
+ stack: z.array(z.string()).default([]),
78
+ packageManager: z.enum(["pnpm", "npm", "yarn", "bun", "none"]).default("pnpm"),
79
+ }),
80
+ paths: z.object({
81
+ rfcsDir: z.string().default("docs/rfcs"),
82
+ adrsDir: z.string().default("docs/adrs"),
83
+ plansDir: z.string().default("docs/plans"),
84
+ auditsDir: z.string().default("docs/audits"),
85
+ specsDir: z.string().default("docs/specs"),
86
+ skillsDir: z.string().default(".agents/skills"),
87
+ sessionsDir: z.string().default("docs/sessions"),
88
+ }),
89
+ /** Bindings contract (RFC-0393). Optional — absent means no bindings. */
90
+ bindings: forgeBindingsSchema.optional(),
91
+ /** Skill packs (RFC-0539). Optional — absent means no project-local packs. */
92
+ skillPacks: z.array(forgeSkillPackSchema).optional(),
93
+ /** Migration adapters (RFC-0546). Optional — absent means built-in adapters only. */
94
+ migrationAdapters: z.array(forgeMigrationAdapterSchema).optional(),
95
+ /** Forge sync metadata (RFC-0543). Optional — absent means never synced. */
96
+ forge: z
97
+ .object({
98
+ syncedVersion: z.string().nullable().default(null),
99
+ })
100
+ .optional(),
101
+ });
102
+ export const FORGE_CLI_BINDING_DEFAULTS = [
103
+ { key: "commands.validateRfc", template: "forge rfc.validate {id} --json" },
104
+ { key: "commands.validateAdr", template: "forge adr.validate {id} --json" },
105
+ {
106
+ key: "commands.implementStamp",
107
+ template: "forge rfc.implement.stamp --id {id} --implementation-commit {commit}",
108
+ },
109
+ { key: "commands.specValidate", template: "forge spec.validate --spec={id} --json" },
110
+ ];
111
+ export const PM_RUNNER_MAP = {
112
+ pnpm: "pnpm exec",
113
+ npm: "npx",
114
+ yarn: "yarn exec",
115
+ bun: "bunx",
116
+ none: "npx",
117
+ };
118
+ export function resolvePmRunner(pm) {
119
+ return PM_RUNNER_MAP[pm] ?? "npx";
120
+ }
121
+ export function applyCliBindingDefaults(pm) {
122
+ const runner = resolvePmRunner(pm);
123
+ const commands = {
124
+ validateRfc: null,
125
+ validateAdr: null,
126
+ implementStamp: null,
127
+ typecheck: null,
128
+ test: null,
129
+ scopedBuild: null,
130
+ specValidate: null,
131
+ };
132
+ for (const entry of FORGE_CLI_BINDING_DEFAULTS) {
133
+ const bareKey = entry.key.replace("commands.", "");
134
+ commands[bareKey] = `${runner} ${entry.template}`;
135
+ }
136
+ return commands;
137
+ }
138
+ const VALID_PACKAGE_MANAGERS = ["pnpm", "npm", "yarn", "bun", "none"];
139
+ export function resolvePackageManager(pm) {
140
+ return VALID_PACKAGE_MANAGERS.includes(pm) ? pm : "pnpm";
141
+ }
142
+ export function defaultForgeConfig(projectName, packageManager) {
143
+ const pm = resolvePackageManager(packageManager ?? "pnpm");
144
+ return {
145
+ schema: "forge/config@1",
146
+ project: {
147
+ name: projectName,
148
+ stack: [],
149
+ packageManager: pm,
150
+ },
151
+ paths: {
152
+ rfcsDir: "docs/rfcs",
153
+ adrsDir: "docs/adrs",
154
+ plansDir: "docs/plans",
155
+ auditsDir: "docs/audits",
156
+ specsDir: "docs/specs",
157
+ skillsDir: ".agents/skills",
158
+ sessionsDir: "docs/sessions",
159
+ },
160
+ bindings: {
161
+ schema: "forge/bindings@1",
162
+ commands: applyCliBindingDefaults(pm),
163
+ paths: {
164
+ invariantsFile: null,
165
+ compassDocs: [],
166
+ reviewsDir: "docs/reviews",
167
+ handoffsDir: "docs/handoffs",
168
+ sessionsDir: "docs/sessions",
169
+ },
170
+ terminology: {},
171
+ compass: {},
172
+ },
173
+ forge: { syncedVersion: null },
174
+ };
175
+ }
176
+ // ---------------------------------------------------------------------------
177
+ // Loader
178
+ // ---------------------------------------------------------------------------
179
+ export function loadForgeConfig(workspaceRoot) {
180
+ const configPath = path.join(workspaceRoot, "forge.yaml");
181
+ if (!fs.existsSync(configPath)) {
182
+ throw new Error(`forge.yaml not found at ${configPath}. Run 'forge create' to create project configuration.`);
183
+ }
184
+ const raw = fs.readFileSync(configPath, "utf8");
185
+ let parsed;
186
+ try {
187
+ parsed = parseYaml(raw);
188
+ }
189
+ catch (err) {
190
+ throw new Error(`forge.yaml at ${configPath} is not valid YAML: ${err.message}`);
191
+ }
192
+ const result = forgeConfigSchema.safeParse(parsed);
193
+ if (!result.success) {
194
+ const issues = result.error.issues
195
+ .map((i) => ` - ${i.path.join(".")}: ${i.message}`)
196
+ .join("\n");
197
+ throw new Error(`forge.yaml at ${configPath} failed schema validation:\n${issues}\nFix the listed fields or run 'forge create' to regenerate defaults.`);
198
+ }
199
+ return result.data;
200
+ }
201
+ // ---------------------------------------------------------------------------
202
+ // Forge root resolver — the single place that decides monorepo vs npm-installed
203
+ // ---------------------------------------------------------------------------
204
+ export function resolveForgeRoot(workspaceRoot) {
205
+ const monorepoPath = path.join(workspaceRoot, "packages", "forge");
206
+ if (fs.existsSync(path.join(monorepoPath, "package.json"))) {
207
+ return monorepoPath;
208
+ }
209
+ const npmPath = path.join(workspaceRoot, "node_modules", "@warpgogol", "forge");
210
+ if (fs.existsSync(path.join(npmPath, "package.json"))) {
211
+ return npmPath;
212
+ }
213
+ throw new Error(`Could not resolve forge root. Checked:\n ${monorepoPath}\n ${npmPath}\nEnsure @warpgogol/forge is installed or packages/forge exists.`);
214
+ }
215
+ // ---------------------------------------------------------------------------
216
+ // Binding resolver — RFC-0393
217
+ // ---------------------------------------------------------------------------
218
+ /**
219
+ * Resolve a binding key (e.g. "commands.validateRfc") from the config.
220
+ * Returns the resolved string/array, or null if the binding is absent or explicitly null.
221
+ * Supports placeholder substitution: {id}, {workspace}, {file}.
222
+ */
223
+ export function resolveBinding(config, key, placeholders) {
224
+ if (!config.bindings) {
225
+ return null;
226
+ }
227
+ const parts = key.split(".");
228
+ let current = config.bindings;
229
+ for (const part of parts) {
230
+ if (current === null || current === undefined) {
231
+ return null;
232
+ }
233
+ if (typeof current !== "object" || !(part in current)) {
234
+ return null;
235
+ }
236
+ current = current[part];
237
+ }
238
+ if (current === null || current === undefined) {
239
+ return null;
240
+ }
241
+ if (Array.isArray(current)) {
242
+ return current;
243
+ }
244
+ if (typeof current === "string") {
245
+ if (placeholders) {
246
+ return substitutePlaceholders(current, placeholders);
247
+ }
248
+ return current;
249
+ }
250
+ return null;
251
+ }
252
+ function substitutePlaceholders(template, placeholders) {
253
+ let result = template;
254
+ for (const [key, value] of Object.entries(placeholders)) {
255
+ result = result.replaceAll(`{${key}}`, value);
256
+ }
257
+ return result;
258
+ }
259
+ //# 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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forge-module.js","sourceRoot":"","sources":["../../src/forge-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;EAYE"}
@@ -0,0 +1,30 @@
1
+ export type { ForgeCommandInput, ForgeCommandResult, ForgeCommandTiming, ForgeNextStep, ForgeFlagValue, ForgeFlagSpec, ForgeCommandMetadata, ForgeRegisteredCommandInfo, ForgeCommandDefinition, ForgeCommandScope, Diagnostic, DiagnosticSeverity, DiagnosticEvidence, CheckResult, ForgeLogger, CommandRegistry, ForgeRuntimeContext, ForgeSiteContext, ForgeOutputFormat, GateMetadata, GateSeverity, GatePhase, GateConditional, } from "./types.ts";
2
+ export { writeFileAtomic, type WriteFileAtomicOptions, GENERATED_MARKER, hasGeneratedMarker, stripGeneratedMarker, buildGeneratedHeader, isGeneratedMarkerTextCandidate, type GeneratedHeaderInput, type StripGeneratedMarkerResult, toKebabCase, collectFiles, fileExists, type CollectFilesOptions, byteHash, } from "./utils/index.ts";
3
+ export type { ForgeModule, ForgeModuleRegistry, ForgePipelineStep } from "./forge-module.ts";
4
+ export { skillFrontmatterSchema, type SkillFrontmatter } from "./skill-schema.ts";
5
+ export { FORGE_SKILLS, type ForgeSkillEntry } from "./registry.ts";
6
+ export { forgeConfigSchema, forgeBindingsSchema, defaultForgeConfig, loadForgeConfig, resolveForgeRoot, resolveBinding, FORGE_CLI_BINDING_DEFAULTS, PM_RUNNER_MAP, resolvePmRunner, applyCliBindingDefaults, resolvePackageManager, type ForgeConfig, type ForgeBindings, type ForgeCliBindingDefault, type ForgePackageManager, type ForgeMigrationAdapter, } from "./config/forge-config.ts";
7
+ export { stackProfileSchema, loadStackProfile, listStackProfiles, detectStack, type StackProfile, type ProfileFile, } from "./profiles/stack-profile.ts";
8
+ export { runSkillValidate } from "./validators/skill-validate.ts";
9
+ export { runPortValidate } from "./validators/port-validate.ts";
10
+ export { renderNextSteps, renderIdeRecommendation, generateHelp } from "./cli-output.ts";
11
+ export { runInit } from "./onboarding/init.ts";
12
+ export { runScaffold } from "./onboarding/scaffold.ts";
13
+ export { runDoctor } from "./onboarding/doctor.ts";
14
+ export { runAgentsGenerate } from "./onboarding/agents-generate.ts";
15
+ export { runScaffoldProject } from "./onboarding/scaffold-project.ts";
16
+ export type { MigrationAdapter, AdapterAnalysis, MigrationResult, Conflict, } from "./migration-adapters/types.ts";
17
+ export { FORGE_PROTECTED_PATHS, DEFAULT_EXCLUDE_PATTERNS } from "./migration-adapters/types.ts";
18
+ export { nodeTypescriptPnpmAdapter, phaserPnpmAdapter, getAdapters, detectAdapter, detectAdapters, } from "./migration-adapters/index.ts";
19
+ export { forgeCoreModule } from "../os/core/core.module.ts";
20
+ export { forgeRfcModule } from "../os/rfc/rfc.module.ts";
21
+ export { forgeWorkflowModule } from "../os/workflow/workflow.module.ts";
22
+ export { forgeNamingModule } from "../os/naming/naming.module.ts";
23
+ export { forgeCompassModule } from "../os/compass/compass.module.ts";
24
+ export { forgeWerkstattModule } from "../os/werkstatt/werkstatt.module.ts";
25
+ export { forgeSpecModule } from "../os/spec/spec.module.ts";
26
+ export { forgeAdrModule } from "../os/adr/adr.module.ts";
27
+ export { forgePlanModule } from "../os/plan/plan.module.ts";
28
+ export { forgeAuditModule } from "../os/audit/audit.module.ts";
29
+ export { forgeMissionModule } from "../os/mission/mission.module.ts";
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>Public entrypoint for @warpgogol/forge — exports ForgeModule types, canonical types, utilities, skill schema, registry, validators, onboarding, and OS modules.</purpose>
4
+ <non-goals>
5
+ <item>Do not export internal implementation details — only public API.</item>
6
+ </non-goals>
7
+ </MODULE_CONTRACT>
8
+ <CHANGE_SUMMARY>
9
+ <item>RFC-0374: initial public exports for forge package.</item>
10
+ <item>Forge autonomy refactor: add canonical types and utils exports.</item>
11
+ </CHANGE_SUMMARY>
12
+ */
13
+ // Canonical utilities
14
+ export { writeFileAtomic, GENERATED_MARKER, hasGeneratedMarker, stripGeneratedMarker, buildGeneratedHeader, isGeneratedMarkerTextCandidate, toKebabCase, collectFiles, fileExists, byteHash, } from "./utils/index.js";
15
+ // Skill schema
16
+ export { skillFrontmatterSchema } from "./skill-schema.js";
17
+ // Skill registry
18
+ export { FORGE_SKILLS } from "./registry.js";
19
+ // Forge config (RFC-0391)
20
+ export { forgeConfigSchema, forgeBindingsSchema, defaultForgeConfig, loadForgeConfig, resolveForgeRoot, resolveBinding, FORGE_CLI_BINDING_DEFAULTS, PM_RUNNER_MAP, resolvePmRunner, applyCliBindingDefaults, resolvePackageManager, } from "./config/forge-config.js";
21
+ // Stack profiles (RFC-0392)
22
+ export { stackProfileSchema, loadStackProfile, listStackProfiles, detectStack, } from "./profiles/stack-profile.js";
23
+ // Validators
24
+ export { runSkillValidate } from "./validators/skill-validate.js";
25
+ export { runPortValidate } from "./validators/port-validate.js";
26
+ // CLI output rendering (RFC-0542)
27
+ export { renderNextSteps, renderIdeRecommendation, generateHelp } from "./cli-output.js";
28
+ // Onboarding
29
+ export { runInit } from "./onboarding/init.js";
30
+ export { runScaffold } from "./onboarding/scaffold.js";
31
+ export { runDoctor } from "./onboarding/doctor.js";
32
+ export { runAgentsGenerate } from "./onboarding/agents-generate.js";
33
+ export { runScaffoldProject } from "./onboarding/scaffold-project.js";
34
+ export { FORGE_PROTECTED_PATHS, DEFAULT_EXCLUDE_PATTERNS } from "./migration-adapters/types.js";
35
+ export { nodeTypescriptPnpmAdapter, phaserPnpmAdapter, getAdapters, detectAdapter, detectAdapters, } from "./migration-adapters/index.js";
36
+ // OS modules
37
+ export { forgeCoreModule } from "../os/core/core.module.js";
38
+ export { forgeRfcModule } from "../os/rfc/rfc.module.js";
39
+ export { forgeWorkflowModule } from "../os/workflow/workflow.module.js";
40
+ export { forgeNamingModule } from "../os/naming/naming.module.js";
41
+ export { forgeCompassModule } from "../os/compass/compass.module.js";
42
+ export { forgeWerkstattModule } from "../os/werkstatt/werkstatt.module.js";
43
+ export { forgeSpecModule } from "../os/spec/spec.module.js";
44
+ export { forgeAdrModule } from "../os/adr/adr.module.js";
45
+ export { forgePlanModule } from "../os/plan/plan.module.js";
46
+ export { forgeAuditModule } from "../os/audit/audit.module.js";
47
+ export { forgeMissionModule } from "../os/mission/mission.module.js";
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AA6BF,sBAAsB;AACtB,OAAO,EACL,eAAe,EAEf,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,8BAA8B,EAG9B,WAAW,EACX,YAAY,EACZ,UAAU,EAEV,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAK1B,eAAe;AACf,OAAO,EAAE,sBAAsB,EAAyB,MAAM,mBAAmB,CAAC;AAElF,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAwB,MAAM,eAAe,CAAC;AAEnE,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,uBAAuB,EACvB,qBAAqB,GAMtB,MAAM,0BAA0B,CAAC;AAElC,4BAA4B;AAC5B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,GAGZ,MAAM,6BAA6B,CAAC;AAErC,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,kCAAkC;AAClC,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEzF,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAStE,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAChG,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,+BAA+B,CAAC;AAEvC,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AdapterAnalysis } from "./types.ts";
2
+ export declare function runPostSetup(sourceDir: string, targetDir: string, analysis: AdapterAnalysis): void;
3
+ //# sourceMappingURL=git-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-utils.d.ts","sourceRoot":"","sources":["../../../src/migration-adapters/git-utils.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CA4BlG"}
@@ -0,0 +1,46 @@
1
+ /*
2
+ <MODULE_CONTRACT>
3
+ <purpose>Shared git utilities for migration adapters — git init and git history transfer via format-patch + git am (RFC-0547).</purpose>
4
+ <non-goals>
5
+ <item>Do not import from @warpgogol/* — this module is portable.</item>
6
+ <item>Do not implement adapter-specific logic — only shared git operations.</item>
7
+ </non-goals>
8
+ </MODULE_CONTRACT>
9
+ <CHANGE_SUMMARY>
10
+ <item>RFC-0547: extract shared postSetup git logic from duplicated adapter implementations.</item>
11
+ </CHANGE_SUMMARY>
12
+ */
13
+ import fs from "node:fs";
14
+ import path from "node:path";
15
+ import { execFileSync } from "node:child_process";
16
+ export function runPostSetup(sourceDir, targetDir, analysis) {
17
+ const gitDir = path.join(targetDir, ".git");
18
+ if (analysis.gitHistory) {
19
+ try {
20
+ const patchDir = path.join(targetDir, ".forge-migration-patches");
21
+ fs.mkdirSync(patchDir, { recursive: true });
22
+ execFileSync("git", ["-C", sourceDir, "format-patch", "--all", "-o", patchDir], { stdio: "pipe" });
23
+ execFileSync("git", ["init"], { cwd: targetDir, stdio: "pipe" });
24
+ const patches = fs.readdirSync(patchDir).filter((f) => f.endsWith(".patch")).sort();
25
+ if (patches.length > 0) {
26
+ for (const patch of patches) {
27
+ execFileSync("git", ["am", path.join(patchDir, patch)], { cwd: targetDir, stdio: "pipe" });
28
+ }
29
+ }
30
+ fs.rmSync(patchDir, { recursive: true, force: true });
31
+ return;
32
+ }
33
+ catch (err) {
34
+ console.warn(`forge: git history transfer failed, falling back to clean git init: ${err instanceof Error ? err.message : String(err)}`);
35
+ if (!fs.existsSync(gitDir)) {
36
+ execFileSync("git", ["init"], { cwd: targetDir, stdio: "pipe" });
37
+ }
38
+ }
39
+ }
40
+ else {
41
+ if (!fs.existsSync(gitDir)) {
42
+ execFileSync("git", ["init"], { cwd: targetDir, stdio: "pipe" });
43
+ }
44
+ }
45
+ }
46
+ //# sourceMappingURL=git-utils.js.map