@tjdals12/agent-bolt 1.0.0-next.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 (385) hide show
  1. package/LICENSE +21 -0
  2. package/README.ko.md +605 -0
  3. package/README.md +605 -0
  4. package/bin/agent-bolt.js +1 -0
  5. package/dist/catalog/commands/add-item.d.ts +25 -0
  6. package/dist/catalog/commands/add-item.d.ts.map +1 -0
  7. package/dist/catalog/commands/add-item.js +143 -0
  8. package/dist/catalog/commands/add-item.js.map +1 -0
  9. package/dist/catalog/commands/add-pack.d.ts +23 -0
  10. package/dist/catalog/commands/add-pack.d.ts.map +1 -0
  11. package/dist/catalog/commands/add-pack.js +89 -0
  12. package/dist/catalog/commands/add-pack.js.map +1 -0
  13. package/dist/catalog/commands/catalog/init-catalog.d.ts +16 -0
  14. package/dist/catalog/commands/catalog/init-catalog.d.ts.map +1 -0
  15. package/dist/catalog/commands/catalog/init-catalog.js +41 -0
  16. package/dist/catalog/commands/catalog/init-catalog.js.map +1 -0
  17. package/dist/catalog/commands/catalog/new/new-agent.d.ts +5 -0
  18. package/dist/catalog/commands/catalog/new/new-agent.d.ts.map +1 -0
  19. package/dist/catalog/commands/catalog/new/new-agent.js +18 -0
  20. package/dist/catalog/commands/catalog/new/new-agent.js.map +1 -0
  21. package/dist/catalog/commands/catalog/new/new-guideline.d.ts +5 -0
  22. package/dist/catalog/commands/catalog/new/new-guideline.d.ts.map +1 -0
  23. package/dist/catalog/commands/catalog/new/new-guideline.js +19 -0
  24. package/dist/catalog/commands/catalog/new/new-guideline.js.map +1 -0
  25. package/dist/catalog/commands/catalog/new/new-item.d.ts +36 -0
  26. package/dist/catalog/commands/catalog/new/new-item.d.ts.map +1 -0
  27. package/dist/catalog/commands/catalog/new/new-item.js +74 -0
  28. package/dist/catalog/commands/catalog/new/new-item.js.map +1 -0
  29. package/dist/catalog/commands/catalog/new/new-skill.d.ts +5 -0
  30. package/dist/catalog/commands/catalog/new/new-skill.d.ts.map +1 -0
  31. package/dist/catalog/commands/catalog/new/new-skill.js +18 -0
  32. package/dist/catalog/commands/catalog/new/new-skill.js.map +1 -0
  33. package/dist/catalog/commands/catalog/new-pack.d.ts +16 -0
  34. package/dist/catalog/commands/catalog/new-pack.d.ts.map +1 -0
  35. package/dist/catalog/commands/catalog/new-pack.js +49 -0
  36. package/dist/catalog/commands/catalog/new-pack.js.map +1 -0
  37. package/dist/catalog/commands/catalog/validate-catalog.d.ts +25 -0
  38. package/dist/catalog/commands/catalog/validate-catalog.d.ts.map +1 -0
  39. package/dist/catalog/commands/catalog/validate-catalog.js +168 -0
  40. package/dist/catalog/commands/catalog/validate-catalog.js.map +1 -0
  41. package/dist/catalog/commands/check.d.ts +20 -0
  42. package/dist/catalog/commands/check.d.ts.map +1 -0
  43. package/dist/catalog/commands/check.js +32 -0
  44. package/dist/catalog/commands/check.js.map +1 -0
  45. package/dist/catalog/commands/init.d.ts +34 -0
  46. package/dist/catalog/commands/init.d.ts.map +1 -0
  47. package/dist/catalog/commands/init.js +252 -0
  48. package/dist/catalog/commands/init.js.map +1 -0
  49. package/dist/catalog/commands/list-items.d.ts +17 -0
  50. package/dist/catalog/commands/list-items.d.ts.map +1 -0
  51. package/dist/catalog/commands/list-items.js +72 -0
  52. package/dist/catalog/commands/list-items.js.map +1 -0
  53. package/dist/catalog/commands/list-packs.d.ts +14 -0
  54. package/dist/catalog/commands/list-packs.d.ts.map +1 -0
  55. package/dist/catalog/commands/list-packs.js +52 -0
  56. package/dist/catalog/commands/list-packs.js.map +1 -0
  57. package/dist/catalog/commands/remove-item.d.ts +25 -0
  58. package/dist/catalog/commands/remove-item.d.ts.map +1 -0
  59. package/dist/catalog/commands/remove-item.js +122 -0
  60. package/dist/catalog/commands/remove-item.js.map +1 -0
  61. package/dist/catalog/commands/remove-pack.d.ts +22 -0
  62. package/dist/catalog/commands/remove-pack.d.ts.map +1 -0
  63. package/dist/catalog/commands/remove-pack.js +69 -0
  64. package/dist/catalog/commands/remove-pack.js.map +1 -0
  65. package/dist/catalog/commands/show-item.d.ts +27 -0
  66. package/dist/catalog/commands/show-item.d.ts.map +1 -0
  67. package/dist/catalog/commands/show-item.js +63 -0
  68. package/dist/catalog/commands/show-item.js.map +1 -0
  69. package/dist/catalog/commands/sync.d.ts +17 -0
  70. package/dist/catalog/commands/sync.d.ts.map +1 -0
  71. package/dist/catalog/commands/sync.js +31 -0
  72. package/dist/catalog/commands/sync.js.map +1 -0
  73. package/dist/catalog/config/load.d.ts +3 -0
  74. package/dist/catalog/config/load.d.ts.map +1 -0
  75. package/dist/catalog/config/load.js +18 -0
  76. package/dist/catalog/config/load.js.map +1 -0
  77. package/dist/catalog/config/normalize.d.ts +6 -0
  78. package/dist/catalog/config/normalize.d.ts.map +1 -0
  79. package/dist/catalog/config/normalize.js +30 -0
  80. package/dist/catalog/config/normalize.js.map +1 -0
  81. package/dist/catalog/config/reference.d.ts +2 -0
  82. package/dist/catalog/config/reference.d.ts.map +1 -0
  83. package/dist/catalog/config/reference.js +52 -0
  84. package/dist/catalog/config/reference.js.map +1 -0
  85. package/dist/catalog/config/schema.d.ts +80 -0
  86. package/dist/catalog/config/schema.d.ts.map +1 -0
  87. package/dist/catalog/config/schema.js +29 -0
  88. package/dist/catalog/config/schema.js.map +1 -0
  89. package/dist/catalog/config/write.d.ts +3 -0
  90. package/dist/catalog/config/write.d.ts.map +1 -0
  91. package/dist/catalog/config/write.js +28 -0
  92. package/dist/catalog/config/write.js.map +1 -0
  93. package/dist/catalog/content/item/find-detail.d.ts +5 -0
  94. package/dist/catalog/content/item/find-detail.d.ts.map +1 -0
  95. package/dist/catalog/content/item/find-detail.js +90 -0
  96. package/dist/catalog/content/item/find-detail.js.map +1 -0
  97. package/dist/catalog/content/item/list-assets.d.ts +2 -0
  98. package/dist/catalog/content/item/list-assets.d.ts.map +1 -0
  99. package/dist/catalog/content/item/list-assets.js +38 -0
  100. package/dist/catalog/content/item/list-assets.js.map +1 -0
  101. package/dist/catalog/content/item/model.d.ts +24 -0
  102. package/dist/catalog/content/item/model.d.ts.map +1 -0
  103. package/dist/catalog/content/item/model.js +2 -0
  104. package/dist/catalog/content/item/model.js.map +1 -0
  105. package/dist/catalog/content/item/parse-detail.d.ts +5 -0
  106. package/dist/catalog/content/item/parse-detail.d.ts.map +1 -0
  107. package/dist/catalog/content/item/parse-detail.js +32 -0
  108. package/dist/catalog/content/item/parse-detail.js.map +1 -0
  109. package/dist/catalog/content/item/parse-summary.d.ts +6 -0
  110. package/dist/catalog/content/item/parse-summary.d.ts.map +1 -0
  111. package/dist/catalog/content/item/parse-summary.js +58 -0
  112. package/dist/catalog/content/item/parse-summary.js.map +1 -0
  113. package/dist/catalog/content/item/schema.d.ts +49 -0
  114. package/dist/catalog/content/item/schema.d.ts.map +1 -0
  115. package/dist/catalog/content/item/schema.js +32 -0
  116. package/dist/catalog/content/item/schema.js.map +1 -0
  117. package/dist/catalog/content/load.d.ts +3 -0
  118. package/dist/catalog/content/load.d.ts.map +1 -0
  119. package/dist/catalog/content/load.js +19 -0
  120. package/dist/catalog/content/load.js.map +1 -0
  121. package/dist/catalog/content/model.d.ts +12 -0
  122. package/dist/catalog/content/model.d.ts.map +1 -0
  123. package/dist/catalog/content/model.js +2 -0
  124. package/dist/catalog/content/model.js.map +1 -0
  125. package/dist/catalog/content/pack/model.d.ts +20 -0
  126. package/dist/catalog/content/pack/model.d.ts.map +1 -0
  127. package/dist/catalog/content/pack/model.js +2 -0
  128. package/dist/catalog/content/pack/model.js.map +1 -0
  129. package/dist/catalog/content/pack/parse.d.ts +5 -0
  130. package/dist/catalog/content/pack/parse.d.ts.map +1 -0
  131. package/dist/catalog/content/pack/parse.js +68 -0
  132. package/dist/catalog/content/pack/parse.js.map +1 -0
  133. package/dist/catalog/content/pack/schema.d.ts +8 -0
  134. package/dist/catalog/content/pack/schema.d.ts.map +1 -0
  135. package/dist/catalog/content/pack/schema.js +9 -0
  136. package/dist/catalog/content/pack/schema.js.map +1 -0
  137. package/dist/catalog/content/parse.d.ts +4 -0
  138. package/dist/catalog/content/parse.d.ts.map +1 -0
  139. package/dist/catalog/content/parse.js +30 -0
  140. package/dist/catalog/content/parse.js.map +1 -0
  141. package/dist/catalog/content/schema.d.ts +14 -0
  142. package/dist/catalog/content/schema.d.ts.map +1 -0
  143. package/dist/catalog/content/schema.js +13 -0
  144. package/dist/catalog/content/schema.js.map +1 -0
  145. package/dist/catalog/install/adapters/adapter.d.ts +27 -0
  146. package/dist/catalog/install/adapters/adapter.d.ts.map +1 -0
  147. package/dist/catalog/install/adapters/adapter.js +30 -0
  148. package/dist/catalog/install/adapters/adapter.js.map +1 -0
  149. package/dist/catalog/install/adapters/claude.adapter.d.ts +14 -0
  150. package/dist/catalog/install/adapters/claude.adapter.d.ts.map +1 -0
  151. package/dist/catalog/install/adapters/claude.adapter.js +60 -0
  152. package/dist/catalog/install/adapters/claude.adapter.js.map +1 -0
  153. package/dist/catalog/install/adapters/codex.adapter.d.ts +13 -0
  154. package/dist/catalog/install/adapters/codex.adapter.d.ts.map +1 -0
  155. package/dist/catalog/install/adapters/codex.adapter.js +68 -0
  156. package/dist/catalog/install/adapters/codex.adapter.js.map +1 -0
  157. package/dist/catalog/install/adapters/registry.d.ts +4 -0
  158. package/dist/catalog/install/adapters/registry.d.ts.map +1 -0
  159. package/dist/catalog/install/adapters/registry.js +10 -0
  160. package/dist/catalog/install/adapters/registry.js.map +1 -0
  161. package/dist/catalog/install/apply.d.ts +3 -0
  162. package/dist/catalog/install/apply.d.ts.map +1 -0
  163. package/dist/catalog/install/apply.js +105 -0
  164. package/dist/catalog/install/apply.js.map +1 -0
  165. package/dist/catalog/install/classify.d.ts +4 -0
  166. package/dist/catalog/install/classify.d.ts.map +1 -0
  167. package/dist/catalog/install/classify.js +78 -0
  168. package/dist/catalog/install/classify.js.map +1 -0
  169. package/dist/catalog/install/diff.d.ts +3 -0
  170. package/dist/catalog/install/diff.d.ts.map +1 -0
  171. package/dist/catalog/install/diff.js +88 -0
  172. package/dist/catalog/install/diff.js.map +1 -0
  173. package/dist/catalog/install/lockfile/items.d.ts +5 -0
  174. package/dist/catalog/install/lockfile/items.d.ts.map +1 -0
  175. package/dist/catalog/install/lockfile/items.js +37 -0
  176. package/dist/catalog/install/lockfile/items.js.map +1 -0
  177. package/dist/catalog/install/lockfile/load.d.ts +3 -0
  178. package/dist/catalog/install/lockfile/load.d.ts.map +1 -0
  179. package/dist/catalog/install/lockfile/load.js +42 -0
  180. package/dist/catalog/install/lockfile/load.js.map +1 -0
  181. package/dist/catalog/install/lockfile/model.d.ts +6 -0
  182. package/dist/catalog/install/lockfile/model.d.ts.map +1 -0
  183. package/dist/catalog/install/lockfile/model.js +2 -0
  184. package/dist/catalog/install/lockfile/model.js.map +1 -0
  185. package/dist/catalog/install/lockfile/schema.d.ts +13 -0
  186. package/dist/catalog/install/lockfile/schema.d.ts.map +1 -0
  187. package/dist/catalog/install/lockfile/schema.js +9 -0
  188. package/dist/catalog/install/lockfile/schema.js.map +1 -0
  189. package/dist/catalog/install/lockfile/write.d.ts +5 -0
  190. package/dist/catalog/install/lockfile/write.d.ts.map +1 -0
  191. package/dist/catalog/install/lockfile/write.js +13 -0
  192. package/dist/catalog/install/lockfile/write.js.map +1 -0
  193. package/dist/catalog/install/managed-block.d.ts +4 -0
  194. package/dist/catalog/install/managed-block.d.ts.map +1 -0
  195. package/dist/catalog/install/managed-block.js +40 -0
  196. package/dist/catalog/install/managed-block.js.map +1 -0
  197. package/dist/catalog/install/model.d.ts +46 -0
  198. package/dist/catalog/install/model.d.ts.map +1 -0
  199. package/dist/catalog/install/model.js +2 -0
  200. package/dist/catalog/install/model.js.map +1 -0
  201. package/dist/catalog/install/plan.d.ts +4 -0
  202. package/dist/catalog/install/plan.d.ts.map +1 -0
  203. package/dist/catalog/install/plan.js +71 -0
  204. package/dist/catalog/install/plan.js.map +1 -0
  205. package/dist/catalog/source/resolve-git.d.ts +7 -0
  206. package/dist/catalog/source/resolve-git.d.ts.map +1 -0
  207. package/dist/catalog/source/resolve-git.js +65 -0
  208. package/dist/catalog/source/resolve-git.js.map +1 -0
  209. package/dist/catalog/source/resolve-local.d.ts +7 -0
  210. package/dist/catalog/source/resolve-local.d.ts.map +1 -0
  211. package/dist/catalog/source/resolve-local.js +13 -0
  212. package/dist/catalog/source/resolve-local.js.map +1 -0
  213. package/dist/catalog/source/resolve.d.ts +3 -0
  214. package/dist/catalog/source/resolve.d.ts.map +1 -0
  215. package/dist/catalog/source/resolve.js +12 -0
  216. package/dist/catalog/source/resolve.js.map +1 -0
  217. package/dist/catalog/source/schema.d.ts +13 -0
  218. package/dist/catalog/source/schema.d.ts.map +1 -0
  219. package/dist/catalog/source/schema.js +29 -0
  220. package/dist/catalog/source/schema.js.map +1 -0
  221. package/dist/catalog/source/validation.d.ts +14 -0
  222. package/dist/catalog/source/validation.d.ts.map +1 -0
  223. package/dist/catalog/source/validation.js +42 -0
  224. package/dist/catalog/source/validation.js.map +1 -0
  225. package/dist/catalog/tool/catalog.d.ts +12 -0
  226. package/dist/catalog/tool/catalog.d.ts.map +1 -0
  227. package/dist/catalog/tool/catalog.js +23 -0
  228. package/dist/catalog/tool/catalog.js.map +1 -0
  229. package/dist/catalog/tool/model.d.ts +8 -0
  230. package/dist/catalog/tool/model.d.ts.map +1 -0
  231. package/dist/catalog/tool/model.js +2 -0
  232. package/dist/catalog/tool/model.js.map +1 -0
  233. package/dist/cli/format.d.ts +28 -0
  234. package/dist/cli/format.d.ts.map +1 -0
  235. package/dist/cli/format.js +62 -0
  236. package/dist/cli/format.js.map +1 -0
  237. package/dist/cli/helpers.d.ts +2 -0
  238. package/dist/cli/helpers.d.ts.map +1 -0
  239. package/dist/cli/helpers.js +4 -0
  240. package/dist/cli/helpers.js.map +1 -0
  241. package/dist/cli/index.d.ts +2 -0
  242. package/dist/cli/index.d.ts.map +1 -0
  243. package/dist/cli/index.js +465 -0
  244. package/dist/cli/index.js.map +1 -0
  245. package/dist/cli/pager.d.ts +2 -0
  246. package/dist/cli/pager.d.ts.map +1 -0
  247. package/dist/cli/pager.js +35 -0
  248. package/dist/cli/pager.js.map +1 -0
  249. package/dist/cli/views/add-item.d.ts +3 -0
  250. package/dist/cli/views/add-item.d.ts.map +1 -0
  251. package/dist/cli/views/add-item.js +36 -0
  252. package/dist/cli/views/add-item.js.map +1 -0
  253. package/dist/cli/views/add-pack.d.ts +3 -0
  254. package/dist/cli/views/add-pack.d.ts.map +1 -0
  255. package/dist/cli/views/add-pack.js +35 -0
  256. package/dist/cli/views/add-pack.js.map +1 -0
  257. package/dist/cli/views/catalog/init-catalog.d.ts +3 -0
  258. package/dist/cli/views/catalog/init-catalog.d.ts.map +1 -0
  259. package/dist/cli/views/catalog/init-catalog.js +21 -0
  260. package/dist/cli/views/catalog/init-catalog.js.map +1 -0
  261. package/dist/cli/views/catalog/new/new-agent.d.ts +3 -0
  262. package/dist/cli/views/catalog/new/new-agent.d.ts.map +1 -0
  263. package/dist/cli/views/catalog/new/new-agent.js +30 -0
  264. package/dist/cli/views/catalog/new/new-agent.js.map +1 -0
  265. package/dist/cli/views/catalog/new/new-guideline.d.ts +3 -0
  266. package/dist/cli/views/catalog/new/new-guideline.d.ts.map +1 -0
  267. package/dist/cli/views/catalog/new/new-guideline.js +26 -0
  268. package/dist/cli/views/catalog/new/new-guideline.js.map +1 -0
  269. package/dist/cli/views/catalog/new/new-skill.d.ts +3 -0
  270. package/dist/cli/views/catalog/new/new-skill.d.ts.map +1 -0
  271. package/dist/cli/views/catalog/new/new-skill.js +31 -0
  272. package/dist/cli/views/catalog/new/new-skill.js.map +1 -0
  273. package/dist/cli/views/catalog/new-pack.d.ts +3 -0
  274. package/dist/cli/views/catalog/new-pack.d.ts.map +1 -0
  275. package/dist/cli/views/catalog/new-pack.js +23 -0
  276. package/dist/cli/views/catalog/new-pack.js.map +1 -0
  277. package/dist/cli/views/catalog/validate-catalog.d.ts +3 -0
  278. package/dist/cli/views/catalog/validate-catalog.d.ts.map +1 -0
  279. package/dist/cli/views/catalog/validate-catalog.js +57 -0
  280. package/dist/cli/views/catalog/validate-catalog.js.map +1 -0
  281. package/dist/cli/views/check.d.ts +3 -0
  282. package/dist/cli/views/check.d.ts.map +1 -0
  283. package/dist/cli/views/check.js +23 -0
  284. package/dist/cli/views/check.js.map +1 -0
  285. package/dist/cli/views/init.d.ts +3 -0
  286. package/dist/cli/views/init.d.ts.map +1 -0
  287. package/dist/cli/views/init.js +29 -0
  288. package/dist/cli/views/init.js.map +1 -0
  289. package/dist/cli/views/list-items.d.ts +3 -0
  290. package/dist/cli/views/list-items.d.ts.map +1 -0
  291. package/dist/cli/views/list-items.js +65 -0
  292. package/dist/cli/views/list-items.js.map +1 -0
  293. package/dist/cli/views/list-packs.d.ts +3 -0
  294. package/dist/cli/views/list-packs.d.ts.map +1 -0
  295. package/dist/cli/views/list-packs.js +50 -0
  296. package/dist/cli/views/list-packs.js.map +1 -0
  297. package/dist/cli/views/remove-item.d.ts +3 -0
  298. package/dist/cli/views/remove-item.d.ts.map +1 -0
  299. package/dist/cli/views/remove-item.js +35 -0
  300. package/dist/cli/views/remove-item.js.map +1 -0
  301. package/dist/cli/views/remove-pack.d.ts +3 -0
  302. package/dist/cli/views/remove-pack.d.ts.map +1 -0
  303. package/dist/cli/views/remove-pack.js +34 -0
  304. package/dist/cli/views/remove-pack.js.map +1 -0
  305. package/dist/cli/views/shared/banner.d.ts +21 -0
  306. package/dist/cli/views/shared/banner.d.ts.map +1 -0
  307. package/dist/cli/views/shared/banner.js +73 -0
  308. package/dist/cli/views/shared/banner.js.map +1 -0
  309. package/dist/cli/views/shared/report.d.ts +28 -0
  310. package/dist/cli/views/shared/report.d.ts.map +1 -0
  311. package/dist/cli/views/shared/report.js +63 -0
  312. package/dist/cli/views/shared/report.js.map +1 -0
  313. package/dist/cli/views/shared/sync-hint.d.ts +2 -0
  314. package/dist/cli/views/shared/sync-hint.d.ts.map +1 -0
  315. package/dist/cli/views/shared/sync-hint.js +7 -0
  316. package/dist/cli/views/shared/sync-hint.js.map +1 -0
  317. package/dist/cli/views/show-item.d.ts +3 -0
  318. package/dist/cli/views/show-item.d.ts.map +1 -0
  319. package/dist/cli/views/show-item.js +107 -0
  320. package/dist/cli/views/show-item.js.map +1 -0
  321. package/dist/cli/views/sync.d.ts +3 -0
  322. package/dist/cli/views/sync.d.ts.map +1 -0
  323. package/dist/cli/views/sync.js +21 -0
  324. package/dist/cli/views/sync.js.map +1 -0
  325. package/dist/core/intro/engine.d.ts +9 -0
  326. package/dist/core/intro/engine.d.ts.map +1 -0
  327. package/dist/core/intro/engine.js +98 -0
  328. package/dist/core/intro/engine.js.map +1 -0
  329. package/dist/core/intro/index.d.ts +6 -0
  330. package/dist/core/intro/index.d.ts.map +1 -0
  331. package/dist/core/intro/index.js +10 -0
  332. package/dist/core/intro/index.js.map +1 -0
  333. package/dist/core/intro/paint.d.ts +52 -0
  334. package/dist/core/intro/paint.d.ts.map +1 -0
  335. package/dist/core/intro/paint.js +89 -0
  336. package/dist/core/intro/paint.js.map +1 -0
  337. package/dist/core/intro/registry.d.ts +21 -0
  338. package/dist/core/intro/registry.d.ts.map +1 -0
  339. package/dist/core/intro/registry.js +31 -0
  340. package/dist/core/intro/registry.js.map +1 -0
  341. package/dist/core/intro/text.d.ts +9 -0
  342. package/dist/core/intro/text.d.ts.map +1 -0
  343. package/dist/core/intro/text.js +33 -0
  344. package/dist/core/intro/text.js.map +1 -0
  345. package/dist/core/intro/types.d.ts +33 -0
  346. package/dist/core/intro/types.d.ts.map +1 -0
  347. package/dist/core/intro/types.js +2 -0
  348. package/dist/core/intro/types.js.map +1 -0
  349. package/dist/core/intro/variants/bolt.d.ts +3 -0
  350. package/dist/core/intro/variants/bolt.d.ts.map +1 -0
  351. package/dist/core/intro/variants/bolt.js +62 -0
  352. package/dist/core/intro/variants/bolt.js.map +1 -0
  353. package/dist/core/intro/variants/fanout.d.ts +3 -0
  354. package/dist/core/intro/variants/fanout.d.ts.map +1 -0
  355. package/dist/core/intro/variants/fanout.js +90 -0
  356. package/dist/core/intro/variants/fanout.js.map +1 -0
  357. package/dist/core/intro/variants/tide.d.ts +3 -0
  358. package/dist/core/intro/variants/tide.d.ts.map +1 -0
  359. package/dist/core/intro/variants/tide.js +64 -0
  360. package/dist/core/intro/variants/tide.js.map +1 -0
  361. package/dist/core/intro/variants/wordmark-wave.d.ts +3 -0
  362. package/dist/core/intro/variants/wordmark-wave.d.ts.map +1 -0
  363. package/dist/core/intro/variants/wordmark-wave.js +49 -0
  364. package/dist/core/intro/variants/wordmark-wave.js.map +1 -0
  365. package/dist/core/intro/variants/wordmark.d.ts +3 -0
  366. package/dist/core/intro/variants/wordmark.d.ts.map +1 -0
  367. package/dist/core/intro/variants/wordmark.js +35 -0
  368. package/dist/core/intro/variants/wordmark.js.map +1 -0
  369. package/dist/core/json.d.ts +2 -0
  370. package/dist/core/json.d.ts.map +1 -0
  371. package/dist/core/json.js +12 -0
  372. package/dist/core/json.js.map +1 -0
  373. package/dist/core/output.d.ts +5 -0
  374. package/dist/core/output.d.ts.map +1 -0
  375. package/dist/core/output.js +18 -0
  376. package/dist/core/output.js.map +1 -0
  377. package/dist/core/paths.d.ts +8 -0
  378. package/dist/core/paths.d.ts.map +1 -0
  379. package/dist/core/paths.js +17 -0
  380. package/dist/core/paths.js.map +1 -0
  381. package/dist/core/progress.d.ts +8 -0
  382. package/dist/core/progress.d.ts.map +1 -0
  383. package/dist/core/progress.js +44 -0
  384. package/dist/core/progress.js.map +1 -0
  385. package/package.json +91 -0
@@ -0,0 +1,68 @@
1
+ import path from 'node:path';
2
+ import toml from 'smol-toml';
3
+ import { Adapter } from './adapter.js';
4
+ export class CodexAdapter extends Adapter {
5
+ skillsDir = '.codex/skills';
6
+ agentsDir = '.codex/agents';
7
+ constructor() {
8
+ super({ id: 'codex', managedBlockFile: 'AGENTS.md' });
9
+ }
10
+ renderSkill(sourceAlias, packName, skill) {
11
+ const { name: skillName, description, toolConfig, instructions, sourceDir, assets } = skill;
12
+ const installName = this.buildInstallName(sourceAlias, packName, skillName);
13
+ const frontmatter = this.buildItemFrontmatter({ name: installName, description, toolConfig });
14
+ const dir = path.join(this.skillsDir, installName);
15
+ const entryFileName = 'SKILL.md';
16
+ const entryContent = `---\n${frontmatter}\n---\n\n${instructions}\n`;
17
+ return {
18
+ packName,
19
+ skillName,
20
+ dir,
21
+ entryFileName,
22
+ entryContent,
23
+ sourceDir,
24
+ assets,
25
+ };
26
+ }
27
+ renderAgent(sourceAlias, packName, agent) {
28
+ const { name: agentName, description, toolConfig, instructions } = agent;
29
+ const installName = this.buildInstallName(sourceAlias, packName, agentName);
30
+ const vendorConfig = this.selectVendorConfig(toolConfig);
31
+ const placeholder = '__BOLT_DEVELOPER_INSTRUCTIONS';
32
+ const serialized = toml.stringify({
33
+ name: installName,
34
+ description,
35
+ developer_instructions: placeholder,
36
+ ...vendorConfig,
37
+ });
38
+ const escaped = instructions.replace(/\\/g, '\\\\').replace(/"""/g, '\\"\\"\\"');
39
+ const multiline = `"""\n${escaped}\n"""`;
40
+ const content = `${serialized.replace(`"${placeholder}"`, multiline).trimEnd()}\n`;
41
+ const filePath = path.join(this.agentsDir, `${installName}.toml`);
42
+ return {
43
+ packName,
44
+ agentName,
45
+ filePath,
46
+ content,
47
+ };
48
+ }
49
+ renderGuideline(sourceAlias, packName, guideline, guidelineSelection) {
50
+ const { name: guidelineName, description, body } = guideline;
51
+ const sourceTag = `<!-- bolt: ${sourceAlias}/${packName}/${guidelineName} - ${description} -->`;
52
+ const lines = [sourceTag, ''];
53
+ if (guidelineSelection.load === 'conditional') {
54
+ const globs = guidelineSelection.glob.map((value) => `\`${value}\``).join(', ');
55
+ lines.push(`> **The guideline below applies only when working with files matching ${globs}.**`);
56
+ lines.push('');
57
+ }
58
+ lines.push(body);
59
+ const fragment = lines.join('\n');
60
+ return {
61
+ kind: 'block-fragment',
62
+ packName,
63
+ guidelineName,
64
+ fragment,
65
+ };
66
+ }
67
+ }
68
+ //# sourceMappingURL=codex.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.adapter.js","sourceRoot":"","sources":["../../../../src/catalog/install/adapters/codex.adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ToolId } from '#catalog/tool/model.js';
2
+ import type { Adapter } from './adapter.js';
3
+ export declare function getAdapters(toolIds: ToolId[]): Adapter[];
4
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/catalog/install/adapters/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAS5C,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAExD"}
@@ -0,0 +1,10 @@
1
+ import { ClaudeAdapter } from './claude.adapter.js';
2
+ import { CodexAdapter } from './codex.adapter.js';
3
+ const ADAPTERS = {
4
+ claude: new ClaudeAdapter(),
5
+ codex: new CodexAdapter(),
6
+ };
7
+ export function getAdapters(toolIds) {
8
+ return toolIds.map((toolId) => ADAPTERS[toolId]);
9
+ }
10
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/catalog/install/adapters/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,QAAQ,GAA4B;IACxC,MAAM,EAAE,IAAI,aAAa,EAAE;IAC3B,KAAK,EAAE,IAAI,YAAY,EAAE;CAC1B,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,OAAiB;IAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ChangeSet, ToolPlan } from './model.js';
2
+ export declare function applyPlan(projectPath: string, toolPlans: ToolPlan[]): ChangeSet;
3
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/catalog/install/apply.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAWlE,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CA2H/E"}
@@ -0,0 +1,105 @@
1
+ import path from 'node:path';
2
+ import fs from 'node:fs';
3
+ import { loadLockfile } from './lockfile/load.js';
4
+ import { buildLockfile, writeLockfile } from './lockfile/write.js';
5
+ import { collectInstalledItems, findOrphans } from './lockfile/items.js';
6
+ import { buildManagedBlock, buildManagedBlockContent, replaceManagedBlock, } from './managed-block.js';
7
+ import { classifyChange, classifySkill } from './classify.js';
8
+ export function applyPlan(projectPath, toolPlans) {
9
+ const previousLockfile = loadLockfile(projectPath);
10
+ const previousItems = previousLockfile.installedItems;
11
+ const currentItems = collectInstalledItems(toolPlans);
12
+ const currentLockfile = buildLockfile(currentItems);
13
+ const changeSet = {};
14
+ for (const toolPlan of toolPlans) {
15
+ const { tool, renderedSkills, renderedAgents, renderedGuidelines, managedBlock } = toolPlan;
16
+ const syncChanges = [];
17
+ for (const renderedSkill of renderedSkills) {
18
+ const { packName, skillName, dir, entryFileName, entryContent, sourceDir, assets } = renderedSkill;
19
+ const skillDirPath = path.join(projectPath, dir);
20
+ const skillEntryFilePath = path.join(skillDirPath, entryFileName);
21
+ const status = classifySkill(projectPath, renderedSkill);
22
+ fs.rmSync(skillDirPath, { recursive: true, force: true });
23
+ fs.mkdirSync(skillDirPath, { recursive: true });
24
+ fs.writeFileSync(skillEntryFilePath, entryContent, 'utf-8');
25
+ for (const asset of assets) {
26
+ const sourceAssetPath = path.join(sourceDir, asset);
27
+ const targetAssetPath = path.join(skillDirPath, asset);
28
+ fs.cpSync(sourceAssetPath, targetAssetPath, { recursive: true });
29
+ }
30
+ if (status) {
31
+ syncChanges.push({
32
+ label: `${packName}/${skillName}`,
33
+ status,
34
+ });
35
+ }
36
+ }
37
+ for (const renderedAgent of renderedAgents) {
38
+ const { packName, agentName, filePath, content } = renderedAgent;
39
+ const agentFilePath = path.join(projectPath, filePath);
40
+ const agentDirPath = path.dirname(agentFilePath);
41
+ const before = fs.existsSync(agentFilePath) ? fs.readFileSync(agentFilePath, 'utf-8') : null;
42
+ fs.mkdirSync(agentDirPath, { recursive: true });
43
+ fs.writeFileSync(agentFilePath, content, 'utf-8');
44
+ const status = classifyChange(before, content);
45
+ if (status) {
46
+ syncChanges.push({ label: `${packName}/${agentName}`, status });
47
+ }
48
+ }
49
+ for (const renderedGuideline of renderedGuidelines) {
50
+ if (renderedGuideline.kind === 'rule-file') {
51
+ const { packName, guidelineName, filePath, content } = renderedGuideline;
52
+ const guidelineFilePath = path.join(projectPath, filePath);
53
+ const guidelineDirPath = path.dirname(guidelineFilePath);
54
+ const before = fs.existsSync(guidelineFilePath)
55
+ ? fs.readFileSync(guidelineFilePath, 'utf-8')
56
+ : null;
57
+ fs.mkdirSync(guidelineDirPath, { recursive: true });
58
+ fs.writeFileSync(guidelineFilePath, content, 'utf-8');
59
+ const status = classifyChange(before, content);
60
+ if (status) {
61
+ syncChanges.push({ label: `${packName}/${guidelineName}`, status });
62
+ }
63
+ }
64
+ }
65
+ if (managedBlock) {
66
+ const { filePath, fragments } = managedBlock;
67
+ const blockFilePath = path.join(projectPath, filePath);
68
+ const blockFileDir = path.dirname(blockFilePath);
69
+ const before = fs.existsSync(blockFilePath) ? fs.readFileSync(blockFilePath, 'utf-8') : null;
70
+ const blockContent = buildManagedBlockContent(fragments);
71
+ const content = before === null
72
+ ? buildManagedBlock(blockContent)
73
+ : replaceManagedBlock(before, blockContent);
74
+ fs.mkdirSync(blockFileDir, { recursive: true });
75
+ fs.writeFileSync(blockFilePath, content, 'utf-8');
76
+ const status = classifyChange(before, content);
77
+ if (status) {
78
+ syncChanges.push({ label: `${filePath} (managed block)`, status });
79
+ }
80
+ }
81
+ changeSet[tool] = syncChanges;
82
+ }
83
+ const removed = findOrphans(previousItems, currentItems);
84
+ for (const items of Object.values(removed)) {
85
+ for (const item of items) {
86
+ fs.rmSync(path.join(projectPath, item.path), { recursive: true, force: true });
87
+ }
88
+ }
89
+ const removedItemsByTool = Object.entries(removed);
90
+ for (const [tool, removedItems] of removedItemsByTool) {
91
+ const syncChanges = removedItems.map((removedItem) => ({
92
+ label: removedItem.label,
93
+ status: 'removed',
94
+ }));
95
+ if (changeSet[tool]) {
96
+ changeSet[tool].push(...syncChanges);
97
+ }
98
+ else {
99
+ changeSet[tool] = syncChanges;
100
+ }
101
+ }
102
+ writeLockfile(projectPath, currentLockfile);
103
+ return changeSet;
104
+ }
105
+ //# sourceMappingURL=apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../src/catalog/install/apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ChangeStatus, RenderedSkill } from './model.js';
2
+ export declare function classifyChange(before: string | null, current: string): ChangeStatus | null;
3
+ export declare function classifySkill(projectPath: string, renderedSkill: RenderedSkill): ChangeStatus | null;
4
+ //# sourceMappingURL=classify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../../src/catalog/install/classify.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9D,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAI1F;AAkED,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,aAAa,GAC3B,YAAY,GAAG,IAAI,CAYrB"}
@@ -0,0 +1,78 @@
1
+ import path from 'node:path';
2
+ import fs from 'node:fs';
3
+ export function classifyChange(before, current) {
4
+ if (before === null)
5
+ return 'installed';
6
+ if (before !== current)
7
+ return 'updated';
8
+ return null;
9
+ }
10
+ function walkFiles(root) {
11
+ const filePaths = [];
12
+ const walk = (dir, prefix) => {
13
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
14
+ for (const entry of entries) {
15
+ const entryPath = path.join(dir, entry.name);
16
+ const relPath = prefix ? path.join(prefix, entry.name) : entry.name;
17
+ if (entry.isDirectory()) {
18
+ walk(entryPath, relPath);
19
+ }
20
+ else if (entry.isFile()) {
21
+ filePaths.push(relPath);
22
+ }
23
+ }
24
+ };
25
+ walk(root, '');
26
+ return filePaths;
27
+ }
28
+ function collectDesiredFiles(renderedSkill) {
29
+ const { entryFileName, entryContent, sourceDir, assets } = renderedSkill;
30
+ const files = new Map();
31
+ files.set(entryFileName, entryContent);
32
+ for (const asset of assets) {
33
+ const assetSourcePath = path.join(sourceDir, asset);
34
+ const isDirectoryAsset = fs.statSync(assetSourcePath).isDirectory();
35
+ if (isDirectoryAsset) {
36
+ const assetFiles = walkFiles(assetSourcePath);
37
+ for (const relPath of assetFiles) {
38
+ const fileSourcePath = path.join(assetSourcePath, relPath);
39
+ const fileContent = fs.readFileSync(fileSourcePath, 'utf-8');
40
+ const installPath = path.join(asset, relPath);
41
+ files.set(installPath, fileContent);
42
+ }
43
+ }
44
+ else {
45
+ const fileContent = fs.readFileSync(assetSourcePath, 'utf-8');
46
+ files.set(asset, fileContent);
47
+ }
48
+ }
49
+ return files;
50
+ }
51
+ function collectInstalledFiles(skillDirPath) {
52
+ const files = new Map();
53
+ for (const relPath of walkFiles(skillDirPath)) {
54
+ files.set(relPath, fs.readFileSync(path.join(skillDirPath, relPath), 'utf-8'));
55
+ }
56
+ return files;
57
+ }
58
+ function isUpToDate(desired, installed) {
59
+ if (desired.size !== installed.size)
60
+ return false;
61
+ for (const [relPath, content] of desired) {
62
+ if (installed.get(relPath) !== content)
63
+ return false;
64
+ }
65
+ return true;
66
+ }
67
+ export function classifySkill(projectPath, renderedSkill) {
68
+ const { dir, entryFileName } = renderedSkill;
69
+ const skillDirPath = path.join(projectPath, dir);
70
+ const entryFilePath = path.join(skillDirPath, entryFileName);
71
+ if (!fs.existsSync(entryFilePath)) {
72
+ return 'installed';
73
+ }
74
+ const desired = collectDesiredFiles(renderedSkill);
75
+ const installed = collectInstalledFiles(skillDirPath);
76
+ return isUpToDate(desired, installed) ? null : 'updated';
77
+ }
78
+ //# sourceMappingURL=classify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classify.js","sourceRoot":"","sources":["../../../src/catalog/install/classify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ChangeSet, ToolPlan } from './model.js';
2
+ export declare function diffPlan(projectPath: string, toolPlans: ToolPlan[]): ChangeSet;
3
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../src/catalog/install/diff.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAc,QAAQ,EAAE,MAAM,YAAY,CAAC;AAUlE,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAkG9E"}
@@ -0,0 +1,88 @@
1
+ import path from 'node:path';
2
+ import fs from 'node:fs';
3
+ import { loadLockfile } from './lockfile/load.js';
4
+ import { collectInstalledItems, findOrphans } from './lockfile/items.js';
5
+ import { classifyChange, classifySkill } from './classify.js';
6
+ import { buildManagedBlock, buildManagedBlockContent, replaceManagedBlock, } from './managed-block.js';
7
+ export function diffPlan(projectPath, toolPlans) {
8
+ const previousLockfile = loadLockfile(projectPath);
9
+ const previousItems = previousLockfile.installedItems;
10
+ const currentItems = collectInstalledItems(toolPlans);
11
+ const changeSet = {};
12
+ for (const toolPlan of toolPlans) {
13
+ const { tool, renderedSkills, renderedAgents, renderedGuidelines, managedBlock } = toolPlan;
14
+ const changes = [];
15
+ for (const renderedSkill of renderedSkills) {
16
+ const { packName, skillName } = renderedSkill;
17
+ const status = classifySkill(projectPath, renderedSkill);
18
+ if (status) {
19
+ changes.push({
20
+ label: `${packName}/${skillName}`,
21
+ status,
22
+ });
23
+ }
24
+ }
25
+ for (const renderedAgent of renderedAgents) {
26
+ const { packName, agentName, filePath, content } = renderedAgent;
27
+ const agentFilePath = path.join(projectPath, filePath);
28
+ const before = fs.existsSync(agentFilePath) ? fs.readFileSync(agentFilePath, 'utf-8') : null;
29
+ const status = classifyChange(before, content);
30
+ if (status) {
31
+ changes.push({
32
+ label: `${packName}/${agentName}`,
33
+ status,
34
+ });
35
+ }
36
+ }
37
+ for (const renderedGuideline of renderedGuidelines) {
38
+ const { packName, guidelineName, kind } = renderedGuideline;
39
+ if (kind === 'rule-file') {
40
+ const { filePath, content } = renderedGuideline;
41
+ const guidelineFilePath = path.join(projectPath, filePath);
42
+ const before = fs.existsSync(guidelineFilePath)
43
+ ? fs.readFileSync(guidelineFilePath, 'utf-8')
44
+ : null;
45
+ const status = classifyChange(before, content);
46
+ if (status) {
47
+ changes.push({
48
+ label: `${packName}/${guidelineName}`,
49
+ status,
50
+ });
51
+ }
52
+ }
53
+ }
54
+ if (managedBlock) {
55
+ const { filePath, fragments } = managedBlock;
56
+ const blockFilePath = path.join(projectPath, filePath);
57
+ const before = fs.existsSync(blockFilePath) ? fs.readFileSync(blockFilePath, 'utf-8') : null;
58
+ const blockContent = buildManagedBlockContent(fragments);
59
+ const content = before === null
60
+ ? buildManagedBlock(blockContent)
61
+ : replaceManagedBlock(before, blockContent);
62
+ const status = classifyChange(before, content);
63
+ if (status) {
64
+ changes.push({
65
+ label: `${filePath} (managed block)`,
66
+ status,
67
+ });
68
+ }
69
+ }
70
+ changeSet[tool] = changes;
71
+ }
72
+ const removed = findOrphans(previousItems, currentItems);
73
+ const removedItemsByTool = Object.entries(removed);
74
+ for (const [tool, removedItems] of removedItemsByTool) {
75
+ const syncChanges = removedItems.map((removedItem) => ({
76
+ label: removedItem.label,
77
+ status: 'removed',
78
+ }));
79
+ if (changeSet[tool]) {
80
+ changeSet[tool].push(...syncChanges);
81
+ }
82
+ else {
83
+ changeSet[tool] = syncChanges;
84
+ }
85
+ }
86
+ return changeSet;
87
+ }
88
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/catalog/install/diff.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,UAAU,QAAQ,CAAC,WAAmB,EAAE,SAAqB;IACjE,MAAM,gBAAgB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,gBAAgB,CAAC,cAAc,CAAC;IACtD,MAAM,YAAY,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAc,EAAE,CAAC;IAEhC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;QAE5F,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;YAE9C,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YACzD,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,GAAG,QAAQ,IAAI,SAAS,EAAE;oBACjC,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC;YACjE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE7F,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,GAAG,QAAQ,IAAI,SAAS,EAAE;oBACjC,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;YACnD,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,iBAAiB,CAAC;YAC5D,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;gBACzB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,iBAAiB,CAAC;gBAChD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAE3D,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC;oBAC7C,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC;oBAC7C,CAAC,CAAC,IAAI,CAAC;gBAET,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC/C,IAAI,MAAM,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC;wBACX,KAAK,EAAE,GAAG,QAAQ,IAAI,aAAa,EAAE;wBACrC,MAAM;qBACP,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;YAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE7F,MAAM,YAAY,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;YACzD,MAAM,OAAO,GACX,MAAM,KAAK,IAAI;gBACb,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC;gBACjC,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAEhD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,GAAG,QAAQ,kBAAkB;oBACpC,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACzD,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACtD,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAa,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACjE,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC,CAAC;QACJ,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ToolPlan } from '../model.js';
2
+ import type { InstalledItems } from './model.js';
3
+ export declare function collectInstalledItems(toolPlans: ToolPlan[]): InstalledItems;
4
+ export declare function findOrphans(previous: InstalledItems, current: InstalledItems): InstalledItems;
5
+ //# sourceMappingURL=items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/items.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,cAAc,CA6B3E;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,GAAG,cAAc,CAgB7F"}
@@ -0,0 +1,37 @@
1
+ export function collectInstalledItems(toolPlans) {
2
+ const byTool = {};
3
+ for (const toolPlan of toolPlans) {
4
+ const { tool, renderedSkills, renderedAgents, renderedGuidelines } = toolPlan;
5
+ const items = [];
6
+ for (const renderedSkill of renderedSkills) {
7
+ const { packName, skillName, dir } = renderedSkill;
8
+ items.push({ label: `${packName}/${skillName}`, path: dir });
9
+ }
10
+ for (const renderedAgent of renderedAgents) {
11
+ const { packName, agentName, filePath } = renderedAgent;
12
+ items.push({ label: `${packName}/${agentName}`, path: filePath });
13
+ }
14
+ for (const renderedGuideline of renderedGuidelines) {
15
+ if (renderedGuideline.kind === 'rule-file') {
16
+ const { packName, guidelineName, filePath } = renderedGuideline;
17
+ items.push({ label: `${packName}/${guidelineName}`, path: filePath });
18
+ }
19
+ }
20
+ byTool[tool] = items;
21
+ }
22
+ return byTool;
23
+ }
24
+ export function findOrphans(previous, current) {
25
+ const currentPaths = new Set(Object.values(current)
26
+ .flat()
27
+ .map((item) => item.path));
28
+ const orphansByTool = {};
29
+ for (const [tool, items] of Object.entries(previous)) {
30
+ const orphans = items.filter((item) => !currentPaths.has(item.path));
31
+ if (orphans.length > 0) {
32
+ orphansByTool[tool] = orphans;
33
+ }
34
+ }
35
+ return orphansByTool;
36
+ }
37
+ //# sourceMappingURL=items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"items.js","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/items.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,qBAAqB,CAAC,SAAqB;IACzD,MAAM,MAAM,GAAmB,EAAE,CAAC;IAElC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,QAAQ,CAAC;QAE9E,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,aAAa,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,IAAI,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,IAAI,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;YACnD,IAAI,iBAAiB,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC3C,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC;gBAChE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,QAAQ,IAAI,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAwB,EAAE,OAAuB;IAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;SACnB,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5B,CAAC;IAEF,MAAM,aAAa,GAAmB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Lockfile } from './schema.js';
2
+ export declare function loadLockfile(projectPath: string): Lockfile;
3
+ //# sourceMappingURL=load.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/load.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAwB5D,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAqB1D"}
@@ -0,0 +1,42 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { buildInstallLockPath } from '#core/paths.js';
4
+ import { LockfileSchema } from './schema.js';
5
+ function isWithinProject(projectPath, relPath) {
6
+ const resolvedPath = path.resolve(projectPath, relPath);
7
+ const relativePath = path.relative(projectPath, resolvedPath);
8
+ return !relativePath.startsWith('..') && !path.isAbsolute(relativePath);
9
+ }
10
+ function isManagedPath(projectPath, relPath) {
11
+ const withinProject = isWithinProject(projectPath, relPath);
12
+ const hasInstallPrefix = path.basename(relPath).startsWith('bolt-');
13
+ return withinProject && hasInstallPrefix;
14
+ }
15
+ function sanitizeItems(projectPath, installedItems) {
16
+ const sanitized = {};
17
+ const installedItemsByTool = Object.entries(installedItems);
18
+ for (const [tool, items] of installedItemsByTool) {
19
+ sanitized[tool] = items.filter((item) => isManagedPath(projectPath, item.path));
20
+ }
21
+ return sanitized;
22
+ }
23
+ export function loadLockfile(projectPath) {
24
+ const lockfilePath = buildInstallLockPath(projectPath);
25
+ let raw;
26
+ try {
27
+ const file = fs.readFileSync(lockfilePath, 'utf-8');
28
+ raw = JSON.parse(file);
29
+ }
30
+ catch {
31
+ return { installedItems: {} };
32
+ }
33
+ const parsed = LockfileSchema.safeParse(raw);
34
+ if (parsed.error) {
35
+ return { installedItems: {} };
36
+ }
37
+ const lockfile = parsed.data;
38
+ return {
39
+ installedItems: sanitizeItems(projectPath, lockfile.installedItems),
40
+ };
41
+ }
42
+ //# sourceMappingURL=load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAC;AAG5D,SAAS,eAAe,CAAC,WAAmB,EAAE,OAAe;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC9D,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB,EAAE,OAAe;IACzD,MAAM,aAAa,GAAG,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACpE,OAAO,aAAa,IAAI,gBAAgB,CAAC;AAC3C,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB,EAAE,cAA8B;IACxE,MAAM,SAAS,GAAmB,EAAE,CAAC;IACrC,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,oBAAoB,EAAE,CAAC;QACjD,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACpD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;IAE7B,OAAO;QACL,cAAc,EAAE,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,cAAc,CAAC;KACpE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type InstalledItem = {
2
+ label: string;
3
+ path: string;
4
+ };
5
+ export type InstalledItems = Record<string, InstalledItem[]>;
6
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/model.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ export declare const InstalledItemSchema: z.ZodObject<{
3
+ label: z.ZodString;
4
+ path: z.ZodString;
5
+ }, z.core.$strip>;
6
+ export declare const LockfileSchema: z.ZodObject<{
7
+ installedItems: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
8
+ label: z.ZodString;
9
+ path: z.ZodString;
10
+ }, z.core.$strip>>>>;
11
+ }, z.core.$strip>;
12
+ export type Lockfile = z.infer<typeof LockfileSchema>;
13
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;iBAEzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ export const InstalledItemSchema = z.object({
3
+ label: z.string(),
4
+ path: z.string(),
5
+ });
6
+ export const LockfileSchema = z.object({
7
+ installedItems: z.record(z.string(), z.array(InstalledItemSchema)).default({}),
8
+ });
9
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC/E,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Lockfile } from './schema.js';
2
+ import type { InstalledItems } from './model.js';
3
+ export declare function buildLockfile(installedItems: InstalledItems): Lockfile;
4
+ export declare function writeLockfile(projectPath: string, lockfile: Lockfile): void;
5
+ //# sourceMappingURL=write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/write.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,aAAa,CAAC,cAAc,EAAE,cAAc,GAAG,QAAQ,CAEtE;AAED,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAK3E"}
@@ -0,0 +1,13 @@
1
+ import path from 'node:path';
2
+ import fs from 'node:fs';
3
+ import { buildInstallLockPath } from '#core/paths.js';
4
+ export function buildLockfile(installedItems) {
5
+ return { installedItems };
6
+ }
7
+ export function writeLockfile(projectPath, lockfile) {
8
+ const lockfilePath = buildInstallLockPath(projectPath);
9
+ const lockfileDirPath = path.dirname(lockfilePath);
10
+ fs.mkdirSync(lockfileDirPath, { recursive: true });
11
+ fs.writeFileSync(lockfilePath, `${JSON.stringify(lockfile, null, 2)}\n`, 'utf-8');
12
+ }
13
+ //# sourceMappingURL=write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../src/catalog/install/lockfile/write.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAKtD,MAAM,UAAU,aAAa,CAAC,cAA8B;IAC1D,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,WAAmB,EAAE,QAAkB;IACnE,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACnD,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACpF,CAAC"}