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,34 @@
1
+ import { type CreateOptions, type CreateTemplate } from "./options.js";
2
+ import type { CreateCapabilityIdentity, CreateCapabilityEvidence, PartialCreateCapability } from "./create-capabilities.types.js";
3
+ export type { CreateCapabilityTuple, CreateCapabilityIdentity, CreateCapabilityEvidence, } from "./create-capabilities.types.js";
4
+ export declare const CREATE_CAPABILITY_TABLE: Readonly<{
5
+ version: 1;
6
+ entries: readonly CreateCapabilityEvidence[];
7
+ }>;
8
+ /**
9
+ * Reads the executing SDK's release and pinned dependency catalog without acquiring application clients.
10
+ * @returns The complete identity that packaged evidence must match exactly.
11
+ */
12
+ export declare function currentCreateCapabilityIdentity(): CreateCapabilityIdentity;
13
+ /**
14
+ * Rejects missing or stale tuples before destination planning or installation.
15
+ * @param options - Complete public creation choice.
16
+ * @param identity - Executing tool identity, or an explicit identity used by compatibility checks.
17
+ * @returns When a current evidence entry admits the complete tuple.
18
+ */
19
+ export declare function assertCreateCapability(options: Pick<CreateOptions, "template" | "cloud" | "deploy" | "jobs" | "examples">, identity?: CreateCapabilityIdentity): void;
20
+ /**
21
+ * Filters interactive template choices through the same evidence allow-list.
22
+ * @param options - Choices resolved so far by the native prompt flow.
23
+ * @param identity - Executing tool identity.
24
+ * @returns Only templates admitted by current complete evidence entries.
25
+ */
26
+ export declare function supportedCreateTemplates(options: PartialCreateCapability, identity?: CreateCapabilityIdentity): readonly CreateTemplate[];
27
+ /**
28
+ * Checks every field of a complete tuple and its exact tool identity.
29
+ * @param options - Complete creation choice.
30
+ * @param identity - Executing tool identity.
31
+ * @returns Whether a current complete evidence entry admits this choice.
32
+ */
33
+ export declare function supported(options: Pick<CreateOptions, "template" | "cloud" | "deploy" | "jobs" | "examples">, identity?: CreateCapabilityIdentity): boolean;
34
+ //# sourceMappingURL=create-capabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-capabilities.d.ts","sourceRoot":"","sources":["../src/create-capabilities.ts"],"names":[],"mappings":"AAOA,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE3F,OAAO,KAAK,EAEV,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,gCAAgC,CAAC;AAsBxC,eAAO,MAAM,uBAAuB;;;EAGlC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,wBAAwB,CAU1E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,EACnF,QAAQ,GAAE,wBAA4D,GACrE,IAAI,CAKN;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,uBAAuB,EAChC,QAAQ,GAAE,wBAA4D,GACrE,SAAS,cAAc,EAAE,CAI3B;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC,EACnF,QAAQ,GAAE,wBAA4D,GACrE,OAAO,CAUT"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Packaged creation support is an allow-list backed by reference-host evidence.
3
+ * Candidate literals remain parseable so explicit unsupported requests can return
4
+ * a precise pre-staging diagnostic instead of masquerading as syntax errors.
5
+ */
6
+ import { createHash } from "node:crypto";
7
+ import manifest from "../package.json";
8
+ import { CreateOptionsError } from "./options.js";
9
+ const entries = Object.freeze([
10
+ Object.freeze({
11
+ template: "minimal",
12
+ cloud: "none",
13
+ deploy: "none",
14
+ examples: true,
15
+ identity: Object.freeze({
16
+ release: "0.7.6",
17
+ bun: "1.3.10",
18
+ typescript: "5.9.3",
19
+ packageCatalogDigest: "ac7c2f56e61fca5ab890775cf4c483722cb590e488ee7fc4741224cbb4f50ccd",
20
+ template: "default/v1/minimal",
21
+ snapshotProtocol: 1,
22
+ }),
23
+ templateDigest: "f72fded9c0ceccefc8140e3104ab4a0eabb8f7f92283ec0ff5237f0a772dd0ef",
24
+ freshEvidence: "docs/evidence/create-capabilities/0.7.6/fresh.json",
25
+ restartEvidence: "docs/evidence/create-capabilities/0.7.6/restart.json",
26
+ }),
27
+ ]);
28
+ export const CREATE_CAPABILITY_TABLE = Object.freeze({
29
+ version: 1,
30
+ entries,
31
+ });
32
+ /**
33
+ * Reads the executing SDK's release and pinned dependency catalog without acquiring application clients.
34
+ * @returns The complete identity that packaged evidence must match exactly.
35
+ */
36
+ export function currentCreateCapabilityIdentity() {
37
+ const catalog = manifest.relkit.buildCatalog;
38
+ return {
39
+ release: manifest.version,
40
+ bun: Bun.version,
41
+ typescript: catalog.dependencies.typescript,
42
+ packageCatalogDigest: createHash("sha256").update(JSON.stringify(catalog)).digest("hex"),
43
+ template: "default/v1/minimal",
44
+ snapshotProtocol: 1,
45
+ };
46
+ }
47
+ /**
48
+ * Rejects missing or stale tuples before destination planning or installation.
49
+ * @param options - Complete public creation choice.
50
+ * @param identity - Executing tool identity, or an explicit identity used by compatibility checks.
51
+ * @returns When a current evidence entry admits the complete tuple.
52
+ */
53
+ export function assertCreateCapability(options, identity = currentCreateCapabilityIdentity()) {
54
+ if (supported(options, identity))
55
+ return;
56
+ throw new CreateOptionsError(`Creation combination is not certified: ${formatTuple(options)}. Supported: ${supportedTuples(identity).join(", ") || "none for this tool identity"}.`);
57
+ }
58
+ /**
59
+ * Filters interactive template choices through the same evidence allow-list.
60
+ * @param options - Choices resolved so far by the native prompt flow.
61
+ * @param identity - Executing tool identity.
62
+ * @returns Only templates admitted by current complete evidence entries.
63
+ */
64
+ export function supportedCreateTemplates(options, identity = currentCreateCapabilityIdentity()) {
65
+ return CREATE_CAPABILITY_TABLE.entries
66
+ .filter((entry) => current(entry.identity, identity) && matchesPartial(entry, options))
67
+ .map((entry) => entry.template);
68
+ }
69
+ /**
70
+ * Checks every field of a complete tuple and its exact tool identity.
71
+ * @param options - Complete creation choice.
72
+ * @param identity - Executing tool identity.
73
+ * @returns Whether a current complete evidence entry admits this choice.
74
+ */
75
+ export function supported(options, identity = currentCreateCapabilityIdentity()) {
76
+ return CREATE_CAPABILITY_TABLE.entries.some((entry) => current(entry.identity, identity) &&
77
+ entry.template === options.template &&
78
+ entry.cloud === options.cloud &&
79
+ entry.deploy === options.deploy &&
80
+ entry.jobs === options.jobs &&
81
+ entry.examples === options.examples);
82
+ }
83
+ /**
84
+ * Formats the current complete choices for a public refusal diagnostic.
85
+ * @param identity - Executing tool identity.
86
+ * @returns Deterministic native option descriptions.
87
+ */
88
+ function supportedTuples(identity) {
89
+ return CREATE_CAPABILITY_TABLE.entries
90
+ .filter((entry) => current(entry.identity, identity))
91
+ .map(formatTuple);
92
+ }
93
+ /**
94
+ * Compares all mandatory tool identity fields without ignoring patch versions.
95
+ * @param left - Recorded reference-host identity.
96
+ * @param right - Current executing identity.
97
+ * @returns Whether every mandatory field matches.
98
+ */
99
+ function current(left, right) {
100
+ return (left.release === right.release &&
101
+ left.bun === right.bun &&
102
+ left.typescript === right.typescript &&
103
+ left.packageCatalogDigest === right.packageCatalogDigest &&
104
+ left.template === right.template &&
105
+ left.snapshotProtocol === right.snapshotProtocol);
106
+ }
107
+ /**
108
+ * Preserves unresolved native prompt choices while filtering complete certified entries.
109
+ * @param entry - Complete recorded tuple.
110
+ * @param options - Choices already supplied by the user.
111
+ * @returns Whether the entry agrees with every resolved choice.
112
+ */
113
+ function matchesPartial(entry, options) {
114
+ return ((options.template === undefined || entry.template === options.template) &&
115
+ (options.cloud === undefined || entry.cloud === options.cloud) &&
116
+ (options.deploy === undefined || entry.deploy === options.deploy) &&
117
+ (options.jobs === undefined || entry.jobs === options.jobs) &&
118
+ (options.examples === undefined || entry.examples === options.examples));
119
+ }
120
+ /**
121
+ * Describes native options using the public no-jobs and wildcard semantics.
122
+ * @param options - Complete or partially resolved tuple.
123
+ * @returns One portable diagnostic string.
124
+ */
125
+ function formatTuple(options) {
126
+ let examples = "*";
127
+ if (options.examples !== undefined)
128
+ examples = options.examples ? "on" : "off";
129
+ return [
130
+ `template=${options.template ?? "*"}`,
131
+ `jobs=${options.jobs ?? "none"}`,
132
+ `cloud=${options.cloud ?? "*"}`,
133
+ `deploy=${options.deploy ?? "*"}`,
134
+ `examples=${examples}`,
135
+ ].join("/");
136
+ }
137
+ //# sourceMappingURL=create-capabilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-capabilities.js","sourceRoot":"","sources":["../src/create-capabilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /** Describes exact creation tuples and their reference-host package, tool and template evidence identities. */
2
+ import type { CreateOptions } from "./options.js";
3
+ /** Complete public creation combination; absence of jobs preserves the native no-jobs option. */
4
+ export interface CreateCapabilityTuple {
5
+ /** Authored starter selected by the public CLI. */
6
+ readonly template: CreateOptions["template"];
7
+ /** Explicit cloud ownership selection. */
8
+ readonly cloud: CreateOptions["cloud"];
9
+ /** Explicit deployment engine selection. */
10
+ readonly deploy: CreateOptions["deploy"];
11
+ /** Optional durable-job integration selection. */
12
+ readonly jobs?: CreateOptions["jobs"];
13
+ /** Whether the starter's example sources are retained. */
14
+ readonly examples: boolean;
15
+ }
16
+ /** Every field must match the running packaged tool before a tuple is offered. */
17
+ export interface CreateCapabilityIdentity {
18
+ /** Exact first-party release version. */
19
+ readonly release: string;
20
+ /** Pinned native Bun version. */
21
+ readonly bun: string;
22
+ /** Exact TypeScript package version. */
23
+ readonly typescript: string;
24
+ /** SHA-256 of the complete tool dependency catalog. */
25
+ readonly packageCatalogDigest: string;
26
+ /** Exact source template directory identity. */
27
+ readonly template: string;
28
+ /** Prepared-input snapshot protocol version. */
29
+ readonly snapshotProtocol: number;
30
+ }
31
+ /** Offered tuple backed by complete fresh and restart measurements for its template bytes. */
32
+ export interface CreateCapabilityEvidence extends CreateCapabilityTuple {
33
+ /** Exact tool and package catalog identity measured by the reference host. */
34
+ readonly identity: CreateCapabilityIdentity;
35
+ /** SHA-256 over ordered template paths and their complete bytes. */
36
+ readonly templateDigest: string;
37
+ /** Repository-relative complete 20-attempt fresh report. */
38
+ readonly freshEvidence: string;
39
+ /** Repository-relative complete 20-attempt restart report. */
40
+ readonly restartEvidence: string;
41
+ }
42
+ /** Unresolved interactive choices used only to filter certified complete tuples. */
43
+ export type PartialCreateCapability = Readonly<{
44
+ /** Optional starter choice. */
45
+ template?: string;
46
+ /** Optional cloud choice. */
47
+ cloud?: string;
48
+ /** Optional deployment choice. */
49
+ deploy?: string;
50
+ /** Optional job choice; undefined retains the native prompt semantics. */
51
+ jobs?: string | undefined;
52
+ /** Optional example choice. */
53
+ examples?: boolean;
54
+ }>;
55
+ //# sourceMappingURL=create-capabilities.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-capabilities.types.d.ts","sourceRoot":"","sources":["../src/create-capabilities.types.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,iGAAiG;AACjG,MAAM,WAAW,qBAAqB;IACpC,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzC,kDAAkD;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,kFAAkF;AAClF,MAAM,WAAW,wBAAwB;IACvC,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iCAAiC;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,8FAA8F;AAC9F,MAAM,WAAW,wBAAyB,SAAQ,qBAAqB;IACrE,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,oEAAoE;IACpE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED,oFAAoF;AACpF,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC;IAC7C,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=create-capabilities.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-capabilities.types.js","sourceRoot":"","sources":["../src/create-capabilities.types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"create-resolver.d.ts","sourceRoot":"","sources":["../src/create-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,eAAe,EAAwB,MAAM,uBAAuB,CAAC;AAI9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC9F,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAO9F;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC;;;gIAqD7C,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CAExB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,qBAAqB,CAAC,CAWhC"}
1
+ {"version":3,"file":"create-resolver.d.ts","sourceRoot":"","sources":["../src/create-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlG,OAAO,EAAE,eAAe,EAAwB,MAAM,uBAAuB,CAAC;AAI9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAC9F,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAO9F;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC;;;gIAwD7C,CAAC;AAqBF;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CAExB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,qBAAqB,CAAC,CAWhC"}
@@ -1,6 +1,7 @@
1
1
  import { Effect } from "effect";
2
2
  import { observeExecution } from "@relkit/contracts/operation";
3
- import { CREATE_JOBS, CREATE_OPTION_DEFAULTS, CREATE_TEMPLATES, normalizeCreateOptions, } from "./options.js";
3
+ import { CREATE_OPTION_DEFAULTS, normalizeCreateOptions } from "./options.js";
4
+ import { assertCreateCapability, supportedCreateTemplates } from "./create-capabilities.js";
4
5
  import { createClackPromptDriver } from "./prompt-driver.js";
5
6
  import { GeneratorPrompt, generatorPromptLayer } from "./generator-prompt.js";
6
7
  import { domainTry } from "./generator-errors.js";
@@ -32,9 +33,14 @@ export const resolveCreateOptionsDetailsEffect = Effect.fn("CreateResolution.res
32
33
  prompted = true;
33
34
  }
34
35
  if (!has(output, "template")) {
36
+ const templates = supportedCreateTemplates(explicitCapabilityOptions(output));
37
+ if (templates.length === 0)
38
+ return yield* domainTry(() => {
39
+ throw new Error("No certified starter template matches the explicit creation flags.");
40
+ });
35
41
  const template = yield* prompt.select({
36
42
  message: "Starter template",
37
- options: CREATE_TEMPLATES.map((value) => ({ value, label: title(value) })),
43
+ options: templates.map((value) => ({ value, label: title(value) })),
38
44
  initialValue: CREATE_OPTION_DEFAULTS.template,
39
45
  });
40
46
  output.push("--template", template);
@@ -43,10 +49,7 @@ export const resolveCreateOptionsDetailsEffect = Effect.fn("CreateResolution.res
43
49
  if (!has(output, "jobs")) {
44
50
  const jobs = yield* prompt.select({
45
51
  message: "Jobs service",
46
- options: [
47
- { value: "none", label: "None" },
48
- ...CREATE_JOBS.map((value) => ({ value, label: title(value) })),
49
- ],
52
+ options: [{ value: "none", label: "None" }],
50
53
  initialValue: "none",
51
54
  });
52
55
  if (jobs !== "none")
@@ -64,8 +67,27 @@ export const resolveCreateOptionsDetailsEffect = Effect.fn("CreateResolution.res
64
67
  }
65
68
  }
66
69
  const options = yield* domainTry(() => normalizeCreateOptions(output, context.json === undefined ? {} : { json: context.json }));
70
+ yield* domainTry(() => assertCreateCapability(options));
67
71
  return { options, prompted };
68
72
  }, (effect) => observeExecution("generator", "create.resolve", effect));
73
+ function explicitCapabilityOptions(args) {
74
+ return {
75
+ cloud: explicitValue(args, "cloud") ?? CREATE_OPTION_DEFAULTS.cloud,
76
+ deploy: explicitValue(args, "deploy") ?? CREATE_OPTION_DEFAULTS.deploy,
77
+ ...(explicitValue(args, "jobs") === undefined
78
+ ? {}
79
+ : { jobs: explicitValue(args, "jobs") }),
80
+ examples: !args.includes("--no-examples"),
81
+ };
82
+ }
83
+ function explicitValue(args, name) {
84
+ const flag = `--${name}`;
85
+ const inline = args.find((argument) => argument.startsWith(`${flag}=`));
86
+ if (inline !== undefined)
87
+ return inline.slice(flag.length + 1);
88
+ const index = args.indexOf(flag);
89
+ return index < 0 ? undefined : args[index + 1];
90
+ }
69
91
  /**
70
92
  * Preserves normalized creation's Promise compatibility API.
71
93
  * @param args - Existing flags.
@@ -1 +1 @@
1
- {"version":3,"file":"create-resolver.js","sourceRoot":"","sources":["../src/create-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-resolver.js","sourceRoot":"","sources":["../src/create-resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"domain-artifact.d.ts","sourceRoot":"","sources":["../src/domain-artifact.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,GAAE,SAAS,GAAG,OAAmB,GAC1C,cAAc,CAUhB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAChC,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAgBpB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAIxE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAC1C,MAAM,CAIR;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"domain-artifact.d.ts","sourceRoot":"","sources":["../src/domain-artifact.ts"],"names":[],"mappings":"AAQA,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,GAAE,SAAS,GAAG,OAAmB,GAC1C,cAAc,CAUhB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAChC,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAgBpB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAIxE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAC1C,MAAM,CAIR;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAEpE;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Derives scaffold source destinations from an already selected public boundary
3
+ * while preserving logical artifact IDs and bindings. Pure compatibility helpers
4
+ * report usage/collision exceptions; owning generator workflows translate them.
5
+ */
6
+ import { dirname } from "node:path";
1
7
  import { ADD_FAILURE_CODES, AddScaffoldError } from "./add-types.js";
2
8
  import { normalizeArtifactName } from "./add-name.js";
3
9
  import { PlanBuilder } from "./plan-builder.js";
@@ -16,7 +22,7 @@ export function domainArtifact(target, value, directory, fileSuffix, kindSuffix,
16
22
  const suffix = kindSuffix ? normalizeArtifactName(kindSuffix) : undefined;
17
23
  return {
18
24
  name,
19
- path: `src/${target.domain.fileStem}/${directory}/${name.fileStem}.${fileSuffix}.ts`,
25
+ path: `${dirname(target.servicePath)}/${directory}/${name.fileStem}.${fileSuffix}.ts`,
20
26
  id: `${target.domain.idSegment}.${name.idSegment}${suffix ? `-${suffix.idSegment}` : ""}`,
21
27
  binding: `${name.identifier}${suffix ? capitalize(suffix.identifier) : ""}`,
22
28
  exportKind,
@@ -102,7 +108,9 @@ export function collision(message) {
102
108
  * @returns The identifier with its first character capitalized.
103
109
  */
104
110
  export function capitalize(value) {
105
- return `${value[0].toUpperCase()}${value.slice(1)}`;
111
+ if (value.length === 0)
112
+ throw new TypeError("A normalized identifier must not be empty.");
113
+ return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
106
114
  }
107
115
  /**
108
116
  * Reads the file stem before the first extension separator.
@@ -110,6 +118,6 @@ export function capitalize(value) {
110
118
  * @returns The final path component up to its first dot.
111
119
  */
112
120
  export function fileStem(path) {
113
- return path.split("/").at(-1).split(".")[0];
121
+ return path.split("/").at(-1)?.split(".")[0] ?? "";
114
122
  }
115
123
  //# sourceMappingURL=domain-artifact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"domain-artifact.js","sourceRoot":"","sources":["../src/domain-artifact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domain-artifact.js","sourceRoot":"","sources":["../src/domain-artifact.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Plans service selection and public-member edits through generator filesystem
3
+ * authority. Shared layout discovery chooses physical destinations; operations
4
+ * remain lazy and translate expected scaffold failures without changing IDs.
5
+ */
1
6
  import { Effect } from "effect";
2
7
  import { GeneratorFileSystem } from "./generator-filesystem.js";
3
8
  import { type GeneratorDomainError, type GeneratorIoError } from "./generator-errors.js";
@@ -1 +1 @@
1
- {"version":3,"file":"domain-planning.d.ts","sourceRoot":"","sources":["../src/domain-planning.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,qHA4C/B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,wOA0BjC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,EACnD,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAIf;AAWD,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"domain-planning.d.ts","sourceRoot":"","sources":["../src/domain-planning.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,qHAmD/B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,wOA0BjC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,EACnD,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAIf;AAID,OAAO,EACL,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC/E,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,4 +1,12 @@
1
+ /**
2
+ * Plans service selection and public-member edits through generator filesystem
3
+ * authority. Shared layout discovery chooses physical destinations; operations
4
+ * remain lazy and translate expected scaffold failures without changing IDs.
5
+ */
1
6
  import { Effect } from "effect";
7
+ import { domainError, domainTry } from "./generator-errors.js";
8
+ import { scaffoldServiceBoundary } from "./scaffold-layout.js";
9
+ import { ADD_FAILURE_CODES, AddScaffoldError } from "./add-types.js";
2
10
  import { observeExecution } from "@relkit/contracts/operation";
3
11
  import { GeneratorFileSystem } from "./generator-filesystem.js";
4
12
  import { scaffoldErrors, } from "./generator-errors.js";
@@ -14,31 +22,32 @@ import { addFactoryObjectMember, addSourceImport } from "./source-edit.js";
14
22
  export const resolveDomainEffect = Effect.fn("Scaffold.resolveDomain")(function* (builder) {
15
23
  const request = builder.request;
16
24
  if (request.service && request.createService)
17
- usage("--service and --create-service are exclusive.");
25
+ return yield* domainError(new AddScaffoldError(ADD_FAILURE_CODES.usage, "--service and --create-service are exclusive."));
18
26
  if (request.createService) {
19
- const domain = normalizeArtifactName(request.createService);
27
+ const domain = yield* domainTry(() => normalizeArtifactName(request.createService ?? ""));
20
28
  if (builder.discovery.services.some((service) => service.domain === domain.fileStem)) {
21
- collision(`Service ${domain.fileStem} already exists.`);
29
+ return yield* domainError(new AddScaffoldError(ADD_FAILURE_CODES.collision, `Service ${domain.fileStem} already exists.`));
22
30
  }
23
- const servicePath = `src/${domain.fileStem}/service.ts`;
31
+ const servicePath = yield* domainTry(() => scaffoldServiceBoundary(builder.discovery, domain.fileStem));
24
32
  yield* builder.createEffect(servicePath, serviceSource(domain));
25
33
  return { domain, servicePath, service: undefined };
26
34
  }
27
35
  const generic = builder.discovery.services.filter((service) => service.capability === "generic");
28
- const selected = request.service
29
- ? generic.find((service) => [service.domain, service.binding].includes(normalizeArtifactName(request.service).fileStem))
30
- : generic.length === 1
31
- ? generic[0]
32
- : undefined;
36
+ let selected = generic.length === 1 ? generic[0] : undefined;
37
+ if (request.service) {
38
+ const selectedName = yield* domainTry(() => normalizeArtifactName(request.service ?? ""));
39
+ selected = generic.find((service) => [service.domain, service.binding].includes(selectedName.fileStem));
40
+ }
33
41
  if (selected === undefined) {
34
- usage(request.service
35
- ? `Unknown generic service: ${request.service}`
36
- : generic.length === 0
37
- ? "No generic service exists; use --create-service <name>."
38
- : "Multiple generic services exist; use --service <name>.");
42
+ let message = "Multiple generic services exist; use --service <name>.";
43
+ if (generic.length === 0)
44
+ message = "No generic service exists; use --create-service <name>.";
45
+ if (request.service)
46
+ message = `Unknown generic service: ${request.service}`;
47
+ return yield* domainError(new AddScaffoldError(ADD_FAILURE_CODES.usage, message));
39
48
  }
40
49
  return {
41
- domain: normalizeArtifactName(selected.domain),
50
+ domain: yield* domainTry(() => normalizeArtifactName(selected.domain)),
42
51
  servicePath: selected.path,
43
52
  service: selected,
44
53
  };
@@ -79,6 +88,6 @@ export function resolveDomain(builder) {
79
88
  export function addPublicMember(builder, target, category, artifact, artifactPath) {
80
89
  return runGeneratorPromise(addPublicMemberEffect(builder, target, category, artifact, artifactPath));
81
90
  }
82
- import { sourceModule, sourceImport, serviceSource, usage, collision, fileStem, } from "./domain-artifact.js";
91
+ import { sourceModule, sourceImport, serviceSource } from "./domain-artifact.js";
83
92
  export { domainArtifact, resolveArtifact, assertAvailableId, sourceModule, sourceImport, serviceSource, } from "./domain-artifact.js";
84
93
  //# sourceMappingURL=domain-planning.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"domain-planning.js","sourceRoot":"","sources":["../src/domain-planning.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domain-planning.js","sourceRoot":"","sources":["../src/domain-planning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Effect } from "effect";
2
+ import { GeneratorFileSystem } from "./generator-filesystem.js";
3
+ import type { CreateOptions } from "./options.js";
4
+ /** Applies the original validated manifest patch while preserving unrelated native JSON fields.
5
+ * @param root - Owned staged project root.
6
+ * @param options - Original explicit creation flags; no provider is acquired.
7
+ * @returns Completion after deterministic bytes and original mode are published.
8
+ */
9
+ export declare const customizeDeploymentManifestEffect: (root: string, options: CreateOptions) => Effect.Effect<undefined, import("./generator-errors.js").GeneratorIoError | import("./generator-errors.js").GeneratorDomainError, GeneratorFileSystem>;
10
+ //# sourceMappingURL=generate-deployment-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-deployment-manifest.d.ts","sourceRoot":"","sources":["../src/generate-deployment-manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,kMA+C7C,CAAC"}
@@ -0,0 +1,56 @@
1
+ /** Updates only explicitly selected deployment/jobs dependency and script fields through the generator's captured filesystem authority. */
2
+ import { join } from "node:path";
3
+ import { Effect, Schema } from "effect";
4
+ import { observeExecution } from "@relkit/contracts/operation";
5
+ import { GeneratorFileSystem } from "./generator-filesystem.js";
6
+ import { GenerateProjectError } from "./generate-types.js";
7
+ import { domainError, domainTry } from "./generator-errors.js";
8
+ import { TemplateManifest, JsonObject } from "./project-manifest.schemas.js";
9
+ /** Applies the original validated manifest patch while preserving unrelated native JSON fields.
10
+ * @param root - Owned staged project root.
11
+ * @param options - Original explicit creation flags; no provider is acquired.
12
+ * @returns Completion after deterministic bytes and original mode are published.
13
+ */
14
+ export const customizeDeploymentManifestEffect = Effect.fn("ProjectFiles.customizeDeploymentManifest")(function* (root, options) {
15
+ const manifestPath = join(root, "package.json");
16
+ const fs = yield* GeneratorFileSystem;
17
+ const source = yield* fs.readText(manifestPath);
18
+ const parsed = yield* domainTry(() => JSON.parse(source));
19
+ const decoded = yield* Schema.decodeUnknownEffect(TemplateManifest)(parsed).pipe(Effect.mapError(domainError));
20
+ const original = yield* Schema.decodeUnknownEffect(JsonObject)(parsed).pipe(Effect.mapError(domainError));
21
+ const manifest = {
22
+ ...original,
23
+ ...decoded,
24
+ dependencies: { ...decoded.dependencies },
25
+ scripts: { ...decoded.scripts },
26
+ };
27
+ const version = manifest.dependencies["@relkit/app"];
28
+ if (version === undefined)
29
+ return yield* Effect.fail(domainError(new GenerateProjectError("RELKIT_CREATE_TEMPLATE_INVALID", "Template has no @relkit/app dependency.")));
30
+ if (options.cloud === "aws")
31
+ manifest.dependencies["@relkit/aws"] = version;
32
+ if (options.deploy === "pulumi")
33
+ manifest.dependencies["@relkit/pulumi"] = version;
34
+ if (options.jobs !== undefined) {
35
+ manifest.dependencies["@relkit/docker"] = version;
36
+ manifest.dependencies["@relkit/local"] = version;
37
+ manifest.dependencies[`@relkit/${options.jobs.replace(/-docker$/u, "")}`] = version;
38
+ }
39
+ if (options.cloud === "aws" && options.deploy === "pulumi") {
40
+ manifest.scripts["deploy:preview"] = "relkit deploy preview";
41
+ manifest.scripts.deploy = "relkit deploy up";
42
+ }
43
+ manifest.scripts = sorted(manifest.scripts);
44
+ manifest.dependencies = sorted(manifest.dependencies);
45
+ yield* fs.write(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`);
46
+ yield* fs.chmod(manifestPath, 0o644);
47
+ }, (effect) => observeExecution("generator", "generation.deploymentManifest", effect));
48
+ /**
49
+ * Sorts owned manifest fields deterministically.
50
+ * @param values - Ordered declarations or argument values.
51
+ * @returns A new manifest string record sorted by key.
52
+ */
53
+ function sorted(values) {
54
+ return Object.fromEntries(Object.entries(values).sort(([left], [right]) => left.localeCompare(right)));
55
+ }
56
+ //# sourceMappingURL=generate-deployment-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-deployment-manifest.js","sourceRoot":"","sources":["../src/generate-deployment-manifest.ts"],"names":[],"mappings":"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"}