create-relkit 0.6.0 → 0.7.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 (500) hide show
  1. package/dist/add-name.d.ts +8 -1
  2. package/dist/add-name.d.ts.map +1 -1
  3. package/dist/add-name.js +5 -1
  4. package/dist/add-name.js.map +1 -1
  5. package/dist/add-options-parser.d.ts +49 -0
  6. package/dist/add-options-parser.d.ts.map +1 -1
  7. package/dist/add-options-parser.js +52 -0
  8. package/dist/add-options-parser.js.map +1 -1
  9. package/dist/add-options-resource.d.ts +8 -0
  10. package/dist/add-options-resource.d.ts.map +1 -1
  11. package/dist/add-options-resource.js +8 -0
  12. package/dist/add-options-resource.js.map +1 -1
  13. package/dist/add-options.d.ts +6 -1
  14. package/dist/add-options.d.ts.map +1 -1
  15. package/dist/add-options.js +48 -1
  16. package/dist/add-options.js.map +1 -1
  17. package/dist/add-output.d.ts +10 -0
  18. package/dist/add-output.d.ts.map +1 -1
  19. package/dist/add-output.js +21 -0
  20. package/dist/add-output.js.map +1 -1
  21. package/dist/add-plan.d.ts +25 -0
  22. package/dist/add-plan.d.ts.map +1 -1
  23. package/dist/add-plan.js +91 -57
  24. package/dist/add-plan.js.map +1 -1
  25. package/dist/add-plan.types.d.ts +13 -0
  26. package/dist/add-plan.types.d.ts.map +1 -0
  27. package/dist/add-plan.types.js +2 -0
  28. package/dist/add-plan.types.js.map +1 -0
  29. package/dist/add-resolution-discovery.d.ts +56 -2
  30. package/dist/add-resolution-discovery.d.ts.map +1 -1
  31. package/dist/add-resolution-discovery.js +74 -10
  32. package/dist/add-resolution-discovery.js.map +1 -1
  33. package/dist/add-resolution-prompt.d.ts +46 -0
  34. package/dist/add-resolution-prompt.d.ts.map +1 -0
  35. package/dist/add-resolution-prompt.js +88 -0
  36. package/dist/add-resolution-prompt.js.map +1 -0
  37. package/dist/add-resolution-state-base.d.ts +112 -0
  38. package/dist/add-resolution-state-base.d.ts.map +1 -0
  39. package/dist/add-resolution-state-base.js +141 -0
  40. package/dist/add-resolution-state-base.js.map +1 -0
  41. package/dist/add-resolution-state.d.ts +66 -11
  42. package/dist/add-resolution-state.d.ts.map +1 -1
  43. package/dist/add-resolution-state.js +81 -69
  44. package/dist/add-resolution-state.js.map +1 -1
  45. package/dist/add-resolution-state.types.d.ts +6 -0
  46. package/dist/add-resolution-state.types.d.ts.map +1 -0
  47. package/dist/add-resolution-state.types.js +2 -0
  48. package/dist/add-resolution-state.types.js.map +1 -0
  49. package/dist/add-resolver-domain-execution.d.ts +35 -0
  50. package/dist/add-resolver-domain-execution.d.ts.map +1 -0
  51. package/dist/add-resolver-domain-execution.js +101 -0
  52. package/dist/add-resolver-domain-execution.js.map +1 -0
  53. package/dist/add-resolver-domain-input.d.ts +30 -0
  54. package/dist/add-resolver-domain-input.d.ts.map +1 -0
  55. package/dist/add-resolver-domain-input.js +83 -0
  56. package/dist/add-resolver-domain-input.js.map +1 -0
  57. package/dist/add-resolver-domain.d.ts +17 -0
  58. package/dist/add-resolver-domain.d.ts.map +1 -1
  59. package/dist/add-resolver-domain.js +36 -136
  60. package/dist/add-resolver-domain.js.map +1 -1
  61. package/dist/add-resolver-platform.d.ts +17 -0
  62. package/dist/add-resolver-platform.d.ts.map +1 -1
  63. package/dist/add-resolver-platform.js +83 -36
  64. package/dist/add-resolver-platform.js.map +1 -1
  65. package/dist/add-resolver-provider.d.ts +15 -0
  66. package/dist/add-resolver-provider.d.ts.map +1 -0
  67. package/dist/add-resolver-provider.js +67 -0
  68. package/dist/add-resolver-provider.js.map +1 -0
  69. package/dist/add-resolver-resources.d.ts +17 -0
  70. package/dist/add-resolver-resources.d.ts.map +1 -1
  71. package/dist/add-resolver-resources.js +79 -85
  72. package/dist/add-resolver-resources.js.map +1 -1
  73. package/dist/add-resolver.d.ts +33 -9
  74. package/dist/add-resolver.d.ts.map +1 -1
  75. package/dist/add-resolver.js +70 -31
  76. package/dist/add-resolver.js.map +1 -1
  77. package/dist/add-resolver.types.d.ts +27 -0
  78. package/dist/add-resolver.types.d.ts.map +1 -0
  79. package/dist/add-resolver.types.js +2 -0
  80. package/dist/add-resolver.types.js.map +1 -0
  81. package/dist/add-transaction-files-compat.d.ts +33 -0
  82. package/dist/add-transaction-files-compat.d.ts.map +1 -0
  83. package/dist/add-transaction-files-compat.js +42 -0
  84. package/dist/add-transaction-files-compat.js.map +1 -0
  85. package/dist/add-transaction-files.d.ts +49 -9
  86. package/dist/add-transaction-files.d.ts.map +1 -1
  87. package/dist/add-transaction-files.js +122 -74
  88. package/dist/add-transaction-files.js.map +1 -1
  89. package/dist/add-transaction-files.types.d.ts +7 -0
  90. package/dist/add-transaction-files.types.d.ts.map +1 -0
  91. package/dist/add-transaction-files.types.js +2 -0
  92. package/dist/add-transaction-files.types.js.map +1 -0
  93. package/dist/add-transaction-process.d.ts +37 -0
  94. package/dist/add-transaction-process.d.ts.map +1 -0
  95. package/dist/add-transaction-process.js +54 -0
  96. package/dist/add-transaction-process.js.map +1 -0
  97. package/dist/add-transaction-workflow.d.ts +23 -0
  98. package/dist/add-transaction-workflow.d.ts.map +1 -0
  99. package/dist/add-transaction-workflow.js +77 -0
  100. package/dist/add-transaction-workflow.js.map +1 -0
  101. package/dist/add-transaction.d.ts +26 -13
  102. package/dist/add-transaction.d.ts.map +1 -1
  103. package/dist/add-transaction.js +55 -105
  104. package/dist/add-transaction.js.map +1 -1
  105. package/dist/add-transaction.types.d.ts +32 -0
  106. package/dist/add-transaction.types.d.ts.map +1 -0
  107. package/dist/add-transaction.types.js +2 -0
  108. package/dist/add-transaction.types.js.map +1 -0
  109. package/dist/add-types.d.ts +56 -0
  110. package/dist/add-types.d.ts.map +1 -1
  111. package/dist/add-types.js +15 -0
  112. package/dist/add-types.js.map +1 -1
  113. package/dist/bin.d.ts +3 -0
  114. package/dist/bin.d.ts.map +1 -0
  115. package/dist/bin.js +83 -0
  116. package/dist/bin.js.map +1 -0
  117. package/dist/bucket-profiles.d.ts +17 -3
  118. package/dist/bucket-profiles.d.ts.map +1 -1
  119. package/dist/bucket-profiles.js +27 -5
  120. package/dist/bucket-profiles.js.map +1 -1
  121. package/dist/bucket-profiles.types.d.ts +9 -0
  122. package/dist/bucket-profiles.types.d.ts.map +1 -0
  123. package/dist/bucket-profiles.types.js +2 -0
  124. package/dist/bucket-profiles.types.js.map +1 -0
  125. package/dist/build-catalog.d.ts +14 -0
  126. package/dist/build-catalog.d.ts.map +1 -0
  127. package/dist/build-catalog.js +70 -0
  128. package/dist/build-catalog.js.map +1 -0
  129. package/dist/catalog-resolution.d.ts +12 -0
  130. package/dist/catalog-resolution.d.ts.map +1 -0
  131. package/dist/catalog-resolution.js +43 -0
  132. package/dist/catalog-resolution.js.map +1 -0
  133. package/dist/catalog-resolution.types.d.ts +3 -0
  134. package/dist/catalog-resolution.types.d.ts.map +1 -0
  135. package/dist/catalog-resolution.types.js +2 -0
  136. package/dist/catalog-resolution.types.js.map +1 -0
  137. package/dist/create-preview.d.ts +30 -7
  138. package/dist/create-preview.d.ts.map +1 -1
  139. package/dist/create-preview.js +41 -11
  140. package/dist/create-preview.js.map +1 -1
  141. package/dist/create-preview.types.d.ts +9 -0
  142. package/dist/create-preview.types.d.ts.map +1 -0
  143. package/dist/create-preview.types.js +2 -0
  144. package/dist/create-preview.types.js.map +1 -0
  145. package/dist/create-resolver.d.ts +27 -10
  146. package/dist/create-resolver.d.ts.map +1 -1
  147. package/dist/create-resolver.js +105 -74
  148. package/dist/create-resolver.js.map +1 -1
  149. package/dist/create-resolver.types.d.ts +15 -0
  150. package/dist/create-resolver.types.d.ts.map +1 -0
  151. package/dist/create-resolver.types.js +2 -0
  152. package/dist/create-resolver.types.js.map +1 -0
  153. package/dist/dependency-patch-installation.d.ts +16 -0
  154. package/dist/dependency-patch-installation.d.ts.map +1 -0
  155. package/dist/dependency-patch-installation.js +59 -0
  156. package/dist/dependency-patch-installation.js.map +1 -0
  157. package/dist/dependency-patches.d.ts +57 -0
  158. package/dist/dependency-patches.d.ts.map +1 -0
  159. package/dist/dependency-patches.js +134 -0
  160. package/dist/dependency-patches.js.map +1 -0
  161. package/dist/dependency-patches.types.d.ts +21 -0
  162. package/dist/dependency-patches.types.d.ts.map +1 -0
  163. package/dist/dependency-patches.types.js +2 -0
  164. package/dist/dependency-patches.types.js.map +1 -0
  165. package/dist/domain-artifact.d.ts +76 -0
  166. package/dist/domain-artifact.d.ts.map +1 -0
  167. package/dist/domain-artifact.js +115 -0
  168. package/dist/domain-artifact.js.map +1 -0
  169. package/dist/domain-planning.d.ts +36 -20
  170. package/dist/domain-planning.d.ts.map +1 -1
  171. package/dist/domain-planning.js +45 -55
  172. package/dist/domain-planning.js.map +1 -1
  173. package/dist/domain-planning.types.d.ts +21 -0
  174. package/dist/domain-planning.types.d.ts.map +1 -0
  175. package/dist/domain-planning.types.js +2 -0
  176. package/dist/domain-planning.types.js.map +1 -0
  177. package/dist/generate-deployment.d.ts +18 -0
  178. package/dist/generate-deployment.d.ts.map +1 -0
  179. package/dist/generate-deployment.js +100 -0
  180. package/dist/generate-deployment.js.map +1 -0
  181. package/dist/generate-files-compat.d.ts +43 -0
  182. package/dist/generate-files-compat.d.ts.map +1 -0
  183. package/dist/generate-files-compat.js +56 -0
  184. package/dist/generate-files-compat.js.map +1 -0
  185. package/dist/generate-files-utilities.d.ts +63 -10
  186. package/dist/generate-files-utilities.d.ts.map +1 -1
  187. package/dist/generate-files-utilities.js +99 -48
  188. package/dist/generate-files-utilities.js.map +1 -1
  189. package/dist/generate-files-utilities.types.d.ts +6 -0
  190. package/dist/generate-files-utilities.types.d.ts.map +1 -0
  191. package/dist/generate-files-utilities.types.js +2 -0
  192. package/dist/generate-files-utilities.types.js.map +1 -0
  193. package/dist/generate-files.d.ts +30 -1
  194. package/dist/generate-files.d.ts.map +1 -1
  195. package/dist/generate-files.js +56 -85
  196. package/dist/generate-files.js.map +1 -1
  197. package/dist/generate-output.d.ts +14 -17
  198. package/dist/generate-output.d.ts.map +1 -1
  199. package/dist/generate-output.js +27 -0
  200. package/dist/generate-output.js.map +1 -1
  201. package/dist/generate-output.types.d.ts +21 -0
  202. package/dist/generate-output.types.d.ts.map +1 -0
  203. package/dist/generate-output.types.js +2 -0
  204. package/dist/generate-output.types.js.map +1 -0
  205. package/dist/generate-process.d.ts +60 -0
  206. package/dist/generate-process.d.ts.map +1 -1
  207. package/dist/generate-process.js +95 -31
  208. package/dist/generate-process.js.map +1 -1
  209. package/dist/generate-stage-cleanup.d.ts +17 -0
  210. package/dist/generate-stage-cleanup.d.ts.map +1 -0
  211. package/dist/generate-stage-cleanup.js +30 -0
  212. package/dist/generate-stage-cleanup.js.map +1 -0
  213. package/dist/generate-types.d.ts +36 -0
  214. package/dist/generate-types.d.ts.map +1 -1
  215. package/dist/generate-types.js +16 -0
  216. package/dist/generate-types.js.map +1 -1
  217. package/dist/generate-workflow.d.ts +31 -0
  218. package/dist/generate-workflow.d.ts.map +1 -0
  219. package/dist/generate-workflow.js +117 -0
  220. package/dist/generate-workflow.js.map +1 -0
  221. package/dist/generate.d.ts +29 -1
  222. package/dist/generate.d.ts.map +1 -1
  223. package/dist/generate.js +55 -97
  224. package/dist/generate.js.map +1 -1
  225. package/dist/generate.service.types.d.ts +15 -0
  226. package/dist/generate.service.types.d.ts.map +1 -0
  227. package/dist/generate.service.types.js +2 -0
  228. package/dist/generate.service.types.js.map +1 -0
  229. package/dist/generator-cleanup.d.ts +27 -0
  230. package/dist/generator-cleanup.d.ts.map +1 -0
  231. package/dist/generator-cleanup.js +64 -0
  232. package/dist/generator-cleanup.js.map +1 -0
  233. package/dist/generator-cleanup.types.d.ts +6 -0
  234. package/dist/generator-cleanup.types.d.ts.map +1 -0
  235. package/dist/generator-cleanup.types.js +2 -0
  236. package/dist/generator-cleanup.types.js.map +1 -0
  237. package/dist/generator-errors.d.ts +74 -0
  238. package/dist/generator-errors.d.ts.map +1 -0
  239. package/dist/generator-errors.js +89 -0
  240. package/dist/generator-errors.js.map +1 -0
  241. package/dist/generator-filesystem.d.ts +25 -0
  242. package/dist/generator-filesystem.d.ts.map +1 -0
  243. package/dist/generator-filesystem.js +68 -0
  244. package/dist/generator-filesystem.js.map +1 -0
  245. package/dist/generator-filesystem.types.d.ts +112 -0
  246. package/dist/generator-filesystem.types.d.ts.map +1 -0
  247. package/dist/generator-filesystem.types.js +2 -0
  248. package/dist/generator-filesystem.types.js.map +1 -0
  249. package/dist/generator-paths.d.ts +13 -0
  250. package/dist/generator-paths.d.ts.map +1 -0
  251. package/dist/generator-paths.js +45 -0
  252. package/dist/generator-paths.js.map +1 -0
  253. package/dist/generator-paths.types.d.ts +40 -0
  254. package/dist/generator-paths.types.d.ts.map +1 -0
  255. package/dist/generator-paths.types.js +2 -0
  256. package/dist/generator-paths.types.js.map +1 -0
  257. package/dist/generator-process.d.ts +25 -0
  258. package/dist/generator-process.d.ts.map +1 -0
  259. package/dist/generator-process.js +124 -0
  260. package/dist/generator-process.js.map +1 -0
  261. package/dist/generator-process.types.d.ts +27 -0
  262. package/dist/generator-process.types.d.ts.map +1 -0
  263. package/dist/generator-process.types.js +2 -0
  264. package/dist/generator-process.types.js.map +1 -0
  265. package/dist/generator-prompt.d.ts +22 -0
  266. package/dist/generator-prompt.d.ts.map +1 -0
  267. package/dist/generator-prompt.js +58 -0
  268. package/dist/generator-prompt.js.map +1 -0
  269. package/dist/generator-prompt.types.d.ts +38 -0
  270. package/dist/generator-prompt.types.d.ts.map +1 -0
  271. package/dist/generator-prompt.types.js +2 -0
  272. package/dist/generator-prompt.types.js.map +1 -0
  273. package/dist/generator-runtime.d.ts +22 -0
  274. package/dist/generator-runtime.d.ts.map +1 -0
  275. package/dist/generator-runtime.js +31 -0
  276. package/dist/generator-runtime.js.map +1 -0
  277. package/dist/index.d.ts +13 -1
  278. package/dist/index.d.ts.map +1 -1
  279. package/dist/index.js +12 -79
  280. package/dist/index.js.map +1 -1
  281. package/dist/options.d.ts +50 -1
  282. package/dist/options.d.ts.map +1 -1
  283. package/dist/options.js +48 -1
  284. package/dist/options.js.map +1 -1
  285. package/dist/patches/drizzle-orm.patch +692 -0
  286. package/dist/plan-builder-effects.d.ts +124 -0
  287. package/dist/plan-builder-effects.d.ts.map +1 -0
  288. package/dist/plan-builder-effects.js +172 -0
  289. package/dist/plan-builder-effects.js.map +1 -0
  290. package/dist/plan-builder-files.d.ts +12 -0
  291. package/dist/plan-builder-files.d.ts.map +1 -0
  292. package/dist/plan-builder-files.js +99 -0
  293. package/dist/plan-builder-files.js.map +1 -0
  294. package/dist/plan-builder-files.types.d.ts +49 -0
  295. package/dist/plan-builder-files.types.d.ts.map +1 -0
  296. package/dist/plan-builder-files.types.js +2 -0
  297. package/dist/plan-builder-files.types.js.map +1 -0
  298. package/dist/plan-builder-manifest.d.ts +11 -0
  299. package/dist/plan-builder-manifest.d.ts.map +1 -0
  300. package/dist/plan-builder-manifest.js +37 -0
  301. package/dist/plan-builder-manifest.js.map +1 -0
  302. package/dist/plan-builder.d.ts +78 -18
  303. package/dist/plan-builder.d.ts.map +1 -1
  304. package/dist/plan-builder.js +105 -126
  305. package/dist/plan-builder.js.map +1 -1
  306. package/dist/plan-builder.types.d.ts +22 -0
  307. package/dist/plan-builder.types.d.ts.map +1 -0
  308. package/dist/plan-builder.types.js +2 -0
  309. package/dist/plan-builder.types.js.map +1 -0
  310. package/dist/plan-manifest.d.ts +16 -4
  311. package/dist/plan-manifest.d.ts.map +1 -1
  312. package/dist/plan-manifest.js +60 -3
  313. package/dist/plan-manifest.js.map +1 -1
  314. package/dist/plan-manifest.types.d.ts +13 -0
  315. package/dist/plan-manifest.types.d.ts.map +1 -0
  316. package/dist/plan-manifest.types.js +2 -0
  317. package/dist/plan-manifest.types.js.map +1 -0
  318. package/dist/project-catalog.d.ts +17 -0
  319. package/dist/project-catalog.d.ts.map +1 -0
  320. package/dist/project-catalog.js +69 -0
  321. package/dist/project-catalog.js.map +1 -0
  322. package/dist/project-discovery-app.d.ts +7 -0
  323. package/dist/project-discovery-app.d.ts.map +1 -1
  324. package/dist/project-discovery-app.js +71 -0
  325. package/dist/project-discovery-app.js.map +1 -1
  326. package/dist/project-discovery-database.d.ts +10 -0
  327. package/dist/project-discovery-database.d.ts.map +1 -1
  328. package/dist/project-discovery-database.js +18 -0
  329. package/dist/project-discovery-database.js.map +1 -1
  330. package/dist/project-discovery-facts.d.ts +13 -0
  331. package/dist/project-discovery-facts.d.ts.map +1 -0
  332. package/dist/project-discovery-facts.js +170 -0
  333. package/dist/project-discovery-facts.js.map +1 -0
  334. package/dist/project-discovery-types.d.ts +15 -0
  335. package/dist/project-discovery-types.d.ts.map +1 -1
  336. package/dist/project-discovery.d.ts +31 -1
  337. package/dist/project-discovery.d.ts.map +1 -1
  338. package/dist/project-discovery.js +51 -147
  339. package/dist/project-discovery.js.map +1 -1
  340. package/dist/project-discovery.service.types.d.ts +13 -0
  341. package/dist/project-discovery.service.types.d.ts.map +1 -0
  342. package/dist/project-discovery.service.types.js +2 -0
  343. package/dist/project-discovery.service.types.js.map +1 -0
  344. package/dist/project-manifest.schemas.d.ts +22 -0
  345. package/dist/project-manifest.schemas.d.ts.map +1 -0
  346. package/dist/project-manifest.schemas.js +22 -0
  347. package/dist/project-manifest.schemas.js.map +1 -0
  348. package/dist/prompt-driver.d.ts +7 -30
  349. package/dist/prompt-driver.d.ts.map +1 -1
  350. package/dist/prompt-driver.js +25 -4
  351. package/dist/prompt-driver.js.map +1 -1
  352. package/dist/prompt-driver.types.d.ts +92 -0
  353. package/dist/prompt-driver.types.d.ts.map +1 -0
  354. package/dist/prompt-driver.types.js +2 -0
  355. package/dist/prompt-driver.types.js.map +1 -0
  356. package/dist/provider-planning-definitions.d.ts +43 -0
  357. package/dist/provider-planning-definitions.d.ts.map +1 -1
  358. package/dist/provider-planning-definitions.js +43 -0
  359. package/dist/provider-planning-definitions.js.map +1 -1
  360. package/dist/provider-planning.d.ts +37 -7
  361. package/dist/provider-planning.d.ts.map +1 -1
  362. package/dist/provider-planning.js +69 -76
  363. package/dist/provider-planning.js.map +1 -1
  364. package/dist/provider-planning.types.d.ts +14 -0
  365. package/dist/provider-planning.types.d.ts.map +1 -0
  366. package/dist/provider-planning.types.js +2 -0
  367. package/dist/provider-planning.types.js.map +1 -0
  368. package/dist/provider-profile-definition.d.ts +45 -0
  369. package/dist/provider-profile-definition.d.ts.map +1 -0
  370. package/dist/provider-profile-definition.js +93 -0
  371. package/dist/provider-profile-definition.js.map +1 -0
  372. package/dist/render-ai-sources.d.ts +20 -0
  373. package/dist/render-ai-sources.d.ts.map +1 -1
  374. package/dist/render-ai-sources.js +21 -0
  375. package/dist/render-ai-sources.js.map +1 -1
  376. package/dist/render-ai.d.ts +49 -0
  377. package/dist/render-ai.d.ts.map +1 -1
  378. package/dist/render-ai.js +62 -12
  379. package/dist/render-ai.js.map +1 -1
  380. package/dist/render-auth-schema.d.ts +5 -0
  381. package/dist/render-auth-schema.d.ts.map +1 -1
  382. package/dist/render-auth-schema.js +8 -0
  383. package/dist/render-auth-schema.js.map +1 -1
  384. package/dist/render-auth-sources.d.ts +8 -0
  385. package/dist/render-auth-sources.d.ts.map +1 -1
  386. package/dist/render-auth-sources.js +8 -0
  387. package/dist/render-auth-sources.js.map +1 -1
  388. package/dist/render-auth.d.ts +21 -0
  389. package/dist/render-auth.d.ts.map +1 -1
  390. package/dist/render-auth.js +86 -24
  391. package/dist/render-auth.js.map +1 -1
  392. package/dist/render-database-sources.d.ts +15 -0
  393. package/dist/render-database-sources.d.ts.map +1 -1
  394. package/dist/render-database-sources.js +15 -0
  395. package/dist/render-database-sources.js.map +1 -1
  396. package/dist/render-database.d.ts +24 -0
  397. package/dist/render-database.d.ts.map +1 -1
  398. package/dist/render-database.js +37 -17
  399. package/dist/render-database.js.map +1 -1
  400. package/dist/render-domain-callables.d.ts +67 -0
  401. package/dist/render-domain-callables.d.ts.map +1 -0
  402. package/dist/render-domain-callables.js +99 -0
  403. package/dist/render-domain-callables.js.map +1 -0
  404. package/dist/render-domain-events.d.ts +59 -0
  405. package/dist/render-domain-events.d.ts.map +1 -0
  406. package/dist/render-domain-events.js +92 -0
  407. package/dist/render-domain-events.js.map +1 -0
  408. package/dist/render-domain-jobs.d.ts +56 -0
  409. package/dist/render-domain-jobs.d.ts.map +1 -0
  410. package/dist/render-domain-jobs.js +84 -0
  411. package/dist/render-domain-jobs.js.map +1 -0
  412. package/dist/render-domain-register.d.ts +18 -0
  413. package/dist/render-domain-register.d.ts.map +1 -1
  414. package/dist/render-domain-register.js +27 -7
  415. package/dist/render-domain-register.js.map +1 -1
  416. package/dist/render-domain-sources.d.ts +63 -0
  417. package/dist/render-domain-sources.d.ts.map +1 -1
  418. package/dist/render-domain-sources.js +65 -0
  419. package/dist/render-domain-sources.js.map +1 -1
  420. package/dist/render-domain.d.ts +4 -25
  421. package/dist/render-domain.d.ts.map +1 -1
  422. package/dist/render-domain.js +3 -97
  423. package/dist/render-domain.js.map +1 -1
  424. package/dist/render-domain.types.d.ts +15 -0
  425. package/dist/render-domain.types.d.ts.map +1 -0
  426. package/dist/render-domain.types.js +2 -0
  427. package/dist/render-domain.types.js.map +1 -0
  428. package/dist/render-resource-sources.d.ts +12 -0
  429. package/dist/render-resource-sources.d.ts.map +1 -1
  430. package/dist/render-resource-sources.js +12 -0
  431. package/dist/render-resource-sources.js.map +1 -1
  432. package/dist/render-resources.d.ts +47 -0
  433. package/dist/render-resources.d.ts.map +1 -1
  434. package/dist/render-resources.js +62 -15
  435. package/dist/render-resources.js.map +1 -1
  436. package/dist/render-route-sources.d.ts +19 -0
  437. package/dist/render-route-sources.d.ts.map +1 -1
  438. package/dist/render-route-sources.js +19 -0
  439. package/dist/render-route-sources.js.map +1 -1
  440. package/dist/render-routes.d.ts +57 -0
  441. package/dist/render-routes.d.ts.map +1 -1
  442. package/dist/render-routes.js +72 -10
  443. package/dist/render-routes.js.map +1 -1
  444. package/dist/render-service.d.ts +23 -1
  445. package/dist/render-service.d.ts.map +1 -1
  446. package/dist/render-service.js +65 -20
  447. package/dist/render-service.js.map +1 -1
  448. package/dist/scaffold-catalog.d.ts +7 -6
  449. package/dist/scaffold-catalog.d.ts.map +1 -1
  450. package/dist/scaffold-catalog.js +11 -5
  451. package/dist/scaffold-catalog.js.map +1 -1
  452. package/dist/scaffold-catalog.types.d.ts +11 -0
  453. package/dist/scaffold-catalog.types.d.ts.map +1 -0
  454. package/dist/scaffold-catalog.types.js +2 -0
  455. package/dist/scaffold-catalog.types.js.map +1 -0
  456. package/dist/source-edit.d.ts +38 -2
  457. package/dist/source-edit.d.ts.map +1 -1
  458. package/dist/source-edit.js +39 -94
  459. package/dist/source-edit.js.map +1 -1
  460. package/dist/source-factory-edit.d.ts +78 -0
  461. package/dist/source-factory-edit.d.ts.map +1 -0
  462. package/dist/source-factory-edit.js +156 -0
  463. package/dist/source-factory-edit.js.map +1 -0
  464. package/dist/source-import-edit.d.ts +7 -1
  465. package/dist/source-import-edit.d.ts.map +1 -1
  466. package/dist/source-import-edit.js +20 -1
  467. package/dist/source-import-edit.js.map +1 -1
  468. package/dist/template-root.d.ts +15 -4
  469. package/dist/template-root.d.ts.map +1 -1
  470. package/dist/template-root.js +22 -5
  471. package/dist/template-root.js.map +1 -1
  472. package/dist/templates/default/README.md +1 -1
  473. package/dist/templates/default/v1/agent/package.json +4 -4
  474. package/dist/templates/default/v1/api/package.json +3 -3
  475. package/dist/templates/default/v1/fullstack/package.json +6 -6
  476. package/dist/templates/default/v1/minimal/package.json +3 -3
  477. package/dist/templates/default/v1/tasks/package.json +3 -3
  478. package/dist/validate-errors.d.ts +12 -0
  479. package/dist/validate-errors.d.ts.map +1 -0
  480. package/dist/validate-errors.js +16 -0
  481. package/dist/validate-errors.js.map +1 -0
  482. package/dist/validate-paths.d.ts +43 -0
  483. package/dist/validate-paths.d.ts.map +1 -0
  484. package/dist/validate-paths.js +105 -0
  485. package/dist/validate-paths.js.map +1 -0
  486. package/dist/validate.d.ts +56 -17
  487. package/dist/validate.d.ts.map +1 -1
  488. package/dist/validate.js +89 -130
  489. package/dist/validate.js.map +1 -1
  490. package/dist/validate.types.d.ts +19 -0
  491. package/dist/validate.types.d.ts.map +1 -0
  492. package/dist/validate.types.js +2 -0
  493. package/dist/validate.types.js.map +1 -0
  494. package/package.json +67 -5
  495. package/src/catalog-resolution.ts +55 -0
  496. package/src/catalog-resolution.types.ts +2 -0
  497. package/dist/create-additions.d.ts +0 -7
  498. package/dist/create-additions.d.ts.map +0 -1
  499. package/dist/create-additions.js +0 -27
  500. package/dist/create-additions.js.map +0 -1
@@ -0,0 +1,124 @@
1
+ import { Effect } from "effect";
2
+ import { type AddRequest } from "./add-types.js";
3
+ import type { DiscoveredArtifact, DiscoveredProfile, ProjectDiscovery } from "./project-discovery-types.js";
4
+ import type { PlannedArtifactInput } from "./plan-builder.types.js";
5
+ /** Private Ref-backed Effect implementation inherited by the public compatibility owner. */
6
+ export declare class PlanBuilderEffects {
7
+ #private;
8
+ readonly request: AddRequest;
9
+ readonly discovery: ProjectDiscovery;
10
+ /**
11
+ * Creates isolated planning state without sharing mutations with another request.
12
+ * @param request - Normalized scaffold request.
13
+ * @param discovery - Read-only discovery snapshot.
14
+ * @remarks Ref.makeUnsafe is required only by this existing synchronous constructor.
15
+ * @returns The invocation-owned instance.
16
+ */
17
+ constructor(request: AddRequest, discovery: ProjectDiscovery);
18
+ /**
19
+ * Reads the planned source first, then the explicit filesystem service.
20
+ * @param path - Path inside the current project or owned resource.
21
+ * @returns Planned file text when present, otherwise text read through explicit filesystem authority.
22
+ */
23
+ readonly readEffect: (path: string) => Effect.Effect<string, import("./generator-errors.js").GeneratorIoError, import("./generator-filesystem.js").GeneratorFileSystem>;
24
+ /**
25
+ * Atomically reserves one create operation after checking the native destination.
26
+ * @param path - Path inside the current project or owned resource.
27
+ * @param content - Complete bytes or text planned for the destination.
28
+ * @param mode - Optional restored or generated permission mode.
29
+ * @returns Completion after collision preflight and atomic reservation of the new planned file.
30
+ */
31
+ readonly createEffect: (path: string, content: string, mode?: number) => Effect.Effect<void, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, import("./generator-filesystem.js").GeneratorFileSystem>;
32
+ /**
33
+ * Adds a source transformation to this request; transformations preserve expected validator errors.
34
+ * @param path - Path inside the current project or owned resource.
35
+ * @param transform - Pure transformation applied atomically to the latest planned source.
36
+ * @returns Completion after the transform is applied atomically to the latest planned source.
37
+ */
38
+ readonly updateEffect: (path: string, transform: (source: string) => string) => Effect.Effect<void, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, import("./generator-filesystem.js").GeneratorFileSystem>;
39
+ /**
40
+ * Plans an environment example only when the declaration is absent.
41
+ * @param name - Environment variable name.
42
+ * @param value - Example value used only for a new declaration.
43
+ * @returns An Effect planning the env example through explicit filesystem authority.
44
+ */
45
+ readonly envExampleEffect: (name: string, value?: string) => Effect.Effect<void, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, import("./generator-filesystem.js").GeneratorFileSystem>;
46
+ /**
47
+ * Plans a gitignore entry without duplicating an authored line.
48
+ * @param pattern - Declaration-owned glob or ignore pattern.
49
+ * @returns Completion after the missing ignore pattern is added to planned .gitignore source.
50
+ */
51
+ readonly gitignoreEffect: (pattern: string) => Effect.Effect<void, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, import("./generator-filesystem.js").GeneratorFileSystem>;
52
+ /**
53
+ * Records a required dependency through the authoritative request Ref.
54
+ * @param name - Authored name or declaration key.
55
+ * @returns Completion after the supported dependency is recorded in this request's Ref.
56
+ */
57
+ readonly dependencyEffect: (name: "better-auth" | "@relkit/aws" | "@relkit/better-auth" | "@relkit/cloudflare" | "@relkit/docker" | "@relkit/effect-mq" | "@relkit/inngest" | "@relkit/drizzle" | "@relkit/local" | "@relkit/pulumi" | "@relkit/redis" | "@relkit/s3" | "@relkit/trigger" | "drizzle-kit" | "drizzle-orm" | "langchain") => Effect.Effect<void, never, never>;
58
+ /**
59
+ * Adds one artifact identity to the current request's discovery view.
60
+ * @param kind - Authoritative artifact kind.
61
+ * @param value - Artifact domain, source path, binding and optional identity/export form.
62
+ * @returns An observed Ref update registering the authoritative kind and projected artifact fields.
63
+ */
64
+ readonly registerArtifactEffect: (kind: "function" | "service" | "error" | "event" | "task" | "job" | "cache" | "bucket" | "tool" | "prompt" | "agent" | "constants" | "route" | "middleware" | "transform" | "app" | "event-trigger" | "channel", value: PlannedArtifactInput) => Effect.Effect<void, never, never>;
65
+ /**
66
+ * Adds one provider profile to the current request's discovery view.
67
+ * @param profile - Selected provider profile.
68
+ * @returns Completion after the discovered/planned profile projection is updated for this request.
69
+ */
70
+ readonly registerProfileEffect: (profile: DiscoveredProfile) => Effect.Effect<void, never, never>;
71
+ /**
72
+ * Records one owned package script.
73
+ * @param name - Authored name or declaration key.
74
+ * @param command - Shell command stored under the package script name.
75
+ * @returns Completion after the script name and command are recorded for manifest planning.
76
+ */
77
+ readonly scriptEffect: (name: string, command: string) => Effect.Effect<void, never, never>;
78
+ /**
79
+ * Records a bounded warning by its stable code.
80
+ * @param code - Stable category code included in the resulting diagnostic.
81
+ * @param message - Existing user-facing diagnostic.
82
+ * @returns Completion after the warning is recorded under its stable category code.
83
+ */
84
+ readonly warningEffect: (code: string, message: string) => Effect.Effect<void, never, never>;
85
+ /**
86
+ * Records one next command without duplicating it.
87
+ * @param command - Shell command shown as a follow-up instruction.
88
+ * @returns Completion after the follow-up command is deduplicated in request state.
89
+ */
90
+ readonly nextStepEffect: (command: string) => Effect.Effect<void, never, never>;
91
+ /**
92
+ * Finishes manifest ownership and returns a deterministic immutable plan.
93
+ * @returns The frozen plan containing ordered operations, concrete dependencies and public follow-up metadata.
94
+ */
95
+ readonly finishEffect: () => Effect.Effect<Readonly<{
96
+ request: AddRequest;
97
+ projectRoot: string;
98
+ operations: readonly import("./add-types.js").ScaffoldFileOperation[];
99
+ dependencies: Readonly<Record<string, string>>;
100
+ artifacts: readonly {
101
+ kind: "function" | "service" | "error" | "event" | "task" | "job" | "cache" | "bucket" | "tool" | "prompt" | "agent" | "constants" | "route" | "middleware" | "transform" | "app" | "event-trigger" | "channel";
102
+ path: string;
103
+ id: string;
104
+ binding: string;
105
+ }[];
106
+ profiles: readonly {
107
+ capability: "event" | "job" | "cache" | "bucket" | "model";
108
+ name: string;
109
+ }[];
110
+ warnings: readonly import("./add-types.js").ScaffoldWarning[];
111
+ nextSteps: readonly string[];
112
+ }>, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, import("./generator-filesystem.js").GeneratorFileSystem>;
113
+ /**
114
+ * Returns a synchronous immutable projection of this request's authoritative Ref.
115
+ * @returns A new array combining discovered artifacts and this request's planned artifacts.
116
+ */
117
+ get artifacts(): readonly DiscoveredArtifact[];
118
+ /**
119
+ * Returns a synchronous immutable profile projection of the request Ref.
120
+ * @returns A new array combining discovered profiles and this request's planned profiles.
121
+ */
122
+ get profiles(): readonly DiscoveredProfile[];
123
+ }
124
+ //# sourceMappingURL=plan-builder-effects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-builder-effects.d.ts","sourceRoot":"","sources":["../src/plan-builder-effects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAoB,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAMtF,4FAA4F;AAC5F,qBAAa,kBAAkB;;IAW3B,QAAQ,CAAC,OAAO,EAAE,UAAU;IAC5B,QAAQ,CAAC,SAAS,EAAE,gBAAgB;IATtC;;;;;;OAMG;gBAEQ,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,gBAAgB;IAatC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,GAAI,MAAM,MAAM,sIAAkC;IAErE;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,EAAE,OAAO,MAAM,2LACrB;IAEhD;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,GAAI,MAAM,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,2LAChC;IAE5C;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,GAAI,MAAM,MAAM,EAAE,cAAU,2LACT;IAE5C;;;;OAIG;IACH,QAAQ,CAAC,eAAe,GAAI,SAAS,MAAM,2LAA0C;IACrF;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,qVAOvB;IAEF;;;;;OAKG;IACH,QAAQ,CAAC,sBAAsB,sRAoB7B;IAEF;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,oEAI5B;IAEF;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,uEAOnB;IAEF;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,uEAOpB;IAEF;;;;OAIG;IACH,QAAQ,CAAC,cAAc,yDAOrB;IAEF;;;OAGG;IACH,QAAQ,CAAC,YAAY;;;;;;;;;;;;;;;;;0KA8BnB;IACF;;;OAGG;IACH,IAAI,SAAS,IAAI,SAAS,kBAAkB,EAAE,CAE7C;IAED;;;OAGG;IACH,IAAI,QAAQ,IAAI,SAAS,iBAAiB,EAAE,CAE3C;CACF"}
@@ -0,0 +1,172 @@
1
+ import { Effect, Ref } from "effect";
2
+ import { observeExecution } from "@relkit/contracts/operation";
3
+ import {} from "./add-types.js";
4
+ import { finalizeManifestEffect } from "./plan-builder-manifest.js";
5
+ import { planBuilderFiles } from "./plan-builder-files.js";
6
+ /** Private Ref-backed Effect implementation inherited by the public compatibility owner. */
7
+ export class PlanBuilderEffects {
8
+ request;
9
+ discovery;
10
+ #state;
11
+ #files;
12
+ /**
13
+ * Creates isolated planning state without sharing mutations with another request.
14
+ * @param request - Normalized scaffold request.
15
+ * @param discovery - Read-only discovery snapshot.
16
+ * @remarks Ref.makeUnsafe is required only by this existing synchronous constructor.
17
+ * @returns The invocation-owned instance.
18
+ */
19
+ constructor(request, discovery) {
20
+ this.request = request;
21
+ this.discovery = discovery;
22
+ this.#state = Ref.makeUnsafe({
23
+ files: new Map(),
24
+ dependencies: new Set(),
25
+ scripts: new Map(),
26
+ warnings: new Map(),
27
+ nextSteps: new Set(),
28
+ artifacts: [],
29
+ profiles: [],
30
+ });
31
+ this.#files = planBuilderFiles(this.#state, discovery);
32
+ }
33
+ /**
34
+ * Reads the planned source first, then the explicit filesystem service.
35
+ * @param path - Path inside the current project or owned resource.
36
+ * @returns Planned file text when present, otherwise text read through explicit filesystem authority.
37
+ */
38
+ readEffect = (path) => this.#files.readEffect(path);
39
+ /**
40
+ * Atomically reserves one create operation after checking the native destination.
41
+ * @param path - Path inside the current project or owned resource.
42
+ * @param content - Complete bytes or text planned for the destination.
43
+ * @param mode - Optional restored or generated permission mode.
44
+ * @returns Completion after collision preflight and atomic reservation of the new planned file.
45
+ */
46
+ createEffect = (path, content, mode) => this.#files.createEffect(path, content, mode);
47
+ /**
48
+ * Adds a source transformation to this request; transformations preserve expected validator errors.
49
+ * @param path - Path inside the current project or owned resource.
50
+ * @param transform - Pure transformation applied atomically to the latest planned source.
51
+ * @returns Completion after the transform is applied atomically to the latest planned source.
52
+ */
53
+ updateEffect = (path, transform) => this.#files.updateEffect(path, transform);
54
+ /**
55
+ * Plans an environment example only when the declaration is absent.
56
+ * @param name - Environment variable name.
57
+ * @param value - Example value used only for a new declaration.
58
+ * @returns An Effect planning the env example through explicit filesystem authority.
59
+ */
60
+ envExampleEffect = (name, value = "") => this.#files.envExampleEffect(name, value);
61
+ /**
62
+ * Plans a gitignore entry without duplicating an authored line.
63
+ * @param pattern - Declaration-owned glob or ignore pattern.
64
+ * @returns Completion after the missing ignore pattern is added to planned .gitignore source.
65
+ */
66
+ gitignoreEffect = (pattern) => this.#files.gitignoreEffect(pattern);
67
+ /**
68
+ * Records a required dependency through the authoritative request Ref.
69
+ * @param name - Authored name or declaration key.
70
+ * @returns Completion after the supported dependency is recorded in this request's Ref.
71
+ */
72
+ dependencyEffect = Effect.fn("PlanBuilder.dependency")((name) => Ref.update(this.#state, (state) => ({
73
+ ...state,
74
+ dependencies: new Set(state.dependencies).add(name),
75
+ })), (effect) => observeExecution("generator", "planning.dependency", effect));
76
+ /**
77
+ * Adds one artifact identity to the current request's discovery view.
78
+ * @param kind - Authoritative artifact kind.
79
+ * @param value - Artifact domain, source path, binding and optional identity/export form.
80
+ * @returns An observed Ref update registering the authoritative kind and projected artifact fields.
81
+ */
82
+ registerArtifactEffect = Effect.fn("PlanBuilder.registerArtifact")((kind, value) => Ref.update(this.#state, (state) => ({
83
+ ...state,
84
+ artifacts: [
85
+ ...state.artifacts,
86
+ {
87
+ kind,
88
+ domain: value.domain,
89
+ path: value.path,
90
+ binding: value.binding,
91
+ id: value.id,
92
+ factory: "scaffold",
93
+ exported: true,
94
+ exportKind: value.exportKind ?? "default",
95
+ options: [],
96
+ },
97
+ ],
98
+ })), (effect) => observeExecution("generator", "planning.registerArtifact", effect));
99
+ /**
100
+ * Adds one provider profile to the current request's discovery view.
101
+ * @param profile - Selected provider profile.
102
+ * @returns Completion after the discovered/planned profile projection is updated for this request.
103
+ */
104
+ registerProfileEffect = Effect.fn("PlanBuilder.registerProfile")((profile) => Ref.update(this.#state, (state) => ({ ...state, profiles: [...state.profiles, profile] })), (effect) => observeExecution("generator", "planning.registerProfile", effect));
105
+ /**
106
+ * Records one owned package script.
107
+ * @param name - Authored name or declaration key.
108
+ * @param command - Shell command stored under the package script name.
109
+ * @returns Completion after the script name and command are recorded for manifest planning.
110
+ */
111
+ scriptEffect = Effect.fn("PlanBuilder.script")((name, command) => Ref.update(this.#state, (state) => ({
112
+ ...state,
113
+ scripts: new Map(state.scripts).set(name, command),
114
+ })), (effect) => observeExecution("generator", "planning.script", effect));
115
+ /**
116
+ * Records a bounded warning by its stable code.
117
+ * @param code - Stable category code included in the resulting diagnostic.
118
+ * @param message - Existing user-facing diagnostic.
119
+ * @returns Completion after the warning is recorded under its stable category code.
120
+ */
121
+ warningEffect = Effect.fn("PlanBuilder.warning")((code, message) => Ref.update(this.#state, (state) => ({
122
+ ...state,
123
+ warnings: new Map(state.warnings).set(code, Object.freeze({ code, message })),
124
+ })), (effect) => observeExecution("generator", "planning.warning", effect));
125
+ /**
126
+ * Records one next command without duplicating it.
127
+ * @param command - Shell command shown as a follow-up instruction.
128
+ * @returns Completion after the follow-up command is deduplicated in request state.
129
+ */
130
+ nextStepEffect = Effect.fn("PlanBuilder.nextStep")((command) => Ref.update(this.#state, (state) => ({
131
+ ...state,
132
+ nextSteps: new Set(state.nextSteps).add(command),
133
+ })), (effect) => observeExecution("generator", "planning.nextStep", effect));
134
+ /**
135
+ * Finishes manifest ownership and returns a deterministic immutable plan.
136
+ * @returns The frozen plan containing ordered operations, concrete dependencies and public follow-up metadata.
137
+ */
138
+ finishEffect = Effect.fn("PlanBuilder.finish")(() => observeExecution("generator", "planning.finish", Effect.gen({ self: this }, function* () {
139
+ const dependencies = yield* finalizeManifestEffect(this, yield* Ref.get(this.#state));
140
+ const state = yield* Ref.get(this.#state);
141
+ return Object.freeze({
142
+ request: this.request,
143
+ projectRoot: this.discovery.projectRoot,
144
+ operations: Object.freeze([...state.files.values()].sort((a, b) => a.path.localeCompare(b.path))),
145
+ dependencies: Object.freeze(dependencies),
146
+ artifacts: Object.freeze(state.artifacts.map(({ kind, path, id, binding }) => ({
147
+ kind,
148
+ path,
149
+ id: id ?? binding,
150
+ binding,
151
+ }))),
152
+ profiles: Object.freeze(state.profiles.map(({ capability, name }) => ({ capability, name }))),
153
+ warnings: Object.freeze([...state.warnings.values()]),
154
+ nextSteps: Object.freeze([...state.nextSteps]),
155
+ });
156
+ })));
157
+ /**
158
+ * Returns a synchronous immutable projection of this request's authoritative Ref.
159
+ * @returns A new array combining discovered artifacts and this request's planned artifacts.
160
+ */
161
+ get artifacts() {
162
+ return [...this.discovery.artifacts, ...Ref.getUnsafe(this.#state).artifacts];
163
+ }
164
+ /**
165
+ * Returns a synchronous immutable profile projection of the request Ref.
166
+ * @returns A new array combining discovered profiles and this request's planned profiles.
167
+ */
168
+ get profiles() {
169
+ return [...this.discovery.profiles, ...Ref.getUnsafe(this.#state).profiles];
170
+ }
171
+ }
172
+ //# sourceMappingURL=plan-builder-effects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-builder-effects.js","sourceRoot":"","sources":["../src/plan-builder-effects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Ref } from "effect";
2
+ import type { ProjectDiscovery } from "./project-discovery-types.js";
3
+ import type { PlanBuilderState } from "./plan-builder.types.js";
4
+ import type { PlanBuilderFileOperations } from "./plan-builder-files.types.js";
5
+ /**
6
+ * Creates private file-planning capabilities for one request Ref.
7
+ * @param state - The request owner's private authoritative Ref.
8
+ * @param discovery - Immutable declaration facts establishing the project root.
9
+ * @returns File Effects retaining explicit filesystem authority and atomic Ref updates.
10
+ */
11
+ export declare function planBuilderFiles(state: Ref.Ref<PlanBuilderState>, discovery: ProjectDiscovery): PlanBuilderFileOperations;
12
+ //# sourceMappingURL=plan-builder-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-builder-files.d.ts","sourceRoot":"","sources":["../src/plan-builder-files.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,GAAG,EAAE,MAAM,QAAQ,CAAC;AAGrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/E;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,gBAAgB,6BA+G7F"}
@@ -0,0 +1,99 @@
1
+ import { resolve } from "node:path";
2
+ import { Effect, Ref } from "effect";
3
+ import { observeExecution } from "@relkit/contracts/operation";
4
+ import { ADD_FAILURE_CODES, AddScaffoldError } from "./add-types.js";
5
+ import { GeneratorFileSystem } from "./generator-filesystem.js";
6
+ import { domainError, scaffoldErrors } from "./generator-errors.js";
7
+ /**
8
+ * Creates private file-planning capabilities for one request Ref.
9
+ * @param state - The request owner's private authoritative Ref.
10
+ * @param discovery - Immutable declaration facts establishing the project root.
11
+ * @returns File Effects retaining explicit filesystem authority and atomic Ref updates.
12
+ */
13
+ export function planBuilderFiles(state, discovery) {
14
+ const operations = {
15
+ /** Reads the planned source first, then the explicit filesystem service. */
16
+ readEffect: Effect.fn("PlanBuilder.read")((path) => Effect.gen(function* () {
17
+ const planned = (yield* Ref.get(state)).files.get(path);
18
+ if (planned !== undefined)
19
+ return planned.content;
20
+ return yield* (yield* GeneratorFileSystem).readText(resolve(discovery.projectRoot, path));
21
+ }), (effect) => observeExecution("generator", "planning.read", effect)),
22
+ /** Atomically reserves one create operation after checking the native destination. */
23
+ createEffect: Effect.fn("PlanBuilder.create")((path, content, mode) => Effect.gen(function* () {
24
+ const fs = yield* GeneratorFileSystem;
25
+ if ((yield* fs.metadata(resolve(discovery.projectRoot, path))) !== undefined)
26
+ return yield* collision(`${path} already exists.`);
27
+ const duplicate = yield* Ref.modify(state, (state) => state.files.has(path)
28
+ ? [true, state]
29
+ : [
30
+ false,
31
+ {
32
+ ...state,
33
+ files: new Map(state.files).set(path, {
34
+ path,
35
+ action: "create",
36
+ content,
37
+ ...(mode === undefined ? {} : { mode }),
38
+ }),
39
+ },
40
+ ]);
41
+ if (duplicate)
42
+ return yield* collision(`${path} already exists.`);
43
+ }), (effect) => observeExecution("generator", "planning.create", effect)),
44
+ /** Adds a source transformation to this request; transformations preserve expected validator errors. */
45
+ updateEffect: Effect.fn("PlanBuilder.update")((path, transform) => Effect.gen(function* () {
46
+ const source = yield* operations
47
+ .readEffect(path)
48
+ .pipe(Effect.mapError(() => domainError(new AddScaffoldError(ADD_FAILURE_CODES.invalidProject, `${path} does not exist.`))));
49
+ yield* Ref.update(state, (state) => {
50
+ const existing = state.files.get(path);
51
+ const current = existing?.content ?? source;
52
+ const content = transform(current);
53
+ return content === current
54
+ ? state
55
+ : {
56
+ ...state,
57
+ files: new Map(state.files).set(path, {
58
+ path,
59
+ action: existing?.action ?? "update",
60
+ content,
61
+ ...(existing?.mode === undefined ? {} : { mode: existing.mode }),
62
+ }),
63
+ };
64
+ }).pipe(scaffoldErrors);
65
+ }), (effect) => observeExecution("generator", "planning.update", effect)),
66
+ /** Plans an environment example without replacing an existing declaration. */
67
+ envExampleEffect: Effect.fn("PlanBuilder.envExample")((name, value = "") => operations.appendLineEffect(".env.example", `${name}=${value}`, (source) => new RegExp(`^${escape(name)}=`, "m").test(source)), (effect) => observeExecution("generator", "planning.envExample", effect)),
68
+ /** Plans a gitignore entry without duplicating an authored line. */
69
+ gitignoreEffect: Effect.fn("PlanBuilder.gitignore")((pattern) => operations.appendLineEffect(".gitignore", pattern, (source) => source.split(/\r?\n/).includes(pattern)), (effect) => observeExecution("generator", "planning.gitignore", effect)),
70
+ /** Adds an owned line only when absent from planned and native source. */
71
+ appendLineEffect: Effect.fn("PlanBuilder.appendLine")((path, line, present) => Effect.gen(function* () {
72
+ if (!(yield* Ref.get(state)).files.has(path) &&
73
+ (yield* (yield* GeneratorFileSystem).metadata(resolve(discovery.projectRoot, path))) ===
74
+ undefined) {
75
+ yield* operations.createEffect(path, `${line}\n`);
76
+ }
77
+ else
78
+ yield* operations.updateEffect(path, (source) => present(source) ? source : `${source.trimEnd()}\n${line}\n`);
79
+ }), (effect) => observeExecution("generator", "planning.appendLine", effect)),
80
+ };
81
+ return operations;
82
+ }
83
+ /**
84
+ * Constructs a typed collision failure preserving its public constructor.
85
+ * @param message - Diagnostic explaining the conflicting declaration.
86
+ * @returns An Effect failing with the original RELKIT_ADD_COLLISION AddScaffoldError.
87
+ */
88
+ function collision(message) {
89
+ return Effect.fail(domainError(new AddScaffoldError(ADD_FAILURE_CODES.collision, message)));
90
+ }
91
+ /**
92
+ * Escapes a generated environment name for a pure declaration-presence check.
93
+ * @param value - Environment name embedded in a declaration-presence expression.
94
+ * @returns The value with regular-expression metacharacters escaped.
95
+ */
96
+ function escape(value) {
97
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
98
+ }
99
+ //# sourceMappingURL=plan-builder-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-builder-files.js","sourceRoot":"","sources":["../src/plan-builder-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { Effect } from "effect";
2
+ import type { GeneratorFileSystem } from "./generator-filesystem.js";
3
+ import type { GeneratorDomainError, GeneratorIoError } from "./generator-errors.js";
4
+ /** File-planning capabilities retaining their exact native read requirement. */
5
+ export interface PlanBuilderFileOperations {
6
+ /**
7
+ * Composes read with explicit services, typed failures and owned resource lifetime.
8
+ * @param path - Path inside the current project or owned resource.
9
+ * @returns Planned file text when present, otherwise text read through explicit filesystem authority.
10
+ */
11
+ readonly readEffect: (path: string) => Effect.Effect<string, GeneratorIoError, GeneratorFileSystem>;
12
+ /**
13
+ * Composes create with explicit services, typed failures and owned resource lifetime.
14
+ * @param path - Path inside the current project or owned resource.
15
+ * @param content - Complete bytes or text planned for the destination.
16
+ * @param mode - Optional restored or generated permission mode.
17
+ * @returns Completion after collision preflight and atomic reservation of the new planned file.
18
+ */
19
+ readonly createEffect: (path: string, content: string, mode?: number) => Effect.Effect<void, GeneratorDomainError | GeneratorIoError, GeneratorFileSystem>;
20
+ /**
21
+ * Composes update with explicit services, typed failures and owned resource lifetime.
22
+ * @param path - Path inside the current project or owned resource.
23
+ * @param transform - Pure transformation applied atomically to the latest planned source.
24
+ * @returns Completion after the transform is applied atomically to the latest planned source.
25
+ */
26
+ readonly updateEffect: (path: string, transform: (source: string) => string) => Effect.Effect<void, GeneratorDomainError | GeneratorIoError, GeneratorFileSystem>;
27
+ /**
28
+ * Composes append Line with explicit services, typed failures and owned resource lifetime.
29
+ * @param path - Path inside the current project or owned resource.
30
+ * @param line - Complete owned line to append.
31
+ * @param present - Pure predicate detecting an already authored line.
32
+ * @returns Completion after a missing line is added without replacing an existing matching declaration.
33
+ */
34
+ readonly appendLineEffect: (path: string, line: string, present: (source: string) => boolean) => Effect.Effect<void, GeneratorDomainError | GeneratorIoError, GeneratorFileSystem>;
35
+ /**
36
+ * Plans an environment example only when the declaration is absent.
37
+ * @param name - Environment variable name.
38
+ * @param value - Example value used only for a new declaration.
39
+ * @returns An Effect planning the env example through explicit filesystem authority.
40
+ */
41
+ readonly envExampleEffect: (name: string, value?: string) => Effect.Effect<void, GeneratorDomainError | GeneratorIoError, GeneratorFileSystem>;
42
+ /**
43
+ * Composes gitignore with explicit services, typed failures and owned resource lifetime.
44
+ * @param pattern - Declaration-owned glob or ignore pattern.
45
+ * @returns Completion after the missing ignore pattern is added to planned .gitignore source.
46
+ */
47
+ readonly gitignoreEffect: (pattern: string) => Effect.Effect<void, GeneratorDomainError | GeneratorIoError, GeneratorFileSystem>;
48
+ }
49
+ //# sourceMappingURL=plan-builder-files.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-builder-files.types.d.ts","sourceRoot":"","sources":["../src/plan-builder-files.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,gFAAgF;AAChF,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,CACnB,IAAI,EAAE,MAAM,KACT,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IAClE;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,CACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IACvF;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,CACrB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,KAClC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IACvF;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,CACzB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,KACjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IACvF;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,EAAE,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;IACvF;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,CACxB,OAAO,EAAE,MAAM,KACZ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;CACxF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plan-builder-files.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-builder-files.types.js","sourceRoot":"","sources":["../src/plan-builder-files.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { Effect } from "effect";
2
+ import type { PlanBuilderEffects } from "./plan-builder-effects.js";
3
+ import type { PlanBuilderState } from "./plan-builder.types.js";
4
+ /**
5
+ * Finishes dependencies, scripts and portable patches before transaction mutation begins.
6
+ * @param builder - Request owner whose state remains authoritative in its Ref.
7
+ * @param state - Read-only snapshot passed by the private request-state owner.
8
+ * @returns Newly introduced concrete dependencies; patch-only repair remains file operations.
9
+ */
10
+ export declare const finalizeManifestEffect: (builder: PlanBuilderEffects, state: PlanBuilderState) => Effect.Effect<Record<string, string>, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, import("./generator-filesystem.js").GeneratorFileSystem>;
11
+ //# sourceMappingURL=plan-builder-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-builder-manifest.d.ts","sourceRoot":"","sources":["../src/plan-builder-manifest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,mQAiDlC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { observeExecution } from "@relkit/contracts/operation";
2
+ import { Effect } from "effect";
3
+ import { ADD_FAILURE_CODES, AddScaffoldError } from "./add-types.js";
4
+ import { domainError, domainTry } from "./generator-errors.js";
5
+ import { mergeScaffoldManifest, scaffoldManifestDependencies } from "./plan-manifest.js";
6
+ import { planDependencyPatchEffect, readDrizzlePatchEffect } from "./dependency-patches.js";
7
+ import { resolveProjectDependenciesEffect } from "./project-catalog.js";
8
+ /**
9
+ * Finishes dependencies, scripts and portable patches before transaction mutation begins.
10
+ * @param builder - Request owner whose state remains authoritative in its Ref.
11
+ * @param state - Read-only snapshot passed by the private request-state owner.
12
+ * @returns Newly introduced concrete dependencies; patch-only repair remains file operations.
13
+ */
14
+ export const finalizeManifestEffect = Effect.fn("PlanBuilder.finalizeManifest")(function* (builder, state) {
15
+ const source = yield* builder.readEffect("package.json");
16
+ const declared = yield* domainTry(() => scaffoldManifestDependencies(source));
17
+ const requested = Object.fromEntries([...state.dependencies].flatMap((name) => declared[name] === undefined ? [] : [[name, declared[name]]]));
18
+ const resolved = yield* resolveProjectDependenciesEffect(builder.discovery.projectRoot, requested);
19
+ const result = yield* domainTry(() => state.dependencies.size === 0 && state.scripts.size === 0
20
+ ? { content: source, added: {} }
21
+ : mergeScaffoldManifest(source, state.dependencies, state.scripts, resolved));
22
+ let content = result.content;
23
+ const dependencies = new Set([...state.dependencies, ...Object.keys(declared)]);
24
+ if (["drizzle-orm", "@relkit/drizzle", "@relkit/testing", "@relkit/effect-mq"].some((name) => dependencies.has(name))) {
25
+ const patch = yield* readDrizzlePatchEffect();
26
+ const planned = state.files.get(patch.path);
27
+ if (planned !== undefined && planned.content !== patch.content)
28
+ return yield* Effect.fail(domainError(new AddScaffoldError(ADD_FAILURE_CODES.collision, `${patch.path} already contains a different planned dependency patch.`)));
29
+ const patched = yield* planDependencyPatchEffect(builder.discovery.projectRoot, content, patch);
30
+ content = patched.content;
31
+ if (patched.operation !== undefined && planned === undefined)
32
+ yield* builder.createEffect(patched.operation.path, patched.operation.content);
33
+ }
34
+ yield* builder.updateEffect("package.json", () => content);
35
+ return result.added;
36
+ }, (effect) => observeExecution("generator", "planning.finalizeManifest", effect));
37
+ //# sourceMappingURL=plan-builder-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-builder-manifest.js","sourceRoot":"","sources":["../src/plan-builder-manifest.ts"],"names":[],"mappings":"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"}