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
package/dist/generate.js CHANGED
@@ -1,105 +1,63 @@
1
- import { mkdir, mkdtemp, rename } from "node:fs/promises";
2
- import { basename, dirname, join } from "node:path";
3
- import { validateCreateOptions } from "./validate.js";
4
- import { injectGenerateFailure, generationError, resolveRelkitExecutable, runProjectStep, throwIfAborted, } from "./generate-process.js";
5
- import { copyTemplate, cleanupStagedProject, customizeProject, listProjectFiles, requireFiles, requireTemplate, } from "./generate-files.js";
6
- import { createGenerateNextSteps } from "./generate-output.js";
7
- import { addToStagedProject } from "./create-additions.js";
8
- import { resolveTemplateRoot } from "./template-root.js";
9
- import {} from "./generate-types.js";
10
- const DIRECTORY_MODE = 0o755;
11
- /** Copies, validates, checks, and atomically publishes one generated project. */
1
+ import { Context, Effect, Layer } from "effect";
2
+ import { observeExecution } from "@relkit/contracts/operation";
3
+ import { generationError, throwIfAborted } from "./generate-process.js";
4
+ import { GenerateProjectError, } from "./generate-types.js";
5
+ import { GeneratorFileSystem } from "./generator-filesystem.js";
6
+ import { GeneratorProcess, generatorProcessLayer } from "./generator-process.js";
7
+ import { GeneratorPaths } from "./generator-paths.js";
8
+ import { GeneratorPrompt, generatorPromptLayer } from "./generator-prompt.js";
9
+ import { createClackPromptDriver } from "./prompt-driver.js";
10
+ import { transferCleanupFailures } from "./generator-cleanup.js";
11
+ import { stageCleanupFor } from "./generate-stage-cleanup.js";
12
+ import { runGeneratorPromise } from "./generator-runtime.js";
13
+ /** Owns one complete creation workflow, including consent and atomic publication. */
14
+ export class ProjectGeneration extends Context.Service()("create-relkit/ProjectGeneration") {
15
+ }
16
+ /**
17
+ * Generation captures explicit filesystem, path, process and prompt authority at acquisition.
18
+ * @returns A ProjectGeneration Layer requiring filesystem, paths, process and prompt services.
19
+ */
20
+ export const projectGenerationLive = Layer.effect(ProjectGeneration, Effect.gen(function* () {
21
+ const fs = yield* GeneratorFileSystem;
22
+ const process = yield* GeneratorProcess;
23
+ const paths = yield* GeneratorPaths;
24
+ const prompt = yield* GeneratorPrompt;
25
+ return ProjectGeneration.of({
26
+ generate: Effect.fn("ProjectGeneration.generate")((options, context) => observeExecution("generator", "generation.generate", generateEffect(options, context).pipe(Effect.provideService(GeneratorFileSystem, fs), Effect.provideService(GeneratorProcess, process), Effect.provideService(GeneratorPaths, paths), Effect.provideService(GeneratorPrompt, prompt)), () => ({ projects: 1 }))),
27
+ });
28
+ }));
29
+ /**
30
+ * Generates a project through explicitly acquired creation authority.
31
+ * @param options - Normalized creation flags.
32
+ * @param context - Existing template, progress and executable settings.
33
+ * @returns A lazy scoped workflow that settles owned resources before its result.
34
+ */
35
+ export const generateProjectEffect = Effect.fn("ProjectGeneration.create")(function* (options, context = {}) {
36
+ return yield* (yield* ProjectGeneration).generate(options, context);
37
+ }, (effect) => observeExecution("generator", "generation.create", effect));
38
+ /**
39
+ * Preserves the public Promise API, flags, errors and generated result shape.
40
+ * @param options - Normalized creation flags.
41
+ * @param context - Existing runner, prompt and cancellation settings.
42
+ * @returns The generated result after atomic publication and scoped cleanup.
43
+ */
12
44
  export async function generateProject(options, context = {}) {
13
- let validated;
14
- try {
15
- validated = validateCreateOptions(options, context.cwd === undefined ? {} : { cwd: context.cwd });
16
- }
17
- catch (error) {
18
- throw generationError(error, "RELKIT_CREATE_VALIDATION_FAILED");
19
- }
20
45
  throwIfAborted(context.signal);
21
- context.onProgress?.(`Creating a new RELKIT app in ${validated.destination}.`);
22
- const templateRoot = resolveTemplateRoot(context);
23
- const template = join(templateRoot, options.jobs === undefined ? options.template : "tasks");
24
- let stage;
25
- let published = false;
46
+ let program = generateProjectEffect(options, context).pipe(Effect.provide(projectGenerationLive), Effect.provide(generatorPromptLayer(context.promptDriver ?? createClackPromptDriver("RELKIT_CREATE_CANCELLED"))));
47
+ if (context.commandRunner !== undefined)
48
+ program = program.pipe(Effect.provide(generatorProcessLayer(context.commandRunner)));
26
49
  try {
27
- await requireTemplate(template);
28
- await mkdir(dirname(validated.destination), { recursive: true, mode: DIRECTORY_MODE });
29
- const staged = await mkdtemp(join(dirname(validated.destination), `.${basename(validated.destination)}-relkit-`));
30
- stage = staged;
31
- injectGenerateFailure(context, "copy");
32
- await copyTemplate(template, staged);
33
- injectGenerateFailure(context, "substitute");
34
- await customizeProject(staged, options);
35
- await requireFiles(staged, [
36
- "package.json",
37
- "relkit.config.ts",
38
- "src/platform/env.ts",
39
- ".env.example",
40
- ".gitignore",
41
- ]);
42
- const stagedAdditions = await addToStagedProject(staged, context);
43
- const additions = stagedAdditions.results;
44
- if (options.install) {
45
- context.onProgress?.("Installing dependencies...");
46
- await runProjectStep(context, [context.bunExecutable ?? process.execPath, "install"], staged, "install", "install");
47
- }
48
- const git = context.gitExecutable ?? (context.commandRunner ? "git" : Bun.which("git"));
49
- const gitInitialized = options.git && git !== null;
50
- if (gitInitialized) {
51
- context.onProgress?.("Initializing Git repository...");
52
- await runProjectStep(context, [git, "init"], staged, "git", "git");
53
- }
54
- if (options.install) {
55
- const relkit = await resolveRelkitExecutable(context, staged);
56
- const deploymentCheck = options.cloud === "none" || options.deploy === "none";
57
- context.onProgress?.("Checking generated project...");
58
- await runProjectStep(context, [
59
- relkit,
60
- "doctor",
61
- "--project-root",
62
- staged,
63
- "--no-ports",
64
- ...(deploymentCheck ? ["--no-pulumi"] : []),
65
- ], staged, "doctor", "doctor");
66
- await runProjectStep(context, [relkit, "check", "--project-root", staged], staged, "check", "check");
67
- }
68
- throwIfAborted(context.signal);
69
- injectGenerateFailure(context, "rename");
70
- await rename(staged, validated.destination);
71
- published = true;
72
- return Object.freeze({
73
- ok: true,
74
- command: "create",
75
- name: options.name,
76
- template: options.template,
77
- cloud: options.cloud,
78
- deploy: options.deploy,
79
- destination: validated.destination,
80
- files: Object.freeze(await listProjectFiles(validated.destination)),
81
- installed: options.install,
82
- gitInitialized,
83
- additions,
84
- warnings: Object.freeze([
85
- ...additions.flatMap((addition) => addition.warnings),
86
- ...(!options.install
87
- ? [
88
- {
89
- code: "validation-skipped",
90
- message: "Install dependencies, then run bun run check.",
91
- },
92
- ]
93
- : []),
94
- ]),
95
- nextSteps: createGenerateNextSteps(options, validated.destination, context.cwd),
96
- });
50
+ return await runGeneratorPromise(program, context.signal);
97
51
  }
98
52
  catch (error) {
99
- const cleanup = published
100
- ? undefined
101
- : await cleanupStagedProject(stage, validated.destination);
102
- throw generationError(error, "RELKIT_CREATE_FAILED", cleanup);
53
+ const cause = context.signal?.aborted
54
+ ? (context.signal.reason ??
55
+ new GenerateProjectError("RELKIT_INTERRUPTED", "Generation was interrupted."))
56
+ : error;
57
+ const cleanup = stageCleanupFor(context.signal?.aborted ? context.signal : error);
58
+ const failure = generationError(cause, "RELKIT_CREATE_FAILED", cleanup);
59
+ throw transferCleanupFailures(context.signal, transferCleanupFailures(error, failure));
103
60
  }
104
61
  }
62
+ import { generateEffect } from "./generate-workflow.js";
105
63
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Effect } from "effect";
2
+ import type { CreateOptions } from "./options.js";
3
+ import type { GenerateProjectContext, GenerateProjectResult } from "./generate-types.js";
4
+ import type { GeneratorDomainError, GeneratorIoError, GeneratorProcessError, GeneratorPromptError } from "./generator-errors.js";
5
+ /** Creation owner, acquired with explicit I/O and interactive authority. */
6
+ export interface ProjectGenerationService {
7
+ /**
8
+ * Creates and publishes one project after optional interactive consent.
9
+ * @param options - Explicit request options or declared prompt choices.
10
+ * @param context - Caller-owned settings and cancellation.
11
+ * @returns A scoped Effect returning the generated result after owned processes and cleanup settle.
12
+ */
13
+ readonly generate: (options: CreateOptions, context: GenerateProjectContext) => Effect.Effect<GenerateProjectResult, GeneratorDomainError | GeneratorIoError | GeneratorProcessError | GeneratorPromptError>;
14
+ }
15
+ //# sourceMappingURL=generate.service.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.service.types.d.ts","sourceRoot":"","sources":["../src/generate.service.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACzF,OAAO,KAAK,EACV,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAE/B,4EAA4E;AAC5E,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,CACjB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,sBAAsB,KAC5B,MAAM,CAAC,MAAM,CAChB,qBAAqB,EACrB,oBAAoB,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,oBAAoB,CACvF,CAAC;CACH"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generate.service.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.service.types.js","sourceRoot":"","sources":["../src/generate.service.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { Effect, Exit } from "effect";
2
+ import type { GeneratorCleanupFailure } from "./generator-cleanup.types.js";
3
+ export type { GeneratorCleanupFailure } from "./generator-cleanup.types.js";
4
+ /**
5
+ * Reads secondary cleanup evidence without changing error identity or enumerable JSON contracts.
6
+ * @param value - Original public failure or completed result.
7
+ * @returns Immutable resource-release diagnostics, empty when cleanup succeeded.
8
+ */
9
+ export declare function generatorCleanupFailures(value: unknown): readonly GeneratorCleanupFailure[];
10
+ /**
11
+ * Attaches bounded release evidence to the original scoped exit's public owner.
12
+ * @param exit - Authoritative exit whose failure must not be replaced by release failure.
13
+ * @param operation - Fixed resource-release operation.
14
+ * @param cause - Original cleanup rejection, available for explicit diagnostic inspection.
15
+ * @returns Best-effort bounded warning after evidence has been retained.
16
+ * @param ownerOverride - Optional public owner used to retain interruption cleanup evidence.
17
+ */
18
+ export declare function recordCleanupFailure(exit: Exit.Exit<unknown, unknown>, operation: GeneratorCleanupFailure["operation"], cause: unknown, ownerOverride?: unknown): Effect.Effect<void>;
19
+ /**
20
+ * Retains release diagnostics when an existing compatibility contract translates a native failure.
21
+ * @param original - Original scoped failure.
22
+ * @param translated - Existing public error constructor chosen by the edge adapter.
23
+ * @returns The translated error with the original release evidence.
24
+ * @typeParam A - Public translated owner type preserved by the returned object.
25
+ */
26
+ export declare function transferCleanupFailures<A extends object>(original: unknown, translated: A): A;
27
+ //# sourceMappingURL=generator-cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator-cleanup.d.ts","sourceRoot":"","sources":["../src/generator-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,YAAY,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAK5E;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,uBAAuB,EAAE,CAG3F;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EACjC,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,EAC/C,KAAK,EAAE,OAAO,EACd,aAAa,CAAC,EAAE,OAAO,GACtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAsBrB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAQ7F"}
@@ -0,0 +1,64 @@
1
+ import { Cause, Effect, Exit } from "effect";
2
+ import { publicFailure } from "./generator-errors.js";
3
+ // Weak ownership retains diagnostics without extending the lifetime of project results or errors.
4
+ const failures = new WeakMap();
5
+ /**
6
+ * Reads secondary cleanup evidence without changing error identity or enumerable JSON contracts.
7
+ * @param value - Original public failure or completed result.
8
+ * @returns Immutable resource-release diagnostics, empty when cleanup succeeded.
9
+ */
10
+ export function generatorCleanupFailures(value) {
11
+ const owner = publicFailure(value);
12
+ return typeof owner === "object" && owner !== null ? (failures.get(owner) ?? []) : [];
13
+ }
14
+ /**
15
+ * Attaches bounded release evidence to the original scoped exit's public owner.
16
+ * @param exit - Authoritative exit whose failure must not be replaced by release failure.
17
+ * @param operation - Fixed resource-release operation.
18
+ * @param cause - Original cleanup rejection, available for explicit diagnostic inspection.
19
+ * @returns Best-effort bounded warning after evidence has been retained.
20
+ * @param ownerOverride - Optional public owner used to retain interruption cleanup evidence.
21
+ */
22
+ export function recordCleanupFailure(exit, operation, cause, ownerOverride) {
23
+ return Effect.gen(function* () {
24
+ const owner = publicFailure(ownerOverride ?? (Exit.isFailure(exit) ? Cause.squash(exit.cause) : exit.value));
25
+ if (typeof owner === "object" && owner !== null) {
26
+ const original = publicFailure(cause);
27
+ failures.set(owner, boundedEvidence([
28
+ ...generatorCleanupFailures(owner),
29
+ Object.freeze({ operation, cause: original }),
30
+ ...(owner === original ? [] : generatorCleanupFailures(original)),
31
+ ]));
32
+ }
33
+ yield* Effect.annotateLogs(Effect.logWarning("Generator resource cleanup failed"), {
34
+ domain: "generator",
35
+ operation,
36
+ outcome: "cleanup-failed",
37
+ }).pipe(Effect.catchCause(() => Effect.void));
38
+ });
39
+ }
40
+ /**
41
+ * Retains release diagnostics when an existing compatibility contract translates a native failure.
42
+ * @param original - Original scoped failure.
43
+ * @param translated - Existing public error constructor chosen by the edge adapter.
44
+ * @returns The translated error with the original release evidence.
45
+ * @typeParam A - Public translated owner type preserved by the returned object.
46
+ */
47
+ export function transferCleanupFailures(original, translated) {
48
+ const evidence = generatorCleanupFailures(original);
49
+ if (evidence.length > 0 && original !== translated)
50
+ failures.set(translated, boundedEvidence([...generatorCleanupFailures(translated), ...evidence]));
51
+ return translated;
52
+ }
53
+ /**
54
+ * Keeps the initial release failure and the latest diagnostics under repeated error reuse.
55
+ * @param evidence - Evidence collected for one public owner.
56
+ * @returns At most 128 immutable diagnostics, retaining the first and recent failures.
57
+ */
58
+ function boundedEvidence(evidence) {
59
+ const first = evidence[0];
60
+ return Object.freeze(evidence.length <= 128 || first === undefined
61
+ ? [...evidence]
62
+ : [first, ...evidence.slice(-127)]);
63
+ }
64
+ //# sourceMappingURL=generator-cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator-cleanup.js","sourceRoot":"","sources":["../src/generator-cleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAItD,kGAAkG;AAClG,MAAM,QAAQ,GAAG,IAAI,OAAO,EAA8C,CAAC;AAE3E;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAiC,EACjC,SAA+C,EAC/C,KAAc,EACd,aAAuB;IAEvB,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,KAAK,GAAG,aAAa,CACzB,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAChF,CAAC;QACF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACtC,QAAQ,CAAC,GAAG,CACV,KAAK,EACL,eAAe,CAAC;gBACd,GAAG,wBAAwB,CAAC,KAAK,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;gBAC7C,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;aAClE,CAAC,CACH,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,mCAAmC,CAAC,EAAE;YACjF,MAAM,EAAE,WAAW;YACnB,SAAS;YACT,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAmB,QAAiB,EAAE,UAAa;IACxF,MAAM,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACpD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,KAAK,UAAU;QAChD,QAAQ,CAAC,GAAG,CACV,UAAU,EACV,eAAe,CAAC,CAAC,GAAG,wBAAwB,CAAC,UAAU,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CACxE,CAAC;IACJ,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CACtB,QAA4C;IAE5C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC,MAAM,CAClB,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,KAAK,SAAS;QAC3C,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QACf,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CACrC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /** Secondary resource-release evidence, separated from the authoritative public failure. */
2
+ export interface GeneratorCleanupFailure {
3
+ readonly operation: "temporary-file" | "rollback" | "marker" | "stage" | "process";
4
+ readonly cause: unknown;
5
+ }
6
+ //# sourceMappingURL=generator-cleanup.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator-cleanup.types.d.ts","sourceRoot":"","sources":["../src/generator-cleanup.types.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACnF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generator-cleanup.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator-cleanup.types.js","sourceRoot":"","sources":["../src/generator-cleanup.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ import { Effect, Schema } from "effect";
2
+ declare const GeneratorIoError_base: Schema.Class<GeneratorIoError, Schema.TaggedStruct<"GeneratorIoError", {
3
+ readonly operation: Schema.String;
4
+ readonly cause: Schema.Unknown;
5
+ readonly message: Schema.String;
6
+ }>, import("effect/Cause").YieldableError>;
7
+ /** A failed native filesystem operation, retaining its original diagnostic. */
8
+ export declare class GeneratorIoError extends GeneratorIoError_base {
9
+ }
10
+ declare const GeneratorProcessError_base: Schema.Class<GeneratorProcessError, Schema.TaggedStruct<"GeneratorProcessError", {
11
+ readonly operation: Schema.String;
12
+ readonly cause: Schema.Unknown;
13
+ readonly message: Schema.String;
14
+ }>, import("effect/Cause").YieldableError>;
15
+ /** A failed child-process adapter operation. Command arguments are never telemetry labels. */
16
+ export declare class GeneratorProcessError extends GeneratorProcessError_base {
17
+ }
18
+ declare const GeneratorPromptError_base: Schema.Class<GeneratorPromptError, Schema.TaggedStruct<"GeneratorPromptError", {
19
+ readonly cause: Schema.Unknown;
20
+ readonly message: Schema.String;
21
+ }>, import("effect/Cause").YieldableError>;
22
+ /** A failed or cancelled prompt adapter operation. */
23
+ export declare class GeneratorPromptError extends GeneratorPromptError_base {
24
+ }
25
+ declare const GeneratorDomainError_base: Schema.Class<GeneratorDomainError, Schema.TaggedStruct<"GeneratorDomainError", {
26
+ readonly cause: Schema.Unknown;
27
+ readonly message: Schema.String;
28
+ }>, import("effect/Cause").YieldableError>;
29
+ /** An expected legacy domain failure carried through a typed Effect workflow. */
30
+ export declare class GeneratorDomainError extends GeneratorDomainError_base {
31
+ }
32
+ /**
33
+ * Executes a pure validation boundary without converting downstream defects or interruption.
34
+ * @typeParam A - Validated domain value.
35
+ * @param evaluate - Existing synchronous contract validator.
36
+ * @returns Its value or an identity-preserving typed domain failure.
37
+ */
38
+ export declare function domainTry<A>(evaluate: () => A): Effect.Effect<A, GeneratorDomainError>;
39
+ /**
40
+ * Carries an expected public error through internal domain composition.
41
+ * @param cause - Original public error object.
42
+ * @returns A schema-backed failure retaining the original object.
43
+ */
44
+ export declare function domainError(cause: unknown): GeneratorDomainError;
45
+ /**
46
+ * Restores the original rejection at a public Promise or synchronous adapter.
47
+ * @param error - Internal typed failure or already-public rejection.
48
+ * @returns The unchanged public error or native rejection object.
49
+ */
50
+ export declare function publicFailure(error: unknown): unknown;
51
+ /**
52
+ * Formats diagnostic text without assuming an Error instance.
53
+ * @param cause - Boundary rejection.
54
+ * @returns Existing message text, or the printable rejection value.
55
+ */
56
+ export declare function errorMessage(cause: unknown): string;
57
+ /**
58
+ * Tests an adapter rejection's native errno without an unchecked assertion.
59
+ * @param cause - Boundary rejection.
60
+ * @param code - Expected native errno.
61
+ * @returns Whether the original rejection declares that errno.
62
+ */
63
+ export declare function hasErrno(cause: unknown, code: string): boolean;
64
+ /**
65
+ * Translates only existing synchronous scaffold validators into the typed channel.
66
+ * @typeParam A - Planned value.
67
+ * @typeParam E - Existing typed failure.
68
+ * @typeParam R - Required services, retained unchanged.
69
+ * @param effect - Planning operation containing pure legacy validators.
70
+ * @returns The same operation; unexpected defects and interruption retain their causes.
71
+ */
72
+ export declare function scaffoldErrors<A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E | GeneratorDomainError, R>;
73
+ export {};
74
+ //# sourceMappingURL=generator-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator-errors.d.ts","sourceRoot":"","sources":["../src/generator-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;AAKxC,+EAA+E;AAC/E,qBAAa,gBAAiB,SAAQ,qBAIpC;CAAG;;;;;;AAEL,8FAA8F;AAC9F,qBAAa,qBAAsB,SAAQ,0BAG1C;CAAG;;;;;AAEJ,sDAAsD;AACtD,qBAAa,oBAAqB,SAAQ,yBAGzC;CAAG;;;;;AAEJ,iFAAiF;AACjF,qBAAa,oBAAqB,SAAQ,yBAGzC;CAAG;AAEJ;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAetF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAOrD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAG9D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACpC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,oBAAoB,EAAE,CAAC,CAAC,CAM/C"}
@@ -0,0 +1,89 @@
1
+ import { Effect, Schema } from "effect";
2
+ import { AddScaffoldError } from "./add-types.js";
3
+ import { GenerateProjectError } from "./generate-types.js";
4
+ import { CreateValidationError } from "./validate-errors.js";
5
+ /** A failed native filesystem operation, retaining its original diagnostic. */
6
+ export class GeneratorIoError extends Schema.TaggedError()("GeneratorIoError", {
7
+ operation: Schema.String,
8
+ cause: Schema.Unknown,
9
+ message: Schema.String,
10
+ }) {
11
+ }
12
+ /** A failed child-process adapter operation. Command arguments are never telemetry labels. */
13
+ export class GeneratorProcessError extends Schema.TaggedError()("GeneratorProcessError", { operation: Schema.String, cause: Schema.Unknown, message: Schema.String }) {
14
+ }
15
+ /** A failed or cancelled prompt adapter operation. */
16
+ export class GeneratorPromptError extends Schema.TaggedError()("GeneratorPromptError", { cause: Schema.Unknown, message: Schema.String }) {
17
+ }
18
+ /** An expected legacy domain failure carried through a typed Effect workflow. */
19
+ export class GeneratorDomainError extends Schema.TaggedError()("GeneratorDomainError", { cause: Schema.Unknown, message: Schema.String }) {
20
+ }
21
+ /**
22
+ * Executes a pure validation boundary without converting downstream defects or interruption.
23
+ * @typeParam A - Validated domain value.
24
+ * @param evaluate - Existing synchronous contract validator.
25
+ * @returns Its value or an identity-preserving typed domain failure.
26
+ */
27
+ export function domainTry(evaluate) {
28
+ return Effect.try({ try: evaluate, catch: (cause) => cause }).pipe(Effect.catch((cause) => cause instanceof AddScaffoldError ||
29
+ cause instanceof CreateValidationError ||
30
+ cause instanceof GenerateProjectError ||
31
+ cause instanceof SyntaxError ||
32
+ (cause instanceof Error &&
33
+ "code" in cause &&
34
+ typeof cause.code === "string" &&
35
+ cause.code.startsWith("RELKIT_"))
36
+ ? Effect.fail(domainError(cause))
37
+ : Effect.die(cause)));
38
+ }
39
+ /**
40
+ * Carries an expected public error through internal domain composition.
41
+ * @param cause - Original public error object.
42
+ * @returns A schema-backed failure retaining the original object.
43
+ */
44
+ export function domainError(cause) {
45
+ return new GeneratorDomainError({ cause, message: errorMessage(cause) });
46
+ }
47
+ /**
48
+ * Restores the original rejection at a public Promise or synchronous adapter.
49
+ * @param error - Internal typed failure or already-public rejection.
50
+ * @returns The unchanged public error or native rejection object.
51
+ */
52
+ export function publicFailure(error) {
53
+ return error instanceof GeneratorIoError ||
54
+ error instanceof GeneratorProcessError ||
55
+ error instanceof GeneratorPromptError ||
56
+ error instanceof GeneratorDomainError
57
+ ? publicFailure(error.cause)
58
+ : error;
59
+ }
60
+ /**
61
+ * Formats diagnostic text without assuming an Error instance.
62
+ * @param cause - Boundary rejection.
63
+ * @returns Existing message text, or the printable rejection value.
64
+ */
65
+ export function errorMessage(cause) {
66
+ return cause instanceof Error ? cause.message : String(cause);
67
+ }
68
+ /**
69
+ * Tests an adapter rejection's native errno without an unchecked assertion.
70
+ * @param cause - Boundary rejection.
71
+ * @param code - Expected native errno.
72
+ * @returns Whether the original rejection declares that errno.
73
+ */
74
+ export function hasErrno(cause, code) {
75
+ const original = publicFailure(cause);
76
+ return original instanceof Error && "code" in original && original.code === code;
77
+ }
78
+ /**
79
+ * Translates only existing synchronous scaffold validators into the typed channel.
80
+ * @typeParam A - Planned value.
81
+ * @typeParam E - Existing typed failure.
82
+ * @typeParam R - Required services, retained unchanged.
83
+ * @param effect - Planning operation containing pure legacy validators.
84
+ * @returns The same operation; unexpected defects and interruption retain their causes.
85
+ */
86
+ export function scaffoldErrors(effect) {
87
+ return effect.pipe(Effect.catchDefect((error) => error instanceof AddScaffoldError ? Effect.fail(domainError(error)) : Effect.die(error)));
88
+ }
89
+ //# sourceMappingURL=generator-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator-errors.js","sourceRoot":"","sources":["../src/generator-errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { Context, Layer } from "effect";
2
+ import type { GeneratorFileSystemService } from "./generator-filesystem.types.js";
3
+ declare const GeneratorFileSystem_base: Context.ServiceClass<GeneratorFileSystem, "create-relkit/GeneratorFileSystem", GeneratorFileSystemService>;
4
+ /**
5
+ * Native filesystem authority supplied through live or deterministic test Layers.
6
+ * @remarks Mutating operations are masked until native physical settlement. This boundary
7
+ * prevents a pending write or mkdir from racing scope rollback after interruption.
8
+ * Readers remain interruptible; metadata checks never dereference symlinks.
9
+ * @example
10
+ * ```ts
11
+ * import { Effect } from "effect";
12
+ * import { GeneratorFileSystem, generatorFileSystemLive } from "create-relkit";
13
+ * const inspect = GeneratorFileSystem.use((fs) => fs.metadata("./package.json"));
14
+ * const supplied = inspect.pipe(Effect.provide(generatorFileSystemLive));
15
+ * ```
16
+ */
17
+ export declare class GeneratorFileSystem extends GeneratorFileSystem_base {
18
+ }
19
+ /**
20
+ * Live Node/Bun adapter. Mutating calls settle before scoped transaction cleanup can run.
21
+ * @returns A native GeneratorFileSystem Layer with no external service requirements.
22
+ */
23
+ export declare const generatorFileSystemLive: Layer.Layer<GeneratorFileSystem, never, never>;
24
+ export {};
25
+ //# sourceMappingURL=generator-filesystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator-filesystem.d.ts","sourceRoot":"","sources":["../src/generator-filesystem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGhD,OAAO,KAAK,EAEV,0BAA0B,EAC3B,MAAM,iCAAiC,CAAC;;AAEzC;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAoB,SAAQ,wBAGD;CAAG;AAE3C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,gDA4EnC,CAAC"}
@@ -0,0 +1,68 @@
1
+ import * as fs from "node:fs/promises";
2
+ import { Context, Effect, Layer } from "effect";
3
+ import { observeExecution } from "@relkit/contracts/operation";
4
+ import { GeneratorIoError, errorMessage, hasErrno } from "./generator-errors.js";
5
+ /**
6
+ * Native filesystem authority supplied through live or deterministic test Layers.
7
+ * @remarks Mutating operations are masked until native physical settlement. This boundary
8
+ * prevents a pending write or mkdir from racing scope rollback after interruption.
9
+ * Readers remain interruptible; metadata checks never dereference symlinks.
10
+ * @example
11
+ * ```ts
12
+ * import { Effect } from "effect";
13
+ * import { GeneratorFileSystem, generatorFileSystemLive } from "create-relkit";
14
+ * const inspect = GeneratorFileSystem.use((fs) => fs.metadata("./package.json"));
15
+ * const supplied = inspect.pipe(Effect.provide(generatorFileSystemLive));
16
+ * ```
17
+ */
18
+ export class GeneratorFileSystem extends Context.Service()("create-relkit/GeneratorFileSystem") {
19
+ }
20
+ /**
21
+ * Live Node/Bun adapter. Mutating calls settle before scoped transaction cleanup can run.
22
+ * @returns A native GeneratorFileSystem Layer with no external service requirements.
23
+ */
24
+ export const generatorFileSystemLive = Layer.effect(GeneratorFileSystem, Effect.gen(function* () {
25
+ return GeneratorFileSystem.of({
26
+ readText: Effect.fn("GeneratorFileSystem.readText")((path) => io("readText", (signal) => fs.readFile(path, { encoding: "utf8", signal })), (effect) => observeExecution("generator", "filesystem.readText", effect)),
27
+ readBytes: Effect.fn("GeneratorFileSystem.readBytes")((path) => io("readBytes", (signal) => fs.readFile(path, { signal })), (effect) => observeExecution("generator", "filesystem.readBytes", effect)),
28
+ access: Effect.fn("GeneratorFileSystem.access")((path) => io("access", () => fs.access(path)), (effect) => observeExecution("generator", "filesystem.access", effect)),
29
+ metadata: Effect.fn("GeneratorFileSystem.metadata")((path) => io("metadata", () => fs.lstat(path)).pipe(Effect.map((info) => ({ kind: entryKind(info), mode: info.mode & 0o777 })), Effect.catchIf((error) => hasErrno(error, "ENOENT"), () => Effect.succeed(undefined))), (effect) => observeExecution("generator", "filesystem.metadata", effect)),
30
+ entries: Effect.fn("GeneratorFileSystem.entries")((path) => io("entries", () => fs.readdir(path, { withFileTypes: true })).pipe(Effect.map((entries) => entries.map((entry) => ({ name: entry.name, kind: entryKind(entry) })))), (effect) => observeExecution("generator", "filesystem.entries", effect)),
31
+ write: Effect.fn("GeneratorFileSystem.write")((path, content, options = {}) => io("write", () => fs.writeFile(path, content, options)).pipe(Effect.uninterruptible), (effect) => observeExecution("generator", "filesystem.write", effect)),
32
+ mkdir: Effect.fn("GeneratorFileSystem.mkdir")((path, options = {}) => io("mkdir", () => fs.mkdir(path, options)).pipe(Effect.asVoid, Effect.uninterruptible), (effect) => observeExecution("generator", "filesystem.mkdir", effect)),
33
+ temporaryDirectory: Effect.fn("GeneratorFileSystem.temporaryDirectory")((prefix) => io("temporaryDirectory", () => fs.mkdtemp(prefix)).pipe(Effect.uninterruptible), (effect) => observeExecution("generator", "filesystem.temporaryDirectory", effect)),
34
+ rename: Effect.fn("GeneratorFileSystem.rename")((from, to) => io("rename", () => fs.rename(from, to)).pipe(Effect.uninterruptible), (effect) => observeExecution("generator", "filesystem.rename", effect)),
35
+ remove: Effect.fn("GeneratorFileSystem.remove")((path, options = {}) => io("remove", () => fs.rm(path, options)).pipe(Effect.uninterruptible), (effect) => observeExecution("generator", "filesystem.remove", effect)),
36
+ removeDirectory: Effect.fn("GeneratorFileSystem.removeDirectory")((path) => io("removeDirectory", () => fs.rmdir(path)).pipe(Effect.uninterruptible), (effect) => observeExecution("generator", "filesystem.removeDirectory", effect)),
37
+ chmod: Effect.fn("GeneratorFileSystem.chmod")((path, mode) => io("chmod", () => fs.chmod(path, mode)).pipe(Effect.uninterruptible), (effect) => observeExecution("generator", "filesystem.chmod", effect)),
38
+ glob: Effect.fn("GeneratorFileSystem.glob")((root, pattern) => io("glob", () => Array.fromAsync(new Bun.Glob(pattern).scan({ cwd: root, onlyFiles: true }))).pipe(Effect.map((paths) => paths.sort())), (effect) => observeExecution("generator", "filesystem.glob", effect)),
39
+ });
40
+ }));
41
+ /**
42
+ * Adapts one native operation at the authority boundary.
43
+ * @typeParam A - Native result.
44
+ * @param operation - Fixed filesystem operation label.
45
+ * @param execute - Native call; cancellable readers receive the fiber's AbortSignal.
46
+ * @returns An observed typed filesystem operation.
47
+ */
48
+ function io(operation, execute) {
49
+ return Effect.tryPromise({
50
+ try: execute,
51
+ catch: (cause) => new GeneratorIoError({ operation, cause, message: errorMessage(cause) }),
52
+ });
53
+ }
54
+ /**
55
+ * Classifies native entries without dereferencing a symlink.
56
+ * @param entry - Native lstat or directory entry.
57
+ * @returns The generator's bounded entry kind.
58
+ */
59
+ function entryKind(entry) {
60
+ return entry.isSymbolicLink()
61
+ ? "symlink"
62
+ : entry.isDirectory()
63
+ ? "directory"
64
+ : entry.isFile()
65
+ ? "file"
66
+ : "other";
67
+ }
68
+ //# sourceMappingURL=generator-filesystem.js.map