create-relkit 0.7.2 → 0.7.6

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 (275) hide show
  1. package/dist/create-capabilities.d.ts +34 -0
  2. package/dist/create-capabilities.d.ts.map +1 -0
  3. package/dist/create-capabilities.js +137 -0
  4. package/dist/create-capabilities.js.map +1 -0
  5. package/dist/create-capabilities.types.d.ts +55 -0
  6. package/dist/create-capabilities.types.d.ts.map +1 -0
  7. package/dist/create-capabilities.types.js +2 -0
  8. package/dist/create-capabilities.types.js.map +1 -0
  9. package/dist/create-resolver.d.ts.map +1 -1
  10. package/dist/create-resolver.js +28 -6
  11. package/dist/create-resolver.js.map +1 -1
  12. package/dist/domain-artifact.d.ts.map +1 -1
  13. package/dist/domain-artifact.js +11 -3
  14. package/dist/domain-artifact.js.map +1 -1
  15. package/dist/domain-planning.d.ts +5 -0
  16. package/dist/domain-planning.d.ts.map +1 -1
  17. package/dist/domain-planning.js +25 -16
  18. package/dist/domain-planning.js.map +1 -1
  19. package/dist/generate-deployment-manifest.d.ts +10 -0
  20. package/dist/generate-deployment-manifest.d.ts.map +1 -0
  21. package/dist/generate-deployment-manifest.js +56 -0
  22. package/dist/generate-deployment-manifest.js.map +1 -0
  23. package/dist/generate-deployment.d.ts +2 -3
  24. package/dist/generate-deployment.d.ts.map +1 -1
  25. package/dist/generate-deployment.js +6 -47
  26. package/dist/generate-deployment.js.map +1 -1
  27. package/dist/generate-examples.d.ts +11 -0
  28. package/dist/generate-examples.d.ts.map +1 -0
  29. package/dist/generate-examples.js +28 -0
  30. package/dist/generate-examples.js.map +1 -0
  31. package/dist/generate-files-utilities.d.ts +1 -8
  32. package/dist/generate-files-utilities.d.ts.map +1 -1
  33. package/dist/generate-files-utilities.js +5 -19
  34. package/dist/generate-files-utilities.js.map +1 -1
  35. package/dist/generate-output.d.ts +2 -1
  36. package/dist/generate-output.d.ts.map +1 -1
  37. package/dist/generate-output.js +19 -37
  38. package/dist/generate-output.js.map +1 -1
  39. package/dist/generate-output.schemas.d.ts +34 -0
  40. package/dist/generate-output.schemas.d.ts.map +1 -0
  41. package/dist/generate-output.schemas.js +33 -0
  42. package/dist/generate-output.schemas.js.map +1 -0
  43. package/dist/generate-output.types.d.ts +2 -0
  44. package/dist/generate-output.types.d.ts.map +1 -1
  45. package/dist/generate-preparation.d.ts +26 -0
  46. package/dist/generate-preparation.d.ts.map +1 -0
  47. package/dist/generate-preparation.js +83 -0
  48. package/dist/generate-preparation.js.map +1 -0
  49. package/dist/generate-result.d.ts +34 -0
  50. package/dist/generate-result.d.ts.map +1 -0
  51. package/dist/generate-result.js +41 -0
  52. package/dist/generate-result.js.map +1 -0
  53. package/dist/generate-stage.d.ts +21 -0
  54. package/dist/generate-stage.d.ts.map +1 -0
  55. package/dist/generate-stage.js +52 -0
  56. package/dist/generate-stage.js.map +1 -0
  57. package/dist/generate-stage.types.d.ts +11 -0
  58. package/dist/generate-stage.types.d.ts.map +1 -0
  59. package/dist/generate-stage.types.js +2 -0
  60. package/dist/generate-stage.types.js.map +1 -0
  61. package/dist/generate-workflow.d.ts +10 -7
  62. package/dist/generate-workflow.d.ts.map +1 -1
  63. package/dist/generate-workflow.js +22 -101
  64. package/dist/generate-workflow.js.map +1 -1
  65. package/dist/index.d.ts +1 -0
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +1 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/project-discovery-artifacts.d.ts +15 -0
  70. package/dist/project-discovery-artifacts.d.ts.map +1 -0
  71. package/dist/project-discovery-artifacts.js +107 -0
  72. package/dist/project-discovery-artifacts.js.map +1 -0
  73. package/dist/project-discovery-artifacts.types.d.ts +22 -0
  74. package/dist/project-discovery-artifacts.types.d.ts.map +1 -0
  75. package/dist/project-discovery-artifacts.types.js +2 -0
  76. package/dist/project-discovery-artifacts.types.js.map +1 -0
  77. package/dist/project-discovery-facts.d.ts +8 -9
  78. package/dist/project-discovery-facts.d.ts.map +1 -1
  79. package/dist/project-discovery-facts.js +29 -135
  80. package/dist/project-discovery-facts.js.map +1 -1
  81. package/dist/project-discovery-members.d.ts +16 -0
  82. package/dist/project-discovery-members.d.ts.map +1 -0
  83. package/dist/project-discovery-members.js +57 -0
  84. package/dist/project-discovery-members.js.map +1 -0
  85. package/dist/project-discovery-types.d.ts +8 -0
  86. package/dist/project-discovery-types.d.ts.map +1 -1
  87. package/dist/render-auth-database.d.ts +33 -0
  88. package/dist/render-auth-database.d.ts.map +1 -0
  89. package/dist/render-auth-database.js +69 -0
  90. package/dist/render-auth-database.js.map +1 -0
  91. package/dist/render-auth-sources.d.ts +8 -2
  92. package/dist/render-auth-sources.d.ts.map +1 -1
  93. package/dist/render-auth-sources.js +9 -3
  94. package/dist/render-auth-sources.js.map +1 -1
  95. package/dist/render-auth.d.ts +14 -11
  96. package/dist/render-auth.d.ts.map +1 -1
  97. package/dist/render-auth.js +41 -108
  98. package/dist/render-auth.js.map +1 -1
  99. package/dist/render-database-sources.d.ts +7 -1
  100. package/dist/render-database-sources.d.ts.map +1 -1
  101. package/dist/render-database-sources.js +3 -2
  102. package/dist/render-database-sources.js.map +1 -1
  103. package/dist/render-database.d.ts +7 -10
  104. package/dist/render-database.d.ts.map +1 -1
  105. package/dist/render-database.js +12 -4
  106. package/dist/render-database.js.map +1 -1
  107. package/dist/render-database.types.d.ts +15 -0
  108. package/dist/render-database.types.d.ts.map +1 -0
  109. package/dist/render-database.types.js +2 -0
  110. package/dist/render-database.types.js.map +1 -0
  111. package/dist/render-route-sources.d.ts +3 -1
  112. package/dist/render-route-sources.d.ts.map +1 -1
  113. package/dist/render-route-sources.js +4 -2
  114. package/dist/render-route-sources.js.map +1 -1
  115. package/dist/render-routes.d.ts +1 -0
  116. package/dist/render-routes.d.ts.map +1 -1
  117. package/dist/render-routes.js +2 -1
  118. package/dist/render-routes.js.map +1 -1
  119. package/dist/render-service-members.d.ts +32 -0
  120. package/dist/render-service-members.d.ts.map +1 -0
  121. package/dist/render-service-members.js +61 -0
  122. package/dist/render-service-members.js.map +1 -0
  123. package/dist/render-service-requests.d.ts +35 -0
  124. package/dist/render-service-requests.d.ts.map +1 -0
  125. package/dist/render-service-requests.js +62 -0
  126. package/dist/render-service-requests.js.map +1 -0
  127. package/dist/render-service-support.d.ts +37 -0
  128. package/dist/render-service-support.d.ts.map +1 -0
  129. package/dist/render-service-support.js +74 -0
  130. package/dist/render-service-support.js.map +1 -0
  131. package/dist/render-service.d.ts +16 -13
  132. package/dist/render-service.d.ts.map +1 -1
  133. package/dist/render-service.js +33 -149
  134. package/dist/render-service.js.map +1 -1
  135. package/dist/render-service.types.d.ts +13 -0
  136. package/dist/render-service.types.d.ts.map +1 -0
  137. package/dist/render-service.types.js +2 -0
  138. package/dist/render-service.types.js.map +1 -0
  139. package/dist/scaffold-layout.d.ts +10 -0
  140. package/dist/scaffold-layout.d.ts.map +1 -0
  141. package/dist/scaffold-layout.js +29 -0
  142. package/dist/scaffold-layout.js.map +1 -0
  143. package/dist/templates/default/README.md +1 -1
  144. package/dist/templates/default/v1/agent/.agents/skills/relkit/SKILL.md +48 -0
  145. package/dist/templates/default/v1/agent/.agents/skills/relkit/references/agent-apis.md +59 -0
  146. package/dist/templates/default/v1/agent/.agents/skills/relkit/references/cli.md +63 -0
  147. package/dist/templates/default/v1/agent/.agents/skills/relkit/references/config-environments.md +96 -0
  148. package/dist/templates/default/v1/agent/.agents/skills/relkit/references/data-apis.md +74 -0
  149. package/dist/templates/default/v1/agent/.agents/skills/relkit/references/domain-apis.md +92 -0
  150. package/dist/templates/default/v1/agent/.agents/skills/relkit/references/http-apis.md +70 -0
  151. package/dist/templates/default/v1/agent/.agents/skills/relkit/references/jobs-apis.md +49 -0
  152. package/dist/templates/default/v1/agent/.agents/skills/relkit/references/layout-migration.md +35 -0
  153. package/dist/templates/default/v1/agent/.agents/skills/relkit/references/observability-apis.md +53 -0
  154. package/dist/templates/default/v1/agent/.agents/skills/relkit/references/realtime-apis.md +98 -0
  155. package/dist/templates/default/v1/agent/.agents/skills/relkit/references/streaming-apis.md +75 -0
  156. package/dist/templates/default/v1/agent/.agents/skills/relkit/references/testing-apis.md +71 -0
  157. package/dist/templates/default/v1/agent/README.md +9 -0
  158. package/dist/templates/default/v1/agent/package.json +5 -4
  159. package/dist/templates/default/v1/agent/src/routes/hello/route.ts +2 -1
  160. package/dist/templates/default/v1/agent/src/{hello → services/hello}/agents/assistant.agent.ts +3 -2
  161. package/dist/templates/default/v1/agent/src/{hello → services/hello}/agents/review.agent.ts +1 -0
  162. package/dist/templates/default/v1/agent/src/{hello → services/hello}/functions/hello.function.ts +7 -0
  163. package/dist/templates/default/v1/agent/src/services/hello/service.ts +5 -0
  164. package/dist/templates/default/v1/agent/src/{hello → services/hello}/tools/lookup.tool.ts +2 -1
  165. package/dist/templates/default/v1/agent/tests/fixtures/lookup.tool.ts +2 -1
  166. package/dist/templates/default/v1/agent/tests/fixtures/mcp-options.ts +2 -1
  167. package/dist/templates/default/v1/agent/tests/unit/assistant.agent.test.ts +3 -2
  168. package/dist/templates/default/v1/agent/tests/unit/hello.function.test.ts +2 -1
  169. package/dist/templates/default/v1/agent/tests/unit/lookup.tool.test.ts +2 -1
  170. package/dist/templates/default/v1/agent/tests/unit/review.agent.test.ts +2 -1
  171. package/dist/templates/default/v1/agent/tsconfig.json +1 -0
  172. package/dist/templates/default/v1/api/.agents/skills/relkit/SKILL.md +48 -0
  173. package/dist/templates/default/v1/api/.agents/skills/relkit/references/agent-apis.md +59 -0
  174. package/dist/templates/default/v1/api/.agents/skills/relkit/references/cli.md +63 -0
  175. package/dist/templates/default/v1/api/.agents/skills/relkit/references/config-environments.md +96 -0
  176. package/dist/templates/default/v1/api/.agents/skills/relkit/references/data-apis.md +74 -0
  177. package/dist/templates/default/v1/api/.agents/skills/relkit/references/domain-apis.md +92 -0
  178. package/dist/templates/default/v1/api/.agents/skills/relkit/references/http-apis.md +70 -0
  179. package/dist/templates/default/v1/api/.agents/skills/relkit/references/jobs-apis.md +49 -0
  180. package/dist/templates/default/v1/api/.agents/skills/relkit/references/layout-migration.md +35 -0
  181. package/dist/templates/default/v1/api/.agents/skills/relkit/references/observability-apis.md +53 -0
  182. package/dist/templates/default/v1/api/.agents/skills/relkit/references/realtime-apis.md +98 -0
  183. package/dist/templates/default/v1/api/.agents/skills/relkit/references/streaming-apis.md +75 -0
  184. package/dist/templates/default/v1/api/.agents/skills/relkit/references/testing-apis.md +71 -0
  185. package/dist/templates/default/v1/api/README.md +10 -0
  186. package/dist/templates/default/v1/api/package.json +4 -3
  187. package/dist/templates/default/v1/api/src/routes/echo/route.ts +2 -1
  188. package/dist/templates/default/v1/api/src/routes/hello/route.ts +2 -1
  189. package/dist/templates/default/v1/api/src/routes/orders/route.ts +2 -1
  190. package/dist/templates/default/v1/api/src/{echo → services/echo}/functions/echo.function.ts +1 -0
  191. package/dist/templates/default/v1/api/src/services/echo/service.ts +5 -0
  192. package/dist/templates/default/v1/api/src/{hello → services/hello}/functions/hello.function.ts +7 -0
  193. package/dist/templates/default/v1/api/src/services/hello/service.ts +5 -0
  194. package/dist/templates/default/v1/api/src/{orders → services/orders}/functions/create-order.function.ts +2 -1
  195. package/dist/templates/default/v1/api/src/{orders → services/orders}/functions/price-order.function.ts +1 -0
  196. package/dist/templates/default/v1/api/src/services/orders/service.ts +8 -0
  197. package/dist/templates/default/v1/api/tests/unit/echo.function.test.ts +2 -1
  198. package/dist/templates/default/v1/api/tests/unit/hello.function.test.ts +2 -1
  199. package/dist/templates/default/v1/api/tests/unit/orders.function.test.ts +2 -1
  200. package/dist/templates/default/v1/api/tsconfig.json +1 -0
  201. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/SKILL.md +48 -0
  202. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/agent-apis.md +59 -0
  203. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/cli.md +63 -0
  204. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/config-environments.md +96 -0
  205. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/data-apis.md +74 -0
  206. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/domain-apis.md +92 -0
  207. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/http-apis.md +70 -0
  208. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/jobs-apis.md +49 -0
  209. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/layout-migration.md +35 -0
  210. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/observability-apis.md +53 -0
  211. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/realtime-apis.md +98 -0
  212. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/streaming-apis.md +75 -0
  213. package/dist/templates/default/v1/fullstack/.agents/skills/relkit/references/testing-apis.md +71 -0
  214. package/dist/templates/default/v1/fullstack/README.md +16 -0
  215. package/dist/templates/default/v1/fullstack/package.json +7 -6
  216. package/dist/templates/default/v1/fullstack/src/routes/hello/route.ts +2 -1
  217. package/dist/templates/default/v1/fullstack/src/{hello → services/hello}/agents/assistant.agent.ts +3 -2
  218. package/dist/templates/default/v1/fullstack/src/{hello → services/hello}/agents/review.agent.ts +1 -0
  219. package/dist/templates/default/v1/fullstack/src/{hello → services/hello}/functions/hello.function.ts +1 -0
  220. package/dist/templates/default/v1/fullstack/src/services/hello/service.ts +5 -0
  221. package/dist/templates/default/v1/fullstack/src/{hello → services/hello}/tools/lookup.tool.ts +2 -1
  222. package/dist/templates/default/v1/fullstack/tests/unit/assistant.agent.test.ts +3 -2
  223. package/dist/templates/default/v1/fullstack/tests/unit/hello.function.test.ts +2 -1
  224. package/dist/templates/default/v1/fullstack/tests/unit/review.agent.test.ts +2 -1
  225. package/dist/templates/default/v1/fullstack/tsconfig.json +1 -0
  226. package/dist/templates/default/v1/minimal/.agents/skills/relkit/SKILL.md +48 -0
  227. package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/agent-apis.md +59 -0
  228. package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/cli.md +63 -0
  229. package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/config-environments.md +96 -0
  230. package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/data-apis.md +74 -0
  231. package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/domain-apis.md +92 -0
  232. package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/http-apis.md +70 -0
  233. package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/jobs-apis.md +49 -0
  234. package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/layout-migration.md +35 -0
  235. package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/observability-apis.md +53 -0
  236. package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/realtime-apis.md +98 -0
  237. package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/streaming-apis.md +75 -0
  238. package/dist/templates/default/v1/minimal/.agents/skills/relkit/references/testing-apis.md +71 -0
  239. package/dist/templates/default/v1/minimal/README.md +10 -0
  240. package/dist/templates/default/v1/minimal/package.json +4 -3
  241. package/dist/templates/default/v1/minimal/src/routes/hello/route.ts +2 -1
  242. package/dist/templates/default/v1/minimal/src/{hello → services/hello}/functions/hello.function.ts +7 -0
  243. package/dist/templates/default/v1/minimal/src/services/hello/service.ts +5 -0
  244. package/dist/templates/default/v1/minimal/tests/unit/hello.function.test.ts +2 -1
  245. package/dist/templates/default/v1/minimal/tsconfig.json +1 -0
  246. package/dist/templates/default/v1/tasks/.agents/skills/relkit/SKILL.md +48 -0
  247. package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/agent-apis.md +59 -0
  248. package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/cli.md +63 -0
  249. package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/config-environments.md +96 -0
  250. package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/data-apis.md +74 -0
  251. package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/domain-apis.md +92 -0
  252. package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/http-apis.md +70 -0
  253. package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/jobs-apis.md +49 -0
  254. package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/layout-migration.md +35 -0
  255. package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/observability-apis.md +53 -0
  256. package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/realtime-apis.md +98 -0
  257. package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/streaming-apis.md +75 -0
  258. package/dist/templates/default/v1/tasks/.agents/skills/relkit/references/testing-apis.md +71 -0
  259. package/dist/templates/default/v1/tasks/README.md +8 -1
  260. package/dist/templates/default/v1/tasks/package.json +4 -3
  261. package/dist/templates/default/v1/tasks/src/routes/health/route.ts +2 -1
  262. package/dist/templates/default/v1/tasks/src/{orders → services/orders}/functions/health.function.ts +1 -0
  263. package/dist/templates/default/v1/tasks/src/{orders → services/orders}/jobs/export-orders.job.ts +2 -1
  264. package/dist/templates/default/v1/tasks/src/services/orders/service.ts +11 -0
  265. package/dist/templates/default/v1/tasks/src/{orders → services/orders}/tasks/export-orders.task.ts +1 -0
  266. package/dist/templates/default/v1/tasks/tests/unit/export-orders.task.test.ts +2 -1
  267. package/dist/templates/default/v1/tasks/tsconfig.json +2 -0
  268. package/package.json +3 -3
  269. package/dist/templates/default/v1/agent/src/hello/service.ts +0 -4
  270. package/dist/templates/default/v1/api/src/echo/service.ts +0 -4
  271. package/dist/templates/default/v1/api/src/hello/service.ts +0 -4
  272. package/dist/templates/default/v1/api/src/orders/service.ts +0 -7
  273. package/dist/templates/default/v1/fullstack/src/hello/service.ts +0 -4
  274. package/dist/templates/default/v1/minimal/src/hello/service.ts +0 -4
  275. package/dist/templates/default/v1/tasks/src/orders/service.ts +0 -10
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Materializes, installs and validates a private creation stage. Finite dev
3
+ * --prepare owns one full check and reuses it for bundling; creation publishes
4
+ * only after its complete snapshot is durable. No development listener or
5
+ * support process is started here.
6
+ */
7
+ import { join } from "node:path";
8
+ import { Effect } from "effect";
9
+ import { observeExecution } from "@relkit/contracts/operation";
10
+ import { GeneratorProcess } from "./generator-process.js";
11
+ import { resolveTemplateRootEffect } from "./template-root.js";
12
+ import { prepareProjectDependencyPatchEffect } from "./dependency-patches.js";
13
+ import { domainTry } from "./generator-errors.js";
14
+ import { copyTemplateEffect, customizeProjectEffect, requireFilesEffect, requireTemplateEffect, } from "./generate-files.js";
15
+ import { injectGenerateFailure, resolveRelkitExecutableEffect, runProjectStepEffect, } from "./generate-process.js";
16
+ /** Copies and customizes the template before installation.
17
+ * @param stage - Scope-owned sibling directory.
18
+ * @param options - Normalized creation selection.
19
+ * @param context - Template and deterministic failure authority.
20
+ * @returns Lazy materialization; failures abort before publication.
21
+ */
22
+ export const materializeGenerationStage = Effect.fn("ProjectGeneration.materializeStage")(function* (stage, options, context) {
23
+ const templateRoot = yield* resolveTemplateRootEffect(context);
24
+ const template = join(templateRoot, options.jobs === undefined ? options.template : "tasks");
25
+ yield* requireTemplateEffect(template);
26
+ yield* domainTry(() => injectGenerateFailure(context, "copy"));
27
+ yield* copyTemplateEffect(template, stage);
28
+ yield* domainTry(() => injectGenerateFailure(context, "substitute"));
29
+ yield* customizeProjectEffect(stage, options);
30
+ yield* requireFilesEffect(stage, [
31
+ "package.json",
32
+ "relkit.config.ts",
33
+ "src/platform/env.ts",
34
+ ".env.example",
35
+ ".gitignore",
36
+ ]);
37
+ yield* prepareProjectDependencyPatchEffect(stage);
38
+ }, (effect) => observeExecution("generator", "generation.materializeStage", effect));
39
+ /** Installs dependencies and optional Git metadata inside the private stage.
40
+ * @param stage - Scope-owned sibling directory.
41
+ * @param options - Install/Git creation choices.
42
+ * @param context - Native executable, progress and cancellation authority.
43
+ * @returns Whether Git was initialized; owned subprocesses settle before returning.
44
+ */
45
+ export const installGenerationStage = Effect.fn("ProjectGeneration.installStage")(function* (stage, options, context) {
46
+ if (options.install) {
47
+ context.onProgress?.("Installing dependencies...");
48
+ yield* runProjectStepEffect(context, [context.bunExecutable ?? globalThis.process.execPath, "install"], stage, "install", "install");
49
+ }
50
+ const git = context.gitExecutable ??
51
+ (context.commandRunner ? "git" : yield* (yield* GeneratorProcess).which("git"));
52
+ const gitInitialized = options.git && git !== null;
53
+ if (gitInitialized) {
54
+ context.onProgress?.("Initializing Git repository...");
55
+ yield* runProjectStepEffect(context, [git, "init"], stage, "git", "git");
56
+ }
57
+ return gitInitialized;
58
+ }, (effect) => observeExecution("generator", "generation.installStage", effect));
59
+ /** Checks prerequisites and prepares a snapshot from one source validation.
60
+ * @param stage - Installed private project root.
61
+ * @param options - Cloud/deployment options controlling existing doctor checks.
62
+ * @param context - Native executable, progress and cancellation authority.
63
+ * @returns Finite preparation completion; failure leaves the destination unpublished.
64
+ */
65
+ export const verifyGenerationStage = Effect.fn("ProjectGeneration.prepareStage")(function* (stage, options, context) {
66
+ if (!options.install)
67
+ return;
68
+ const relkit = yield* resolveRelkitExecutableEffect(context, stage);
69
+ context.onProgress?.("Checking prerequisites...");
70
+ yield* runProjectStepEffect(context, [
71
+ relkit,
72
+ "doctor",
73
+ "--project-root",
74
+ stage,
75
+ "--no-ports",
76
+ ...(options.cloud === "none" || options.deploy === "none" ? ["--no-pulumi"] : []),
77
+ ], stage, "doctor", "doctor");
78
+ context.onProgress?.("Checking and preparing development snapshot...");
79
+ // Keep the existing check failure-injection contract. The finite command
80
+ // checks once and supplies its accepted result to snapshot preparation.
81
+ yield* runProjectStepEffect(context, [relkit, "dev", "--prepare", "--project-root", stage], stage, "prepare", "check");
82
+ }, (effect) => observeExecution("generator", "generation.prepareStage", effect));
83
+ //# sourceMappingURL=generate-preparation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-preparation.js","sourceRoot":"","sources":["../src/generate-preparation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Builds immutable creation output after atomic publication. The final directory
3
+ * is listed after rename; skipped installation reports the finite preparation
4
+ * workflow required before the first prepared development launch.
5
+ */
6
+ import { Effect } from "effect";
7
+ import type { CreateOptions } from "./options.js";
8
+ import type { GenerateProjectContext } from "./generate-types.js";
9
+ /** Produces the published project's stable output contract.
10
+ * @param options - Normalized creation choices.
11
+ * @param destination - Atomically published final directory.
12
+ * @param gitInitialized - Existing optional Git step result.
13
+ * @param context - Working directory for printed local commands.
14
+ * @returns Frozen output; listing failures retain their original channel.
15
+ */
16
+ export declare const generationResult: (options: CreateOptions, destination: string, gitInitialized: boolean, context: GenerateProjectContext) => Effect.Effect<Readonly<{
17
+ ok: true;
18
+ command: "create";
19
+ name: string;
20
+ template: "agent" | "minimal" | "api" | "fullstack";
21
+ cloud: "aws" | "none";
22
+ deploy: "none" | "pulumi";
23
+ destination: string;
24
+ files: readonly string[];
25
+ installed: boolean;
26
+ gitInitialized: boolean;
27
+ additions: readonly never[];
28
+ warnings: readonly {
29
+ code: string;
30
+ message: string;
31
+ }[];
32
+ nextSteps: import("./generate-output.types.js").GenerateNextSteps;
33
+ }>, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, import("./generator-filesystem.js").GeneratorFileSystem>;
34
+ //# sourceMappingURL=generate-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-result.d.ts","sourceRoot":"","sources":["../src/generate-result.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAIlE;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;qKAkC5B,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Builds immutable creation output after atomic publication. The final directory
3
+ * is listed after rename; skipped installation reports the finite preparation
4
+ * workflow required before the first prepared development launch.
5
+ */
6
+ import { Effect } from "effect";
7
+ import { observeExecution } from "@relkit/contracts/operation";
8
+ import { listProjectFilesEffect } from "./generate-files.js";
9
+ import { createGenerateNextSteps } from "./generate-output.js";
10
+ /** Produces the published project's stable output contract.
11
+ * @param options - Normalized creation choices.
12
+ * @param destination - Atomically published final directory.
13
+ * @param gitInitialized - Existing optional Git step result.
14
+ * @param context - Working directory for printed local commands.
15
+ * @returns Frozen output; listing failures retain their original channel.
16
+ */
17
+ export const generationResult = Effect.fn("ProjectGeneration.result")(function* (options, destination, gitInitialized, context) {
18
+ return Object.freeze({
19
+ ok: true,
20
+ command: "create",
21
+ name: options.name,
22
+ template: options.template,
23
+ cloud: options.cloud,
24
+ deploy: options.deploy,
25
+ destination,
26
+ files: Object.freeze(yield* listProjectFilesEffect(destination)),
27
+ installed: options.install,
28
+ gitInitialized,
29
+ additions: Object.freeze([]),
30
+ warnings: Object.freeze(!options.install
31
+ ? [
32
+ {
33
+ code: "validation-skipped",
34
+ message: "Install dependencies, then run bunx --no-install relkit dev --prepare before bun dev. Preparation includes the source check.",
35
+ },
36
+ ]
37
+ : []),
38
+ nextSteps: createGenerateNextSteps(options, destination, context.cwd),
39
+ });
40
+ }, (effect) => observeExecution("generator", "generation.result", effect));
41
+ //# sourceMappingURL=generate-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-result.js","sourceRoot":"","sources":["../src/generate-result.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,CACnE,QAAQ,CAAC,EACP,OAAsB,EACtB,WAAmB,EACnB,cAAuB,EACvB,OAA+B;IAE/B,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE,EAAE,IAAa;QACjB,OAAO,EAAE,QAAiB;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW;QACX,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAChE,SAAS,EAAE,OAAO,CAAC,OAAO;QAC1B,cAAc;QACd,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,CACrB,CAAC,OAAO,CAAC,OAAO;YACd,CAAC,CAAC;gBACE;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EACL,8HAA8H;iBACjI;aACF;YACH,CAAC,CAAC,EAAE,CACP;QACD,SAAS,EAAE,uBAAuB,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC;KACtE,CAAC,CAAC;AACL,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,mBAAmB,EAAE,MAAM,CAAC,CACvE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { Effect, Ref } from "effect";
2
+ import { GeneratorFileSystem } from "./generator-filesystem.js";
3
+ import type { GenerateProjectContext } from "./generate-types.js";
4
+ import type { GenerationStage } from "./generate-stage.types.js";
5
+ /** Acquires one private sibling stage with rollback in the calling Scope.
6
+ * @param destination - Already validated final project directory.
7
+ * @param context - Creation cancellation authority.
8
+ * @returns Scoped ownership requiring GeneratorFileSystem; native failures remain typed.
9
+ */
10
+ export declare const acquireGenerationStage: (destination: string, context: GenerateProjectContext) => Effect.Effect<{
11
+ stage: string;
12
+ published: Ref.Ref<boolean>;
13
+ }, import("./generator-errors.js").GeneratorIoError, GeneratorFileSystem | import("effect/Scope").Scope>;
14
+ /** Atomically transfers a complete installed/prepared stage to the destination.
15
+ * @param owned - Stage acquired in this creation Scope.
16
+ * @param destination - Validated final directory.
17
+ * @param context - Failure injection and cancellation authority.
18
+ * @returns Completion after native rename and ownership bookkeeping settle together.
19
+ */
20
+ export declare const publishGenerationStage: (owned: GenerationStage, destination: string, context: GenerateProjectContext) => Effect.Effect<void, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, GeneratorFileSystem>;
21
+ //# sourceMappingURL=generate-stage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-stage.d.ts","sourceRoot":"","sources":["../src/generate-stage.ts"],"names":[],"mappings":"AAOA,OAAO,EAAS,MAAM,EAAQ,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAMhE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;wGAgClC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,qOAYlC,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Acquires and publishes the sibling directory used by atomic project creation.
3
+ * A Scope removes only its unpublished stage and attaches cleanup disposition
4
+ * to the authoritative failure. Native rename settles before ownership transfers,
5
+ * preventing cancellation from exposing an incomplete destination.
6
+ */
7
+ import { basename, dirname, join } from "node:path";
8
+ import { Cause, Effect, Exit, Ref } from "effect";
9
+ import { observeExecution } from "@relkit/contracts/operation";
10
+ import { GeneratorFileSystem } from "./generator-filesystem.js";
11
+ import { cleanupStagedProjectEffect } from "./generate-files.js";
12
+ import { recordCleanupFailure } from "./generator-cleanup.js";
13
+ import { recordStageCleanup } from "./generate-stage-cleanup.js";
14
+ import { domainTry } from "./generator-errors.js";
15
+ import { injectGenerateFailure, throwIfAborted } from "./generate-process.js";
16
+ /** Acquires one private sibling stage with rollback in the calling Scope.
17
+ * @param destination - Already validated final project directory.
18
+ * @param context - Creation cancellation authority.
19
+ * @returns Scoped ownership requiring GeneratorFileSystem; native failures remain typed.
20
+ */
21
+ export const acquireGenerationStage = Effect.fn("ProjectGeneration.acquireStage")(function* (destination, context) {
22
+ const fs = yield* GeneratorFileSystem;
23
+ return yield* Effect.acquireRelease(Effect.gen(function* () {
24
+ yield* fs.mkdir(dirname(destination), { recursive: true, mode: 0o755 });
25
+ const stage = yield* fs.temporaryDirectory(join(dirname(destination), `.${basename(destination)}-relkit-`));
26
+ return { stage, published: yield* Ref.make(false) };
27
+ }), (owned, exit) => Effect.gen(function* () {
28
+ if (yield* Ref.get(owned.published))
29
+ return;
30
+ const cleanup = yield* cleanupStagedProjectEffect(owned.stage, destination).pipe(Effect.catchCause((cause) => Effect.gen(function* () {
31
+ const retained = { temporaryPath: owned.stage, removed: false };
32
+ yield* recordCleanupFailure(Exit.succeed(retained), "stage", Cause.squash(cause));
33
+ return retained;
34
+ })));
35
+ yield* recordStageCleanup(exit, cleanup, context.signal?.aborted ? context.signal : undefined);
36
+ }));
37
+ }, (effect) => observeExecution("generator", "generation.acquireStage", effect));
38
+ /** Atomically transfers a complete installed/prepared stage to the destination.
39
+ * @param owned - Stage acquired in this creation Scope.
40
+ * @param destination - Validated final directory.
41
+ * @param context - Failure injection and cancellation authority.
42
+ * @returns Completion after native rename and ownership bookkeeping settle together.
43
+ */
44
+ export const publishGenerationStage = Effect.fn("ProjectGeneration.publishStage")(function* (owned, destination, context) {
45
+ yield* domainTry(() => {
46
+ throwIfAborted(context.signal);
47
+ injectGenerateFailure(context, "rename");
48
+ });
49
+ const fs = yield* GeneratorFileSystem;
50
+ yield* Effect.uninterruptible(fs.rename(owned.stage, destination).pipe(Effect.tap(() => Ref.set(owned.published, true))));
51
+ }, (effect) => observeExecution("generator", "generation.publishStage", effect));
52
+ //# sourceMappingURL=generate-stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-stage.js","sourceRoot":"","sources":["../src/generate-stage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Describes one creation transaction's private directory ownership. Publication
3
+ * transfers the directory atomically; before that point the Scope owns cleanup.
4
+ */
5
+ import type { Ref } from "effect";
6
+ /** A private creation stage and its publication state. */
7
+ export interface GenerationStage {
8
+ readonly stage: string;
9
+ readonly published: Ref.Ref<boolean>;
10
+ }
11
+ //# sourceMappingURL=generate-stage.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-stage.types.d.ts","sourceRoot":"","sources":["../src/generate-stage.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElC,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;CACtC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generate-stage.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-stage.types.js","sourceRoot":"","sources":["../src/generate-stage.types.ts"],"names":[],"mappings":""}
@@ -1,14 +1,17 @@
1
+ /**
2
+ * Owns atomic creation from normalized options through installed preparation.
3
+ * The creation Scope keeps its private sibling stage until a successful finite
4
+ * check/snapshot operation; failure cleans that stage before the public adapter
5
+ * returns. Published directories transfer to the user.
6
+ */
1
7
  import { Effect } from "effect";
2
8
  import type { CreateOptions } from "./options.js";
3
9
  import { type GenerateProjectContext } from "./generate-types.js";
4
- import { GeneratorFileSystem } from "./generator-filesystem.js";
5
- import { GeneratorProcess } from "./generator-process.js";
6
10
  import { GeneratorPrompt } from "./generator-prompt.js";
7
- /**
8
- * Validates, prepares, verifies and publishes while a Scope owns the disposable stage.
11
+ /** Validates, prepares and publishes while a Scope owns the disposable stage.
9
12
  * @param options - Explicit options retaining existing defaults.
10
- * @param context - Caller-owned settings and cancellation.
11
- * @returns The published project's immutable result after native child settlement and staging cleanup.
13
+ * @param context - Caller-owned prompt, process, cancellation and progress settings.
14
+ * @returns Lazy scoped workflow preserving existing public failures and output.
12
15
  */
13
16
  export declare const generateEffect: (options: CreateOptions, context: GenerateProjectContext) => Effect.Effect<Readonly<{
14
17
  ok: true;
@@ -27,5 +30,5 @@ export declare const generateEffect: (options: CreateOptions, context: GenerateP
27
30
  message: string;
28
31
  }[];
29
32
  nextSteps: import("./generate-output.types.js").GenerateNextSteps;
30
- }>, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorProcessError | import("./generator-errors.js").GeneratorPromptError | import("./generator-errors.js").GeneratorDomainError, GeneratorFileSystem | GeneratorProcess | import("./generator-paths.js").GeneratorPaths | GeneratorPrompt>;
33
+ }>, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorProcessError | import("./generator-errors.js").GeneratorPromptError | import("./generator-errors.js").GeneratorDomainError, import("./generator-filesystem.js").GeneratorFileSystem | import("./generator-process.js").GeneratorProcess | import("./generator-paths.js").GeneratorPaths | GeneratorPrompt>;
31
34
  //# sourceMappingURL=generate-workflow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-workflow.d.ts","sourceRoot":"","sources":["../src/generate-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,MAAM,EAAa,MAAM,QAAQ,CAAC;AAElD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAmBlD,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD;;;;;GAKG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;qUA0J1B,CAAC"}
1
+ {"version":3,"file":"generate-workflow.d.ts","sourceRoot":"","sources":["../src/generate-workflow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAUxD;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;0YA+B1B,CAAC"}
@@ -1,24 +1,22 @@
1
- import { basename, dirname, join } from "node:path";
2
- import { Cause, Effect, Exit, Ref } from "effect";
1
+ /**
2
+ * Owns atomic creation from normalized options through installed preparation.
3
+ * The creation Scope keeps its private sibling stage until a successful finite
4
+ * check/snapshot operation; failure cleans that stage before the public adapter
5
+ * returns. Published directories transfer to the user.
6
+ */
7
+ import { Effect } from "effect";
3
8
  import { observeExecution } from "@relkit/contracts/operation";
4
9
  import { validateCreateOptionsEffect } from "./validate.js";
5
- import { injectGenerateFailure, resolveRelkitExecutableEffect, runProjectStepEffect, throwIfAborted, } from "./generate-process.js";
6
- import { copyTemplateEffect, cleanupStagedProjectEffect, customizeProjectEffect, listProjectFilesEffect, requireFilesEffect, requireTemplateEffect, } from "./generate-files.js";
7
- import { createGenerateNextSteps } from "./generate-output.js";
8
- import { prepareProjectDependencyPatchEffect } from "./dependency-patches.js";
9
- import { resolveTemplateRootEffect } from "./template-root.js";
10
10
  import { GenerateProjectError } from "./generate-types.js";
11
- import { GeneratorFileSystem } from "./generator-filesystem.js";
12
- import { GeneratorProcess } from "./generator-process.js";
13
11
  import { GeneratorPrompt } from "./generator-prompt.js";
14
- import { domainError, domainTry } from "./generator-errors.js";
15
- import { recordCleanupFailure } from "./generator-cleanup.js";
16
- import { recordStageCleanup } from "./generate-stage-cleanup.js";
17
- /**
18
- * Validates, prepares, verifies and publishes while a Scope owns the disposable stage.
12
+ import { domainError } from "./generator-errors.js";
13
+ import { acquireGenerationStage, publishGenerationStage } from "./generate-stage.js";
14
+ import { materializeGenerationStage, installGenerationStage, verifyGenerationStage, } from "./generate-preparation.js";
15
+ import { generationResult } from "./generate-result.js";
16
+ /** Validates, prepares and publishes while a Scope owns the disposable stage.
19
17
  * @param options - Explicit options retaining existing defaults.
20
- * @param context - Caller-owned settings and cancellation.
21
- * @returns The published project's immutable result after native child settlement and staging cleanup.
18
+ * @param context - Caller-owned prompt, process, cancellation and progress settings.
19
+ * @returns Lazy scoped workflow preserving existing public failures and output.
22
20
  */
23
21
  export const generateEffect = Effect.fn("ProjectGeneration.execute")((options, context) => Effect.scoped(Effect.gen(function* () {
24
22
  const validated = yield* validateCreateOptionsEffect(options, context.cwd === undefined ? {} : { cwd: context.cwd });
@@ -26,92 +24,15 @@ export const generateEffect = Effect.fn("ProjectGeneration.execute")((options, c
26
24
  !(yield* (yield* GeneratorPrompt).confirm({
27
25
  message: "Create this project?",
28
26
  initialValue: true,
29
- })))
27
+ }))) {
30
28
  return yield* Effect.fail(domainError(new GenerateProjectError("RELKIT_CREATE_CANCELLED", "Scaffolding was cancelled.")));
31
- context.onProgress?.(`Creating a new RELKIT app in ${validated.destination}.`);
32
- const fs = yield* GeneratorFileSystem;
33
- const templateRoot = yield* resolveTemplateRootEffect(context);
34
- const template = join(templateRoot, options.jobs === undefined ? options.template : "tasks");
35
- yield* requireTemplateEffect(template);
36
- const owned = yield* Effect.acquireRelease(Effect.gen(function* () {
37
- yield* fs.mkdir(dirname(validated.destination), { recursive: true, mode: 0o755 });
38
- const stage = yield* fs.temporaryDirectory(join(dirname(validated.destination), `.${basename(validated.destination)}-relkit-`));
39
- return { stage, published: yield* Ref.make(false) };
40
- }), (owned, exit) => Effect.gen(function* () {
41
- if (yield* Ref.get(owned.published))
42
- return;
43
- const cleanup = yield* cleanupStagedProjectEffect(owned.stage, validated.destination).pipe(Effect.catchCause((cause) => Effect.gen(function* () {
44
- const retained = { temporaryPath: owned.stage, removed: false };
45
- yield* recordCleanupFailure(Exit.succeed(retained), "stage", Cause.squash(cause));
46
- return retained;
47
- })));
48
- yield* recordStageCleanup(exit, cleanup, context.signal?.aborted ? context.signal : undefined);
49
- }));
50
- yield* domainTry(() => injectGenerateFailure(context, "copy"));
51
- yield* copyTemplateEffect(template, owned.stage);
52
- yield* domainTry(() => injectGenerateFailure(context, "substitute"));
53
- yield* customizeProjectEffect(owned.stage, options);
54
- yield* requireFilesEffect(owned.stage, [
55
- "package.json",
56
- "relkit.config.ts",
57
- "src/platform/env.ts",
58
- ".env.example",
59
- ".gitignore",
60
- ]);
61
- yield* prepareProjectDependencyPatchEffect(owned.stage);
62
- if (options.install) {
63
- context.onProgress?.("Installing dependencies...");
64
- yield* runProjectStepEffect(context, [context.bunExecutable ?? globalThis.process.execPath, "install"], owned.stage, "install", "install");
65
29
  }
66
- const git = context.gitExecutable ??
67
- (context.commandRunner ? "git" : yield* (yield* GeneratorProcess).which("git"));
68
- const gitInitialized = options.git && git !== null;
69
- if (gitInitialized) {
70
- context.onProgress?.("Initializing Git repository...");
71
- yield* runProjectStepEffect(context, [git, "init"], owned.stage, "git", "git");
72
- }
73
- if (options.install) {
74
- const relkit = yield* resolveRelkitExecutableEffect(context, owned.stage);
75
- context.onProgress?.("Checking generated project...");
76
- yield* runProjectStepEffect(context, [
77
- relkit,
78
- "doctor",
79
- "--project-root",
80
- owned.stage,
81
- "--no-ports",
82
- ...(options.cloud === "none" || options.deploy === "none" ? ["--no-pulumi"] : []),
83
- ], owned.stage, "doctor", "doctor");
84
- yield* runProjectStepEffect(context, [relkit, "check", "--project-root", owned.stage], owned.stage, "check", "check");
85
- }
86
- yield* domainTry(() => {
87
- throwIfAborted(context.signal);
88
- injectGenerateFailure(context, "rename");
89
- });
90
- // Native rename and publication bookkeeping settle as one atomic ownership handoff.
91
- yield* Effect.uninterruptible(fs
92
- .rename(owned.stage, validated.destination)
93
- .pipe(Effect.tap(() => Ref.set(owned.published, true))));
94
- return Object.freeze({
95
- ok: true,
96
- command: "create",
97
- name: options.name,
98
- template: options.template,
99
- cloud: options.cloud,
100
- deploy: options.deploy,
101
- destination: validated.destination,
102
- files: Object.freeze(yield* listProjectFilesEffect(validated.destination)),
103
- installed: options.install,
104
- gitInitialized,
105
- additions: Object.freeze([]),
106
- warnings: Object.freeze(!options.install
107
- ? [
108
- {
109
- code: "validation-skipped",
110
- message: "Install dependencies, then run bun run check.",
111
- },
112
- ]
113
- : []),
114
- nextSteps: createGenerateNextSteps(options, validated.destination, context.cwd),
115
- });
30
+ context.onProgress?.(`Creating a new RELKIT app in ${validated.destination}.`);
31
+ const owned = yield* acquireGenerationStage(validated.destination, context);
32
+ yield* materializeGenerationStage(owned.stage, options, context);
33
+ const gitInitialized = yield* installGenerationStage(owned.stage, options, context);
34
+ yield* verifyGenerationStage(owned.stage, options, context);
35
+ yield* publishGenerationStage(owned, validated.destination, context);
36
+ return yield* generationResult(options, validated.destination, gitInitialized, context);
116
37
  })), (effect) => observeExecution("generator", "generation.execute", effect));
117
38
  //# sourceMappingURL=generate-workflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-workflow.js","sourceRoot":"","sources":["../src/generate-workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-workflow.js","sourceRoot":"","sources":["../src/generate-workflow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAA+B,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAClE,CAAC,OAAsB,EAAE,OAA+B,EAAE,EAAE,CAC1D,MAAM,CAAC,MAAM,CACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,2BAA2B,CAClD,OAAO,EACP,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CACtD,CAAC;IACF,IACE,OAAO,CAAC,WAAW,KAAK,IAAI;QAC5B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;YACxC,OAAO,EAAE,sBAAsB;YAC/B,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC,EACH,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CACvB,WAAW,CACT,IAAI,oBAAoB,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,CAClF,CACF,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,UAAU,EAAE,CAAC,gCAAgC,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC;IAC/E,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC5E,KAAK,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACpF,KAAK,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5D,KAAK,CAAC,CAAC,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACrE,OAAO,KAAK,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;AAC1F,CAAC,CAAC,CACH,EACH,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,oBAAoB,EAAE,MAAM,CAAC,CACxE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./options.js";
2
+ export * from "./create-capabilities.js";
2
3
  export * from "./add-types.js";
3
4
  export * from "./add-name.js";
4
5
  export * from "./add-options.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAErC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAErC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./options.js";
2
+ export * from "./create-capabilities.js";
2
3
  export * from "./add-types.js";
3
4
  export * from "./add-name.js";
4
5
  export * from "./add-options.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAErC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAErC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Projects compiler-recognized descriptor syntax into scaffold artifact records.
3
+ * Shared layout paths supply service names; database/auth keep native capability
4
+ * metadata and ordinary modules remain excluded from descriptor registration.
5
+ */
6
+ import { type AstSourceModule } from "@relkit/compiler";
7
+ import type { DiscoveredCollections } from "./project-discovery-artifacts.types.js";
8
+ /**
9
+ * Collects source-only artifacts after compiler layout validation.
10
+ * @param root - Canonical application root.
11
+ * @param modules - Complete unevaluated authored module inventory.
12
+ * @returns Static artifact/service records with accurate flat or grouped paths.
13
+ */
14
+ export declare function collectProjectArtifacts(root: string, modules: readonly AstSourceModule[]): DiscoveredCollections;
15
+ //# sourceMappingURL=project-discovery-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-discovery-artifacts.d.ts","sourceRoot":"","sources":["../src/project-discovery-artifacts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAK1E,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAGpG;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,qBAAqB,CA4BvB"}