@mesh-tech/mesh-cli 0.35.2 → 0.37.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 (107) hide show
  1. package/assets/docs-preview.css +1599 -0
  2. package/dist/bin/mesh.auth-preflight-JFKL4Y4X.js +48 -0
  3. package/dist/bin/mesh.auth-preflight-JFKL4Y4X.js.map +6 -0
  4. package/dist/bin/mesh.capture-history-A4IAVVIR.js +38 -0
  5. package/dist/bin/mesh.capture-history-A4IAVVIR.js.map +6 -0
  6. package/dist/bin/mesh.chunk-5A5OFSYR.js +187 -0
  7. package/dist/bin/mesh.chunk-5A5OFSYR.js.map +6 -0
  8. package/dist/bin/mesh.chunk-7DMAFUBQ.js +7715 -0
  9. package/dist/bin/mesh.chunk-7DMAFUBQ.js.map +6 -0
  10. package/dist/bin/mesh.chunk-A4DGMGHF.js +303 -0
  11. package/dist/bin/mesh.chunk-A4DGMGHF.js.map +6 -0
  12. package/dist/bin/mesh.chunk-CQ2IC4OP.js +217 -0
  13. package/dist/bin/mesh.chunk-CQ2IC4OP.js.map +6 -0
  14. package/dist/bin/mesh.chunk-F4654EPX.js +383 -0
  15. package/dist/bin/mesh.chunk-F4654EPX.js.map +6 -0
  16. package/dist/bin/mesh.chunk-IQOBTL42.js +60 -0
  17. package/dist/bin/mesh.chunk-IQOBTL42.js.map +6 -0
  18. package/dist/bin/mesh.chunk-J6DVWKRW.js +647 -0
  19. package/dist/bin/mesh.chunk-J6DVWKRW.js.map +6 -0
  20. package/dist/bin/mesh.chunk-JB7FWYSP.js +1751 -0
  21. package/dist/bin/mesh.chunk-JB7FWYSP.js.map +6 -0
  22. package/dist/bin/mesh.chunk-MCBMHWXP.js +837 -0
  23. package/dist/bin/mesh.chunk-MCBMHWXP.js.map +6 -0
  24. package/dist/bin/mesh.chunk-OW5EMVG5.js +507 -0
  25. package/dist/bin/mesh.chunk-OW5EMVG5.js.map +6 -0
  26. package/dist/bin/mesh.chunk-R5VVTXG4.js +10092 -0
  27. package/dist/bin/mesh.chunk-R5VVTXG4.js.map +6 -0
  28. package/dist/bin/mesh.chunk-VKV6Z3UI.js +1146 -0
  29. package/dist/bin/mesh.chunk-VKV6Z3UI.js.map +6 -0
  30. package/dist/bin/mesh.chunk-WFFDF346.js +59 -0
  31. package/dist/bin/mesh.chunk-WFFDF346.js.map +6 -0
  32. package/dist/bin/mesh.chunk-WOJOTUFZ.js +835 -0
  33. package/dist/bin/mesh.chunk-WOJOTUFZ.js.map +6 -0
  34. package/dist/bin/mesh.cli-reference-H3TOPIET.js +158 -0
  35. package/dist/bin/mesh.cli-reference-H3TOPIET.js.map +6 -0
  36. package/dist/bin/mesh.convert-KK6ZP256.js +274 -0
  37. package/dist/bin/mesh.convert-KK6ZP256.js.map +6 -0
  38. package/dist/bin/mesh.create-app-A5F45PWZ.js +39 -0
  39. package/dist/bin/mesh.create-app-A5F45PWZ.js.map +6 -0
  40. package/dist/bin/mesh.dev-token-server-GYDYPXYH.js +61 -0
  41. package/dist/bin/mesh.dev-token-server-GYDYPXYH.js.map +6 -0
  42. package/dist/bin/mesh.js +20 -26414
  43. package/dist/bin/mesh.js.map +3 -3
  44. package/dist/bin/mesh.login-JNHPVMCT.js +91 -0
  45. package/dist/bin/mesh.login-JNHPVMCT.js.map +6 -0
  46. package/dist/bin/mesh.platform-setup-EB64EFRN.js +37 -0
  47. package/dist/bin/mesh.platform-setup-EB64EFRN.js.map +6 -0
  48. package/dist/bin/mesh.preview-3IP34TDO.js +2410 -0
  49. package/dist/bin/mesh.preview-3IP34TDO.js.map +6 -0
  50. package/dist/bin/mesh.program-DWOKHNMQ.js +23 -0
  51. package/dist/bin/mesh.program-DWOKHNMQ.js.map +6 -0
  52. package/dist/bin/mesh.registry-OXF57OQW.js +47 -0
  53. package/dist/bin/mesh.registry-OXF57OQW.js.map +6 -0
  54. package/dist/bin/mesh.registry-identity-2HSGQGJC.js +42 -0
  55. package/dist/bin/mesh.registry-identity-2HSGQGJC.js.map +6 -0
  56. package/dist/bin/mesh.skills-MNDSMBIE.js +23 -0
  57. package/dist/bin/mesh.skills-MNDSMBIE.js.map +6 -0
  58. package/dist/bin/mesh.src-5D5DFSLX.js +1302 -0
  59. package/dist/bin/mesh.src-5D5DFSLX.js.map +6 -0
  60. package/dist/bin/mesh.src-G7TJBLNJ.js +40 -0
  61. package/dist/bin/mesh.src-G7TJBLNJ.js.map +6 -0
  62. package/dist/bin/mesh.stack-EFTFAOCV.js +64 -0
  63. package/dist/bin/mesh.stack-EFTFAOCV.js.map +6 -0
  64. package/dist/bin/mesh.start-ARIIY6CV.js +454 -0
  65. package/dist/bin/mesh.start-ARIIY6CV.js.map +6 -0
  66. package/dist/bin/mesh.wizard-ROAQAGSF.js +500 -0
  67. package/dist/bin/mesh.wizard-ROAQAGSF.js.map +6 -0
  68. package/dist/build-info.json +2 -2
  69. package/dist/src/commands/app-check.d.ts +2 -1
  70. package/dist/src/commands/app-check.js +32 -0
  71. package/dist/src/commands/create-app.d.ts +1 -0
  72. package/dist/src/commands/create-app.js +4 -0
  73. package/dist/src/commands/dev.d.ts +6 -0
  74. package/dist/src/commands/dev.js +152 -3
  75. package/dist/src/commands/docs.js +33 -0
  76. package/dist/src/commands/local/act-as-local.d.ts +5 -0
  77. package/dist/src/commands/local/act-as-local.js +41 -0
  78. package/dist/src/commands/local/auth-provision.d.ts +1 -0
  79. package/dist/src/commands/local/auth-provision.js +1 -0
  80. package/dist/src/commands/local/index.js +4 -0
  81. package/dist/src/commands/local/local-api-key.d.ts +44 -0
  82. package/dist/src/commands/local/local-api-key.js +115 -0
  83. package/dist/src/commands/local/local-spicedb.d.ts +95 -0
  84. package/dist/src/commands/local/local-spicedb.js +304 -0
  85. package/dist/src/commands/local/publish-docs.d.ts +81 -0
  86. package/dist/src/commands/local/publish-docs.js +328 -0
  87. package/dist/src/commands/local/seed-zitadel.js +2 -0
  88. package/dist/src/commands/temporal.js +191 -61
  89. package/dist/src/commands/temporal.js.map +3 -3
  90. package/dist/src/docs/convert.d.ts +35 -0
  91. package/dist/src/docs/convert.js +276 -0
  92. package/dist/src/docs/preview-source.d.ts +13 -0
  93. package/dist/src/docs/preview-source.js +58 -0
  94. package/dist/src/docs/preview.d.ts +32 -0
  95. package/dist/src/docs/preview.js +279 -0
  96. package/dist/src/utils/scaffold-versions.d.ts +1 -0
  97. package/dist/src/utils/scaffold-versions.js +1 -0
  98. package/fragments/agents/AGENTS.md.hbs +27 -27
  99. package/fragments/base/README.md.hbs +5 -2
  100. package/fragments/base/index.ts.hbs +22 -33
  101. package/fragments/base/package.json.hbs +5 -1
  102. package/fragments/service/api/openapi.json.hbs +1 -1
  103. package/fragments/service/docs/docs.yaml.hbs +10 -0
  104. package/fragments/service/docs/pages/getting-started.md.hbs +6 -9
  105. package/package.json +19 -3
  106. package/skills/mesh/SKILL.md +2 -2
  107. package/stack/docker-compose.hub.yml +6 -0
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/docs/start.ts", "../../src/docs/serve.ts", "../../src/docs/registry-docs.ts"],
4
+ "mappings": "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",
5
+ "names": ["execFileSync", "existsSync", "writeFileSync", "path", "execFileSync", "existsSync", "path", "result", "spawn", "writeFileSync"]
6
+ }
@@ -0,0 +1,500 @@
1
+ import {
2
+ bootstrapAppsRepo,
3
+ isInsidePlatformMonorepo,
4
+ shouldBootstrapAppsRepo
5
+ } from "./mesh.chunk-JB7FWYSP.js";
6
+ import {
7
+ PLATFORM_SETUP_DEFAULTS,
8
+ ensureStateBucket,
9
+ renderPlatformNextSteps,
10
+ resolvePlatformSetup,
11
+ scaffoldPlatformRepo
12
+ } from "./mesh.chunk-CQ2IC4OP.js";
13
+ import {
14
+ RegistryNotAuthorizedError
15
+ } from "./mesh.chunk-WOJOTUFZ.js";
16
+ import {
17
+ resolveTargetRoot,
18
+ syncSkills
19
+ } from "./mesh.chunk-F4654EPX.js";
20
+ import {
21
+ readRegistrySession
22
+ } from "./mesh.chunk-A4DGMGHF.js";
23
+ import {
24
+ detectLocalTenant,
25
+ discoverConfigForContext,
26
+ findMeshJson,
27
+ isRemoteEnvironment,
28
+ isValidTenantName,
29
+ readCredentials,
30
+ renderNoConfigHelp,
31
+ runLoginFlow,
32
+ tokenStillValid,
33
+ writeMeshJson
34
+ } from "./mesh.chunk-R5VVTXG4.js";
35
+ import "./mesh.chunk-J6DVWKRW.js";
36
+ import "./mesh.chunk-MCBMHWXP.js";
37
+ import {
38
+ logInfo,
39
+ logWarn
40
+ } from "./mesh.chunk-WFFDF346.js";
41
+ import {
42
+ MeshCliError,
43
+ emitJsonPayload
44
+ } from "./mesh.chunk-IQOBTL42.js";
45
+ import {
46
+ probeRegistryToken
47
+ } from "./mesh.chunk-5A5OFSYR.js";
48
+
49
+ // packages/mesh-cli/src/commands/init/wizard.ts
50
+ import * as fs from "fs";
51
+ import * as path from "path";
52
+ import { execFileSync } from "child_process";
53
+ import chalk from "chalk";
54
+ function isNewPlatform(mode) {
55
+ return typeof mode === "object" && "newPlatform" in mode;
56
+ }
57
+ var NO_SESSION_NO_TTY_MESSAGE = "No registry session and no terminal to sign in with.\n On a headless box: mesh registry login --device (one-time, prints a code)\n In CI with AWS creds: mesh registry login --ci";
58
+ var TENANT_REQUIRED_MESSAGE = "--tenant is required (no TTY for interactive mode)";
59
+ var REGISTRY_WHY = "Package access \u2014 a sign-in to the Mesh package REGISTRY, which is what makes `@mesh-tech/*` installable.\n It is one global identity: no AWS account, no platform, no <tenant>.<env> context.\n (`mesh login <tenant>.<env>` is the other sign-in \u2014 that one is only for deploying to, or operating, a platform.)";
60
+ var INTERRUPTED_EXIT_CODE = 130;
61
+ var STEP_LABELS = {
62
+ registry: "Registry access",
63
+ platform: "Platform sign-in",
64
+ repo: "Repo",
65
+ skills: "Agent skills"
66
+ };
67
+ var PLATFORM_SETUP_LABEL = "Platform setup";
68
+ function wizardExitCode(steps) {
69
+ return steps.some((s) => s.status === "fail") ? 1 : 0;
70
+ }
71
+ function wizardNextCommands(mode, steps = []) {
72
+ const owned = steps.find((s) => s.next?.length)?.next;
73
+ if (owned) return owned;
74
+ const repo = steps.find((s) => s.name === STEP_LABELS.repo);
75
+ const first = repo && repo.status !== "pass" && repo.fix ? repo.fix : "mesh create-app";
76
+ return mode === "local" ? [first] : [first, "mesh deploy up # from the app directory, once it exists"];
77
+ }
78
+ function stepBlocks(result) {
79
+ return result.status === "fail" && result.blocking !== false;
80
+ }
81
+ function describeMode(mode) {
82
+ if (mode === "local") return "local only";
83
+ if (isNewPlatform(mode)) return `a new platform (${mode.newPlatform.env ?? PLATFORM_SETUP_DEFAULTS.env})`;
84
+ return `deployed platform (${mode.platform})`;
85
+ }
86
+ function renderWizardSummary(outcome, opts = {}) {
87
+ const paint = opts.color === false ? { green: (s) => s, red: (s) => s, yellow: (s) => s, dim: (s) => s, cyan: (s) => s } : chalk;
88
+ const icon = (status) => status === "pass" ? paint.green("\u2714") : status === "fail" ? paint.red("\u2718") : status === "warn" ? paint.yellow("\u25B2") : paint.dim("\u2013");
89
+ const lines = [`Setup summary \u2014 tenant ${outcome.tenant} (${describeMode(outcome.mode)})`];
90
+ for (const step of outcome.steps) {
91
+ lines.push(` ${icon(step.status)} ${step.name.padEnd(18)} ${step.detail}`);
92
+ if (step.fix && step.status !== "pass") lines.push(` ${paint.dim("\u2192 run:")} ${paint.cyan(step.fix)}`);
93
+ }
94
+ lines.push("", "Next:");
95
+ for (const cmd of outcome.next) lines.push(` ${cmd}`);
96
+ return lines.join("\n");
97
+ }
98
+ function resolveAnswers(opts, recorded, interactive) {
99
+ const open = [];
100
+ let tenant = opts.tenant;
101
+ if (tenant !== void 0 && !isValidTenantName(tenant)) {
102
+ throw new MeshCliError(`Invalid tenant name '${tenant}' (lowercase alphanumeric + dashes, starting with a letter).`);
103
+ }
104
+ if (!tenant && (opts.yes || !interactive) && recorded) tenant = recorded.tenant;
105
+ if (!tenant) {
106
+ if (!interactive) throw new MeshCliError(TENANT_REQUIRED_MESSAGE);
107
+ open.push("tenant");
108
+ }
109
+ let mode;
110
+ const chosen = [opts.local && "--local", opts.platform && "--platform", opts.newPlatform && "--new-platform"].filter(Boolean);
111
+ if (chosen.length > 1) {
112
+ throw new MeshCliError(`${chosen.join(", ")} are mutually exclusive \u2014 a tenant runs in exactly one of those three places.`);
113
+ }
114
+ if (opts.newPlatform) mode = { newPlatform: platformSetupFlags(opts) };
115
+ else if (opts.platform) mode = { platform: opts.platform };
116
+ else if (opts.local) mode = "local";
117
+ else if (opts.yes || !interactive) {
118
+ mode = recorded && recorded.platform !== "local" ? { platform: recorded.platform } : "local";
119
+ } else {
120
+ open.push("mode");
121
+ }
122
+ return { tenant, mode, open };
123
+ }
124
+ function platformSetupFlags(opts) {
125
+ return {
126
+ env: typeof opts.newPlatform === "string" ? opts.newPlatform : void 0,
127
+ region: opts.region,
128
+ domain: opts.domain,
129
+ profile: opts.profile,
130
+ stateBucket: opts.stateBucket,
131
+ createStateBucket: opts.createStateBucket,
132
+ dir: opts.dir,
133
+ yes: opts.yes
134
+ };
135
+ }
136
+ var registryStep = {
137
+ name: "registry",
138
+ async run(ctx) {
139
+ const name = STEP_LABELS.registry;
140
+ const probe = await (ctx.seams?.probe ?? probeRegistryToken)();
141
+ if (probe.state === "fresh") {
142
+ const session2 = readRegistrySession();
143
+ return { name, status: "pass", detail: `Registry access OK (${session2 ? `signed in as ${session2.email}` : "token valid"})` };
144
+ }
145
+ if (probe.state === "unreachable") {
146
+ return {
147
+ name,
148
+ status: "warn",
149
+ detail: `could not reach the registry to verify access (${probe.detail ?? "unknown error"})`,
150
+ fix: "mesh registry login"
151
+ };
152
+ }
153
+ if (!ctx.interactive && !ctx.device && !ctx.profile) {
154
+ logWarn(NO_SESSION_NO_TTY_MESSAGE);
155
+ return { name, status: "fail", detail: NO_SESSION_NO_TTY_MESSAGE.split("\n")[0], fix: "mesh registry login --device", blocking: true };
156
+ }
157
+ try {
158
+ logInfo(REGISTRY_WHY);
159
+ const login = ctx.seams?.runRegistryLogin ?? (async (opts) => {
160
+ const { runRegistryLogin } = await import("./mesh.registry-OXF57OQW.js");
161
+ await runRegistryLogin(void 0, opts);
162
+ });
163
+ await login({ device: ctx.device, profile: ctx.profile });
164
+ } catch (err) {
165
+ const message = err instanceof Error ? err.message : String(err);
166
+ if (err instanceof RegistryNotAuthorizedError) {
167
+ return {
168
+ name,
169
+ status: "fail",
170
+ detail: `not authorized \u2014 ${message.split("\n")[0]}`,
171
+ fix: "ask a Mesh platform admin for the registry:read role, then: mesh registry login",
172
+ blocking: false
173
+ };
174
+ }
175
+ return {
176
+ name,
177
+ status: "fail",
178
+ detail: message.split("\n")[0],
179
+ fix: ctx.device || ctx.remote ? "mesh registry login --device" : "mesh registry login",
180
+ blocking: true
181
+ };
182
+ }
183
+ const session = readRegistrySession();
184
+ return { name, status: "pass", detail: `Registry access OK (${session ? `signed in as ${session.email}` : "token written"})` };
185
+ }
186
+ };
187
+ var newPlatformStep = {
188
+ name: "platform",
189
+ async run(ctx) {
190
+ const name = PLATFORM_SETUP_LABEL;
191
+ if (!isNewPlatform(ctx.mode)) return { name, status: "skip", detail: "no new platform requested" };
192
+ let setup;
193
+ try {
194
+ setup = await resolvePlatformSetup(ctx.tenant, { ...ctx.mode.newPlatform, yes: ctx.yes }, {
195
+ prompts: ctx.prompts,
196
+ interactive: ctx.interactive,
197
+ cwd: ctx.cwd
198
+ });
199
+ } catch (err) {
200
+ return {
201
+ name,
202
+ status: "fail",
203
+ detail: err.message.split("\n")[0],
204
+ fix: `mesh init --tenant ${ctx.tenant} --new-platform --domain <your-domain>`
205
+ };
206
+ }
207
+ try {
208
+ await (ctx.seams?.scaffoldPlatform ?? scaffoldPlatformRepo)(setup);
209
+ } catch (err) {
210
+ return { name, status: "fail", detail: `platform repo not scaffolded: ${err.message.split("\n")[0]}`, fix: `mesh init platform ${ctx.tenant} --dir <empty-dir>` };
211
+ }
212
+ const bucket = await ensureStateBucket(setup, ctx.seams?.stateBucket);
213
+ const next = renderPlatformNextSteps(setup, { bucket, relativeDir: path.relative(ctx.cwd, setup.dir) || "." });
214
+ return {
215
+ name,
216
+ status: setup.createStateBucket && !bucket.present ? "warn" : "pass",
217
+ detail: `platform repo scaffolded at ${setup.dir} (${setup.tenant}.${setup.env}, ${setup.region}, zone ${setup.env}.${setup.domain})` + (setup.createStateBucket ? ` \u2014 state bucket: ${bucket.detail}` : ` \u2014 state bucket ${setup.stateBucket} not created (see Next)`),
218
+ next
219
+ };
220
+ }
221
+ };
222
+ var platformStep = {
223
+ name: "platform",
224
+ async run(ctx) {
225
+ const name = STEP_LABELS.platform;
226
+ if (isNewPlatform(ctx.mode)) return newPlatformStep.run(ctx);
227
+ if (!ctx.context) return { name, status: "skip", detail: "local only \u2014 no platform to sign in to" };
228
+ const context = ctx.context;
229
+ const cached = readCredentials(context);
230
+ if (cached && tokenStillValid(cached.expiresAt)) {
231
+ return { name, status: "pass", detail: `signed in to ${context}${cached.email ? ` as ${cached.email}` : ""}` };
232
+ }
233
+ const config = await discoverConfigForContext(context);
234
+ if (!config) {
235
+ logWarn(renderNoConfigHelp(context));
236
+ return { name, status: "fail", detail: `no configuration found for ${context} (see above)`, fix: `mesh login ${context}` };
237
+ }
238
+ if (!ctx.interactive && !ctx.device) {
239
+ return { name, status: "fail", detail: `no session for ${context} and no terminal to sign in with`, fix: `mesh login ${context} --device` };
240
+ }
241
+ try {
242
+ await runLoginFlow(context, config, { device: ctx.device });
243
+ } catch (err) {
244
+ return { name, status: "fail", detail: `sign-in failed: ${err.message}`, fix: `mesh login ${context}${ctx.device ? " --device" : ""}` };
245
+ }
246
+ const creds = readCredentials(context);
247
+ return {
248
+ name,
249
+ status: "pass",
250
+ detail: `signed in to ${context}${creds?.email ? ` as ${creds.email}` : ""} \u2014 tenant registration: mesh init app-tenant --context ${context} --hub-url <hub api url>`
251
+ };
252
+ }
253
+ };
254
+ function classifyRepo(cwd) {
255
+ if (isInsidePlatformMonorepo(cwd)) return { kind: "platform-monorepo", root: resolveTargetRoot(cwd) };
256
+ if (shouldBootstrapAppsRepo(cwd)) return { kind: "empty-apps-repo", root: cwd };
257
+ const root = resolveTargetRoot(cwd);
258
+ const inRepo = fs.existsSync(path.join(root, ".git"));
259
+ if (!inRepo) {
260
+ const hasContent = fs.readdirSync(cwd).some((entry) => !entry.startsWith("."));
261
+ return { kind: hasContent ? "no-repo" : "empty-dir", root: cwd };
262
+ }
263
+ const hasWorkspace = fs.existsSync(path.join(root, "pnpm-workspace.yaml")) || fs.existsSync(path.join(root, "pnpm-lock.yaml"));
264
+ const hasApps = fs.existsSync(path.join(root, "apps")) || fs.existsSync(path.join(root, "tenants"));
265
+ if (hasWorkspace || hasApps) return { kind: "apps-repo", root };
266
+ return { kind: "other-repo", root };
267
+ }
268
+ function gitInit(dir) {
269
+ execFileSync("git", ["init", "-q"], { cwd: dir, stdio: ["ignore", "ignore", "pipe"] });
270
+ }
271
+ var INIT_REPO_FIX = "git init && mesh init";
272
+ var repoStep = {
273
+ name: "repo",
274
+ async run(ctx) {
275
+ const name = STEP_LABELS.repo;
276
+ if (ctx.skipRepo) return { name, status: "skip", detail: "--skip-repo" };
277
+ if (isNewPlatform(ctx.mode)) {
278
+ return { name, status: "skip", detail: "setting up a platform \u2014 the apps repo comes after the first deploy (see Next)" };
279
+ }
280
+ const { kind, root } = classifyRepo(ctx.cwd);
281
+ switch (kind) {
282
+ case "platform-monorepo":
283
+ return { name, status: "skip", detail: "inside mesh-platform \u2014 apps here link workspace packages; nothing to set up" };
284
+ case "empty-dir": {
285
+ const go = ctx.yes || !ctx.interactive ? true : await ctx.prompts.confirm({
286
+ message: `This folder is not a git repo \u2014 initialize ${root} as your ${ctx.tenant}-mesh-apps repo here?`,
287
+ default: true
288
+ });
289
+ if (!go) {
290
+ return { name, status: "skip", detail: "folder left as is", fix: `cd <your ${ctx.tenant}-mesh-apps clone> && mesh init` };
291
+ }
292
+ try {
293
+ (ctx.seams?.gitInit ?? gitInit)(root);
294
+ } catch (err) {
295
+ const why = err instanceof Error && "stderr" in err && err.stderr ? String(err.stderr).trim() : "";
296
+ return {
297
+ name,
298
+ status: "fail",
299
+ detail: `git init failed \u2014 is git installed and ${root} writable?${why ? ` (${why})` : ""}`,
300
+ fix: INIT_REPO_FIX
301
+ };
302
+ }
303
+ const created = bootstrapAppsRepo(root, ctx.tenant);
304
+ return { name, status: "pass", detail: `initialized a git repo and bootstrapped the apps repo: ${created.join(", ")}` };
305
+ }
306
+ case "no-repo":
307
+ return {
308
+ name,
309
+ status: "skip",
310
+ detail: `not in a git repo, and this folder already holds files \u2014 clone (or git init) your ${ctx.tenant}-mesh-apps repo and re-run mesh init there`,
311
+ fix: INIT_REPO_FIX
312
+ };
313
+ case "other-repo":
314
+ return {
315
+ name,
316
+ status: "warn",
317
+ detail: "this repo is not a Mesh apps repo (no pnpm workspace, no apps/)",
318
+ fix: "mesh create-app # scaffolds an app and the workspace files around it"
319
+ };
320
+ case "empty-apps-repo": {
321
+ const go = ctx.yes || !ctx.interactive ? true : await ctx.prompts.confirm({ message: `Empty repo \u2014 bootstrap the ${ctx.tenant}-mesh-apps layout here?`, default: true });
322
+ if (!go) return { name, status: "skip", detail: "empty repo left as is", fix: "mesh create-app" };
323
+ const created = bootstrapAppsRepo(root, ctx.tenant);
324
+ return { name, status: "pass", detail: `bootstrapped apps repo: ${created.join(", ")}` };
325
+ }
326
+ case "apps-repo": {
327
+ const missing = [];
328
+ if (!fs.existsSync(path.join(root, "package.json"))) missing.push("package.json");
329
+ if (!fs.existsSync(path.join(root, "pnpm-workspace.yaml")) && !fs.existsSync(path.join(root, "pnpm-lock.yaml"))) {
330
+ missing.push("pnpm-workspace.yaml");
331
+ }
332
+ if (missing.length) {
333
+ return { name, status: "warn", detail: `apps repo missing ${missing.join(", ")}`, fix: "mesh create-app # writes the workspace files" };
334
+ }
335
+ return { name, status: "pass", detail: `apps repo at ${root}` };
336
+ }
337
+ }
338
+ }
339
+ };
340
+ var skillsStep = {
341
+ name: "skills",
342
+ async run(ctx) {
343
+ const name = STEP_LABELS.skills;
344
+ if (ctx.skipRepo) return { name, status: "skip", detail: "--skip-repo" };
345
+ if (isNewPlatform(ctx.mode)) {
346
+ return { name, status: "skip", detail: "synced into the new platform repo by the scaffold" };
347
+ }
348
+ const { kind, root } = classifyRepo(ctx.cwd);
349
+ if (kind !== "apps-repo" && kind !== "empty-apps-repo") {
350
+ return { name, status: "skip", detail: "no apps repo to install skills into" };
351
+ }
352
+ try {
353
+ const complete = syncSkills(root);
354
+ return complete ? { name, status: "pass", detail: "base skills + Intent discovery in sync" } : { name, status: "pass", detail: "base skills synced \u2014 after pnpm install, run: mesh skills sync (platform skills)" };
355
+ } catch (err) {
356
+ return { name, status: "fail", detail: `skills sync failed: ${err.message}`, fix: "mesh skills sync", blocking: false };
357
+ }
358
+ }
359
+ };
360
+ var WIZARD_STEPS = [registryStep, platformStep, repoStep, skillsStep];
361
+ async function runWizardSteps(ctx, steps) {
362
+ const results = [];
363
+ for (const step of steps) {
364
+ const result = await step.run(ctx);
365
+ results.push(result);
366
+ if (stepBlocks(result)) break;
367
+ }
368
+ return results;
369
+ }
370
+ async function inquirerPrompts() {
371
+ const [{ default: input }, { default: select }, { default: confirm }] = await Promise.all([
372
+ import("@inquirer/input"),
373
+ import("@inquirer/select"),
374
+ import("@inquirer/confirm")
375
+ ]);
376
+ return {
377
+ input: (args) => input(args),
378
+ select: (args) => select(args),
379
+ confirm: (args) => confirm(args)
380
+ };
381
+ }
382
+ function isInterrupt(err) {
383
+ return err instanceof Error && err.name === "ExitPromptError";
384
+ }
385
+ async function runInitWizard(opts, deps = {}) {
386
+ const cwd = deps.cwd ?? process.cwd();
387
+ const interactive = deps.interactive ?? Boolean(process.stdin.isTTY && process.stdout.isTTY);
388
+ const remote = deps.remote ?? isRemoteEnvironment();
389
+ const recorded = findMeshJson(cwd)?.data ?? null;
390
+ const origLog = console.log;
391
+ if (opts.json) console.log = (...a) => console.error(...a);
392
+ try {
393
+ const answers = resolveAnswers(opts, recorded, interactive);
394
+ const prompts = deps.prompts ?? (answers.open.length ? await inquirerPrompts() : {});
395
+ let tenant = answers.tenant;
396
+ if (!tenant) {
397
+ const detected = recorded?.tenant ?? (() => {
398
+ try {
399
+ const t = detectLocalTenant(cwd);
400
+ return t === "local" ? void 0 : t;
401
+ } catch {
402
+ return void 0;
403
+ }
404
+ })();
405
+ tenant = await prompts.input({
406
+ message: "Tenant name",
407
+ default: detected,
408
+ validate: (v) => isValidTenantName(v) ? true : "lowercase letters, digits and dashes, starting with a letter"
409
+ });
410
+ }
411
+ let mode = answers.mode;
412
+ if (!mode) {
413
+ const choice = await prompts.select({
414
+ message: "Where does this tenant run?",
415
+ choices: [
416
+ { name: "Local only (mesh start / mesh dev \u2014 no deployed platform yet)", value: "local" },
417
+ { name: `A deployed Mesh platform (I have a ${tenant}.<env> context)`, value: "deployed" },
418
+ { name: "Nothing yet \u2014 set up a new Mesh platform in my AWS account", value: "new" }
419
+ ],
420
+ default: recorded && recorded.platform !== "local" ? "deployed" : "local"
421
+ });
422
+ if (choice === "local") mode = "local";
423
+ else if (choice === "new") {
424
+ mode = { newPlatform: platformSetupFlags({ ...opts, newPlatform: true }) };
425
+ } else {
426
+ const env = await prompts.input({
427
+ message: "Environment",
428
+ default: recorded && recorded.platform !== "local" ? recorded.platform : "dev",
429
+ validate: (v) => /^[a-z][a-z0-9-]*$/.test(v) ? true : "lowercase letters, digits and dashes"
430
+ });
431
+ mode = { platform: env };
432
+ }
433
+ }
434
+ const ctx = {
435
+ cwd,
436
+ tenant,
437
+ mode,
438
+ context: mode === "local" || isNewPlatform(mode) ? null : `${tenant}.${mode.platform}`,
439
+ device: opts.device,
440
+ profile: opts.profile,
441
+ interactive,
442
+ remote,
443
+ yes: Boolean(opts.yes),
444
+ skipRepo: Boolean(opts.skipRepo),
445
+ prompts,
446
+ seams: deps.seams
447
+ };
448
+ logInfo(`Setting up tenant '${tenant}' (${describeMode(mode)})\u2026`);
449
+ const steps = await runWizardSteps(ctx, deps.steps ?? WIZARD_STEPS);
450
+ const { kind, root } = classifyRepo(cwd);
451
+ if (!opts.skipRepo && !isNewPlatform(mode) && (kind === "apps-repo" || kind === "empty-apps-repo")) {
452
+ const written = writeMeshJson(root, { tenant, platform: mode === "local" ? "local" : mode.platform });
453
+ logInfo(`Recorded tenant + mode in ${written}`);
454
+ }
455
+ const outcome = { tenant, mode, steps, next: wizardNextCommands(mode, steps) };
456
+ const code = wizardExitCode(steps);
457
+ if (opts.json) {
458
+ console.log = origLog;
459
+ emitJsonPayload({ ok: code === 0, ...outcome });
460
+ } else {
461
+ console.log("");
462
+ console.log(renderWizardSummary(outcome));
463
+ console.log("");
464
+ }
465
+ return code;
466
+ } catch (err) {
467
+ if (isInterrupt(err)) {
468
+ console.error("");
469
+ logWarn("Interrupted \u2014 nothing was written.");
470
+ return INTERRUPTED_EXIT_CODE;
471
+ }
472
+ throw err;
473
+ } finally {
474
+ console.log = origLog;
475
+ }
476
+ }
477
+ export {
478
+ INIT_REPO_FIX,
479
+ INTERRUPTED_EXIT_CODE,
480
+ NO_SESSION_NO_TTY_MESSAGE,
481
+ PLATFORM_SETUP_LABEL,
482
+ REGISTRY_WHY,
483
+ TENANT_REQUIRED_MESSAGE,
484
+ WIZARD_STEPS,
485
+ classifyRepo,
486
+ describeMode,
487
+ isNewPlatform,
488
+ newPlatformStep,
489
+ platformSetupFlags,
490
+ registryStep,
491
+ renderWizardSummary,
492
+ repoStep,
493
+ resolveAnswers,
494
+ runInitWizard,
495
+ runWizardSteps,
496
+ skillsStep,
497
+ stepBlocks,
498
+ wizardExitCode,
499
+ wizardNextCommands
500
+ };
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/commands/init/wizard.ts"],
4
+ "mappings": "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",
5
+ "names": ["session"]
6
+ }
@@ -1,4 +1,4 @@
1
1
  {
2
- "commit": "e94d26027",
3
- "builtAt": "2026-09-30T01:19:58.301Z"
2
+ "commit": "a6ed5115c",
3
+ "builtAt": "2026-09-30T16:40:09.606Z"
4
4
  }
@@ -1,7 +1,7 @@
1
1
  import { Command } from "commander";
2
2
  import { type ProbeResult } from "./app-check-resolve.js";
3
3
  import { jsonReport, type Check, type CheckResult, type CheckStatus } from "./dev-doctor.js";
4
- export type AppCheckCode = "UNRESOLVABLE_IMPORT" | "UI_IN_API" | "NO_UI_SERVICE" | "NO_REGISTER" | "CUSTOM_SESSION_AUTH" | "NON_PLATFORM_LOGGER" | "LOCAL_AUTH_LIB" | "NO_AUTHZ_POINTER" | "METADATA_UNPUBLISHED" | "IAC_GRANTS" | "POINTER_PROJECT_OVERRIDE" | "PASSWORD_STORE" | "EMAIL_ALLOWLIST" | "USERS_TABLE" | "DOCS_SITE_PUBLIC" | "DOCS_AUDIENCE_IMPLICIT" | "DOCS_AUDIENCE_UNGRANTABLE" | "DOCS_VENDOR_AUDIENCE_PARTNER" | "EVENTS_ROLES_UNDECLARED";
4
+ export type AppCheckCode = "UNRESOLVABLE_IMPORT" | "UI_IN_API" | "NO_UI_SERVICE" | "NO_REGISTER" | "CUSTOM_SESSION_AUTH" | "NON_PLATFORM_LOGGER" | "LOCAL_AUTH_LIB" | "NO_AUTHZ_POINTER" | "METADATA_UNPUBLISHED" | "IAC_GRANTS" | "POINTER_PROJECT_OVERRIDE" | "PASSWORD_STORE" | "EMAIL_ALLOWLIST" | "USERS_TABLE" | "DOCS_SITE_PUBLIC" | "DOCS_SITE_DEPRECATED" | "DOCS_AUDIENCE_IMPLICIT" | "DOCS_AUDIENCE_UNGRANTABLE" | "DOCS_VENDOR_AUDIENCE_PARTNER" | "EVENTS_ROLES_UNDECLARED";
5
5
  export interface AppCheckRule {
6
6
  gate: string;
7
7
  title: string;
@@ -29,6 +29,7 @@ export interface SurfaceDeclaration {
29
29
  line: number;
30
30
  }
31
31
  export declare function surfaceDeclarations(text: string, pattern?: RegExp): SurfaceDeclaration[];
32
+ export declare function docsConvertCommand(docs: Map<string, string>, program: string): string;
32
33
  export declare function docsSiteFindings(text: string): Array<{
33
34
  code: AppCheckCode;
34
35
  line: number;
@@ -113,6 +113,13 @@ export const APP_CHECK_RULES = {
113
113
  remediation: "publish the site through the Hub docs door — declare the API as a mesh.apps.AppApiSurface whose docs block builds this same site (docs: { spec, pages }), declare its readers' role on the ZitadelAppIdentity and grant it from the Hub's Access tab; then drop the hostname (docs.ingress on an API surface, where docs.auth, docs.basePath and docs.hubDoor do nothing either; the ingress with its auth and authentication on a mesh.apps.ApiDocs). The public shape keeps deploying until you do",
114
114
  scope: "app",
115
115
  },
116
+ DOCS_SITE_DEPRECATED: {
117
+ gate: "0.3",
118
+ title: "API docs published as a native docs source",
119
+ severity: "advisory",
120
+ remediation: "run the `mesh docs convert` command the finding names (filled from the docs block) — it writes a starter docs.yaml beside the guides, moves each page's leading # heading into its front-matter title with --fix-pages, and prints every problem the deploy would refuse plus the exact edit; then declare docs: { spec, config: \"<dir>/docs.yaml\" } and drop pages, landingPage, playground, audience, site, split, zudoku and port. The Hub renders the source itself — no docs site, container or door — and `mesh docs preview <dir>` shows it locally. The site keeps deploying, with a preview warning, for one more minor release and is removed with the Hub docs door in the next",
121
+ scope: "app",
122
+ },
116
123
  DOCS_AUDIENCE_IMPLICIT: {
117
124
  gate: "H",
118
125
  title: "Docs audience stated, not derived",
@@ -497,6 +504,24 @@ function isWritten(value) {
497
504
  function hasIngress(value) {
498
505
  return isWritten(value) && !/^(null|false)$/.test(value);
499
506
  }
507
+ function stringLiteral(value) {
508
+ const m = /^(["'`])((?:(?!\1)[^\\$]|\\.)*)\1$/.exec(stripTrailingComments(value?.trim() ?? ""));
509
+ return m ? m[2] : undefined;
510
+ }
511
+ export function docsConvertCommand(docs, program) {
512
+ const words = ["mesh docs convert --spec", stringLiteral(docs.get("spec")) ?? "<spec>"];
513
+ const pagesValue = docs.get("pages");
514
+ if (isWritten(pagesValue)) {
515
+ const list = pagesValue.trim().startsWith("[") ? splitTopLevel(pagesValue.trim().slice(1, -1)) : [pagesValue];
516
+ const first = list.map((e) => stripLeadingComments(e).trim()).find((e) => e !== "") ?? "";
517
+ const dir = first.startsWith("{") ? topLevelProperties(objectLiteralOf(first, program) ?? first).get("dir") : first;
518
+ words.push("--pages", stringLiteral(dir) ?? "<pages>");
519
+ }
520
+ const landing = docs.get("landingPage");
521
+ if (isWritten(landing) && landing.trim() !== "false")
522
+ words.push("--landing", stringLiteral(landing) ?? "<landing>");
523
+ return words.join(" ");
524
+ }
500
525
  export function docsSiteFindings(text) {
501
526
  const findings = [];
502
527
  for (const decl of surfaceDeclarations(text)) {
@@ -508,10 +533,17 @@ export function docsSiteFindings(text) {
508
533
  if (!docsText)
509
534
  continue;
510
535
  const docs = topLevelProperties(docsText);
536
+ if (isWritten(docs.get("config")))
537
+ continue;
511
538
  if (docs.get("site") === "false")
512
539
  continue;
513
540
  if (docs.get("site") !== "true" && !DOCS_SITE_FIELDS.some((f) => docs.has(f)))
514
541
  continue;
542
+ findings.push({
543
+ code: "DOCS_SITE_DEPRECATED",
544
+ line: decl.line,
545
+ why: `mesh.apps.${decl.ctor} builds a docs site from its docs block — deprecated for a native docs source the Hub renders itself (docs.config, a docs.yaml); convert with \`${docsConvertCommand(docs, text)}\``,
546
+ });
515
547
  const retired = DOCS_SITE_RETIRED_FIELDS.filter((f) => isWritten(docs.get(f)));
516
548
  if (retired.length > 0) {
517
549
  const named = retired.map((f) => `docs.${f}`).join(", ");
@@ -33,6 +33,7 @@ export declare function generateComposableApp(appDir: string, context: {
33
33
  meshRange: string;
34
34
  esmBundleRange: string;
35
35
  eventsServiceRange: string;
36
+ eventsUiRange: string;
36
37
  authzRange: string;
37
38
  typesNodeRange: string;
38
39
  tsxRange: string;