@mcp-rune/create 0.11.0

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 (242) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +184 -0
  3. package/bin/rune.js +7 -0
  4. package/dist/commands/add-model.d.ts +5 -0
  5. package/dist/commands/add-model.d.ts.map +1 -0
  6. package/dist/commands/add-model.js +131 -0
  7. package/dist/commands/add-model.js.map +1 -0
  8. package/dist/commands/db-up.d.ts +2 -0
  9. package/dist/commands/db-up.d.ts.map +1 -0
  10. package/dist/commands/db-up.js +29 -0
  11. package/dist/commands/db-up.js.map +1 -0
  12. package/dist/commands/doctor/env-checks.d.ts +4 -0
  13. package/dist/commands/doctor/env-checks.d.ts.map +1 -0
  14. package/dist/commands/doctor/env-checks.js +88 -0
  15. package/dist/commands/doctor/env-checks.js.map +1 -0
  16. package/dist/commands/doctor/index.d.ts +21 -0
  17. package/dist/commands/doctor/index.d.ts.map +1 -0
  18. package/dist/commands/doctor/index.js +44 -0
  19. package/dist/commands/doctor/index.js.map +1 -0
  20. package/dist/commands/doctor/project-validation.d.ts +5 -0
  21. package/dist/commands/doctor/project-validation.d.ts.map +1 -0
  22. package/dist/commands/doctor/project-validation.js +166 -0
  23. package/dist/commands/doctor/project-validation.js.map +1 -0
  24. package/dist/commands/doctor.d.ts +7 -0
  25. package/dist/commands/doctor.d.ts.map +1 -0
  26. package/dist/commands/doctor.js +306 -0
  27. package/dist/commands/doctor.js.map +1 -0
  28. package/dist/commands/inspect.d.ts +16 -0
  29. package/dist/commands/inspect.d.ts.map +1 -0
  30. package/dist/commands/inspect.js +66 -0
  31. package/dist/commands/inspect.js.map +1 -0
  32. package/dist/commands/new/actions/apps.d.ts +5 -0
  33. package/dist/commands/new/actions/apps.d.ts.map +1 -0
  34. package/dist/commands/new/actions/apps.js +51 -0
  35. package/dist/commands/new/actions/apps.js.map +1 -0
  36. package/dist/commands/new/actions/architecture.d.ts +5 -0
  37. package/dist/commands/new/actions/architecture.d.ts.map +1 -0
  38. package/dist/commands/new/actions/architecture.js +45 -0
  39. package/dist/commands/new/actions/architecture.js.map +1 -0
  40. package/dist/commands/new/actions/auth.d.ts +5 -0
  41. package/dist/commands/new/actions/auth.d.ts.map +1 -0
  42. package/dist/commands/new/actions/auth.js +30 -0
  43. package/dist/commands/new/actions/auth.js.map +1 -0
  44. package/dist/commands/new/actions/database.d.ts +5 -0
  45. package/dist/commands/new/actions/database.d.ts.map +1 -0
  46. package/dist/commands/new/actions/database.js +60 -0
  47. package/dist/commands/new/actions/database.js.map +1 -0
  48. package/dist/commands/new/actions/fetch-template.d.ts +5 -0
  49. package/dist/commands/new/actions/fetch-template.d.ts.map +1 -0
  50. package/dist/commands/new/actions/fetch-template.js +22 -0
  51. package/dist/commands/new/actions/fetch-template.js.map +1 -0
  52. package/dist/commands/new/actions/intro.d.ts +5 -0
  53. package/dist/commands/new/actions/intro.d.ts.map +1 -0
  54. package/dist/commands/new/actions/intro.js +7 -0
  55. package/dist/commands/new/actions/intro.js.map +1 -0
  56. package/dist/commands/new/actions/layers.d.ts +5 -0
  57. package/dist/commands/new/actions/layers.d.ts.map +1 -0
  58. package/dist/commands/new/actions/layers.js +38 -0
  59. package/dist/commands/new/actions/layers.js.map +1 -0
  60. package/dist/commands/new/actions/models.d.ts +5 -0
  61. package/dist/commands/new/actions/models.d.ts.map +1 -0
  62. package/dist/commands/new/actions/models.js +18 -0
  63. package/dist/commands/new/actions/models.js.map +1 -0
  64. package/dist/commands/new/actions/next-steps.d.ts +5 -0
  65. package/dist/commands/new/actions/next-steps.d.ts.map +1 -0
  66. package/dist/commands/new/actions/next-steps.js +38 -0
  67. package/dist/commands/new/actions/next-steps.js.map +1 -0
  68. package/dist/commands/new/actions/observability.d.ts +5 -0
  69. package/dist/commands/new/actions/observability.d.ts.map +1 -0
  70. package/dist/commands/new/actions/observability.js +45 -0
  71. package/dist/commands/new/actions/observability.js.map +1 -0
  72. package/dist/commands/new/actions/post-scaffold.d.ts +5 -0
  73. package/dist/commands/new/actions/post-scaffold.d.ts.map +1 -0
  74. package/dist/commands/new/actions/post-scaffold.js +81 -0
  75. package/dist/commands/new/actions/post-scaffold.js.map +1 -0
  76. package/dist/commands/new/actions/preset.d.ts +5 -0
  77. package/dist/commands/new/actions/preset.d.ts.map +1 -0
  78. package/dist/commands/new/actions/preset.js +23 -0
  79. package/dist/commands/new/actions/preset.js.map +1 -0
  80. package/dist/commands/new/actions/prompts.d.ts +5 -0
  81. package/dist/commands/new/actions/prompts.d.ts.map +1 -0
  82. package/dist/commands/new/actions/prompts.js +33 -0
  83. package/dist/commands/new/actions/prompts.js.map +1 -0
  84. package/dist/commands/new/actions/render.d.ts +5 -0
  85. package/dist/commands/new/actions/render.d.ts.map +1 -0
  86. package/dist/commands/new/actions/render.js +35 -0
  87. package/dist/commands/new/actions/render.js.map +1 -0
  88. package/dist/commands/new/actions/scaffold-header.d.ts +5 -0
  89. package/dist/commands/new/actions/scaffold-header.d.ts.map +1 -0
  90. package/dist/commands/new/actions/scaffold-header.js +19 -0
  91. package/dist/commands/new/actions/scaffold-header.js.map +1 -0
  92. package/dist/commands/new/actions/scaffold-mode.d.ts +5 -0
  93. package/dist/commands/new/actions/scaffold-mode.d.ts.map +1 -0
  94. package/dist/commands/new/actions/scaffold-mode.js +49 -0
  95. package/dist/commands/new/actions/scaffold-mode.js.map +1 -0
  96. package/dist/commands/new/actions/summary.d.ts +5 -0
  97. package/dist/commands/new/actions/summary.d.ts.map +1 -0
  98. package/dist/commands/new/actions/summary.js +71 -0
  99. package/dist/commands/new/actions/summary.js.map +1 -0
  100. package/dist/commands/new/actions/toggles.d.ts +5 -0
  101. package/dist/commands/new/actions/toggles.d.ts.map +1 -0
  102. package/dist/commands/new/actions/toggles.js +25 -0
  103. package/dist/commands/new/actions/toggles.js.map +1 -0
  104. package/dist/commands/new/actions/tools.d.ts +5 -0
  105. package/dist/commands/new/actions/tools.d.ts.map +1 -0
  106. package/dist/commands/new/actions/tools.js +36 -0
  107. package/dist/commands/new/actions/tools.js.map +1 -0
  108. package/dist/commands/new/actions/transport.d.ts +5 -0
  109. package/dist/commands/new/actions/transport.d.ts.map +1 -0
  110. package/dist/commands/new/actions/transport.js +24 -0
  111. package/dist/commands/new/actions/transport.js.map +1 -0
  112. package/dist/commands/new/context.d.ts +76 -0
  113. package/dist/commands/new/context.d.ts.map +1 -0
  114. package/dist/commands/new/context.js +134 -0
  115. package/dist/commands/new/context.js.map +1 -0
  116. package/dist/commands/new/index.d.ts +5 -0
  117. package/dist/commands/new/index.d.ts.map +1 -0
  118. package/dist/commands/new/index.js +18 -0
  119. package/dist/commands/new/index.js.map +1 -0
  120. package/dist/commands/new/pipeline.d.ts +12 -0
  121. package/dist/commands/new/pipeline.d.ts.map +1 -0
  122. package/dist/commands/new/pipeline.js +67 -0
  123. package/dist/commands/new/pipeline.js.map +1 -0
  124. package/dist/commands/new/presets.d.ts +40 -0
  125. package/dist/commands/new/presets.d.ts.map +1 -0
  126. package/dist/commands/new/presets.js +91 -0
  127. package/dist/commands/new/presets.js.map +1 -0
  128. package/dist/commands/new.d.ts +24 -0
  129. package/dist/commands/new.d.ts.map +1 -0
  130. package/dist/commands/new.js +162 -0
  131. package/dist/commands/new.js.map +1 -0
  132. package/dist/commands/post-scaffold.d.ts +6 -0
  133. package/dist/commands/post-scaffold.d.ts.map +1 -0
  134. package/dist/commands/post-scaffold.js +24 -0
  135. package/dist/commands/post-scaffold.js.map +1 -0
  136. package/dist/core/cancel.d.ts +3 -0
  137. package/dist/core/cancel.d.ts.map +1 -0
  138. package/dist/core/cancel.js +17 -0
  139. package/dist/core/cancel.js.map +1 -0
  140. package/dist/core/color.d.ts +12 -0
  141. package/dist/core/color.d.ts.map +1 -0
  142. package/dist/core/color.js +14 -0
  143. package/dist/core/color.js.map +1 -0
  144. package/dist/core/db-setup.d.ts +13 -0
  145. package/dist/core/db-setup.d.ts.map +1 -0
  146. package/dist/core/db-setup.js +63 -0
  147. package/dist/core/db-setup.js.map +1 -0
  148. package/dist/core/fs-utils.d.ts +4 -0
  149. package/dist/core/fs-utils.d.ts.map +1 -0
  150. package/dist/core/fs-utils.js +31 -0
  151. package/dist/core/fs-utils.js.map +1 -0
  152. package/dist/core/output.d.ts +19 -0
  153. package/dist/core/output.d.ts.map +1 -0
  154. package/dist/core/output.js +42 -0
  155. package/dist/core/output.js.map +1 -0
  156. package/dist/core/prompts.d.ts +2 -0
  157. package/dist/core/prompts.d.ts.map +1 -0
  158. package/dist/core/prompts.js +2 -0
  159. package/dist/core/prompts.js.map +1 -0
  160. package/dist/core/tasks.d.ts +11 -0
  161. package/dist/core/tasks.d.ts.map +1 -0
  162. package/dist/core/tasks.js +28 -0
  163. package/dist/core/tasks.js.map +1 -0
  164. package/dist/data/mascot.d.ts +13 -0
  165. package/dist/data/mascot.d.ts.map +1 -0
  166. package/dist/data/mascot.js +80 -0
  167. package/dist/data/mascot.js.map +1 -0
  168. package/dist/index.d.ts +4 -0
  169. package/dist/index.d.ts.map +1 -0
  170. package/dist/index.js +68 -0
  171. package/dist/index.js.map +1 -0
  172. package/dist/render/copy-tree.d.ts +5 -0
  173. package/dist/render/copy-tree.d.ts.map +1 -0
  174. package/dist/render/copy-tree.js +146 -0
  175. package/dist/render/copy-tree.js.map +1 -0
  176. package/dist/render/fetch-template.d.ts +9 -0
  177. package/dist/render/fetch-template.d.ts.map +1 -0
  178. package/dist/render/fetch-template.js +113 -0
  179. package/dist/render/fetch-template.js.map +1 -0
  180. package/dist/render/model-gen.d.ts +3 -0
  181. package/dist/render/model-gen.d.ts.map +1 -0
  182. package/dist/render/model-gen.js +23 -0
  183. package/dist/render/model-gen.js.map +1 -0
  184. package/dist/templates/registry.d.ts +14 -0
  185. package/dist/templates/registry.d.ts.map +1 -0
  186. package/dist/templates/registry.js +34 -0
  187. package/dist/templates/registry.js.map +1 -0
  188. package/dist/types.d.ts +87 -0
  189. package/dist/types.d.ts.map +1 -0
  190. package/dist/types.js +8 -0
  191. package/dist/types.js.map +1 -0
  192. package/dist/wizard/presets.d.ts +35 -0
  193. package/dist/wizard/presets.d.ts.map +1 -0
  194. package/dist/wizard/presets.js +67 -0
  195. package/dist/wizard/presets.js.map +1 -0
  196. package/dist/wizard/questions.d.ts +11 -0
  197. package/dist/wizard/questions.d.ts.map +1 -0
  198. package/dist/wizard/questions.js +154 -0
  199. package/dist/wizard/questions.js.map +1 -0
  200. package/package.json +52 -0
  201. package/templates/advanced/.env.example.ejs +82 -0
  202. package/templates/advanced/.node-version +1 -0
  203. package/templates/advanced/README.md.ejs +76 -0
  204. package/templates/advanced/__only_if_hasHttp__/src/servers/remote.ts.ejs +36 -0
  205. package/templates/advanced/__only_if_hasStdio__/src/servers/local.ts +30 -0
  206. package/templates/advanced/__only_if_useAxiosClient__/src/api/axios-client.ts +74 -0
  207. package/templates/advanced/__only_if_useCustomApiClient__/src/api/custom-client.ts +48 -0
  208. package/templates/advanced/__only_if_useCustomConvention__/src/conventions/custom-convention.ts +64 -0
  209. package/templates/advanced/__only_if_useCustomSearch__/src/api-extensions/custom-search-adapter.ts +30 -0
  210. package/templates/advanced/__only_if_useFetchClient__/src/api/fetch-client.ts +111 -0
  211. package/templates/advanced/__only_if_useFlatRestConvention__/src/conventions/flat-rest-convention.ts +85 -0
  212. package/templates/advanced/__only_if_usePinoLogger__/src/observability/logger.ts +62 -0
  213. package/templates/advanced/__only_if_useRansackSearch__/src/api-extensions/ransack-search-adapter.ts +41 -0
  214. package/templates/advanced/__only_if_useSharedModelAttrs__/src/models/app-base-model.ts +22 -0
  215. package/templates/advanced/__only_if_useVectorStorage__/src/storage/vector-store.ts +21 -0
  216. package/templates/advanced/__only_if_withAnalysis__/docker-compose.yml +18 -0
  217. package/templates/advanced/__only_if_withDomain__/src/domain/registry.ts +25 -0
  218. package/templates/advanced/config/schema.ts.ejs +126 -0
  219. package/templates/advanced/package.json.ejs +50 -0
  220. package/templates/advanced/src/config.ts.ejs +207 -0
  221. package/templates/advanced/src/db.ts.ejs +35 -0
  222. package/templates/advanced/src/models/_model_.ts.ejs +25 -0
  223. package/templates/advanced/src/models/index.ts.ejs +13 -0
  224. package/templates/advanced/src/profiles.ts +44 -0
  225. package/templates/advanced/src/prompts/_model_-prompt.ts.ejs +27 -0
  226. package/templates/advanced/src/prompts/index.ts.ejs +18 -0
  227. package/templates/advanced/src/scripts/db-migrate.ts +90 -0
  228. package/templates/advanced/src/tools/index.ts.ejs +133 -0
  229. package/templates/advanced/test/smoke.test.ts +16 -0
  230. package/templates/advanced/tsconfig.json +14 -0
  231. package/templates/simple/.env.example +3 -0
  232. package/templates/simple/.node-version +1 -0
  233. package/templates/simple/README.md +40 -0
  234. package/templates/simple/package.json.ejs +27 -0
  235. package/templates/simple/src/config.ts.ejs +56 -0
  236. package/templates/simple/src/models/_model_.ts.ejs +25 -0
  237. package/templates/simple/src/models/index.ts.ejs +13 -0
  238. package/templates/simple/src/prompts/_model_-prompt.ts.ejs +27 -0
  239. package/templates/simple/src/prompts/index.ts.ejs +18 -0
  240. package/templates/simple/src/server.ts +12 -0
  241. package/templates/simple/test/smoke.test.ts +16 -0
  242. package/templates/simple/tsconfig.json +14 -0
@@ -0,0 +1,51 @@
1
+ import { bailIfCancel } from '../../../core/cancel.js';
2
+ import { select } from '../../../core/prompts.js';
3
+ export async function apps(ctx) {
4
+ if (ctx.scaffoldMode !== 'preset')
5
+ return;
6
+ if (ctx.preset !== 'advanced')
7
+ return;
8
+ if (ctx.yes)
9
+ return;
10
+ if (ctx.apiConvention === undefined) {
11
+ const value = await select({
12
+ message: 'API convention?',
13
+ options: [
14
+ { value: 'jsonapi', label: 'jsonapi — JSON:API wire format' },
15
+ { value: 'rest-flat', label: 'rest-flat — flat REST, no envelope' },
16
+ { value: 'custom', label: 'custom — scaffold a BaseConvention stub' },
17
+ ],
18
+ initialValue: 'jsonapi',
19
+ });
20
+ bailIfCancel(value);
21
+ ctx.apiConvention = value;
22
+ }
23
+ if (ctx.apiClient === undefined) {
24
+ const value = await select({
25
+ message: 'API client?',
26
+ options: [
27
+ { value: 'none', label: 'none — placeholder' },
28
+ { value: 'fetch', label: 'fetch — native fetch starter' },
29
+ { value: 'axios', label: 'axios — ApiClient over axios' },
30
+ { value: 'custom', label: 'custom — scaffold an ApiClient stub' },
31
+ ],
32
+ initialValue: 'none',
33
+ });
34
+ bailIfCancel(value);
35
+ ctx.apiClient = value;
36
+ }
37
+ if (ctx.searchAdapter === undefined) {
38
+ const value = await select({
39
+ message: 'Search adapter?',
40
+ options: [
41
+ { value: 'none', label: 'none — framework default' },
42
+ { value: 'ransack', label: 'ransack — Rails Ransack q[...] starter' },
43
+ { value: 'custom', label: 'custom — scaffold a SearchAdapter stub' },
44
+ ],
45
+ initialValue: 'none',
46
+ });
47
+ bailIfCancel(value);
48
+ ctx.searchAdapter = value;
49
+ }
50
+ }
51
+ //# sourceMappingURL=apps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps.js","sourceRoot":"","sources":["../../../../src/commands/new/actions/apps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAalD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,GAAQ;IACjC,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO;IAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO;IACtC,IAAI,GAAG,CAAC,GAAG;QAAE,OAAO;IAEpB,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAgB;YACxC,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,gCAAgC,EAAE;gBAC7D,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,oCAAoC,EAAE;gBACnE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,yCAAyC,EAAE;aACtE;YACD,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAkB;YAC1C,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE;gBAC9C,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,8BAA8B,EAAE;gBACzD,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,8BAA8B,EAAE;gBACzD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,qCAAqC,EAAE;aAClE;YACD,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAsB;YAC9C,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,EAAE;gBACpD,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,wCAAwC,EAAE;gBACrE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,wCAAwC,EAAE;aACrE;YACD,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { NewContext } from '../context.js';
2
+ type Ctx = Pick<NewContext, 'scaffoldMode' | 'preset' | 'apiConvention' | 'apiClient' | 'searchAdapter' | 'yes'>;
3
+ export declare function architecture(ctx: Ctx): Promise<void>;
4
+ export {};
5
+ //# sourceMappingURL=architecture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architecture.d.ts","sourceRoot":"","sources":["../../../../src/commands/new/actions/architecture.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,GAAG,GAAG,IAAI,CACb,UAAU,EACV,cAAc,GAAG,QAAQ,GAAG,eAAe,GAAG,WAAW,GAAG,eAAe,GAAG,KAAK,CACpF,CAAC;AAEF,wBAAsB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C1D"}
@@ -0,0 +1,45 @@
1
+ import { bailIfCancel } from '../../../core/cancel.js';
2
+ import { select } from '../../../core/prompts.js';
3
+ export async function architecture(ctx) {
4
+ if (ctx.scaffoldMode !== 'preset')
5
+ return;
6
+ if (ctx.preset !== 'advanced')
7
+ return;
8
+ if (ctx.apiConvention === undefined && !ctx.yes) {
9
+ const value = await select({
10
+ message: 'API convention?',
11
+ options: [
12
+ { value: 'jsonapi', label: 'jsonapi — framework default (JSON:API wire format)' },
13
+ { value: 'rest-flat', label: 'rest-flat — starter (flat REST, no envelope)' },
14
+ ],
15
+ initialValue: 'jsonapi',
16
+ });
17
+ bailIfCancel(value);
18
+ ctx.apiConvention = value;
19
+ }
20
+ if (ctx.apiClient === undefined && !ctx.yes) {
21
+ const value = await select({
22
+ message: 'API client?',
23
+ options: [
24
+ { value: 'none', label: 'none — leave a placeholder for you to fill in' },
25
+ { value: 'fetch', label: 'fetch — starter implementation using native fetch' },
26
+ ],
27
+ initialValue: 'none',
28
+ });
29
+ bailIfCancel(value);
30
+ ctx.apiClient = value;
31
+ }
32
+ if (ctx.searchAdapter === undefined && !ctx.yes) {
33
+ const value = await select({
34
+ message: 'Search adapter?',
35
+ options: [
36
+ { value: 'none', label: 'none — framework default (flat filter spread)' },
37
+ { value: 'ransack', label: 'ransack — starter for Rails Ransack q[...] syntax' },
38
+ ],
39
+ initialValue: 'none',
40
+ });
41
+ bailIfCancel(value);
42
+ ctx.searchAdapter = value;
43
+ }
44
+ }
45
+ //# sourceMappingURL=architecture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../../../src/commands/new/actions/architecture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAalD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAQ;IACzC,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO;IAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO;IAEtC,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAgB;YACxC,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,oDAAoD,EAAE;gBACjF,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,8CAA8C,EAAE;aAC9E;YACD,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAkB;YAC1C,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,+CAA+C,EAAE;gBACzE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,mDAAmD,EAAE;aAC/E;YACD,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAsB;YAC9C,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,+CAA+C,EAAE;gBACzE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,mDAAmD,EAAE;aACjF;YACD,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { NewContext } from '../context.js';
2
+ type Ctx = Pick<NewContext, 'scaffoldMode' | 'preset' | 'transport' | 'serverAuth' | 'yes'>;
3
+ export declare function auth(ctx: Ctx): Promise<void>;
4
+ export {};
5
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/commands/new/actions/auth.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,KAAK,CAAC,CAAC;AAE5F,wBAAsB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBlD"}
@@ -0,0 +1,30 @@
1
+ import { bailIfCancel } from '../../../core/cancel.js';
2
+ import { select } from '../../../core/prompts.js';
3
+ export async function auth(ctx) {
4
+ if (ctx.scaffoldMode !== 'preset')
5
+ return;
6
+ if (ctx.preset !== 'advanced')
7
+ return;
8
+ if (ctx.serverAuth !== undefined)
9
+ return;
10
+ const transportHasHttp = ctx.transport === 'http' || ctx.transport === 'both';
11
+ if (!transportHasHttp) {
12
+ // Mirror existing fallback: keep the default 'oauth' so resolveAnswers receives it
13
+ // (legacy parity with src/wizard/questions.ts when transport is stdio-only).
14
+ ctx.serverAuth = 'oauth';
15
+ return;
16
+ }
17
+ if (ctx.yes)
18
+ return;
19
+ const value = await select({
20
+ message: 'HTTP server auth?',
21
+ options: [
22
+ { value: 'oauth', label: 'oauth — OAuth2 discovery + PKCE (recommended)' },
23
+ { value: 'static-token', label: 'static-token — single ACCESS_TOKEN bearer (simpler)' },
24
+ ],
25
+ initialValue: 'oauth',
26
+ });
27
+ bailIfCancel(value);
28
+ ctx.serverAuth = value;
29
+ }
30
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/commands/new/actions/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAMlD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,GAAQ;IACjC,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO;IAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO;IACtC,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO;IAEzC,MAAM,gBAAgB,GAAG,GAAG,CAAC,SAAS,KAAK,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC;IAC9E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,mFAAmF;QACnF,6EAA6E;QAC7E,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC;QACzB,OAAO;IACT,CAAC;IAED,IAAI,GAAG,CAAC,GAAG;QAAE,OAAO;IAEpB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAa;QACrC,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,+CAA+C,EAAE;YAC1E,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,qDAAqD,EAAE;SACxF;QACD,YAAY,EAAE,OAAO;KACtB,CAAC,CAAC;IACH,YAAY,CAAC,KAAK,CAAC,CAAC;IACpB,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;AACzB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { NewContext } from '../context.js';
2
+ type Ctx = Pick<NewContext, 'scaffoldMode' | 'preset' | 'withAnalysis' | 'dbSetup' | 'databaseUrl' | 'projectName' | 'yes'>;
3
+ export declare function database(ctx: Ctx): Promise<void>;
4
+ export {};
5
+ //# sourceMappingURL=database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/commands/new/actions/database.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,GAAG,GAAG,IAAI,CACb,UAAU,EACV,cAAc,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,KAAK,CAC/F,CAAC;AAEF,wBAAsB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCtD"}
@@ -0,0 +1,60 @@
1
+ import { bailIfCancel } from '../../../core/cancel.js';
2
+ import { select, text } from '../../../core/prompts.js';
3
+ export async function database(ctx) {
4
+ if (ctx.scaffoldMode !== 'preset')
5
+ return;
6
+ if (ctx.preset !== 'advanced')
7
+ return;
8
+ if (!ctx.withAnalysis)
9
+ return;
10
+ if (ctx.dbSetup !== undefined) {
11
+ if (ctx.dbSetup === 'existing-url' && ctx.databaseUrl === undefined && !ctx.yes) {
12
+ ctx.databaseUrl = await promptUrl();
13
+ }
14
+ return;
15
+ }
16
+ if (ctx.yes) {
17
+ ctx.dbSetup = 'docker';
18
+ return;
19
+ }
20
+ const choice = await select({
21
+ message: 'Database setup?',
22
+ options: [
23
+ {
24
+ value: 'docker',
25
+ label: 'docker — start the bundled docker-compose pgvector (recommended)',
26
+ },
27
+ {
28
+ value: 'existing-url',
29
+ label: 'existing — use a DATABASE_URL I provide',
30
+ },
31
+ {
32
+ value: 'skip',
33
+ label: 'skip — configure later (rune db up)',
34
+ },
35
+ ],
36
+ initialValue: 'docker',
37
+ });
38
+ bailIfCancel(choice);
39
+ ctx.dbSetup = choice;
40
+ if (choice === 'existing-url') {
41
+ ctx.databaseUrl = await promptUrl();
42
+ }
43
+ }
44
+ async function promptUrl() {
45
+ const url = await text({
46
+ message: 'DATABASE_URL?',
47
+ placeholder: 'postgres://user:pass@host:5432/dbname',
48
+ validate(value) {
49
+ if (!value)
50
+ return 'required';
51
+ if (!value.startsWith('postgres://') && !value.startsWith('postgresql://')) {
52
+ return 'must start with postgres:// or postgresql://';
53
+ }
54
+ return undefined;
55
+ },
56
+ });
57
+ bailIfCancel(url);
58
+ return url;
59
+ }
60
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../../../src/commands/new/actions/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AASxD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAQ;IACrC,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO;IAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO;IACtC,IAAI,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO;IAE9B,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,GAAG,CAAC,OAAO,KAAK,cAAc,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YAChF,GAAG,CAAC,WAAW,GAAG,MAAM,SAAS,EAAE,CAAC;QACtC,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAgB;QACzC,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,kEAAkE;aAC1E;YACD;gBACE,KAAK,EAAE,cAAc;gBACrB,KAAK,EAAE,yCAAyC;aACjD;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,qCAAqC;aAC7C;SACF;QACD,YAAY,EAAE,QAAQ;KACvB,CAAC,CAAC;IACH,YAAY,CAAC,MAAM,CAAC,CAAC;IACrB,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC;IAErB,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9B,GAAG,CAAC,WAAW,GAAG,MAAM,SAAS,EAAE,CAAC;IACtC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;QACrB,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,uCAAuC;QACpD,QAAQ,CAAC,KAAK;YACZ,IAAI,CAAC,KAAK;gBAAE,OAAO,UAAU,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC3E,OAAO,8CAA8C,CAAC;YACxD,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IACH,YAAY,CAAC,GAAG,CAAC,CAAC;IAClB,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { NewContext } from '../context.js';
2
+ type Ctx = Pick<NewContext, 'scaffoldMode' | 'projectName' | 'template' | 'offlineTemplate' | 'targetDir' | 'mcpRuneVersion' | 'tasks'>;
3
+ export declare function fetchTemplate(ctx: Ctx): Promise<void>;
4
+ export {};
5
+ //# sourceMappingURL=fetch-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-template.d.ts","sourceRoot":"","sources":["../../../../src/commands/new/actions/fetch-template.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,GAAG,GAAG,IAAI,CACb,UAAU,EACR,cAAc,GACd,aAAa,GACb,UAAU,GACV,iBAAiB,GACjB,WAAW,GACX,gBAAgB,GAChB,OAAO,CACV,CAAC;AAEF,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB3D"}
@@ -0,0 +1,22 @@
1
+ import { applyTemplateOverrides, copyOfflineTemplate, fetchTemplate as fetchRemoteTemplate, } from '../../../render/fetch-template.js';
2
+ export async function fetchTemplate(ctx) {
3
+ if (ctx.scaffoldMode !== 'template' && ctx.scaffoldMode !== 'offlineTemplate')
4
+ return;
5
+ ctx.tasks.push({
6
+ start: 'Resolving template',
7
+ end: `Wrote files to ${ctx.targetDir}`,
8
+ async while(c) {
9
+ if (c.scaffoldMode === 'template') {
10
+ await fetchRemoteTemplate(c.template, c.targetDir);
11
+ }
12
+ else {
13
+ await copyOfflineTemplate(c.offlineTemplate, c.targetDir);
14
+ }
15
+ await applyTemplateOverrides(c.targetDir, {
16
+ projectName: c.projectName,
17
+ mcpRuneVersionOverride: c.mcpRuneVersion,
18
+ });
19
+ },
20
+ });
21
+ }
22
+ //# sourceMappingURL=fetch-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-template.js","sourceRoot":"","sources":["../../../../src/commands/new/actions/fetch-template.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,aAAa,IAAI,mBAAmB,GACrC,MAAM,mCAAmC,CAAC;AAc3C,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAQ;IAC1C,IAAI,GAAG,CAAC,YAAY,KAAK,UAAU,IAAI,GAAG,CAAC,YAAY,KAAK,iBAAiB;QAAE,OAAO;IAEtF,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACb,KAAK,EAAE,oBAAoB;QAC3B,GAAG,EAAE,kBAAkB,GAAG,CAAC,SAAS,EAAE;QACtC,KAAK,CAAC,KAAK,CAAC,CAAC;YACX,IAAI,CAAC,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,mBAAmB,CAAC,CAAC,CAAC,QAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,MAAM,mBAAmB,CAAC,CAAC,CAAC,eAAgB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM,sBAAsB,CAAC,CAAC,CAAC,SAAS,EAAE;gBACxC,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,sBAAsB,EAAE,CAAC,CAAC,cAAc;aACzC,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { NewContext } from '../context.js';
2
+ type Ctx = Pick<NewContext, 'skipMascot' | 'mascot' | 'cliVersion'>;
3
+ export declare function intro(ctx: Ctx): Promise<void>;
4
+ export {};
5
+ //# sourceMappingURL=intro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intro.d.ts","sourceRoot":"","sources":["../../../../src/commands/new/actions/intro.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC;AAEpE,wBAAsB,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnD"}
@@ -0,0 +1,7 @@
1
+ import { banner } from '../../../core/output.js';
2
+ export async function intro(ctx) {
3
+ if (ctx.skipMascot)
4
+ return;
5
+ banner({ version: ctx.cliVersion, charm: ctx.mascot.charm, welcome: ctx.mascot.welcome });
6
+ }
7
+ //# sourceMappingURL=intro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intro.js","sourceRoot":"","sources":["../../../../src/commands/new/actions/intro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAKjD,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,GAAQ;IAClC,IAAI,GAAG,CAAC,UAAU;QAAE,OAAO;IAC3B,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;AAC5F,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { NewContext } from '../context.js';
2
+ type Ctx = Pick<NewContext, 'scaffoldMode' | 'preset' | 'vectorStorage' | 'sharedModelAttrs' | 'withAnalysis' | 'toolClasses' | 'yes'>;
3
+ export declare function layers(ctx: Ctx): Promise<void>;
4
+ export {};
5
+ //# sourceMappingURL=layers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.d.ts","sourceRoot":"","sources":["../../../../src/commands/new/actions/layers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,GAAG,GAAG,IAAI,CACb,UAAU,EACR,cAAc,GACd,QAAQ,GACR,eAAe,GACf,kBAAkB,GAClB,cAAc,GACd,aAAa,GACb,KAAK,CACR,CAAC;AAEF,wBAAsB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAkCpD"}
@@ -0,0 +1,38 @@
1
+ import { bailIfCancel } from '../../../core/cancel.js';
2
+ import { confirm } from '../../../core/prompts.js';
3
+ export async function layers(ctx) {
4
+ if (ctx.scaffoldMode !== 'preset')
5
+ return;
6
+ if (ctx.preset !== 'advanced')
7
+ return;
8
+ if (ctx.yes)
9
+ return;
10
+ if (ctx.vectorStorage === undefined) {
11
+ const value = await confirm({
12
+ message: 'DataLayer · enable vector storage hook?',
13
+ initialValue: false,
14
+ });
15
+ bailIfCancel(value);
16
+ ctx.vectorStorage = value;
17
+ }
18
+ if (ctx.sharedModelAttrs === undefined) {
19
+ const value = await confirm({
20
+ message: 'ModelLayer · scaffold a shared BaseModel subclass for cross-model attributes?',
21
+ initialValue: false,
22
+ });
23
+ bailIfCancel(value);
24
+ ctx.sharedModelAttrs = value;
25
+ }
26
+ if (ctx.withAnalysis === undefined) {
27
+ const value = await confirm({
28
+ message: 'AnalysisLayer · enable analysis module (docker-compose.yml + pg dep)?',
29
+ initialValue: false,
30
+ });
31
+ bailIfCancel(value);
32
+ ctx.withAnalysis = value;
33
+ if (value && ctx.toolClasses && !ctx.toolClasses.includes('analysis')) {
34
+ ctx.toolClasses = [...ctx.toolClasses, 'analysis'];
35
+ }
36
+ }
37
+ }
38
+ //# sourceMappingURL=layers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layers.js","sourceRoot":"","sources":["../../../../src/commands/new/actions/layers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAcnD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAQ;IACnC,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO;IAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO;IACtC,IAAI,GAAG,CAAC,GAAG;QAAE,OAAO;IAEpB,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;YAC1B,OAAO,EAAE,yCAAyC;YAClD,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,GAAG,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;YAC1B,OAAO,EAAE,+EAA+E;YACxF,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC;YAC1B,OAAO,EAAE,uEAAuE;YAChF,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,KAAK,IAAI,GAAG,CAAC,WAAW,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,WAAW,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { NewContext } from '../context.js';
2
+ type Ctx = Pick<NewContext, 'scaffoldMode' | 'modelsRaw' | 'yes'>;
3
+ export declare function models(ctx: Ctx): Promise<void>;
4
+ export {};
5
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../../src/commands/new/actions/models.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,WAAW,GAAG,KAAK,CAAC,CAAC;AAElE,wBAAsB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAYpD"}
@@ -0,0 +1,18 @@
1
+ import { bailIfCancel } from '../../../core/cancel.js';
2
+ import { text } from '../../../core/prompts.js';
3
+ export async function models(ctx) {
4
+ if (ctx.scaffoldMode !== 'preset')
5
+ return;
6
+ if (ctx.modelsRaw !== undefined)
7
+ return;
8
+ if (ctx.yes)
9
+ return; // resolveAnswers parses undefined → []
10
+ const value = await text({
11
+ message: 'Models to scaffold (comma-separated, empty for none)',
12
+ defaultValue: '',
13
+ placeholder: '',
14
+ });
15
+ bailIfCancel(value);
16
+ ctx.modelsRaw = value;
17
+ }
18
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../src/commands/new/actions/models.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAKhD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAQ;IACnC,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO;IAC1C,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO;IACxC,IAAI,GAAG,CAAC,GAAG;QAAE,OAAO,CAAC,uCAAuC;IAE5D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC;QACvB,OAAO,EAAE,sDAAsD;QAC/D,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,EAAE;KAChB,CAAC,CAAC;IACH,YAAY,CAAC,KAAK,CAAC,CAAC;IACpB,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { NewContext } from '../context.js';
2
+ type Ctx = Pick<NewContext, 'scaffoldMode' | 'projectName' | 'install' | 'skipMascot' | 'mascot' | 'dbSetup' | 'withAnalysis'>;
3
+ export declare function nextSteps(ctx: Ctx): Promise<void>;
4
+ export {};
5
+ //# sourceMappingURL=next-steps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next-steps.d.ts","sourceRoot":"","sources":["../../../../src/commands/new/actions/next-steps.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,GAAG,GAAG,IAAI,CACb,UAAU,EACV,cAAc,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,CAClG,CAAC;AAMF,wBAAsB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCvD"}
@@ -0,0 +1,38 @@
1
+ import boxen from 'boxen';
2
+ import terminalLink from 'terminal-link';
3
+ import { accent, muted, strong } from '../../../core/color.js';
4
+ const DOCS_URL = 'https://github.com/mcp-rune/mcp-rune';
5
+ const DB_SETUP_DOCS_URL = 'https://github.com/mcp-rune/mcp-rune/blob/master/docs/guides/11-reference/database-setup.md';
6
+ export async function nextSteps(ctx) {
7
+ const lines = [];
8
+ lines.push(`${muted('▸')} ${accent(`cd ${ctx.projectName}`)}`);
9
+ if (!ctx.install)
10
+ lines.push(`${muted('▸')} ${accent('npm install')}`);
11
+ if (ctx.scaffoldMode === 'template' || ctx.scaffoldMode === 'offlineTemplate') {
12
+ lines.push(`${muted('▸')} ${muted('see the template README for how to run it')}`);
13
+ }
14
+ else {
15
+ if (ctx.dbSetup === 'skip' && ctx.withAnalysis) {
16
+ lines.push(`${muted('▸')} ${accent('rune db up')} ${muted('(configure + migrate database)')}`);
17
+ }
18
+ lines.push(`${muted('▸')} ${accent('npm run start:local')}`);
19
+ lines.push(`${muted('▸')} ${accent('rune inspect')} ${muted('(open MCP Inspector)')}`);
20
+ }
21
+ lines.push('');
22
+ lines.push(`${muted('Docs:')} ${terminalLink('mcp-rune/mcp-rune', DOCS_URL, { fallback: () => DOCS_URL })}`);
23
+ if (ctx.dbSetup === 'skip' && ctx.withAnalysis) {
24
+ lines.push(`${muted('DB setup:')} ${terminalLink('database-setup.md', DB_SETUP_DOCS_URL, { fallback: () => DB_SETUP_DOCS_URL })}`);
25
+ }
26
+ console.log();
27
+ console.log(boxen(lines.join('\n'), {
28
+ title: `${strong('Next steps')}`,
29
+ padding: { top: 0, bottom: 0, left: 1, right: 1 },
30
+ borderStyle: 'round',
31
+ borderColor: 'green',
32
+ }));
33
+ if (!ctx.skipMascot) {
34
+ console.log();
35
+ console.log(` ${muted(ctx.mascot.sigil)} ${ctx.mascot.signoff}`);
36
+ }
37
+ }
38
+ //# sourceMappingURL=next-steps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next-steps.js","sourceRoot":"","sources":["../../../../src/commands/new/actions/next-steps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { NewContext } from '../context.js';
2
+ type Ctx = Pick<NewContext, 'scaffoldMode' | 'preset' | 'logger' | 'errorTracking' | 'tracing' | 'yes'>;
3
+ export declare function observability(ctx: Ctx): Promise<void>;
4
+ export {};
5
+ //# sourceMappingURL=observability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../../../src/commands/new/actions/observability.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,GAAG,GAAG,IAAI,CACb,UAAU,EACV,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,eAAe,GAAG,SAAS,GAAG,KAAK,CAC3E,CAAC;AAEF,wBAAsB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C3D"}
@@ -0,0 +1,45 @@
1
+ import { bailIfCancel } from '../../../core/cancel.js';
2
+ import { select } from '../../../core/prompts.js';
3
+ export async function observability(ctx) {
4
+ if (ctx.scaffoldMode !== 'preset')
5
+ return;
6
+ if (ctx.preset !== 'advanced')
7
+ return;
8
+ if (ctx.logger === undefined && !ctx.yes) {
9
+ const value = await select({
10
+ message: 'Logger?',
11
+ options: [
12
+ { value: 'framework', label: "framework — use mcp-rune's built-in logger" },
13
+ { value: 'pino', label: 'pino — starter wrapper exposing a pino instance' },
14
+ ],
15
+ initialValue: 'framework',
16
+ });
17
+ bailIfCancel(value);
18
+ ctx.logger = value;
19
+ }
20
+ if (ctx.errorTracking === undefined && !ctx.yes) {
21
+ const value = await select({
22
+ message: 'Error tracking?',
23
+ options: [
24
+ { value: 'none', label: 'none — no DSN configured' },
25
+ { value: 'sentry', label: 'sentry — pre-populate SENTRY_DSN in .env.example' },
26
+ ],
27
+ initialValue: 'none',
28
+ });
29
+ bailIfCancel(value);
30
+ ctx.errorTracking = value;
31
+ }
32
+ if (ctx.tracing === undefined && !ctx.yes) {
33
+ const value = await select({
34
+ message: 'Tracing?',
35
+ options: [
36
+ { value: 'none', label: 'none — no tracing backend configured' },
37
+ { value: 'langfuse', label: 'langfuse — pre-populate LANGFUSE_* keys in .env.example' },
38
+ ],
39
+ initialValue: 'none',
40
+ });
41
+ bailIfCancel(value);
42
+ ctx.tracing = value;
43
+ }
44
+ }
45
+ //# sourceMappingURL=observability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.js","sourceRoot":"","sources":["../../../../src/commands/new/actions/observability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAalD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAQ;IAC1C,IAAI,GAAG,CAAC,YAAY,KAAK,QAAQ;QAAE,OAAO;IAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO;IAEtC,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAe;YACvC,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,4CAA4C,EAAE;gBAC3E,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iDAAiD,EAAE;aAC5E;YACD,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAsB;YAC9C,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,EAAE;gBACpD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,kDAAkD,EAAE;aAC/E;YACD,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,aAAa,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAgB;YACxC,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,sCAAsC,EAAE;gBAChE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,yDAAyD,EAAE;aACxF;YACD,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QACH,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { NewContext } from '../context.js';
2
+ type Ctx = Pick<NewContext, 'targetDir' | 'install' | 'git' | 'verbose' | 'tasks' | 'dbSetup' | 'databaseUrl'>;
3
+ export declare function postScaffold(ctx: Ctx): Promise<void>;
4
+ export {};
5
+ //# sourceMappingURL=post-scaffold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-scaffold.d.ts","sourceRoot":"","sources":["../../../../src/commands/new/actions/post-scaffold.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,GAAG,GAAG,IAAI,CACb,UAAU,EACV,WAAW,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAClF,CAAC;AAEF,wBAAsB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CA8E1D"}
@@ -0,0 +1,81 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { execa } from 'execa';
4
+ import { runMigrations, startDockerDb, waitForDbHealthy, writeEnvDatabaseUrl, } from '../../../core/db-setup.js';
5
+ import { notice } from '../../../core/output.js';
6
+ export async function postScaffold(ctx) {
7
+ if (ctx.git) {
8
+ ctx.tasks.push({
9
+ start: 'Initializing git repo',
10
+ end: 'Initialized git repo',
11
+ async while(c) {
12
+ await execa('git', ['init', '--quiet'], { cwd: c.targetDir });
13
+ },
14
+ onError(err) {
15
+ notice(`git init failed: ${err.message}`);
16
+ },
17
+ });
18
+ }
19
+ if (ctx.install) {
20
+ ctx.tasks.push({
21
+ start: 'Installing dependencies',
22
+ end: 'Installed dependencies',
23
+ async while(c) {
24
+ await execa('npm', ['install'], {
25
+ cwd: c.targetDir,
26
+ stdio: c.verbose ? 'inherit' : 'pipe',
27
+ });
28
+ },
29
+ onError(err) {
30
+ notice(`npm install failed: ${err.message}`);
31
+ },
32
+ });
33
+ }
34
+ if (ctx.dbSetup === 'docker') {
35
+ ctx.tasks.push({
36
+ start: 'Starting docker pgvector',
37
+ end: 'Started docker pgvector',
38
+ async while(c) {
39
+ if (!existsSync(resolve(c.targetDir, 'docker-compose.yml'))) {
40
+ throw new Error('docker-compose.yml missing from scaffolded project');
41
+ }
42
+ await startDockerDb(c.targetDir);
43
+ const healthy = await waitForDbHealthy(c.targetDir, 60_000);
44
+ if (!healthy) {
45
+ throw new Error('docker db did not become healthy within 60s — check `docker compose logs db`');
46
+ }
47
+ },
48
+ onError(err) {
49
+ notice(`docker setup failed: ${err.message}`);
50
+ notice('run `rune db up` from the project directory to retry');
51
+ },
52
+ });
53
+ }
54
+ else if (ctx.dbSetup === 'existing-url' && ctx.databaseUrl) {
55
+ const url = ctx.databaseUrl;
56
+ ctx.tasks.push({
57
+ start: 'Writing DATABASE_URL to .env',
58
+ end: 'Wrote DATABASE_URL to .env',
59
+ async while(c) {
60
+ writeEnvDatabaseUrl(c.targetDir, url);
61
+ },
62
+ onError(err) {
63
+ notice(`.env write failed: ${err.message}`);
64
+ },
65
+ });
66
+ }
67
+ if (ctx.dbSetup === 'docker' || ctx.dbSetup === 'existing-url') {
68
+ ctx.tasks.push({
69
+ start: 'Running migrations',
70
+ end: 'Ran migrations',
71
+ async while(c) {
72
+ await runMigrations(c.targetDir, { stdio: c.verbose ? 'inherit' : 'pipe' });
73
+ },
74
+ onError(err) {
75
+ notice(`migrations failed: ${err.message}`);
76
+ notice('run `npm run db:migrate` from the project directory to retry');
77
+ },
78
+ });
79
+ }
80
+ }
81
+ //# sourceMappingURL=post-scaffold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-scaffold.js","sourceRoot":"","sources":["../../../../src/commands/new/actions/post-scaffold.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { NewContext } from '../context.js';
2
+ type Ctx = Pick<NewContext, 'scaffoldMode' | 'preset' | 'yes'>;
3
+ export declare function preset(ctx: Ctx): Promise<void>;
4
+ export {};
5
+ //# sourceMappingURL=preset.d.ts.map