@_davideast/stitch-mcp 0.5.0 → 0.5.1
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.
- package/dist/{chunk-hb3c6f6a.js → chunk-001yk06v.js} +2 -2
- package/dist/chunk-0cd2xak4.js +31447 -0
- package/dist/chunk-0cd2xak4.js.map +245 -0
- package/dist/{chunk-9tvppjaf.js → chunk-13mqag7n.js} +8 -10
- package/dist/{chunk-9tvppjaf.js.map → chunk-13mqag7n.js.map} +2 -2
- package/dist/chunk-1dcffh2w.js +1481 -0
- package/dist/chunk-1dcffh2w.js.map +23 -0
- package/dist/{chunk-985f11w6.js → chunk-26cgk4dt.js} +6 -8
- package/dist/{chunk-8yrtq2qs.js.map → chunk-26cgk4dt.js.map} +1 -1
- package/dist/chunk-2kg77g4q.js +167 -0
- package/dist/chunk-2kg77g4q.js.map +10 -0
- package/dist/chunk-34w2wfyp.js +68 -0
- package/dist/chunk-34w2wfyp.js.map +10 -0
- package/dist/chunk-44tn9dxb.js +19 -0
- package/dist/{chunk-985f11w6.js.map → chunk-44tn9dxb.js.map} +1 -1
- package/dist/chunk-5204d23a.js +24 -0
- package/dist/{chunk-ezmw2j8c.js.map → chunk-5204d23a.js.map} +1 -1
- package/dist/{chunk-mv9ssgmx.js → chunk-54wv5ptt.js} +5 -5
- package/dist/{chunk-mv9ssgmx.js.map → chunk-54wv5ptt.js.map} +2 -2
- package/dist/chunk-5dghg77b.js +16970 -0
- package/dist/chunk-5dghg77b.js.map +26 -0
- package/dist/{chunk-r2sg2nxa.js → chunk-5f2htt6r.js} +6 -7
- package/dist/chunk-5f2htt6r.js.map +9 -0
- package/dist/chunk-6gw9apqb.js +20 -0
- package/dist/chunk-6gw9apqb.js.map +10 -0
- package/dist/chunk-7bt2055x.js +39 -0
- package/dist/chunk-7bt2055x.js.map +10 -0
- package/dist/chunk-7egq85x5.js +273 -0
- package/dist/chunk-7egq85x5.js.map +10 -0
- package/dist/chunk-7pf2vfq9.js +69 -0
- package/dist/chunk-7pf2vfq9.js.map +10 -0
- package/dist/{chunk-q1nd6g0y.js → chunk-7rrhk07q.js} +76 -53
- package/dist/chunk-7rrhk07q.js.map +20 -0
- package/dist/{chunk-7xh1y383.js → chunk-7xsar3mr.js} +2 -2
- package/dist/{chunk-7xh1y383.js.map → chunk-7xsar3mr.js.map} +1 -1
- package/dist/chunk-7y4xzvkz.js +19132 -0
- package/dist/chunk-7y4xzvkz.js.map +115 -0
- package/dist/chunk-7zy0vdv5.js +761 -0
- package/dist/chunk-7zy0vdv5.js.map +18 -0
- package/dist/chunk-8rt3pp6g.js +256 -0
- package/dist/{chunk-jy2d17pr.js.map → chunk-8rt3pp6g.js.map} +3 -3
- package/dist/chunk-98trrxk2.js +40 -0
- package/dist/chunk-98trrxk2.js.map +10 -0
- package/dist/chunk-a1mk24q9.js +31326 -0
- package/dist/chunk-a1mk24q9.js.map +245 -0
- package/dist/chunk-a5xra9jn.js +159 -0
- package/dist/chunk-a5xra9jn.js.map +11 -0
- package/dist/chunk-abf1r0jh.js +2118 -0
- package/dist/chunk-abf1r0jh.js.map +44 -0
- package/dist/{chunk-25wakzyb.js → chunk-ahw5kfbr.js} +5 -5
- package/dist/chunk-akd997ec.js +11061 -0
- package/dist/chunk-akd997ec.js.map +238 -0
- package/dist/chunk-by28t333.js +19 -0
- package/dist/chunk-by28t333.js.map +9 -0
- package/dist/{chunk-2k7n0w2x.js → chunk-c6ge431q.js} +2 -2
- package/dist/{chunk-2k7n0w2x.js.map → chunk-c6ge431q.js.map} +1 -1
- package/dist/{chunk-ycfxp056.js → chunk-cnmspfhx.js} +7 -11
- package/dist/chunk-cnmspfhx.js.map +17 -0
- package/dist/chunk-cwqdka8y.js +6382 -0
- package/dist/chunk-cwqdka8y.js.map +109 -0
- package/dist/chunk-dffwrtn3.js +673 -0
- package/dist/chunk-dffwrtn3.js.map +17 -0
- package/dist/chunk-dyp9t5wf.js +44109 -0
- package/dist/chunk-dyp9t5wf.js.map +237 -0
- package/dist/chunk-e9881zy4.js +39 -0
- package/dist/chunk-e9881zy4.js.map +10 -0
- package/dist/chunk-ezs0qz0b.js +24 -0
- package/dist/chunk-ezs0qz0b.js.map +9 -0
- package/dist/chunk-f6cq8r7x.js +736 -0
- package/dist/chunk-f6cq8r7x.js.map +16 -0
- package/dist/{chunk-45wx7tn7.js → chunk-gwnmywrp.js} +2 -2
- package/dist/chunk-gz78f003.js +94 -0
- package/dist/chunk-gz78f003.js.map +10 -0
- package/dist/chunk-j0y94q2c.js +10 -0
- package/dist/{chunk-nthabjd9.js → chunk-jyem6j6k.js} +1848 -3
- package/dist/chunk-jyem6j6k.js.map +65 -0
- package/dist/chunk-kad4d9sf.js +11 -0
- package/dist/chunk-kad4d9sf.js.map +9 -0
- package/dist/{chunk-wz8d5vzb.js → chunk-krfqppg2.js} +32 -2
- package/dist/{chunk-wz8d5vzb.js.map → chunk-krfqppg2.js.map} +5 -4
- package/dist/chunk-kw62yeqn.js +124 -0
- package/dist/chunk-kw62yeqn.js.map +12 -0
- package/dist/chunk-mbt1wx7n.js +43 -0
- package/dist/chunk-mbt1wx7n.js.map +10 -0
- package/dist/chunk-nzv6abbc.js +22 -0
- package/dist/chunk-nzv6abbc.js.map +9 -0
- package/dist/{chunk-cwkb2wbe.js → chunk-pjpdhh0f.js} +27 -24
- package/dist/chunk-pjpdhh0f.js.map +16 -0
- package/dist/chunk-py8fhw0k.js +941 -0
- package/dist/chunk-py8fhw0k.js.map +27 -0
- package/dist/chunk-q6sv0243.js +93 -0
- package/dist/chunk-q6sv0243.js.map +13 -0
- package/dist/chunk-r8n5m3xq.js +19 -0
- package/dist/chunk-r8n5m3xq.js.map +9 -0
- package/dist/{chunk-nxpzt33t.js → chunk-rcwtjara.js} +8 -13
- package/dist/chunk-rcwtjara.js.map +10 -0
- package/dist/{chunk-t85nbjjb.js → chunk-rfrcdsfc.js} +5 -9
- package/dist/chunk-rfrcdsfc.js.map +10 -0
- package/dist/chunk-rj2gqxxb.js +415 -0
- package/dist/chunk-rj2gqxxb.js.map +20 -0
- package/dist/{chunk-v7117ywx.js → chunk-rvq1vb70.js} +5 -7
- package/dist/{chunk-v7117ywx.js.map → chunk-rvq1vb70.js.map} +2 -2
- package/dist/chunk-smvqara3.js +370 -0
- package/dist/chunk-smvqara3.js.map +16 -0
- package/dist/{chunk-pfyjtfex.js → chunk-sp8zjpbf.js} +7 -12
- package/dist/chunk-sp8zjpbf.js.map +10 -0
- package/dist/{chunk-48d17n29.js → chunk-ssbg48ec.js} +1 -1
- package/dist/chunk-ssbg48ec.js.map +9 -0
- package/dist/chunk-st7q66e5.js +109 -0
- package/dist/chunk-st7q66e5.js.map +10 -0
- package/dist/{chunk-sdp429xd.js → chunk-sw7h7asn.js} +32 -8
- package/dist/chunk-sw7h7asn.js.map +27 -0
- package/dist/chunk-t092ehvp.js +50 -0
- package/dist/chunk-t092ehvp.js.map +9 -0
- package/dist/{chunk-2cetsfw4.js → chunk-t0xqfse1.js} +50 -9
- package/dist/{chunk-2cetsfw4.js.map → chunk-t0xqfse1.js.map} +8 -3
- package/dist/chunk-v1t5vys5.js +124 -0
- package/dist/chunk-v1t5vys5.js.map +12 -0
- package/dist/chunk-v78rg840.js +137 -0
- package/dist/chunk-v78rg840.js.map +10 -0
- package/dist/chunk-v7xskyzm.js +19 -0
- package/dist/chunk-v7xskyzm.js.map +9 -0
- package/dist/{chunk-jy2d17pr.js → chunk-vjshqjmh.js} +12 -8
- package/dist/chunk-vjshqjmh.js.map +11 -0
- package/dist/chunk-w8075wyx.js +40 -0
- package/dist/chunk-w8075wyx.js.map +10 -0
- package/dist/chunk-wn8mek6a.js +189 -0
- package/dist/chunk-wn8mek6a.js.map +11 -0
- package/dist/{chunk-2kyqsrg2.js → chunk-y447ymks.js} +364 -3
- package/dist/chunk-y447ymks.js.map +18 -0
- package/dist/chunk-yej34vkc.js +247 -0
- package/dist/chunk-yej34vkc.js.map +14 -0
- package/dist/commands/doctor/command.js +2 -2
- package/dist/commands/init/command.js +2 -2
- package/dist/commands/logout/command.js +2 -2
- package/dist/commands/proxy/command.js +4 -5
- package/dist/commands/proxy/command.js.map +3 -3
- package/dist/commands/proxy/handler.d.ts +27 -5
- package/dist/commands/registry.d.ts +2 -0
- package/dist/commands/screens/ScreensView.d.ts +1 -3
- package/dist/commands/screens/command.js +8 -10
- package/dist/commands/screens/command.js.map +3 -3
- package/dist/commands/screens/handler.d.ts +5 -6
- package/dist/commands/serve/command.js +60 -10
- package/dist/commands/serve/command.js.map +7 -5
- package/dist/commands/serve/handler.d.ts +6 -21
- package/dist/commands/serve/json-server/handler.d.ts +8 -0
- package/dist/commands/serve/json-server/spec.d.ts +32 -0
- package/dist/commands/serve/list-screens/handler.d.ts +7 -0
- package/dist/commands/serve/list-screens/spec.d.ts +33 -0
- package/dist/commands/serve/spec.d.ts +30 -0
- package/dist/commands/site/command.js +12 -6
- package/dist/commands/site/command.js.map +4 -4
- package/dist/commands/site/generate/handler.d.ts +8 -0
- package/dist/commands/site/generate/spec.d.ts +44 -0
- package/dist/commands/site/hooks/useProjectHydration.d.ts +2 -2
- package/dist/commands/site/index.d.ts +5 -3
- package/dist/commands/site/list-screens/handler.d.ts +7 -0
- package/dist/commands/site/list-screens/spec.d.ts +33 -0
- package/dist/commands/site/spec.d.ts +6 -0
- package/dist/commands/site/ui/SiteBuilder.d.ts +2 -2
- package/dist/commands/site/utils/fetchWithRetry.d.ts +10 -0
- package/dist/commands/site/utils/suggestRoute.d.ts +1 -0
- package/dist/commands/snapshot/command.js +2 -2
- package/dist/commands/tool/command.js +2 -2
- package/dist/commands/tool/command.js.map +2 -2
- package/dist/commands/tool/context.d.ts +3 -2
- package/dist/commands/tool/handler.d.ts +9 -10
- package/dist/commands/tool/spec.d.ts +3 -2
- package/dist/commands/view/command.js +2 -2
- package/dist/index.js +11 -13
- package/dist/index.js.map +1 -1
- package/dist/platform/browser.d.ts +8 -0
- package/dist/services/mcp-client/client.d.ts +5 -0
- package/dist/services/mcp-client/spec.d.ts +6 -6
- package/dist/services/proxy/spec.d.ts +3 -3
- package/dist/services/stitch-sdk/MockStitchSDK.d.ts +18 -0
- package/dist/services/view/handler.d.ts +3 -3
- package/dist/ui/copy-behaviors/index.d.ts +8 -0
- package/dist/ui/navigation-behaviors/index.d.ts +34 -0
- package/dist/ui/serve-behaviors/index.d.ts +7 -0
- package/package.json +2 -1
- package/dist/chunk-2fcdwvrm.js +0 -54
- package/dist/chunk-2fcdwvrm.js.map +0 -10
- package/dist/chunk-2kyqsrg2.js.map +0 -10
- package/dist/chunk-8yrtq2qs.js +0 -18
- package/dist/chunk-cwkb2wbe.js.map +0 -16
- package/dist/chunk-djhzzcgj.js +0 -362
- package/dist/chunk-djhzzcgj.js.map +0 -13
- package/dist/chunk-ezmw2j8c.js +0 -14
- package/dist/chunk-fwb4fnkp.js +0 -31
- package/dist/chunk-fwb4fnkp.js.map +0 -10
- package/dist/chunk-h18jrqed.js +0 -9517
- package/dist/chunk-h18jrqed.js.map +0 -99
- package/dist/chunk-knbnsf6s.js +0 -92
- package/dist/chunk-knbnsf6s.js.map +0 -10
- package/dist/chunk-nthabjd9.js.map +0 -34
- package/dist/chunk-nxpzt33t.js.map +0 -10
- package/dist/chunk-pfyjtfex.js.map +0 -10
- package/dist/chunk-q1nd6g0y.js.map +0 -20
- package/dist/chunk-q4js8r0z.js +0 -4708
- package/dist/chunk-q4js8r0z.js.map +0 -29
- package/dist/chunk-qv44tmn6.js +0 -289
- package/dist/chunk-qv44tmn6.js.map +0 -13
- package/dist/chunk-r2sg2nxa.js.map +0 -9
- package/dist/chunk-rpxnm86e.js +0 -372
- package/dist/chunk-rpxnm86e.js.map +0 -17
- package/dist/chunk-sdp429xd.js.map +0 -24
- package/dist/chunk-t85nbjjb.js.map +0 -10
- package/dist/chunk-wa64nz8b.js +0 -47
- package/dist/chunk-wa64nz8b.js.map +0 -10
- package/dist/chunk-ycfxp056.js.map +0 -17
- package/dist/chunk-z9d2xc83.js +0 -3256
- package/dist/chunk-z9d2xc83.js.map +0 -84
- package/dist/services/config/handler.d.ts +0 -12
- package/dist/services/config/spec.d.ts +0 -82
- package/dist/src/cli.d.ts +0 -1
- package/dist/src/commands/doctor/handler.d.ts +0 -9
- package/dist/src/commands/doctor/handler.test.d.ts +0 -1
- package/dist/src/commands/doctor/spec.d.ts +0 -130
- package/dist/src/commands/doctor/spec.test.d.ts +0 -1
- package/dist/src/commands/init/handler.d.ts +0 -17
- package/dist/src/commands/init/handler.test.d.ts +0 -1
- package/dist/src/commands/init/spec.d.ts +0 -88
- package/dist/src/commands/init/spec.test.d.ts +0 -1
- package/dist/src/commands/proxy/handler.d.ts +0 -7
- package/dist/src/commands/proxy/handler.test.d.ts +0 -1
- package/dist/src/index.d.ts +0 -13
- package/dist/src/platform/detector.d.ts +0 -29
- package/dist/src/platform/paths.d.ts +0 -20
- package/dist/src/platform/shell.d.ts +0 -26
- package/dist/src/services/gcloud/handler.d.ts +0 -48
- package/dist/src/services/gcloud/handler.test.d.ts +0 -1
- package/dist/src/services/gcloud/spec.d.ts +0 -405
- package/dist/src/services/mcp-config/handler.d.ts +0 -12
- package/dist/src/services/mcp-config/handler.test.d.ts +0 -1
- package/dist/src/services/mcp-config/spec.d.ts +0 -88
- package/dist/src/services/mcp-config/spec.test.d.ts +0 -1
- package/dist/src/services/project/handler.d.ts +0 -11
- package/dist/src/services/project/handler.test.d.ts +0 -1
- package/dist/src/services/project/spec.d.ts +0 -86
- package/dist/src/services/project/spec.test.d.ts +0 -1
- package/dist/src/services/proxy/handler.d.ts +0 -15
- package/dist/src/services/proxy/handler.test.d.ts +0 -1
- package/dist/src/services/proxy/spec.d.ts +0 -83
- package/dist/src/services/proxy/spec.test.d.ts +0 -1
- package/dist/src/services/stitch/handler.d.ts +0 -15
- package/dist/src/services/stitch/handler.test.d.ts +0 -1
- package/dist/src/services/stitch/spec.d.ts +0 -262
- package/dist/src/services/stitch/spec.test.d.ts +0 -1
- package/dist/src/ui/spinner.d.ts +0 -11
- package/dist/src/ui/theme.d.ts +0 -18
- package/dist/src/ui/wizard.d.ts +0 -24
- package/dist/tests/mocks/shell.d.ts +0 -2
- /package/dist/{chunk-hb3c6f6a.js.map → chunk-001yk06v.js.map} +0 -0
- /package/dist/{chunk-25wakzyb.js.map → chunk-ahw5kfbr.js.map} +0 -0
- /package/dist/{chunk-45wx7tn7.js.map → chunk-gwnmywrp.js.map} +0 -0
- /package/dist/{chunk-48d17n29.js.map → chunk-j0y94q2c.js.map} +0 -0
|
@@ -1,27 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
pLimit
|
|
5
|
-
} from "./chunk-qv44tmn6.js";
|
|
2
|
+
fetchWithRetry
|
|
3
|
+
} from "./chunk-6gw9apqb.js";
|
|
6
4
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import"./chunk-w8q7nsm7.js";
|
|
5
|
+
StitchToolClient,
|
|
6
|
+
stitch
|
|
7
|
+
} from "./chunk-a1mk24q9.js";
|
|
11
8
|
import {
|
|
12
|
-
downloadImage,
|
|
13
9
|
downloadText
|
|
14
10
|
} from "./chunk-4vxy1qce.js";
|
|
15
11
|
import"./chunk-384jmtpy.js";
|
|
12
|
+
import {
|
|
13
|
+
pLimit
|
|
14
|
+
} from "./chunk-a5xra9jn.js";
|
|
16
15
|
import {
|
|
17
16
|
runSteps
|
|
18
17
|
} from "./chunk-f2hq6bfv.js";
|
|
19
|
-
import"./chunk-nthabjd9.js";
|
|
20
18
|
import"./chunk-4jygt4d6.js";
|
|
21
19
|
import"./chunk-tz7wnw4s.js";
|
|
22
|
-
import"./chunk-
|
|
23
|
-
import"./chunk-3sfn889r.js";
|
|
24
|
-
import"./chunk-2k7n0w2x.js";
|
|
20
|
+
import"./chunk-c6ge431q.js";
|
|
25
21
|
import"./chunk-9wyra8hs.js";
|
|
26
22
|
|
|
27
23
|
// src/commands/tool/virtual-tools/get-screen-code.ts
|
|
@@ -42,19 +38,23 @@ var getScreenCodeTool = {
|
|
|
42
38
|
},
|
|
43
39
|
required: ["projectId", "screenId"]
|
|
44
40
|
},
|
|
45
|
-
execute: async (client, args) => {
|
|
41
|
+
execute: async (client, args, stitch2) => {
|
|
42
|
+
if (!stitch2)
|
|
43
|
+
throw new Error("get_screen_code requires a Stitch instance");
|
|
46
44
|
const { projectId, screenId } = args;
|
|
47
|
-
const screen = await
|
|
45
|
+
const screen = await stitch2.project(projectId).getScreen(screenId);
|
|
48
46
|
let htmlContent = null;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
console.error(`Error downloading HTML code: ${e}`);
|
|
47
|
+
try {
|
|
48
|
+
const htmlUrl = await screen.getHtml();
|
|
49
|
+
if (htmlUrl) {
|
|
50
|
+
htmlContent = await downloadText(htmlUrl);
|
|
54
51
|
}
|
|
52
|
+
} catch (e) {
|
|
53
|
+
console.error(`Error downloading HTML code: ${e}`);
|
|
55
54
|
}
|
|
56
55
|
return {
|
|
57
|
-
|
|
56
|
+
screenId: screen.screenId,
|
|
57
|
+
projectId: screen.projectId,
|
|
58
58
|
htmlContent
|
|
59
59
|
};
|
|
60
60
|
}
|
|
@@ -62,7 +62,7 @@ var getScreenCodeTool = {
|
|
|
62
62
|
// src/commands/tool/virtual-tools/get-screen-image.ts
|
|
63
63
|
var getScreenImageTool = {
|
|
64
64
|
name: "get_screen_image",
|
|
65
|
-
description: "(Virtual) Retrieves a screen and downloads its screenshot image
|
|
65
|
+
description: "(Virtual) Retrieves a screen and downloads its screenshot image content.",
|
|
66
66
|
inputSchema: {
|
|
67
67
|
type: "object",
|
|
68
68
|
properties: {
|
|
@@ -77,21 +77,27 @@ var getScreenImageTool = {
|
|
|
77
77
|
},
|
|
78
78
|
required: ["projectId", "screenId"]
|
|
79
79
|
},
|
|
80
|
-
execute: async (client, args) => {
|
|
80
|
+
execute: async (client, args, stitch2) => {
|
|
81
|
+
if (!stitch2)
|
|
82
|
+
throw new Error("get_screen_image requires a Stitch instance");
|
|
81
83
|
const { projectId, screenId } = args;
|
|
82
|
-
const screen = await
|
|
83
|
-
let
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
84
|
+
const screen = await stitch2.project(projectId).getScreen(screenId);
|
|
85
|
+
let imageContent = null;
|
|
86
|
+
try {
|
|
87
|
+
const imageUrl = await screen.getImage();
|
|
88
|
+
if (imageUrl) {
|
|
89
|
+
const response = await fetch(imageUrl);
|
|
90
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
91
|
+
const buffer = Buffer.from(arrayBuffer);
|
|
92
|
+
imageContent = buffer.toString("base64");
|
|
90
93
|
}
|
|
94
|
+
} catch (e) {
|
|
95
|
+
console.error(`Error downloading screenshot: ${e}`);
|
|
91
96
|
}
|
|
92
97
|
return {
|
|
93
|
-
|
|
94
|
-
|
|
98
|
+
screenId: screen.screenId,
|
|
99
|
+
projectId: screen.projectId,
|
|
100
|
+
imageContent
|
|
95
101
|
};
|
|
96
102
|
}
|
|
97
103
|
};
|
|
@@ -127,7 +133,9 @@ var buildSiteTool = {
|
|
|
127
133
|
},
|
|
128
134
|
required: ["projectId", "routes"]
|
|
129
135
|
},
|
|
130
|
-
execute: async (client, args) => {
|
|
136
|
+
execute: async (client, args, stitch2) => {
|
|
137
|
+
if (!stitch2)
|
|
138
|
+
throw new Error("build_site requires a Stitch instance");
|
|
131
139
|
const { projectId, routes } = args;
|
|
132
140
|
if (!Array.isArray(routes)) {
|
|
133
141
|
throw new Error("routes must be an array");
|
|
@@ -149,10 +157,9 @@ var buildSiteTool = {
|
|
|
149
157
|
const duplicates = routePaths.filter((r, i) => routePaths.indexOf(r) !== i);
|
|
150
158
|
throw new Error(`Duplicate route paths found: ${[...new Set(duplicates)].join(", ")}`);
|
|
151
159
|
}
|
|
152
|
-
const
|
|
153
|
-
const
|
|
154
|
-
const
|
|
155
|
-
const screenMap = new Map(uiScreens.map((s) => [s.id, s]));
|
|
160
|
+
const project = stitch2.project(projectId);
|
|
161
|
+
const sdkScreens = await project.screens();
|
|
162
|
+
const screenMap = new Map(sdkScreens.map((s) => [s.screenId, s]));
|
|
156
163
|
const missingIds = routes.map((r) => r.screenId).filter((id) => !screenMap.has(id));
|
|
157
164
|
if (missingIds.length > 0) {
|
|
158
165
|
throw new Error(`Screen IDs not found in project: ${missingIds.join(", ")}`);
|
|
@@ -163,8 +170,13 @@ var buildSiteTool = {
|
|
|
163
170
|
await Promise.all(routes.map((r) => limit(async () => {
|
|
164
171
|
const screen = screenMap.get(r.screenId);
|
|
165
172
|
try {
|
|
166
|
-
const
|
|
167
|
-
|
|
173
|
+
const htmlUrl = await screen.getHtml();
|
|
174
|
+
if (htmlUrl) {
|
|
175
|
+
const html = await fetchWithRetry(htmlUrl);
|
|
176
|
+
htmlContent.set(r.screenId, html);
|
|
177
|
+
} else {
|
|
178
|
+
htmlContent.set(r.screenId, "");
|
|
179
|
+
}
|
|
168
180
|
} catch (e) {
|
|
169
181
|
errors.push(`${r.screenId}: ${e.message}`);
|
|
170
182
|
}
|
|
@@ -175,7 +187,7 @@ var buildSiteTool = {
|
|
|
175
187
|
const pages = routes.map((r) => ({
|
|
176
188
|
screenId: r.screenId,
|
|
177
189
|
route: r.route,
|
|
178
|
-
title: screenMap.get(r.screenId).title,
|
|
190
|
+
title: screenMap.get(r.screenId).title ?? r.screenId,
|
|
179
191
|
html: htmlContent.get(r.screenId)
|
|
180
192
|
}));
|
|
181
193
|
return {
|
|
@@ -194,7 +206,7 @@ var listToolsTool = {
|
|
|
194
206
|
properties: {}
|
|
195
207
|
},
|
|
196
208
|
execute: async (client, _args) => {
|
|
197
|
-
const result = await client.
|
|
209
|
+
const result = await client.listTools();
|
|
198
210
|
return result.tools || [];
|
|
199
211
|
}
|
|
200
212
|
};
|
|
@@ -215,9 +227,12 @@ class ListToolsStep {
|
|
|
215
227
|
return !name || name === "list" || name === "listtools" || name === "list_tools";
|
|
216
228
|
}
|
|
217
229
|
async run(context) {
|
|
218
|
-
const result = await context.client.
|
|
230
|
+
const result = await context.client.listTools();
|
|
219
231
|
const serverTools = result.tools || [];
|
|
220
|
-
const tools = [
|
|
232
|
+
const tools = [
|
|
233
|
+
...context.virtualTools.map((t) => ({ name: t.name, description: t.description, inputSchema: t.inputSchema, virtual: true })),
|
|
234
|
+
...serverTools.map((t) => ({ ...t, virtual: false }))
|
|
235
|
+
];
|
|
221
236
|
context.result = { success: true, data: tools };
|
|
222
237
|
return { success: true };
|
|
223
238
|
}
|
|
@@ -232,7 +247,7 @@ class ShowSchemaStep {
|
|
|
232
247
|
}
|
|
233
248
|
async run(context) {
|
|
234
249
|
const toolName = context.input.toolName;
|
|
235
|
-
const result = await context.client.
|
|
250
|
+
const result = await context.client.listTools();
|
|
236
251
|
const serverTools = result.tools || [];
|
|
237
252
|
const allTools = [...context.virtualTools, ...serverTools];
|
|
238
253
|
const tool = allTools.find((t) => t.name === toolName);
|
|
@@ -255,6 +270,7 @@ class ShowSchemaStep {
|
|
|
255
270
|
return {
|
|
256
271
|
name: tool.name,
|
|
257
272
|
description: tool.description,
|
|
273
|
+
virtual: tool.virtual ?? false,
|
|
258
274
|
arguments: args,
|
|
259
275
|
example: this.generateExample(tool)
|
|
260
276
|
};
|
|
@@ -299,7 +315,7 @@ class ValidateToolStep {
|
|
|
299
315
|
}
|
|
300
316
|
async run(context) {
|
|
301
317
|
const toolName = context.input.toolName;
|
|
302
|
-
const result = await context.client.
|
|
318
|
+
const result = await context.client.listTools();
|
|
303
319
|
const serverTools = result.tools || [];
|
|
304
320
|
const allTools = [...context.virtualTools, ...serverTools];
|
|
305
321
|
const found = allTools.find((t) => t.name === toolName);
|
|
@@ -333,7 +349,7 @@ class ExecuteToolStep {
|
|
|
333
349
|
const virtualTool = context.virtualTools.find((t) => t.name === toolName);
|
|
334
350
|
if (virtualTool) {
|
|
335
351
|
try {
|
|
336
|
-
const result2 = await virtualTool.execute(context.client, args);
|
|
352
|
+
const result2 = await virtualTool.execute(context.client, args, context.stitch);
|
|
337
353
|
context.result = { success: true, data: result2 };
|
|
338
354
|
return { success: true };
|
|
339
355
|
} catch (e) {
|
|
@@ -359,10 +375,12 @@ var deps = {
|
|
|
359
375
|
|
|
360
376
|
class ToolCommandHandler {
|
|
361
377
|
client;
|
|
378
|
+
stitchInstance;
|
|
362
379
|
tools;
|
|
363
380
|
steps;
|
|
364
|
-
constructor(client, tools) {
|
|
365
|
-
this.client = client || new
|
|
381
|
+
constructor(client, tools, stitchInstance) {
|
|
382
|
+
this.client = client || new StitchToolClient;
|
|
383
|
+
this.stitchInstance = stitchInstance || stitch;
|
|
366
384
|
this.tools = tools || virtualTools;
|
|
367
385
|
this.steps = [
|
|
368
386
|
new deps.ListToolsStep,
|
|
@@ -376,11 +394,16 @@ class ToolCommandHandler {
|
|
|
376
394
|
const context = {
|
|
377
395
|
input,
|
|
378
396
|
client: this.client,
|
|
397
|
+
stitch: this.stitchInstance,
|
|
379
398
|
virtualTools: this.tools
|
|
380
399
|
};
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
400
|
+
try {
|
|
401
|
+
await deps.runSteps(this.steps, context, {
|
|
402
|
+
onAfterStep: (_step, _result, ctx) => ctx.result !== undefined
|
|
403
|
+
});
|
|
404
|
+
} finally {
|
|
405
|
+
await this.client.close();
|
|
406
|
+
}
|
|
384
407
|
return context.result ?? { success: false, error: "No step produced a result" };
|
|
385
408
|
}
|
|
386
409
|
}
|
|
@@ -389,4 +412,4 @@ export {
|
|
|
389
412
|
ToolCommandHandler
|
|
390
413
|
};
|
|
391
414
|
|
|
392
|
-
//# debugId=
|
|
415
|
+
//# debugId=C185463FB47A8E1164756E2164756E21
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/commands/tool/virtual-tools/get-screen-code.ts", "../src/commands/tool/virtual-tools/get-screen-image.ts", "../src/commands/tool/virtual-tools/build-site.ts", "../src/commands/tool/virtual-tools/list-tools.ts", "../src/commands/tool/virtual-tools/index.ts", "../src/commands/tool/steps/ListToolsStep.ts", "../src/commands/tool/steps/ShowSchemaStep.ts", "../src/commands/tool/steps/ParseArgsStep.ts", "../src/commands/tool/steps/ValidateToolStep.ts", "../src/commands/tool/steps/ExecuteToolStep.ts", "../src/commands/tool/handler.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import type { StitchToolClient, Stitch } from '@google/stitch-sdk';\nimport { downloadText } from '../../../ui/copy-behaviors/clipboard.js';\nimport type { VirtualTool } from '../spec.js';\n\nexport const getScreenCodeTool: VirtualTool = {\n name: 'get_screen_code',\n description: '(Virtual) Retrieves a screen and downloads its HTML code content.',\n inputSchema: {\n type: 'object',\n properties: {\n projectId: {\n type: 'string',\n description: 'Required. The project ID of screen to retrieve.',\n },\n screenId: {\n type: 'string',\n description: 'Required. The name of screen to retrieve.',\n },\n },\n required: ['projectId', 'screenId'],\n },\n execute: async (client: StitchToolClient, args: any, stitch?: Stitch) => {\n if (!stitch) throw new Error('get_screen_code requires a Stitch instance');\n const { projectId, screenId } = args;\n\n // 1. Get the screen details using the injected SDK instance\n const screen = await stitch.project(projectId).getScreen(screenId);\n\n // 2. Fetch HTML Code\n let htmlContent: string | null = null;\n try {\n const htmlUrl = await screen.getHtml();\n if (htmlUrl) {\n htmlContent = await downloadText(htmlUrl);\n }\n } catch (e) {\n console.error(`Error downloading HTML code: ${e}`);\n }\n\n // 3. Return screen with code content\n return {\n screenId: screen.screenId,\n projectId: screen.projectId,\n htmlContent,\n };\n },\n};\n",
|
|
6
|
+
"import type { StitchToolClient, Stitch } from '@google/stitch-sdk';\nimport type { VirtualTool } from '../spec.js';\n\nexport const getScreenImageTool: VirtualTool = {\n name: 'get_screen_image',\n description: '(Virtual) Retrieves a screen and downloads its screenshot image content.',\n inputSchema: {\n type: 'object',\n properties: {\n projectId: {\n type: 'string',\n description: 'Required. The project ID of screen to retrieve.',\n },\n screenId: {\n type: 'string',\n description: 'Required. The name of screen to retrieve.',\n },\n },\n required: ['projectId', 'screenId'],\n },\n execute: async (client: StitchToolClient, args: any, stitch?: Stitch) => {\n if (!stitch) throw new Error('get_screen_image requires a Stitch instance');\n const { projectId, screenId } = args;\n\n // 1. Get the screen details using the injected SDK instance\n const screen = await stitch.project(projectId).getScreen(screenId);\n\n // 2. Fetch Image Content\n let imageContent: string | null = null;\n try {\n const imageUrl = await screen.getImage();\n if (imageUrl) {\n const response = await fetch(imageUrl);\n const arrayBuffer = await response.arrayBuffer();\n const buffer = Buffer.from(arrayBuffer);\n imageContent = buffer.toString('base64');\n }\n } catch (e) {\n console.error(`Error downloading screenshot: ${e}`);\n }\n\n // 3. Return screen with image content\n return {\n screenId: screen.screenId,\n projectId: screen.projectId,\n imageContent,\n };\n },\n};\n",
|
|
7
|
+
"import type { StitchToolClient, Stitch } from '@google/stitch-sdk';\nimport type { VirtualTool } from '../spec.js';\nimport pLimit from 'p-limit';\nimport { fetchWithRetry } from '../../site/utils/fetchWithRetry.js';\n\nexport const buildSiteTool: VirtualTool = {\n name: 'build_site',\n description: '(Virtual) Builds a site from a Stitch project by mapping screens to routes. Returns the design HTML for each page to use as context for code generation.',\n inputSchema: {\n type: 'object',\n properties: {\n projectId: {\n type: 'string',\n description: 'Required. The project ID to build a site from.',\n },\n routes: {\n type: 'array',\n description: 'Required. Array of screen-to-route mappings.',\n items: {\n type: 'object',\n properties: {\n screenId: {\n type: 'string',\n description: 'The screen ID to use for this route.',\n },\n route: {\n type: 'string',\n description: 'The route path (e.g. \"/\" or \"/about\").',\n },\n },\n required: ['screenId', 'route'],\n },\n },\n },\n required: ['projectId', 'routes'],\n },\n execute: async (client: StitchToolClient, args: any, stitch?: Stitch) => {\n if (!stitch) throw new Error('build_site requires a Stitch instance');\n const { projectId, routes } = args;\n\n // Validate routes\n if (!Array.isArray(routes)) {\n throw new Error('routes must be an array');\n }\n if (routes.length === 0) {\n throw new Error('routes must be a non-empty array');\n }\n for (const entry of routes) {\n if (!entry.screenId || typeof entry.screenId !== 'string') {\n throw new Error('Each route entry must have a \"screenId\" string');\n }\n if (!entry.route || typeof entry.route !== 'string') {\n throw new Error('Each route entry must have a \"route\" string');\n }\n }\n\n // Check for duplicate routes\n const routePaths = routes.map((r: any) => r.route);\n const uniqueRoutes = new Set(routePaths);\n if (uniqueRoutes.size !== routePaths.length) {\n const duplicates = routePaths.filter((r: string, i: number) => routePaths.indexOf(r) !== i);\n throw new Error(`Duplicate route paths found: ${[...new Set(duplicates)].join(', ')}`);\n }\n\n // Fetch project screens via injected SDK instance\n const project = stitch.project(projectId);\n const sdkScreens = await project.screens();\n const screenMap = new Map(sdkScreens.map((s: any) => [s.screenId, s]));\n\n // Validate all requested screenIds exist\n const missingIds = routes\n .map((r: any) => r.screenId)\n .filter((id: string) => !screenMap.has(id));\n if (missingIds.length > 0) {\n throw new Error(`Screen IDs not found in project: ${missingIds.join(', ')}`);\n }\n\n // Fetch HTML for each screen with concurrency limit\n const limit = pLimit(3);\n const htmlContent = new Map<string, string>();\n const errors: string[] = [];\n\n await Promise.all(\n routes.map((r: any) =>\n limit(async () => {\n const screen = screenMap.get(r.screenId)!;\n try {\n const htmlUrl = await screen.getHtml();\n if (htmlUrl) {\n const html = await fetchWithRetry(htmlUrl);\n htmlContent.set(r.screenId, html);\n } else {\n htmlContent.set(r.screenId, '');\n }\n } catch (e: any) {\n errors.push(`${r.screenId}: ${e.message}`);\n }\n })\n )\n );\n\n if (errors.length > 0) {\n throw new Error(`Failed to fetch HTML for screens: ${errors.join('; ')}`);\n }\n\n // Return raw HTML content for each page\n const pages = routes.map((r: any) => ({\n screenId: r.screenId,\n route: r.route,\n title: screenMap.get(r.screenId)!.title ?? r.screenId,\n html: htmlContent.get(r.screenId)!,\n }));\n\n return {\n success: true,\n pages,\n message: `Built ${pages.length} page(s) with design HTML`,\n };\n },\n};\n",
|
|
8
|
+
"import type { VirtualTool } from '../spec.js';\nimport type { StitchToolClient } from '@google/stitch-sdk';\n\nexport const listToolsTool: VirtualTool = {\n name: 'list_tools',\n description: 'List all available tools with their descriptions and schemas.',\n inputSchema: {\n type: 'object',\n properties: {},\n },\n execute: async (client: StitchToolClient, _args: any) => {\n const result = await client.listTools();\n return result.tools || [];\n },\n};\n",
|
|
9
|
+
"export type { VirtualTool } from '../spec.js';\nexport { getScreenCodeTool } from './get-screen-code.js';\nexport { getScreenImageTool } from './get-screen-image.js';\nexport { buildSiteTool } from './build-site.js';\nexport { listToolsTool } from './list-tools.js';\n\nimport { getScreenCodeTool } from './get-screen-code.js';\nimport { getScreenImageTool } from './get-screen-image.js';\nimport { buildSiteTool } from './build-site.js';\nimport { listToolsTool } from './list-tools.js';\nimport type { VirtualTool } from '../spec.js';\n\nexport const virtualTools: VirtualTool[] = [\n getScreenCodeTool,\n getScreenImageTool,\n buildSiteTool,\n listToolsTool,\n];\n",
|
|
10
|
+
"import type { CommandStep, StepResult } from '../../../framework/CommandStep.js';\nimport type { ToolContext } from '../context.js';\n\nexport class ListToolsStep implements CommandStep<ToolContext> {\n id = 'list-tools';\n name = 'List available tools';\n\n async shouldRun(context: ToolContext): Promise<boolean> {\n const name = context.input.toolName?.toLowerCase();\n return !name || name === 'list' || name === 'listtools' || name === 'list_tools';\n }\n\n async run(context: ToolContext): Promise<StepResult> {\n const result = await context.client.listTools();\n const serverTools = result.tools || [];\n const tools = [\n ...context.virtualTools.map(t => ({ name: t.name, description: t.description, inputSchema: t.inputSchema, virtual: true as const })),\n ...serverTools.map(t => ({ ...t, virtual: false as const })),\n ];\n context.result = { success: true, data: tools };\n return { success: true };\n }\n}\n",
|
|
11
|
+
"import type { CommandStep, StepResult } from '../../../framework/CommandStep.js';\nimport type { ToolContext } from '../context.js';\nimport type { ToolInfo } from '../spec.js';\n\nexport class ShowSchemaStep implements CommandStep<ToolContext> {\n id = 'show-schema';\n name = 'Show tool schema';\n\n async shouldRun(context: ToolContext): Promise<boolean> {\n return !!context.input.toolName && context.input.toolName !== 'list' && context.input.showSchema;\n }\n\n async run(context: ToolContext): Promise<StepResult> {\n const toolName = context.input.toolName!;\n\n // Get all tools to find the one we need\n const result = await context.client.listTools();\n const serverTools = result.tools || [];\n const allTools = [...context.virtualTools, ...serverTools];\n const tool = allTools.find(t => t.name === toolName);\n\n if (!tool) {\n context.result = { success: false, error: `Tool not found: ${toolName}` };\n return { success: false, error: new Error(`Tool not found: ${toolName}`) };\n }\n\n context.result = { success: true, data: this.formatSchema(tool) };\n return { success: true };\n }\n\n private formatSchema(tool: ToolInfo): object {\n const schema = tool.inputSchema;\n const args: Record<string, string> = {};\n\n if (schema?.properties) {\n for (const [key, prop] of Object.entries(schema.properties)) {\n const required = schema.required?.includes(key) ? '(required)' : '(optional)';\n args[key] = `${prop.type} ${required}${prop.description ? ' - ' + prop.description : ''}`;\n }\n }\n\n return {\n name: tool.name,\n description: tool.description,\n virtual: tool.virtual ?? false,\n arguments: args,\n example: this.generateExample(tool),\n };\n }\n\n private generateExample(tool: ToolInfo): string {\n const exampleArgs: Record<string, any> = {};\n if (tool.inputSchema?.properties) {\n for (const [key, prop] of Object.entries(tool.inputSchema.properties)) {\n exampleArgs[key] = prop.type === 'string' ? `<${key}>` : `<${prop.type}>`;\n }\n }\n return `stitch-mcp tool ${tool.name} -d '${JSON.stringify(exampleArgs)}'`;\n }\n}\n",
|
|
12
|
+
"import type { CommandStep, StepResult } from '../../../framework/CommandStep.js';\nimport type { ToolContext } from '../context.js';\n\nexport class ParseArgsStep implements CommandStep<ToolContext> {\n id = 'parse-args';\n name = 'Parse tool arguments';\n\n async shouldRun(context: ToolContext): Promise<boolean> {\n return !!context.input.toolName\n && context.input.toolName !== 'list'\n && !context.input.showSchema;\n }\n\n async run(context: ToolContext): Promise<StepResult> {\n let args: Record<string, any> = {};\n\n if (context.input.data) {\n args = JSON.parse(context.input.data);\n } else if (context.input.dataFile) {\n const content = await Bun.file(context.input.dataFile.replace('@', '')).text();\n args = JSON.parse(content);\n }\n\n context.parsedArgs = args;\n return { success: true };\n }\n}\n",
|
|
13
|
+
"import type { CommandStep, StepResult } from '../../../framework/CommandStep.js';\nimport type { ToolContext } from '../context.js';\n\nexport class ValidateToolStep implements CommandStep<ToolContext> {\n id = 'validate-tool';\n name = 'Validate tool exists';\n\n async shouldRun(context: ToolContext): Promise<boolean> {\n return !!context.input.toolName\n && context.input.toolName !== 'list'\n && !context.input.showSchema\n && context.parsedArgs !== undefined;\n }\n\n async run(context: ToolContext): Promise<StepResult> {\n const toolName = context.input.toolName!;\n\n const result = await context.client.listTools();\n const serverTools = result.tools || [];\n const allTools = [...context.virtualTools, ...serverTools];\n const found = allTools.find(t => t.name === toolName);\n\n if (!found) {\n const availableNames = allTools.map(t => t.name).sort();\n context.result = {\n success: false,\n error: `Tool not found: \"${toolName}\". Use \"list_tools\" to see available tools.`,\n data: {\n requestedTool: toolName,\n availableTools: availableNames,\n hint: 'Call \"list_tools\" to see all available tools with descriptions and schemas.',\n },\n };\n return { success: false, error: new Error(`Tool not found: ${toolName}`) };\n }\n\n return { success: true };\n }\n}\n",
|
|
14
|
+
"import type { CommandStep, StepResult } from '../../../framework/CommandStep.js';\nimport type { ToolContext } from '../context.js';\n\nexport class ExecuteToolStep implements CommandStep<ToolContext> {\n id = 'execute-tool';\n name = 'Execute tool';\n\n async shouldRun(context: ToolContext): Promise<boolean> {\n return context.parsedArgs !== undefined;\n }\n\n async run(context: ToolContext): Promise<StepResult> {\n const toolName = context.input.toolName!;\n const args = context.parsedArgs!;\n\n // Check if it's a virtual tool\n const virtualTool = context.virtualTools.find(t => t.name === toolName);\n if (virtualTool) {\n try {\n const result = await virtualTool.execute(context.client, args, context.stitch);\n context.result = { success: true, data: result };\n return { success: true };\n } catch (e: any) {\n context.result = { success: false, error: `Virtual tool execution failed: ${e.message || String(e)}` };\n return { success: false, error: e };\n }\n }\n\n const result = await context.client.callTool(toolName, args);\n context.result = { success: true, data: result };\n return { success: true };\n }\n}\n",
|
|
15
|
+
"import { StitchToolClient, stitch as defaultStitch } from '@google/stitch-sdk';\nimport type { Stitch } from '@google/stitch-sdk';\nimport type { CommandStep } from '../../framework/CommandStep.js';\nimport { runSteps } from '../../framework/StepRunner.js';\nimport type { ToolCommandInput, ToolCommandResult, VirtualTool } from './spec.js';\n\nimport type { ToolContext } from './context.js';\nimport { virtualTools as defaultVirtualTools } from './virtual-tools/index.js';\nimport { ListToolsStep } from './steps/ListToolsStep.js';\nimport { ShowSchemaStep } from './steps/ShowSchemaStep.js';\nimport { ParseArgsStep } from './steps/ParseArgsStep.js';\nimport { ValidateToolStep } from './steps/ValidateToolStep.js';\nimport { ExecuteToolStep } from './steps/ExecuteToolStep.js';\n\nexport const deps = {\n runSteps,\n ListToolsStep,\n ShowSchemaStep,\n ParseArgsStep,\n ValidateToolStep,\n ExecuteToolStep,\n};\n\nexport class ToolCommandHandler {\n private client: StitchToolClient;\n private stitchInstance: Stitch;\n private tools: VirtualTool[];\n private steps: CommandStep<ToolContext>[];\n\n constructor(client?: StitchToolClient, tools?: VirtualTool[], stitchInstance?: Stitch) {\n this.client = client || new StitchToolClient();\n this.stitchInstance = stitchInstance || defaultStitch;\n this.tools = tools || defaultVirtualTools;\n this.steps = [\n new deps.ListToolsStep(),\n new deps.ShowSchemaStep(),\n new deps.ParseArgsStep(),\n new deps.ValidateToolStep(),\n new deps.ExecuteToolStep(),\n ];\n }\n\n async execute(input: ToolCommandInput): Promise<ToolCommandResult> {\n const context: ToolContext = {\n input,\n client: this.client,\n stitch: this.stitchInstance,\n virtualTools: this.tools,\n };\n\n try {\n await deps.runSteps(this.steps, context, {\n onAfterStep: (_step, _result, ctx) => ctx.result !== undefined,\n });\n } finally {\n await this.client.close();\n }\n\n return context.result ?? { success: false, error: 'No step produced a result' };\n }\n}\n"
|
|
16
|
+
],
|
|
17
|
+
"mappings": "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",
|
|
18
|
+
"debugId": "C185463FB47A8E1164756E2164756E21",
|
|
19
|
+
"names": []
|
|
20
|
+
}
|
|
@@ -44594,7 +44594,7 @@ var STRINGS = {
|
|
|
44594
44594
|
COMMENT_END: toUint8Array("-->")
|
|
44595
44595
|
};
|
|
44596
44596
|
// node_modules/undici/index.js
|
|
44597
|
-
var __filename = "/Users/
|
|
44597
|
+
var __filename = "/Users/davideast/Code/stitch-mcp/node_modules/undici/index.js";
|
|
44598
44598
|
var Client = require_client();
|
|
44599
44599
|
var Dispatcher = require_dispatcher();
|
|
44600
44600
|
var Pool = require_pool();
|
|
@@ -45185,4 +45185,4 @@ class StitchViteServer {
|
|
|
45185
45185
|
|
|
45186
45186
|
export { AssetGateway, StitchViteServer };
|
|
45187
45187
|
|
|
45188
|
-
//# debugId=
|
|
45188
|
+
//# debugId=2220CBEBD5B476C564756E2164756E21
|