@_davideast/stitch-mcp 0.5.1 → 0.5.2

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 (56) hide show
  1. package/dist/chunk-1fbzpreg.js +137 -0
  2. package/dist/chunk-1fbzpreg.js.map +10 -0
  3. package/dist/chunk-4zqw9exz.js +370 -0
  4. package/dist/chunk-4zqw9exz.js.map +16 -0
  5. package/dist/chunk-9g1t32qk.js +273 -0
  6. package/dist/chunk-9g1t32qk.js.map +10 -0
  7. package/dist/chunk-aa5ptn4s.js +768 -0
  8. package/dist/chunk-aa5ptn4s.js.map +18 -0
  9. package/dist/chunk-b9nzx4rf.js +19 -0
  10. package/dist/chunk-b9nzx4rf.js.map +9 -0
  11. package/dist/chunk-c87d10w8.js +109 -0
  12. package/dist/chunk-c87d10w8.js.map +10 -0
  13. package/dist/chunk-d0ffvq20.js +19 -0
  14. package/dist/chunk-d0ffvq20.js.map +9 -0
  15. package/dist/chunk-d8nttd6z.js +683 -0
  16. package/dist/chunk-d8nttd6z.js.map +17 -0
  17. package/dist/chunk-e4q3v109.js +31464 -0
  18. package/dist/chunk-e4q3v109.js.map +245 -0
  19. package/dist/chunk-etcps0m5.js +1495 -0
  20. package/dist/chunk-etcps0m5.js.map +23 -0
  21. package/dist/chunk-f89ve6pt.js +256 -0
  22. package/dist/chunk-f89ve6pt.js.map +11 -0
  23. package/dist/chunk-gydabgsn.js +10 -0
  24. package/dist/chunk-gydabgsn.js.map +9 -0
  25. package/dist/chunk-m4fp3pqc.js +167 -0
  26. package/dist/chunk-m4fp3pqc.js.map +10 -0
  27. package/dist/chunk-nnep362g.js +124 -0
  28. package/dist/chunk-nnep362g.js.map +12 -0
  29. package/dist/chunk-pgqvwkcy.js +736 -0
  30. package/dist/chunk-pgqvwkcy.js.map +16 -0
  31. package/dist/chunk-q8cr9t2z.js +415 -0
  32. package/dist/chunk-q8cr9t2z.js.map +20 -0
  33. package/dist/chunk-s2d39pkr.js +19 -0
  34. package/dist/chunk-s2d39pkr.js.map +9 -0
  35. package/dist/chunk-ststnnry.js +44150 -0
  36. package/dist/chunk-ststnnry.js.map +237 -0
  37. package/dist/chunk-sv2nt87j.js +24 -0
  38. package/dist/chunk-sv2nt87j.js.map +9 -0
  39. package/dist/chunk-t2razx5k.js +69 -0
  40. package/dist/chunk-t2razx5k.js.map +10 -0
  41. package/dist/commands/doctor/command.js +10 -6
  42. package/dist/commands/doctor/command.js.map +4 -4
  43. package/dist/commands/doctor/spec.d.ts +6 -0
  44. package/dist/commands/init/command.js +17 -9
  45. package/dist/commands/init/command.js.map +4 -4
  46. package/dist/commands/init/spec.d.ts +6 -0
  47. package/dist/commands/proxy/command.js +2 -3
  48. package/dist/commands/proxy/command.js.map +3 -3
  49. package/dist/commands/screens/command.js +2 -2
  50. package/dist/commands/serve/command.js +3 -3
  51. package/dist/commands/site/command.js +1 -1
  52. package/dist/commands/snapshot/command.js +1 -1
  53. package/dist/commands/tool/command.js +1 -1
  54. package/dist/commands/view/command.js +1 -1
  55. package/dist/index.js +2 -2
  56. package/package.json +1 -1
@@ -0,0 +1,24 @@
1
+ import {
2
+ Project,
3
+ Screen,
4
+ Stitch,
5
+ StitchError,
6
+ StitchErrorCode,
7
+ StitchProxy,
8
+ StitchToolClient,
9
+ stitch
10
+ } from "./chunk-e4q3v109.js";
11
+ import"./chunk-c6ge431q.js";
12
+ import"./chunk-9wyra8hs.js";
13
+ export {
14
+ stitch,
15
+ StitchToolClient,
16
+ StitchProxy,
17
+ StitchErrorCode,
18
+ StitchError,
19
+ Stitch,
20
+ Screen,
21
+ Project
22
+ };
23
+
24
+ //# debugId=734335E5703F2DDC64756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "734335E5703F2DDC64756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,69 @@
1
+ import {
2
+ StitchViteServer
3
+ } from "./chunk-ststnnry.js";
4
+ import"./chunk-abf1r0jh.js";
5
+ import {
6
+ downloadText
7
+ } from "./chunk-34w2wfyp.js";
8
+ import"./chunk-akd997ec.js";
9
+ import {
10
+ pLimit
11
+ } from "./chunk-a5xra9jn.js";
12
+ import"./chunk-4jygt4d6.js";
13
+ import"./chunk-tz7wnw4s.js";
14
+ import"./chunk-9wyra8hs.js";
15
+
16
+ // src/commands/serve/json-server/handler.ts
17
+ class JsonServerHandler {
18
+ client;
19
+ downloadHtml;
20
+ constructor(client, downloadHtml = downloadText) {
21
+ this.client = client;
22
+ this.downloadHtml = downloadHtml;
23
+ }
24
+ async execute(input) {
25
+ let sdkScreens;
26
+ try {
27
+ const project = this.client.project(input.projectId);
28
+ sdkScreens = await project.screens();
29
+ } catch (e) {
30
+ return {
31
+ success: false,
32
+ error: { code: "SCREENS_FETCH_FAILED", message: e.message, recoverable: false }
33
+ };
34
+ }
35
+ const server = new StitchViteServer;
36
+ let baseUrl;
37
+ try {
38
+ baseUrl = await server.start(0);
39
+ } catch (e) {
40
+ return {
41
+ success: false,
42
+ error: { code: "SERVER_START_FAILED", message: e.message, recoverable: false }
43
+ };
44
+ }
45
+ const limit = pLimit(3);
46
+ const screens = [];
47
+ await Promise.all(sdkScreens.map((s) => limit(async () => {
48
+ try {
49
+ const codeUrl = await s.getHtml();
50
+ if (codeUrl) {
51
+ const html = await this.downloadHtml(codeUrl);
52
+ server.mount(`/screens/${s.screenId}`, html);
53
+ }
54
+ screens.push({
55
+ screenId: s.screenId,
56
+ title: s.title ?? s.screenId,
57
+ url: `${baseUrl}/screens/${s.screenId}`
58
+ });
59
+ } catch {}
60
+ })));
61
+ screens.sort((a, b) => a.title.localeCompare(b.title));
62
+ return { success: true, url: baseUrl, screens };
63
+ }
64
+ }
65
+ export {
66
+ JsonServerHandler
67
+ };
68
+
69
+ //# debugId=48EA0F841F0EE79D64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/commands/serve/json-server/handler.ts"],
4
+ "sourcesContent": [
5
+ "import type { Stitch } from '@google/stitch-sdk';\nimport pLimit from 'p-limit';\nimport { StitchViteServer } from '../../../lib/server/vite/StitchViteServer.js';\nimport { downloadText } from '../../../ui/copy-behaviors/clipboard.js';\nimport type { JsonServerSpec, JsonServerInput, JsonServerResult } from './spec.js';\n\nexport class JsonServerHandler implements JsonServerSpec {\n constructor(\n private readonly client: Stitch,\n private readonly downloadHtml: (url: string) => Promise<string> = downloadText,\n ) {}\n\n async execute(input: JsonServerInput): Promise<JsonServerResult> {\n let sdkScreens: any[];\n\n try {\n const project = this.client.project(input.projectId);\n sdkScreens = await project.screens();\n } catch (e: any) {\n return {\n success: false,\n error: { code: 'SCREENS_FETCH_FAILED', message: e.message, recoverable: false },\n };\n }\n\n const server = new StitchViteServer();\n let baseUrl: string;\n\n try {\n baseUrl = await server.start(0);\n } catch (e: any) {\n return {\n success: false,\n error: { code: 'SERVER_START_FAILED', message: e.message, recoverable: false },\n };\n }\n\n // Mount screens concurrently\n const limit = pLimit(3);\n const screens: Array<{ screenId: string; title: string; url: string }> = [];\n\n await Promise.all(\n sdkScreens.map((s: any) => limit(async () => {\n try {\n const codeUrl = await s.getHtml();\n if (codeUrl) {\n const html = await this.downloadHtml(codeUrl);\n server.mount(`/screens/${s.screenId}`, html);\n }\n screens.push({\n screenId: s.screenId,\n title: s.title ?? s.screenId,\n url: `${baseUrl}/screens/${s.screenId}`,\n });\n } catch {\n // Skip screens that fail to load\n }\n }))\n );\n\n screens.sort((a, b) => a.title.localeCompare(b.title));\n\n return { success: true, url: baseUrl, screens };\n }\n}\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;AAMO,MAAM,kBAA4C;AAAA,EAEpC;AAAA,EACA;AAAA,EAFnB,WAAW,CACQ,QACA,eAAiD,cAClE;AAAA,IAFiB;AAAA,IACA;AAAA;AAAA,OAGb,QAAO,CAAC,OAAmD;AAAA,IAC/D,IAAI;AAAA,IAEJ,IAAI;AAAA,MACF,MAAM,UAAU,KAAK,OAAO,QAAQ,MAAM,SAAS;AAAA,MACnD,aAAa,MAAM,QAAQ,QAAQ;AAAA,MACnC,OAAO,GAAQ;AAAA,MACf,OAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO,EAAE,MAAM,wBAAwB,SAAS,EAAE,SAAS,aAAa,MAAM;AAAA,MAChF;AAAA;AAAA,IAGF,MAAM,SAAS,IAAI;AAAA,IACnB,IAAI;AAAA,IAEJ,IAAI;AAAA,MACF,UAAU,MAAM,OAAO,MAAM,CAAC;AAAA,MAC9B,OAAO,GAAQ;AAAA,MACf,OAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO,EAAE,MAAM,uBAAuB,SAAS,EAAE,SAAS,aAAa,MAAM;AAAA,MAC/E;AAAA;AAAA,IAIF,MAAM,QAAQ,OAAO,CAAC;AAAA,IACtB,MAAM,UAAmE,CAAC;AAAA,IAE1E,MAAM,QAAQ,IACZ,WAAW,IAAI,CAAC,MAAW,MAAM,YAAY;AAAA,MAC3C,IAAI;AAAA,QACF,MAAM,UAAU,MAAM,EAAE,QAAQ;AAAA,QAChC,IAAI,SAAS;AAAA,UACX,MAAM,OAAO,MAAM,KAAK,aAAa,OAAO;AAAA,UAC5C,OAAO,MAAM,YAAY,EAAE,YAAY,IAAI;AAAA,QAC7C;AAAA,QACA,QAAQ,KAAK;AAAA,UACX,UAAU,EAAE;AAAA,UACZ,OAAO,EAAE,SAAS,EAAE;AAAA,UACpB,KAAK,GAAG,mBAAmB,EAAE;AAAA,QAC/B,CAAC;AAAA,QACD,MAAM;AAAA,KAGT,CAAC,CACJ;AAAA,IAEA,QAAQ,KAAK,CAAC,GAAG,MAAM,EAAE,MAAM,cAAc,EAAE,KAAK,CAAC;AAAA,IAErD,OAAO,EAAE,SAAS,MAAM,KAAK,SAAS,QAAQ;AAAA;AAElD;",
8
+ "debugId": "48EA0F841F0EE79D64756E2164756E21",
9
+ "names": []
10
+ }
@@ -12,10 +12,12 @@ import {
12
12
 
13
13
  // src/commands/doctor/spec.ts
14
14
  var DoctorOptionsSchema = exports_external.object({
15
- verbose: exports_external.boolean().default(false)
15
+ verbose: exports_external.boolean().default(false),
16
+ json: exports_external.boolean().default(false)
16
17
  });
17
18
  var DoctorInputSchema = exports_external.object({
18
- verbose: exports_external.boolean().default(false)
19
+ verbose: exports_external.boolean().default(false),
20
+ json: exports_external.boolean().default(false)
19
21
  });
20
22
  var DoctorErrorCode = exports_external.enum([
21
23
  "CHECKS_FAILED",
@@ -49,15 +51,17 @@ var command = {
49
51
  name: "doctor",
50
52
  description: "Verify configuration health",
51
53
  options: [
52
- { flags: "--verbose", description: "Show detailed error information", defaultValue: false }
54
+ { flags: "--verbose", description: "Show detailed error information", defaultValue: false },
55
+ { flags: "--json", description: "Output results as JSON", defaultValue: false }
53
56
  ],
54
57
  action: async (_args, options) => {
55
58
  try {
56
59
  const parsedOptions = DoctorOptionsSchema.parse(options);
57
- const { DoctorHandler } = await import("../../chunk-v7xskyzm.js");
60
+ const { DoctorHandler } = await import("../../chunk-d0ffvq20.js");
58
61
  const handler = new DoctorHandler;
59
62
  const result = await handler.execute({
60
- verbose: parsedOptions.verbose
63
+ verbose: parsedOptions.verbose,
64
+ json: parsedOptions.json
61
65
  });
62
66
  if (!result.success) {
63
67
  console.error(theme.red(`
@@ -79,4 +83,4 @@ export {
79
83
  command
80
84
  };
81
85
 
82
- //# debugId=D328126CA74B95F964756E2164756E21
86
+ //# debugId=12FB4DE62F9B023964756E2164756E21
@@ -2,10 +2,10 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/commands/doctor/spec.ts", "../src/commands/doctor/command.ts"],
4
4
  "sourcesContent": [
5
- "import { z } from 'zod';\n\n// ============================================================================\n// INPUT SCHEMAS\n// ============================================================================\n\nexport const DoctorOptionsSchema = z.object({\n verbose: z.boolean().default(false),\n});\nexport type DoctorOptions = z.infer<typeof DoctorOptionsSchema>;\n\nexport const DoctorInputSchema = z.object({\n verbose: z.boolean().default(false),\n});\nexport type DoctorInput = z.infer<typeof DoctorInputSchema>;\n\n// ============================================================================\n// ERROR CODES\n// ============================================================================\n\nexport const DoctorErrorCode = z.enum([\n 'CHECKS_FAILED',\n 'UNKNOWN_ERROR',\n]);\n\n// ============================================================================\n// RESULT TYPES\n// ============================================================================\n\nexport const HealthCheckSchema = z.object({\n name: z.string(),\n passed: z.boolean(),\n message: z.string(),\n suggestion: z.string().optional(),\n details: z.string().optional(),\n});\n\nexport const DoctorSuccess = z.object({\n success: z.literal(true),\n data: z.object({\n checks: z.array(HealthCheckSchema),\n allPassed: z.boolean(),\n }),\n});\n\nexport const DoctorFailure = z.object({\n success: z.literal(false),\n error: z.object({\n code: DoctorErrorCode,\n message: z.string(),\n recoverable: z.boolean(),\n }),\n});\n\nexport type DoctorResult = z.infer<typeof DoctorSuccess> | z.infer<typeof DoctorFailure>;\n\n// ============================================================================\n// INTERFACE\n// ============================================================================\n\nexport interface DoctorCommand {\n execute(input: DoctorInput): Promise<DoctorResult>;\n}\n",
6
- "import { type CommandDefinition } from '../../framework/CommandDefinition.js';\nimport { theme, icons } from '../../ui/theme.js';\nimport { DoctorOptionsSchema, type DoctorOptions } from './spec.js';\n\nexport const command: CommandDefinition<any, DoctorOptions> = {\n name: 'doctor',\n description: 'Verify configuration health',\n options: [\n { flags: '--verbose', description: 'Show detailed error information', defaultValue: false },\n ],\n action: async (_args, options) => {\n try {\n const parsedOptions = DoctorOptionsSchema.parse(options);\n const { DoctorHandler } = await import('./handler.js');\n const handler = new DoctorHandler();\n const result = await handler.execute({\n verbose: parsedOptions.verbose,\n });\n\n if (!result.success) {\n console.error(theme.red(`\\n${icons.error} Health check failed: ${result.error.message}`));\n process.exit(1);\n }\n if (!result.data.allPassed) {\n process.exit(1);\n }\n process.exit(0);\n } catch (error) {\n console.error(theme.red(`\\n${icons.error} Unexpected error:`), error);\n process.exit(1);\n }\n }\n};\n"
5
+ "import { z } from 'zod';\n\n// ============================================================================\n// INPUT SCHEMAS\n// ============================================================================\n\nexport const DoctorOptionsSchema = z.object({\n verbose: z.boolean().default(false),\n json: z.boolean().default(false),\n});\nexport type DoctorOptions = z.infer<typeof DoctorOptionsSchema>;\n\nexport const DoctorInputSchema = z.object({\n verbose: z.boolean().default(false),\n json: z.boolean().default(false),\n});\nexport type DoctorInput = z.infer<typeof DoctorInputSchema>;\n\n// ============================================================================\n// ERROR CODES\n// ============================================================================\n\nexport const DoctorErrorCode = z.enum([\n 'CHECKS_FAILED',\n 'UNKNOWN_ERROR',\n]);\n\n// ============================================================================\n// RESULT TYPES\n// ============================================================================\n\nexport const HealthCheckSchema = z.object({\n name: z.string(),\n passed: z.boolean(),\n message: z.string(),\n suggestion: z.string().optional(),\n details: z.string().optional(),\n});\n\nexport const DoctorSuccess = z.object({\n success: z.literal(true),\n data: z.object({\n checks: z.array(HealthCheckSchema),\n allPassed: z.boolean(),\n }),\n});\n\nexport const DoctorFailure = z.object({\n success: z.literal(false),\n error: z.object({\n code: DoctorErrorCode,\n message: z.string(),\n recoverable: z.boolean(),\n }),\n});\n\nexport type DoctorResult = z.infer<typeof DoctorSuccess> | z.infer<typeof DoctorFailure>;\n\n// ============================================================================\n// INTERFACE\n// ============================================================================\n\nexport interface DoctorCommand {\n execute(input: DoctorInput): Promise<DoctorResult>;\n}\n",
6
+ "import { type CommandDefinition } from '../../framework/CommandDefinition.js';\nimport { theme, icons } from '../../ui/theme.js';\nimport { DoctorOptionsSchema, type DoctorOptions } from './spec.js';\n\nexport const command: CommandDefinition<any, DoctorOptions> = {\n name: 'doctor',\n description: 'Verify configuration health',\n options: [\n { flags: '--verbose', description: 'Show detailed error information', defaultValue: false },\n { flags: '--json', description: 'Output results as JSON', defaultValue: false },\n ],\n action: async (_args, options) => {\n try {\n const parsedOptions = DoctorOptionsSchema.parse(options);\n const { DoctorHandler } = await import('./handler.js');\n const handler = new DoctorHandler();\n const result = await handler.execute({\n verbose: parsedOptions.verbose,\n json: parsedOptions.json,\n });\n\n if (!result.success) {\n console.error(theme.red(`\\n${icons.error} Health check failed: ${result.error.message}`));\n process.exit(1);\n }\n if (!result.data.allPassed) {\n process.exit(1);\n }\n process.exit(0);\n } catch (error) {\n console.error(theme.red(`\\n${icons.error} Unexpected error:`), error);\n process.exit(1);\n }\n }\n};\n"
7
7
  ],
8
- "mappings": ";;;;;;;;;;;;;AAMO,IAAM,sBAAsB,iBAAE,OAAO;AAAA,EAC1C,SAAS,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AACpC,CAAC;AAGM,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACxC,SAAS,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AACpC,CAAC;AAOM,IAAM,kBAAkB,iBAAE,KAAK;AAAA,EACpC;AAAA,EACA;AACF,CAAC;AAMM,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACxC,MAAM,iBAAE,OAAO;AAAA,EACf,QAAQ,iBAAE,QAAQ;AAAA,EAClB,SAAS,iBAAE,OAAO;AAAA,EAClB,YAAY,iBAAE,OAAO,EAAE,SAAS;AAAA,EAChC,SAAS,iBAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAEM,IAAM,gBAAgB,iBAAE,OAAO;AAAA,EACpC,SAAS,iBAAE,QAAQ,IAAI;AAAA,EACvB,MAAM,iBAAE,OAAO;AAAA,IACb,QAAQ,iBAAE,MAAM,iBAAiB;AAAA,IACjC,WAAW,iBAAE,QAAQ;AAAA,EACvB,CAAC;AACH,CAAC;AAEM,IAAM,gBAAgB,iBAAE,OAAO;AAAA,EACpC,SAAS,iBAAE,QAAQ,KAAK;AAAA,EACxB,OAAO,iBAAE,OAAO;AAAA,IACd,MAAM;AAAA,IACN,SAAS,iBAAE,OAAO;AAAA,IAClB,aAAa,iBAAE,QAAQ;AAAA,EACzB,CAAC;AACH,CAAC;;;AChDM,IAAM,UAAiD;AAAA,EAC5D,MAAM;AAAA,EACN,aAAa;AAAA,EACb,SAAS;AAAA,IACP,EAAE,OAAO,aAAa,aAAa,mCAAmC,cAAc,MAAM;AAAA,EAC5F;AAAA,EACA,QAAQ,OAAO,OAAO,YAAY;AAAA,IAChC,IAAI;AAAA,MACF,MAAM,gBAAgB,oBAAoB,MAAM,OAAO;AAAA,MACvD,QAAQ,kBAAkB,MAAa;AAAA,MACvC,MAAM,UAAU,IAAI;AAAA,MACpB,MAAM,SAAS,MAAM,QAAQ,QAAQ;AAAA,QACnC,SAAS,cAAc;AAAA,MACzB,CAAC;AAAA,MAED,IAAI,CAAC,OAAO,SAAS;AAAA,QACnB,QAAQ,MAAM,MAAM,IAAI;AAAA,EAAK,MAAM,8BAA8B,OAAO,MAAM,SAAS,CAAC;AAAA,QACxF,QAAQ,KAAK,CAAC;AAAA,MAChB;AAAA,MACA,IAAI,CAAC,OAAO,KAAK,WAAW;AAAA,QAC1B,QAAQ,KAAK,CAAC;AAAA,MAChB;AAAA,MACA,QAAQ,KAAK,CAAC;AAAA,MACd,OAAO,OAAO;AAAA,MACd,QAAQ,MAAM,MAAM,IAAI;AAAA,EAAK,MAAM,yBAAyB,GAAG,KAAK;AAAA,MACpE,QAAQ,KAAK,CAAC;AAAA;AAAA;AAGpB;",
9
- "debugId": "D328126CA74B95F964756E2164756E21",
8
+ "mappings": ";;;;;;;;;;;;;AAMO,IAAM,sBAAsB,iBAAE,OAAO;AAAA,EAC1C,SAAS,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAClC,MAAM,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AACjC,CAAC;AAGM,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACxC,SAAS,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAClC,MAAM,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AACjC,CAAC;AAOM,IAAM,kBAAkB,iBAAE,KAAK;AAAA,EACpC;AAAA,EACA;AACF,CAAC;AAMM,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACxC,MAAM,iBAAE,OAAO;AAAA,EACf,QAAQ,iBAAE,QAAQ;AAAA,EAClB,SAAS,iBAAE,OAAO;AAAA,EAClB,YAAY,iBAAE,OAAO,EAAE,SAAS;AAAA,EAChC,SAAS,iBAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAEM,IAAM,gBAAgB,iBAAE,OAAO;AAAA,EACpC,SAAS,iBAAE,QAAQ,IAAI;AAAA,EACvB,MAAM,iBAAE,OAAO;AAAA,IACb,QAAQ,iBAAE,MAAM,iBAAiB;AAAA,IACjC,WAAW,iBAAE,QAAQ;AAAA,EACvB,CAAC;AACH,CAAC;AAEM,IAAM,gBAAgB,iBAAE,OAAO;AAAA,EACpC,SAAS,iBAAE,QAAQ,KAAK;AAAA,EACxB,OAAO,iBAAE,OAAO;AAAA,IACd,MAAM;AAAA,IACN,SAAS,iBAAE,OAAO;AAAA,IAClB,aAAa,iBAAE,QAAQ;AAAA,EACzB,CAAC;AACH,CAAC;;;AClDM,IAAM,UAAiD;AAAA,EAC5D,MAAM;AAAA,EACN,aAAa;AAAA,EACb,SAAS;AAAA,IACP,EAAE,OAAO,aAAa,aAAa,mCAAmC,cAAc,MAAM;AAAA,IAC1F,EAAE,OAAO,UAAU,aAAa,0BAA0B,cAAc,MAAM;AAAA,EAChF;AAAA,EACA,QAAQ,OAAO,OAAO,YAAY;AAAA,IAChC,IAAI;AAAA,MACF,MAAM,gBAAgB,oBAAoB,MAAM,OAAO;AAAA,MACvD,QAAQ,kBAAkB,MAAa;AAAA,MACvC,MAAM,UAAU,IAAI;AAAA,MACpB,MAAM,SAAS,MAAM,QAAQ,QAAQ;AAAA,QACnC,SAAS,cAAc;AAAA,QACvB,MAAM,cAAc;AAAA,MACtB,CAAC;AAAA,MAED,IAAI,CAAC,OAAO,SAAS;AAAA,QACnB,QAAQ,MAAM,MAAM,IAAI;AAAA,EAAK,MAAM,8BAA8B,OAAO,MAAM,SAAS,CAAC;AAAA,QACxF,QAAQ,KAAK,CAAC;AAAA,MAChB;AAAA,MACA,IAAI,CAAC,OAAO,KAAK,WAAW;AAAA,QAC1B,QAAQ,KAAK,CAAC;AAAA,MAChB;AAAA,MACA,QAAQ,KAAK,CAAC;AAAA,MACd,OAAO,OAAO;AAAA,MACd,QAAQ,MAAM,MAAM,IAAI;AAAA,EAAK,MAAM,yBAAyB,GAAG,KAAK;AAAA,MACpE,QAAQ,KAAK,CAAC;AAAA;AAAA;AAGpB;",
9
+ "debugId": "12FB4DE62F9B023964756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,17 +1,23 @@
1
1
  import { z } from 'zod';
2
2
  export declare const DoctorOptionsSchema: z.ZodObject<{
3
3
  verbose: z.ZodDefault<z.ZodBoolean>;
4
+ json: z.ZodDefault<z.ZodBoolean>;
4
5
  }, "strip", z.ZodTypeAny, {
6
+ json: boolean;
5
7
  verbose: boolean;
6
8
  }, {
9
+ json?: boolean | undefined;
7
10
  verbose?: boolean | undefined;
8
11
  }>;
9
12
  export type DoctorOptions = z.infer<typeof DoctorOptionsSchema>;
10
13
  export declare const DoctorInputSchema: z.ZodObject<{
11
14
  verbose: z.ZodDefault<z.ZodBoolean>;
15
+ json: z.ZodDefault<z.ZodBoolean>;
12
16
  }, "strip", z.ZodTypeAny, {
17
+ json: boolean;
13
18
  verbose: boolean;
14
19
  }, {
20
+ json?: boolean | undefined;
15
21
  verbose?: boolean | undefined;
16
22
  }>;
17
23
  export type DoctorInput = z.infer<typeof DoctorInputSchema>;
@@ -16,14 +16,16 @@ var InitOptionsSchema = exports_external.object({
16
16
  yes: exports_external.boolean().default(false),
17
17
  defaults: exports_external.boolean().default(false),
18
18
  client: exports_external.string().optional(),
19
- transport: exports_external.string().optional()
19
+ transport: exports_external.string().optional(),
20
+ json: exports_external.boolean().default(false)
20
21
  });
21
22
  var InitInputSchema = exports_external.object({
22
23
  local: exports_external.boolean().default(false),
23
24
  defaults: exports_external.boolean().default(false),
24
25
  autoVerify: exports_external.boolean().default(false),
25
26
  client: exports_external.string().optional(),
26
- transport: exports_external.string().optional()
27
+ transport: exports_external.string().optional(),
28
+ json: exports_external.boolean().default(false)
27
29
  });
28
30
  var InitErrorCode = exports_external.enum([
29
31
  "GCLOUD_SETUP_FAILED",
@@ -61,25 +63,31 @@ var command = {
61
63
  { flags: "-y, --yes", description: "Auto-approve verification commands", defaultValue: false },
62
64
  { flags: "--defaults", description: "Use default values for prompts", defaultValue: false },
63
65
  { flags: "-c, --client <client>", description: "MCP client to configure" },
64
- { flags: "-t, --transport <transport>", description: "Transport type (http or stdio)" }
66
+ { flags: "-t, --transport <transport>", description: "Transport type (http or stdio)" },
67
+ { flags: "--json", description: "Output result as JSON", defaultValue: false }
65
68
  ],
66
69
  action: async (_args, options) => {
67
70
  try {
68
71
  const parsedOptions = InitOptionsSchema.parse(options);
69
- const { InitHandler } = await import("../../chunk-r8n5m3xq.js");
72
+ const { InitHandler } = await import("../../chunk-s2d39pkr.js");
70
73
  const handler = new InitHandler;
71
74
  const result = await handler.execute({
72
75
  local: parsedOptions.local,
73
76
  defaults: parsedOptions.defaults,
74
77
  autoVerify: parsedOptions.yes,
75
78
  client: parsedOptions.client,
76
- transport: parsedOptions.transport
79
+ transport: parsedOptions.transport,
80
+ json: parsedOptions.json
77
81
  });
78
82
  if (!result.success) {
79
- console.error(theme.red(`
83
+ if (parsedOptions.json) {
84
+ console.log(JSON.stringify(result, null, 2));
85
+ } else {
86
+ console.error(theme.red(`
80
87
  ${icons.error} Setup failed: ${result.error.message}`));
81
- if (result.error.suggestion) {
82
- console.error(theme.gray(` ${result.error.suggestion}`));
88
+ if (result.error.suggestion) {
89
+ console.error(theme.gray(` ${result.error.suggestion}`));
90
+ }
83
91
  }
84
92
  process.exit(1);
85
93
  }
@@ -95,4 +103,4 @@ export {
95
103
  command
96
104
  };
97
105
 
98
- //# debugId=B5BC41BF3131609864756E2164756E21
106
+ //# debugId=E68BBE15F098BE4C64756E2164756E21
@@ -2,10 +2,10 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/commands/init/spec.ts", "../src/commands/init/command.ts"],
4
4
  "sourcesContent": [
5
- "import { z } from 'zod';\n\n// ============================================================================\n// INPUT SCHEMAS\n// ============================================================================\n\nexport const InitOptionsSchema = z.object({\n local: z.boolean().default(false),\n yes: z.boolean().default(false),\n defaults: z.boolean().default(false),\n client: z.string().optional(),\n transport: z.string().optional(),\n});\nexport type InitOptions = z.infer<typeof InitOptionsSchema>;\n\nexport const InitInputSchema = z.object({\n local: z.boolean().default(false),\n defaults: z.boolean().default(false),\n autoVerify: z.boolean().default(false),\n client: z.string().optional(),\n transport: z.string().optional(),\n});\nexport type InitInput = z.infer<typeof InitInputSchema>;\n\n// ============================================================================\n// ERROR CODES\n// ============================================================================\n\nexport const InitErrorCode = z.enum([\n 'GCLOUD_SETUP_FAILED',\n 'AUTH_FAILED',\n 'PROJECT_SELECTION_FAILED',\n 'API_CONFIG_FAILED',\n 'CONFIG_GENERATION_FAILED',\n 'USER_CANCELLED',\n 'UNKNOWN_ERROR',\n]);\n\n// ============================================================================\n// RESULT TYPES\n// ============================================================================\n\nexport const InitSuccess = z.object({\n success: z.literal(true),\n data: z.object({\n projectId: z.string(),\n mcpConfig: z.string(),\n instructions: z.string(),\n }),\n});\n\nexport const InitFailure = z.object({\n success: z.literal(false),\n error: z.object({\n code: InitErrorCode,\n message: z.string(),\n suggestion: z.string().optional(),\n recoverable: z.boolean(),\n }),\n});\n\nexport type InitResult = z.infer<typeof InitSuccess> | z.infer<typeof InitFailure>;\n\n// ============================================================================\n// INTERFACE\n// ============================================================================\n\nexport interface InitCommand {\n execute(input: InitInput): Promise<InitResult>;\n}\n",
6
- "import { type CommandDefinition } from '../../framework/CommandDefinition.js';\nimport { theme, icons } from '../../ui/theme.js';\nimport { InitOptionsSchema, type InitOptions } from './spec.js';\n\nexport const command: CommandDefinition<any, InitOptions> = {\n name: 'init',\n description: 'Initialize authentication and MCP configuration',\n options: [\n { flags: '--local', description: 'Install gcloud locally to project directory instead of user home', defaultValue: false },\n { flags: '-y, --yes', description: 'Auto-approve verification commands', defaultValue: false },\n { flags: '--defaults', description: 'Use default values for prompts', defaultValue: false },\n { flags: '-c, --client <client>', description: 'MCP client to configure' },\n { flags: '-t, --transport <transport>', description: 'Transport type (http or stdio)' },\n ],\n action: async (_args, options) => {\n try {\n const parsedOptions = InitOptionsSchema.parse(options);\n const { InitHandler } = await import('./handler.js');\n const handler = new InitHandler();\n const result = await handler.execute({\n local: parsedOptions.local,\n defaults: parsedOptions.defaults,\n autoVerify: parsedOptions.yes,\n client: parsedOptions.client,\n transport: parsedOptions.transport,\n });\n\n if (!result.success) {\n console.error(theme.red(`\\n${icons.error} Setup failed: ${result.error.message}`));\n if (result.error.suggestion) {\n console.error(theme.gray(` ${result.error.suggestion}`));\n }\n process.exit(1);\n }\n process.exit(0);\n } catch (error) {\n console.error(theme.red(`\\n${icons.error} Unexpected error:`), error);\n process.exit(1);\n }\n }\n};\n"
5
+ "import { z } from 'zod';\n\n// ============================================================================\n// INPUT SCHEMAS\n// ============================================================================\n\nexport const InitOptionsSchema = z.object({\n local: z.boolean().default(false),\n yes: z.boolean().default(false),\n defaults: z.boolean().default(false),\n client: z.string().optional(),\n transport: z.string().optional(),\n json: z.boolean().default(false),\n});\nexport type InitOptions = z.infer<typeof InitOptionsSchema>;\n\nexport const InitInputSchema = z.object({\n local: z.boolean().default(false),\n defaults: z.boolean().default(false),\n autoVerify: z.boolean().default(false),\n client: z.string().optional(),\n transport: z.string().optional(),\n json: z.boolean().default(false),\n});\nexport type InitInput = z.infer<typeof InitInputSchema>;\n\n// ============================================================================\n// ERROR CODES\n// ============================================================================\n\nexport const InitErrorCode = z.enum([\n 'GCLOUD_SETUP_FAILED',\n 'AUTH_FAILED',\n 'PROJECT_SELECTION_FAILED',\n 'API_CONFIG_FAILED',\n 'CONFIG_GENERATION_FAILED',\n 'USER_CANCELLED',\n 'UNKNOWN_ERROR',\n]);\n\n// ============================================================================\n// RESULT TYPES\n// ============================================================================\n\nexport const InitSuccess = z.object({\n success: z.literal(true),\n data: z.object({\n projectId: z.string(),\n mcpConfig: z.string(),\n instructions: z.string(),\n }),\n});\n\nexport const InitFailure = z.object({\n success: z.literal(false),\n error: z.object({\n code: InitErrorCode,\n message: z.string(),\n suggestion: z.string().optional(),\n recoverable: z.boolean(),\n }),\n});\n\nexport type InitResult = z.infer<typeof InitSuccess> | z.infer<typeof InitFailure>;\n\n// ============================================================================\n// INTERFACE\n// ============================================================================\n\nexport interface InitCommand {\n execute(input: InitInput): Promise<InitResult>;\n}\n",
6
+ "import { type CommandDefinition } from '../../framework/CommandDefinition.js';\nimport { theme, icons } from '../../ui/theme.js';\nimport { InitOptionsSchema, type InitOptions } from './spec.js';\n\nexport const command: CommandDefinition<any, InitOptions> = {\n name: 'init',\n description: 'Initialize authentication and MCP configuration',\n options: [\n { flags: '--local', description: 'Install gcloud locally to project directory instead of user home', defaultValue: false },\n { flags: '-y, --yes', description: 'Auto-approve verification commands', defaultValue: false },\n { flags: '--defaults', description: 'Use default values for prompts', defaultValue: false },\n { flags: '-c, --client <client>', description: 'MCP client to configure' },\n { flags: '-t, --transport <transport>', description: 'Transport type (http or stdio)' },\n { flags: '--json', description: 'Output result as JSON', defaultValue: false },\n ],\n action: async (_args, options) => {\n try {\n const parsedOptions = InitOptionsSchema.parse(options);\n const { InitHandler } = await import('./handler.js');\n const handler = new InitHandler();\n const result = await handler.execute({\n local: parsedOptions.local,\n defaults: parsedOptions.defaults,\n autoVerify: parsedOptions.yes,\n client: parsedOptions.client,\n transport: parsedOptions.transport,\n json: parsedOptions.json,\n });\n\n if (!result.success) {\n if (parsedOptions.json) {\n console.log(JSON.stringify(result, null, 2));\n } else {\n console.error(theme.red(`\\n${icons.error} Setup failed: ${result.error.message}`));\n if (result.error.suggestion) {\n console.error(theme.gray(` ${result.error.suggestion}`));\n }\n }\n process.exit(1);\n }\n process.exit(0);\n } catch (error) {\n console.error(theme.red(`\\n${icons.error} Unexpected error:`), error);\n process.exit(1);\n }\n }\n};\n"
7
7
  ],
8
- "mappings": ";;;;;;;;;;;;;AAMO,IAAM,oBAAoB,iBAAE,OAAO;AAAA,EACxC,OAAO,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAChC,KAAK,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAC9B,UAAU,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACnC,QAAQ,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,WAAW,iBAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAGM,IAAM,kBAAkB,iBAAE,OAAO;AAAA,EACtC,OAAO,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAChC,UAAU,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACnC,YAAY,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EACrC,QAAQ,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,WAAW,iBAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAOM,IAAM,gBAAgB,iBAAE,KAAK;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAMM,IAAM,cAAc,iBAAE,OAAO;AAAA,EAClC,SAAS,iBAAE,QAAQ,IAAI;AAAA,EACvB,MAAM,iBAAE,OAAO;AAAA,IACb,WAAW,iBAAE,OAAO;AAAA,IACpB,WAAW,iBAAE,OAAO;AAAA,IACpB,cAAc,iBAAE,OAAO;AAAA,EACzB,CAAC;AACH,CAAC;AAEM,IAAM,cAAc,iBAAE,OAAO;AAAA,EAClC,SAAS,iBAAE,QAAQ,KAAK;AAAA,EACxB,OAAO,iBAAE,OAAO;AAAA,IACd,MAAM;AAAA,IACN,SAAS,iBAAE,OAAO;AAAA,IAClB,YAAY,iBAAE,OAAO,EAAE,SAAS;AAAA,IAChC,aAAa,iBAAE,QAAQ;AAAA,EACzB,CAAC;AACH,CAAC;;;ACvDM,IAAM,UAA+C;AAAA,EAC1D,MAAM;AAAA,EACN,aAAa;AAAA,EACb,SAAS;AAAA,IACP,EAAE,OAAO,WAAW,aAAa,oEAAoE,cAAc,MAAM;AAAA,IACzH,EAAE,OAAO,aAAa,aAAa,sCAAsC,cAAc,MAAM;AAAA,IAC7F,EAAE,OAAO,cAAc,aAAa,kCAAkC,cAAc,MAAM;AAAA,IAC1F,EAAE,OAAO,yBAAyB,aAAa,0BAA0B;AAAA,IACzE,EAAE,OAAO,+BAA+B,aAAa,iCAAiC;AAAA,EACxF;AAAA,EACA,QAAQ,OAAO,OAAO,YAAY;AAAA,IAChC,IAAI;AAAA,MACF,MAAM,gBAAgB,kBAAkB,MAAM,OAAO;AAAA,MACrD,QAAQ,gBAAgB,MAAa;AAAA,MACrC,MAAM,UAAU,IAAI;AAAA,MACpB,MAAM,SAAS,MAAM,QAAQ,QAAQ;AAAA,QACnC,OAAO,cAAc;AAAA,QACrB,UAAU,cAAc;AAAA,QACxB,YAAY,cAAc;AAAA,QAC1B,QAAQ,cAAc;AAAA,QACtB,WAAW,cAAc;AAAA,MAC3B,CAAC;AAAA,MAED,IAAI,CAAC,OAAO,SAAS;AAAA,QACnB,QAAQ,MAAM,MAAM,IAAI;AAAA,EAAK,MAAM,uBAAuB,OAAO,MAAM,SAAS,CAAC;AAAA,QACjF,IAAI,OAAO,MAAM,YAAY;AAAA,UAC3B,QAAQ,MAAM,MAAM,KAAK,KAAK,OAAO,MAAM,YAAY,CAAC;AAAA,QAC1D;AAAA,QACA,QAAQ,KAAK,CAAC;AAAA,MAChB;AAAA,MACA,QAAQ,KAAK,CAAC;AAAA,MACd,OAAO,OAAO;AAAA,MACd,QAAQ,MAAM,MAAM,IAAI;AAAA,EAAK,MAAM,yBAAyB,GAAG,KAAK;AAAA,MACpE,QAAQ,KAAK,CAAC;AAAA;AAAA;AAGpB;",
9
- "debugId": "B5BC41BF3131609864756E2164756E21",
8
+ "mappings": "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",
9
+ "debugId": "E68BBE15F098BE4C64756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -5,10 +5,12 @@ export declare const InitOptionsSchema: z.ZodObject<{
5
5
  defaults: z.ZodDefault<z.ZodBoolean>;
6
6
  client: z.ZodOptional<z.ZodString>;
7
7
  transport: z.ZodOptional<z.ZodString>;
8
+ json: z.ZodDefault<z.ZodBoolean>;
8
9
  }, "strip", z.ZodTypeAny, {
9
10
  local: boolean;
10
11
  yes: boolean;
11
12
  defaults: boolean;
13
+ json: boolean;
12
14
  client?: string | undefined;
13
15
  transport?: string | undefined;
14
16
  }, {
@@ -17,6 +19,7 @@ export declare const InitOptionsSchema: z.ZodObject<{
17
19
  local?: boolean | undefined;
18
20
  yes?: boolean | undefined;
19
21
  defaults?: boolean | undefined;
22
+ json?: boolean | undefined;
20
23
  }>;
21
24
  export type InitOptions = z.infer<typeof InitOptionsSchema>;
22
25
  export declare const InitInputSchema: z.ZodObject<{
@@ -25,9 +28,11 @@ export declare const InitInputSchema: z.ZodObject<{
25
28
  autoVerify: z.ZodDefault<z.ZodBoolean>;
26
29
  client: z.ZodOptional<z.ZodString>;
27
30
  transport: z.ZodOptional<z.ZodString>;
31
+ json: z.ZodDefault<z.ZodBoolean>;
28
32
  }, "strip", z.ZodTypeAny, {
29
33
  local: boolean;
30
34
  defaults: boolean;
35
+ json: boolean;
31
36
  autoVerify: boolean;
32
37
  client?: string | undefined;
33
38
  transport?: string | undefined;
@@ -36,6 +41,7 @@ export declare const InitInputSchema: z.ZodObject<{
36
41
  transport?: string | undefined;
37
42
  local?: boolean | undefined;
38
43
  defaults?: boolean | undefined;
44
+ json?: boolean | undefined;
39
45
  autoVerify?: boolean | undefined;
40
46
  }>;
41
47
  export type InitInput = z.infer<typeof InitInputSchema>;
@@ -29,7 +29,7 @@ var command = {
29
29
  action: async (_args, options) => {
30
30
  try {
31
31
  const parsedOptions = ProxyOptionsSchema.parse(options);
32
- const { ProxyCommandHandler } = await import("../../chunk-kw62yeqn.js");
32
+ const { ProxyCommandHandler } = await import("../../chunk-nnep362g.js");
33
33
  const handler = new ProxyCommandHandler;
34
34
  const result = await handler.execute({
35
35
  port: parsedOptions.port,
@@ -40,7 +40,6 @@ var command = {
40
40
  ${icons.error} Proxy server error: ${result.error?.message}`));
41
41
  process.exit(1);
42
42
  }
43
- process.exit(0);
44
43
  } catch (error) {
45
44
  console.error(theme.red(`
46
45
  ${icons.error} Unexpected error:`), error);
@@ -52,4 +51,4 @@ export {
52
51
  command
53
52
  };
54
53
 
55
- //# debugId=3D95040FF81D0B9C64756E2164756E21
54
+ //# debugId=DD5AA00EE9D7A7BD64756E2164756E21
@@ -3,9 +3,9 @@
3
3
  "sources": ["../src/commands/proxy/spec.ts", "../src/commands/proxy/command.ts"],
4
4
  "sourcesContent": [
5
5
  "import { z } from 'zod';\n\nexport const ProxyOptionsSchema = z.object({\n transport: z.enum(['stdio', 'sse']).default('stdio'),\n port: z.number().optional(),\n debug: z.boolean().default(false),\n});\n\nexport type ProxyOptions = z.infer<typeof ProxyOptionsSchema>;\n",
6
- "import { type CommandDefinition } from '../../framework/CommandDefinition.js';\nimport { theme, icons } from '../../ui/theme.js';\nimport { ProxyOptionsSchema, type ProxyOptions } from './spec.js';\n\nexport const command: CommandDefinition<any, ProxyOptions> = {\n name: 'proxy',\n description: 'Start the Stitch MCP proxy server',\n options: [\n { flags: '--transport <type>', description: 'Transport type (stdio)', defaultValue: 'stdio' },\n { flags: '--port <number>', description: 'Port number', fn: (val) => parseInt(val, 10) },\n { flags: '--debug', description: 'Enable debug logging to file', defaultValue: false },\n ],\n action: async (_args, options) => {\n try {\n const parsedOptions = ProxyOptionsSchema.parse(options);\n const { ProxyCommandHandler } = await import('./handler.js');\n const handler = new ProxyCommandHandler();\n\n const result = await handler.execute({\n port: parsedOptions.port,\n debug: parsedOptions.debug,\n });\n\n if (!result.success) {\n console.error(theme.red(`\\n${icons.error} Proxy server error: ${result.error?.message}`));\n process.exit(1);\n }\n process.exit(0);\n } catch (error) {\n console.error(theme.red(`\\n${icons.error} Unexpected error:`), error);\n process.exit(1);\n }\n }\n};\n"
6
+ "import { type CommandDefinition } from '../../framework/CommandDefinition.js';\nimport { theme, icons } from '../../ui/theme.js';\nimport { ProxyOptionsSchema, type ProxyOptions } from './spec.js';\n\nexport const command: CommandDefinition<any, ProxyOptions> = {\n name: 'proxy',\n description: 'Start the Stitch MCP proxy server',\n options: [\n { flags: '--transport <type>', description: 'Transport type (stdio)', defaultValue: 'stdio' },\n { flags: '--port <number>', description: 'Port number', fn: (val) => parseInt(val, 10) },\n { flags: '--debug', description: 'Enable debug logging to file', defaultValue: false },\n ],\n action: async (_args, options) => {\n try {\n const parsedOptions = ProxyOptionsSchema.parse(options);\n const { ProxyCommandHandler } = await import('./handler.js');\n const handler = new ProxyCommandHandler();\n\n const result = await handler.execute({\n port: parsedOptions.port,\n debug: parsedOptions.debug,\n });\n\n if (!result.success) {\n console.error(theme.red(`\\n${icons.error} Proxy server error: ${result.error?.message}`));\n process.exit(1);\n }\n // No process.exit(0) here — the proxy is a long-running server.\n // The stdin listener keeps the event loop alive until the client disconnects.\n } catch (error) {\n console.error(theme.red(`\\n${icons.error} Unexpected error:`), error);\n process.exit(1);\n }\n }\n};\n"
7
7
  ],
8
- "mappings": ";;;;;;;;;;;;;AAEO,IAAM,qBAAqB,iBAAE,OAAO;AAAA,EACzC,WAAW,iBAAE,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE,QAAQ,OAAO;AAAA,EACnD,MAAM,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAO,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AAClC,CAAC;;;ACFM,IAAM,UAAgD;AAAA,EAC3D,MAAM;AAAA,EACN,aAAa;AAAA,EACb,SAAS;AAAA,IACP,EAAE,OAAO,sBAAsB,aAAa,0BAA0B,cAAc,QAAQ;AAAA,IAC5F,EAAE,OAAO,mBAAmB,aAAa,eAAe,IAAI,CAAC,QAAQ,SAAS,KAAK,EAAE,EAAE;AAAA,IACvF,EAAE,OAAO,WAAW,aAAa,gCAAgC,cAAc,MAAM;AAAA,EACvF;AAAA,EACA,QAAQ,OAAO,OAAO,YAAY;AAAA,IAChC,IAAI;AAAA,MACF,MAAM,gBAAgB,mBAAmB,MAAM,OAAO;AAAA,MACtD,QAAQ,wBAAwB,MAAa;AAAA,MAC7C,MAAM,UAAU,IAAI;AAAA,MAEpB,MAAM,SAAS,MAAM,QAAQ,QAAQ;AAAA,QACnC,MAAM,cAAc;AAAA,QACpB,OAAO,cAAc;AAAA,MACvB,CAAC;AAAA,MAED,IAAI,CAAC,OAAO,SAAS;AAAA,QACnB,QAAQ,MAAM,MAAM,IAAI;AAAA,EAAK,MAAM,6BAA6B,OAAO,OAAO,SAAS,CAAC;AAAA,QACxF,QAAQ,KAAK,CAAC;AAAA,MAChB;AAAA,MACA,QAAQ,KAAK,CAAC;AAAA,MACd,OAAO,OAAO;AAAA,MACd,QAAQ,MAAM,MAAM,IAAI;AAAA,EAAK,MAAM,yBAAyB,GAAG,KAAK;AAAA,MACpE,QAAQ,KAAK,CAAC;AAAA;AAAA;AAGpB;",
9
- "debugId": "3D95040FF81D0B9C64756E2164756E21",
8
+ "mappings": ";;;;;;;;;;;;;AAEO,IAAM,qBAAqB,iBAAE,OAAO;AAAA,EACzC,WAAW,iBAAE,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE,QAAQ,OAAO;AAAA,EACnD,MAAM,iBAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,OAAO,iBAAE,QAAQ,EAAE,QAAQ,KAAK;AAClC,CAAC;;;ACFM,IAAM,UAAgD;AAAA,EAC3D,MAAM;AAAA,EACN,aAAa;AAAA,EACb,SAAS;AAAA,IACP,EAAE,OAAO,sBAAsB,aAAa,0BAA0B,cAAc,QAAQ;AAAA,IAC5F,EAAE,OAAO,mBAAmB,aAAa,eAAe,IAAI,CAAC,QAAQ,SAAS,KAAK,EAAE,EAAE;AAAA,IACvF,EAAE,OAAO,WAAW,aAAa,gCAAgC,cAAc,MAAM;AAAA,EACvF;AAAA,EACA,QAAQ,OAAO,OAAO,YAAY;AAAA,IAChC,IAAI;AAAA,MACF,MAAM,gBAAgB,mBAAmB,MAAM,OAAO;AAAA,MACtD,QAAQ,wBAAwB,MAAa;AAAA,MAC7C,MAAM,UAAU,IAAI;AAAA,MAEpB,MAAM,SAAS,MAAM,QAAQ,QAAQ;AAAA,QACnC,MAAM,cAAc;AAAA,QACpB,OAAO,cAAc;AAAA,MACvB,CAAC;AAAA,MAED,IAAI,CAAC,OAAO,SAAS;AAAA,QACnB,QAAQ,MAAM,MAAM,IAAI;AAAA,EAAK,MAAM,6BAA6B,OAAO,OAAO,SAAS,CAAC;AAAA,QACxF,QAAQ,KAAK,CAAC;AAAA,MAChB;AAAA,MAGA,OAAO,OAAO;AAAA,MACd,QAAQ,MAAM,MAAM,IAAI;AAAA,EAAK,MAAM,yBAAyB,GAAG,KAAK;AAAA,MACpE,QAAQ,KAAK,CAAC;AAAA;AAAA;AAGpB;",
9
+ "debugId": "DD5AA00EE9D7A7BD64756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -26,8 +26,8 @@ var command = {
26
26
  try {
27
27
  const parsedOptions = ScreensOptionsSchema.parse(options);
28
28
  const { ScreensHandler } = await import("../../chunk-mbt1wx7n.js");
29
- const { ScreensView } = await import("../../chunk-7egq85x5.js");
30
- const { stitch } = await import("../../chunk-ezs0qz0b.js");
29
+ const { ScreensView } = await import("../../chunk-9g1t32qk.js");
30
+ const { stitch } = await import("../../chunk-sv2nt87j.js");
31
31
  const { render } = await import("../../chunk-t092ehvp.js");
32
32
  const React = await import("../../chunk-edp6faw2.js");
33
33
  const handler = new ScreensHandler(stitch);
@@ -51,7 +51,7 @@ var command = {
51
51
  action: async (_args, options) => {
52
52
  try {
53
53
  const parsedOptions = ServeOptionsSchema.parse(options);
54
- const { stitch } = await import("../../chunk-ezs0qz0b.js");
54
+ const { stitch } = await import("../../chunk-sv2nt87j.js");
55
55
  if (parsedOptions.listScreens) {
56
56
  const input = ListScreensInputSchema.safeParse({ projectId: parsedOptions.project });
57
57
  if (!input.success) {
@@ -69,7 +69,7 @@ var command = {
69
69
  console.log(JSON.stringify({ success: false, error: { code: "INVALID_INPUT", message: input.error.issues[0]?.message } }, null, 2));
70
70
  process.exit(1);
71
71
  }
72
- const { JsonServerHandler } = await import("../../chunk-7pf2vfq9.js");
72
+ const { JsonServerHandler } = await import("../../chunk-t2razx5k.js");
73
73
  const result2 = await new JsonServerHandler(stitch).execute(input.data);
74
74
  console.log(JSON.stringify(result2, null, 2));
75
75
  if (!result2.success)
@@ -78,7 +78,7 @@ var command = {
78
78
  return;
79
79
  }
80
80
  const { ServeHandler } = await import("../../chunk-w8075wyx.js");
81
- const { ServeView } = await import("../../chunk-2kg77g4q.js");
81
+ const { ServeView } = await import("../../chunk-m4fp3pqc.js");
82
82
  const { render } = await import("../../chunk-t092ehvp.js");
83
83
  const React = await import("../../chunk-edp6faw2.js");
84
84
  const handler = new ServeHandler(stitch);
@@ -35,7 +35,7 @@ var command = {
35
35
  action: async (_args, options) => {
36
36
  try {
37
37
  const parsedOptions = SiteOptionsSchema.parse(options);
38
- const { SiteCommandHandler } = await import("../../chunk-smvqara3.js");
38
+ const { SiteCommandHandler } = await import("../../chunk-4zqw9exz.js");
39
39
  const handler = new SiteCommandHandler;
40
40
  await handler.execute({
41
41
  projectId: parsedOptions.project,
@@ -34,7 +34,7 @@ var command = {
34
34
  action: async (_args, options) => {
35
35
  try {
36
36
  const parsedOptions = SnapshotInputSchema.parse(options);
37
- const { SnapshotHandler } = await import("../../chunk-8rt3pp6g.js");
37
+ const { SnapshotHandler } = await import("../../chunk-f89ve6pt.js");
38
38
  const handler = new SnapshotHandler;
39
39
  const result = await handler.execute({
40
40
  command: parsedOptions.command,
@@ -34,7 +34,7 @@ var command = {
34
34
  action: async (toolName, options) => {
35
35
  try {
36
36
  const parsedOptions = ToolOptionsSchema.parse(options);
37
- const { ToolCommandHandler } = await import("../../chunk-rj2gqxxb.js");
37
+ const { ToolCommandHandler } = await import("../../chunk-q8cr9t2z.js");
38
38
  const handler = new ToolCommandHandler;
39
39
  const result = await handler.execute({
40
40
  toolName,
@@ -35,7 +35,7 @@ var command = {
35
35
  action: async (_args, options) => {
36
36
  try {
37
37
  const parsedOptions = ViewOptionsSchema.parse(options);
38
- const { ViewCommandHandler } = await import("../../chunk-v78rg840.js");
38
+ const { ViewCommandHandler } = await import("../../chunk-1fbzpreg.js");
39
39
  const handler = new ViewCommandHandler;
40
40
  await handler.execute(parsedOptions);
41
41
  } catch (error) {
package/dist/index.js CHANGED
@@ -2,10 +2,10 @@ import {
2
2
  InitHandler,
3
3
  McpConfigHandler,
4
4
  ProjectHandler
5
- } from "./chunk-1dcffh2w.js";
5
+ } from "./chunk-etcps0m5.js";
6
6
  import {
7
7
  DoctorHandler
8
- } from "./chunk-7zy0vdv5.js";
8
+ } from "./chunk-aa5ptn4s.js";
9
9
  import {
10
10
  StitchHandler
11
11
  } from "./chunk-py8fhw0k.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@_davideast/stitch-mcp",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "Stitch MCP CLI helper. Automates Google Cloud authentication. Generates MCP config for your client. Sets up a proxy server.",
5
5
  "type": "module",
6
6
  "publishConfig": {