@kodycodes/cli 1.26.1 → 1.26.3
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/auth-4FW6GCLG.js +26 -0
- package/dist/auth-4FW6GCLG.js.map +6 -0
- package/dist/bin.js +27 -3
- package/dist/bin.js.map +6 -1
- package/dist/chunk-46IJPEID.js +30 -0
- package/dist/chunk-46IJPEID.js.map +6 -0
- package/dist/chunk-4D6ORNXY.js +24404 -0
- package/dist/chunk-4D6ORNXY.js.map +6 -0
- package/dist/chunk-64IM6G4Z.js +341 -0
- package/dist/chunk-64IM6G4Z.js.map +6 -0
- package/dist/{package-local-runtime-source.js → chunk-64XN367G.js} +373 -52
- package/dist/chunk-64XN367G.js.map +6 -0
- package/dist/chunk-6XQP5SWX.js +26 -0
- package/dist/chunk-6XQP5SWX.js.map +6 -0
- package/dist/chunk-75RZUXQL.js +62 -0
- package/dist/chunk-75RZUXQL.js.map +6 -0
- package/dist/chunk-BISUL7CE.js +106 -0
- package/dist/chunk-BISUL7CE.js.map +6 -0
- package/dist/chunk-BPGY4IE7.js +57 -0
- package/dist/chunk-BPGY4IE7.js.map +6 -0
- package/dist/chunk-CASGRYOF.js +21 -0
- package/dist/chunk-CASGRYOF.js.map +6 -0
- package/dist/chunk-CWWHR4FH.js +19 -0
- package/dist/chunk-CWWHR4FH.js.map +6 -0
- package/dist/chunk-D55XPY3T.js +1382 -0
- package/dist/chunk-D55XPY3T.js.map +6 -0
- package/dist/chunk-EOCV74B2.js +948 -0
- package/dist/chunk-EOCV74B2.js.map +6 -0
- package/dist/chunk-FBVNFWR6.js +437 -0
- package/dist/chunk-FBVNFWR6.js.map +6 -0
- package/dist/chunk-G4YN6XP5.js +14 -0
- package/dist/chunk-G4YN6XP5.js.map +6 -0
- package/dist/chunk-G6LJWROP.js +18 -0
- package/dist/chunk-G6LJWROP.js.map +6 -0
- package/dist/chunk-IHP6PV6X.js +49 -0
- package/dist/chunk-IHP6PV6X.js.map +6 -0
- package/dist/chunk-JWEFKKAD.js +24 -0
- package/dist/chunk-JWEFKKAD.js.map +6 -0
- package/dist/chunk-LWNB26KO.js +147 -0
- package/dist/chunk-LWNB26KO.js.map +6 -0
- package/dist/chunk-OVGXPRSY.js +20 -0
- package/dist/chunk-OVGXPRSY.js.map +6 -0
- package/dist/chunk-PDWCKWQF.js +453 -0
- package/dist/chunk-PDWCKWQF.js.map +6 -0
- package/dist/chunk-QHBCP4OB.js +44 -0
- package/dist/chunk-QHBCP4OB.js.map +6 -0
- package/dist/chunk-R4IUV5P5.js +664 -0
- package/dist/chunk-R4IUV5P5.js.map +6 -0
- package/dist/chunk-RM34N3KI.js +525 -0
- package/dist/chunk-RM34N3KI.js.map +6 -0
- package/dist/chunk-RTWUNV76.js +309 -0
- package/dist/chunk-RTWUNV76.js.map +6 -0
- package/dist/chunk-SMURF26I.js +23 -0
- package/dist/chunk-SMURF26I.js.map +6 -0
- package/dist/chunk-SXHULGL4.js +426 -0
- package/dist/chunk-SXHULGL4.js.map +6 -0
- package/dist/chunk-TIL35OWA.js +1959 -0
- package/dist/chunk-TIL35OWA.js.map +6 -0
- package/dist/chunk-VQS5YSCI.js +54 -0
- package/dist/chunk-VQS5YSCI.js.map +6 -0
- package/dist/chunk-XDCOWU5R.js +696 -0
- package/dist/chunk-XDCOWU5R.js.map +6 -0
- package/dist/chunk-XOPPGRUP.js +605 -0
- package/dist/chunk-XOPPGRUP.js.map +6 -0
- package/dist/cli.js +74 -1500
- package/dist/cli.js.map +6 -1
- package/dist/dev/dev-watcher.d.ts +5 -1
- package/dist/dev-command-3LX234N6.js +4900 -0
- package/dist/dev-command-3LX234N6.js.map +6 -0
- package/dist/git-credential-FUE3JE3T.js +163 -0
- package/dist/git-credential-FUE3JE3T.js.map +6 -0
- package/dist/install-ZML2TCDG.js +10694 -0
- package/dist/install-ZML2TCDG.js.map +6 -0
- package/dist/local-execute-SZV6XN4T.js +368 -0
- package/dist/local-execute-SZV6XN4T.js.map +6 -0
- package/dist/local-package-run-2TMCAZZ2.js +23 -0
- package/dist/local-package-run-2TMCAZZ2.js.map +6 -0
- package/dist/mcp-G2AWTIXR.js +21 -0
- package/dist/mcp-G2AWTIXR.js.map +6 -0
- package/dist/mock-dep-resolve-TVABDNR7.js +52 -0
- package/dist/mock-dep-resolve-TVABDNR7.js.map +6 -0
- package/dist/mock-fetch-gateway-B5TFGGQS.js +34 -0
- package/dist/mock-fetch-gateway-B5TFGGQS.js.map +6 -0
- package/dist/mock-local-deps-5SZT3PWT.js +197 -0
- package/dist/mock-local-deps-5SZT3PWT.js.map +6 -0
- package/dist/mock-server-SV2IKC4I.js +21 -0
- package/dist/mock-server-SV2IKC4I.js.map +6 -0
- package/dist/open-api-client-DVVMLY7P.js +42 -0
- package/dist/open-api-client-DVVMLY7P.js.map +6 -0
- package/dist/org-X7B5BI4R.js +132 -0
- package/dist/org-X7B5BI4R.js.map +6 -0
- package/dist/package-manifest-QH2RU64C.js +14 -0
- package/dist/package-manifest-QH2RU64C.js.map +6 -0
- package/dist/remote-execute-QMQDVHOY.js +110 -0
- package/dist/remote-execute-QMQDVHOY.js.map +6 -0
- package/dist/setup-git-5KCUBYPB.js +88 -0
- package/dist/setup-git-5KCUBYPB.js.map +6 -0
- package/dist/skill-ENPATRIW.js +43 -0
- package/dist/skill-ENPATRIW.js.map +6 -0
- package/dist/store-WTMRH527.js +48 -0
- package/dist/store-WTMRH527.js.map +6 -0
- package/dist/structured-error-C65GQ53Z.js +13 -0
- package/dist/structured-error-C65GQ53Z.js.map +6 -0
- package/dist/target-3QHY7JT4.js +45 -0
- package/dist/target-3QHY7JT4.js.map +6 -0
- package/dist/webapi-NTVP4BO3.js +2482 -0
- package/dist/webapi-NTVP4BO3.js.map +6 -0
- package/package.json +8 -8
- package/dist/add-mcp-install.js +0 -59
- package/dist/add-mcp-install.js.map +0 -1
- package/dist/api-token-store.js +0 -120
- package/dist/api-token-store.js.map +0 -1
- package/dist/api-token.js +0 -238
- package/dist/api-token.js.map +0 -1
- package/dist/auth-bootstrap.js +0 -373
- package/dist/auth-bootstrap.js.map +0 -1
- package/dist/auth.js +0 -386
- package/dist/auth.js.map +0 -1
- package/dist/capability-proxy.js +0 -527
- package/dist/capability-proxy.js.map +0 -1
- package/dist/credential-call-map.js +0 -155
- package/dist/credential-call-map.js.map +0 -1
- package/dist/credential-client-runtime-source.js +0 -9
- package/dist/credential-client-runtime-source.js.map +0 -1
- package/dist/credentialed-fetch-scan.js +0 -98
- package/dist/credentialed-fetch-scan.js.map +0 -1
- package/dist/defaults.js +0 -34
- package/dist/defaults.js.map +0 -1
- package/dist/detect-running-hosts.js +0 -13
- package/dist/detect-running-hosts.js.map +0 -1
- package/dist/dev/dev-assets.js +0 -202
- package/dist/dev/dev-assets.js.map +0 -1
- package/dist/dev/dev-bundler.js +0 -65
- package/dist/dev/dev-bundler.js.map +0 -1
- package/dist/dev/dev-events.js +0 -94
- package/dist/dev/dev-events.js.map +0 -1
- package/dist/dev/dev-port.js +0 -80
- package/dist/dev/dev-port.js.map +0 -1
- package/dist/dev/dev-protocol.js +0 -14
- package/dist/dev/dev-protocol.js.map +0 -1
- package/dist/dev/dev-registry.js +0 -95
- package/dist/dev/dev-registry.js.map +0 -1
- package/dist/dev/dev-watcher.js +0 -156
- package/dist/dev/dev-watcher.js.map +0 -1
- package/dist/dev/error-page.js +0 -64
- package/dist/dev/error-page.js.map +0 -1
- package/dist/dev/live-reload.js +0 -148
- package/dist/dev/live-reload.js.map +0 -1
- package/dist/dev/prebuild.js +0 -102
- package/dist/dev/prebuild.js.map +0 -1
- package/dist/dev/process-reaper.js +0 -151
- package/dist/dev/process-reaper.js.map +0 -1
- package/dist/dev/stack-trace.js +0 -56
- package/dist/dev/stack-trace.js.map +0 -1
- package/dist/dev/workerd-process.js +0 -118
- package/dist/dev/workerd-process.js.map +0 -1
- package/dist/dev-command.js +0 -672
- package/dist/dev-command.js.map +0 -1
- package/dist/discover-login-identity.js +0 -77
- package/dist/discover-login-identity.js.map +0 -1
- package/dist/discover-org.js +0 -62
- package/dist/discover-org.js.map +0 -1
- package/dist/git-credential.js +0 -147
- package/dist/git-credential.js.map +0 -1
- package/dist/help.js +0 -333
- package/dist/help.js.map +0 -1
- package/dist/host-catalog.js +0 -427
- package/dist/host-catalog.js.map +0 -1
- package/dist/host-config.js +0 -80
- package/dist/host-config.js.map +0 -1
- package/dist/http-error-body.js +0 -35
- package/dist/http-error-body.js.map +0 -1
- package/dist/install-hosts.js +0 -328
- package/dist/install-hosts.js.map +0 -1
- package/dist/install.js +0 -120
- package/dist/install.js.map +0 -1
- package/dist/invoke-passthrough.js +0 -60
- package/dist/invoke-passthrough.js.map +0 -1
- package/dist/local-bundle.js +0 -200
- package/dist/local-bundle.js.map +0 -1
- package/dist/local-execute-auth.js +0 -53
- package/dist/local-execute-auth.js.map +0 -1
- package/dist/local-execute.js +0 -338
- package/dist/local-execute.js.map +0 -1
- package/dist/local-gateway-fetch-forward.js +0 -135
- package/dist/local-gateway-fetch-forward.js.map +0 -1
- package/dist/local-host-runtime-surface.js +0 -75
- package/dist/local-host-runtime-surface.js.map +0 -1
- package/dist/local-package-graph.js +0 -405
- package/dist/local-package-graph.js.map +0 -1
- package/dist/local-package-run.js +0 -307
- package/dist/local-package-run.js.map +0 -1
- package/dist/local-runtime-bridge.js +0 -132
- package/dist/local-runtime-bridge.js.map +0 -1
- package/dist/local-runtime-source.js +0 -541
- package/dist/local-runtime-source.js.map +0 -1
- package/dist/login-callback-assets.js +0 -10
- package/dist/login-callback-assets.js.map +0 -1
- package/dist/login-callback-page.js +0 -362
- package/dist/login-callback-page.js.map +0 -1
- package/dist/mcp.js +0 -134
- package/dist/mcp.js.map +0 -1
- package/dist/mock/ensure-msw.js +0 -215
- package/dist/mock/ensure-msw.js.map +0 -1
- package/dist/mock/install-mock-fetch-shim.js +0 -36
- package/dist/mock/install-mock-fetch-shim.js.map +0 -1
- package/dist/mock/load-package-mocks.js +0 -136
- package/dist/mock/load-package-mocks.js.map +0 -1
- package/dist/mock/mock-fetch-gateway.js +0 -343
- package/dist/mock/mock-fetch-gateway.js.map +0 -1
- package/dist/mock/mock-gateway-fetch-shim.js +0 -104
- package/dist/mock/mock-gateway-fetch-shim.js.map +0 -1
- package/dist/mock/mock-server.js +0 -499
- package/dist/mock/mock-server.js.map +0 -1
- package/dist/mock/mock-storage.js +0 -186
- package/dist/mock/mock-storage.js.map +0 -1
- package/dist/mock/mock-supported.js +0 -63
- package/dist/mock/mock-supported.js.map +0 -1
- package/dist/mock-dep-resolve.js +0 -47
- package/dist/mock-dep-resolve.js.map +0 -1
- package/dist/mock-local-deps.js +0 -207
- package/dist/mock-local-deps.js.map +0 -1
- package/dist/network-error.js +0 -11
- package/dist/network-error.js.map +0 -1
- package/dist/node-engine.js +0 -21
- package/dist/node-engine.js.map +0 -1
- package/dist/oauth-provider.js +0 -107
- package/dist/oauth-provider.js.map +0 -1
- package/dist/onboarding-prompt.js +0 -15
- package/dist/onboarding-prompt.js.map +0 -1
- package/dist/open-api-client.js +0 -432
- package/dist/open-api-client.js.map +0 -1
- package/dist/open-url.js +0 -21
- package/dist/open-url.js.map +0 -1
- package/dist/org-resolve.js +0 -16
- package/dist/org-resolve.js.map +0 -1
- package/dist/org-slug.js +0 -11
- package/dist/org-slug.js.map +0 -1
- package/dist/org.js +0 -100
- package/dist/org.js.map +0 -1
- package/dist/package-app-dev.js +0 -905
- package/dist/package-app-dev.js.map +0 -1
- package/dist/package-collaborators.js +0 -179
- package/dist/package-collaborators.js.map +0 -1
- package/dist/package-info.js +0 -19
- package/dist/package-info.js.map +0 -1
- package/dist/package-local-runtime-source.js.map +0 -1
- package/dist/package-manifest.js +0 -364
- package/dist/package-manifest.js.map +0 -1
- package/dist/process-info.js +0 -14
- package/dist/process-info.js.map +0 -1
- package/dist/redact.js +0 -16
- package/dist/redact.js.map +0 -1
- package/dist/remote-execute.js +0 -108
- package/dist/remote-execute.js.map +0 -1
- package/dist/setup-git.js +0 -676
- package/dist/setup-git.js.map +0 -1
- package/dist/skill.js +0 -35
- package/dist/skill.js.map +0 -1
- package/dist/store.js +0 -597
- package/dist/store.js.map +0 -1
- package/dist/structured-error.js +0 -57
- package/dist/structured-error.js.map +0 -1
- package/dist/target.js +0 -52
- package/dist/target.js.map +0 -1
- package/dist/tool-result.js +0 -19
- package/dist/tool-result.js.map +0 -1
- package/dist/which.js +0 -22
- package/dist/which.js.map +0 -1
- package/dist/workerd-binary.js +0 -98
- package/dist/workerd-binary.js.map +0 -1
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Node-side handlers for the workerd → bridge `POST /gateway-fetch` hop:
|
|
3
|
-
* mock MSW path (buffered) or prod CapabilityProxy streaming hop.
|
|
4
|
-
*/
|
|
5
|
-
import { callCapabilityProxyGatewayFetchStream, gatewayFetchHeadersHeaderName, gatewayFetchMethodHeaderName, gatewayFetchPackageIdHeaderName, gatewayFetchUrlHeaderName, secretResolutionHeaderName, } from './capability-proxy.js';
|
|
6
|
-
import { readBodyBuffer, writeWebResponse, } from './local-runtime-bridge.js';
|
|
7
|
-
import { runSecretHeader } from './local-runtime-source.js';
|
|
8
|
-
const gatewayMetaHeaderNames = [
|
|
9
|
-
gatewayFetchUrlHeaderName,
|
|
10
|
-
gatewayFetchMethodHeaderName,
|
|
11
|
-
gatewayFetchPackageIdHeaderName,
|
|
12
|
-
gatewayFetchHeadersHeaderName,
|
|
13
|
-
secretResolutionHeaderName,
|
|
14
|
-
'content-type',
|
|
15
|
-
'content-length',
|
|
16
|
-
];
|
|
17
|
-
function headerValue(headers, name) {
|
|
18
|
-
const value = headers[name.toLowerCase()];
|
|
19
|
-
if (Array.isArray(value))
|
|
20
|
-
return value[0];
|
|
21
|
-
return value;
|
|
22
|
-
}
|
|
23
|
-
export async function forwardLocalGatewayFetchStream(input) {
|
|
24
|
-
const url = headerValue(input.request.headers, gatewayFetchUrlHeaderName)?.trim();
|
|
25
|
-
if (!url) {
|
|
26
|
-
await writeWebResponse(input.response, Response.json({
|
|
27
|
-
error: {
|
|
28
|
-
code: 'invalid_request',
|
|
29
|
-
message: 'X-Kody-Gateway-Url is required and must be a non-empty absolute URL.',
|
|
30
|
-
},
|
|
31
|
-
}, { status: 400, headers: { 'Cache-Control': 'no-store' } }));
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
if (input.mockFetchGateway) {
|
|
35
|
-
const body = await readBodyBuffer(input.request);
|
|
36
|
-
const method = headerValue(input.request.headers, gatewayFetchMethodHeaderName)?.trim() ||
|
|
37
|
-
'GET';
|
|
38
|
-
const packageId = headerValue(input.request.headers, gatewayFetchPackageIdHeaderName)?.trim();
|
|
39
|
-
const rawHeaders = headerValue(input.request.headers, gatewayFetchHeadersHeaderName);
|
|
40
|
-
let headers = {};
|
|
41
|
-
if (rawHeaders) {
|
|
42
|
-
try {
|
|
43
|
-
const parsed = JSON.parse(rawHeaders);
|
|
44
|
-
if (parsed != null && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
45
|
-
headers = Object.fromEntries(Object.entries(parsed).flatMap(([key, value]) => typeof value === 'string' ? [[key, value]] : []));
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
catch {
|
|
49
|
-
await writeWebResponse(input.response, Response.json({
|
|
50
|
-
error: {
|
|
51
|
-
code: 'invalid_request',
|
|
52
|
-
message: 'X-Kody-Gateway-Headers must be valid JSON: an object of header names to string values.',
|
|
53
|
-
},
|
|
54
|
-
}, { status: 400, headers: { 'Cache-Control': 'no-store' } }));
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
const contentType = headerValue(input.request.headers, 'content-type');
|
|
59
|
-
if (contentType)
|
|
60
|
-
headers['content-type'] = contentType;
|
|
61
|
-
const resolution = headerValue(input.request.headers, secretResolutionHeaderName);
|
|
62
|
-
if (resolution)
|
|
63
|
-
headers[secretResolutionHeaderName] = resolution;
|
|
64
|
-
const result = await input.mockFetchGateway.handle({
|
|
65
|
-
...(packageId ? { packageId } : {}),
|
|
66
|
-
request: {
|
|
67
|
-
url,
|
|
68
|
-
method,
|
|
69
|
-
headers,
|
|
70
|
-
...(body.byteLength > 0
|
|
71
|
-
? { bodyBase64: body.toString('base64') }
|
|
72
|
-
: {}),
|
|
73
|
-
},
|
|
74
|
-
}, input.signal);
|
|
75
|
-
const nullBody = result.status === 101 ||
|
|
76
|
-
result.status === 103 ||
|
|
77
|
-
result.status === 204 ||
|
|
78
|
-
result.status === 205 ||
|
|
79
|
-
result.status === 304;
|
|
80
|
-
const bytes = Buffer.from(result.bodyBase64 ?? '', 'base64');
|
|
81
|
-
await writeWebResponse(input.response, new Response(nullBody ? null : bytes, {
|
|
82
|
-
status: result.status,
|
|
83
|
-
statusText: result.statusText,
|
|
84
|
-
headers: result.headers,
|
|
85
|
-
}));
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
const method = headerValue(input.request.headers, gatewayFetchMethodHeaderName);
|
|
89
|
-
const packageId = headerValue(input.request.headers, gatewayFetchPackageIdHeaderName);
|
|
90
|
-
const rawHeaders = headerValue(input.request.headers, gatewayFetchHeadersHeaderName);
|
|
91
|
-
let outboundHeaders;
|
|
92
|
-
if (rawHeaders) {
|
|
93
|
-
try {
|
|
94
|
-
const parsed = JSON.parse(rawHeaders);
|
|
95
|
-
if (parsed != null && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
96
|
-
outboundHeaders = Object.fromEntries(Object.entries(parsed).flatMap(([key, value]) => typeof value === 'string' ? [[key, value]] : []));
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
catch {
|
|
100
|
-
await writeWebResponse(input.response, Response.json({
|
|
101
|
-
error: {
|
|
102
|
-
code: 'invalid_request',
|
|
103
|
-
message: 'X-Kody-Gateway-Headers must be valid JSON: an object of header names to string values.',
|
|
104
|
-
},
|
|
105
|
-
}, { status: 400, headers: { 'Cache-Control': 'no-store' } }));
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
const contentType = headerValue(input.request.headers, 'content-type');
|
|
110
|
-
const secretResolution = headerValue(input.request.headers, secretResolutionHeaderName);
|
|
111
|
-
const contentLength = headerValue(input.request.headers, 'content-length');
|
|
112
|
-
const upstream = await callCapabilityProxyGatewayFetchStream({
|
|
113
|
-
...input.client,
|
|
114
|
-
signal: input.signal,
|
|
115
|
-
gateway: {
|
|
116
|
-
url,
|
|
117
|
-
...(method ? { method } : {}),
|
|
118
|
-
...(packageId ? { packageId } : {}),
|
|
119
|
-
...(outboundHeaders ? { headers: outboundHeaders } : {}),
|
|
120
|
-
...(contentType ? { contentType } : {}),
|
|
121
|
-
...(secretResolution ? { secretResolution } : {}),
|
|
122
|
-
},
|
|
123
|
-
body: input.request,
|
|
124
|
-
...(contentLength ? { contentLength } : {}),
|
|
125
|
-
});
|
|
126
|
-
await writeWebResponse(input.response, upstream);
|
|
127
|
-
}
|
|
128
|
-
/** Headers the workerd bridge may forward (excludes the run secret). */
|
|
129
|
-
export function isGatewayFetchForwardHeader(name) {
|
|
130
|
-
const lower = name.toLowerCase();
|
|
131
|
-
if (lower === runSecretHeader)
|
|
132
|
-
return false;
|
|
133
|
-
return gatewayMetaHeaderNames.some((allowed) => allowed.toLowerCase() === lower);
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=local-gateway-fetch-forward.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-gateway-fetch-forward.js","sourceRoot":"","sources":["../src/local-gateway-fetch-forward.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hosted CapabilityProxy / local-execute host runtime surface that `--local`
|
|
3
|
-
* must cover. Keep in sync with kentcdodds/kody:
|
|
4
|
-
*
|
|
5
|
-
* - `packages/worker/src/open-api/capability-proxy.ts` (JSON `/call` specials)
|
|
6
|
-
* - `POST /v1/capability-proxy/gateway-fetch` (`gatewayFetchStream`)
|
|
7
|
-
* - `docs/contributing/contracts/cli-streaming-gateway-fetch.md`
|
|
8
|
-
* - `docs/contributing/contracts/cli-local-credential-runtime.md`
|
|
9
|
-
*
|
|
10
|
-
* Generic MCP tools (`kody.emailSend`, …) hop through the JSON Proxy and are
|
|
11
|
-
* not listed here. Prefix families (`packageStorage*`, `packageSecret*`,
|
|
12
|
-
* `credentialClient*`, `kody.mcp.*`) are listed once as patterns.
|
|
13
|
-
*/
|
|
14
|
-
/** Special-cased CapabilityProxy JSON `/call` paths (exact). */
|
|
15
|
-
export const hostedCapabilityProxySpecialFunctions = [
|
|
16
|
-
'kody.authenticatedFetch',
|
|
17
|
-
'kody.gatewayFetch',
|
|
18
|
-
'kody.oauthClientCredentials',
|
|
19
|
-
'workflows.create',
|
|
20
|
-
];
|
|
21
|
-
/** Prefix families served by CapabilityProxy JSON `/call`. */
|
|
22
|
-
export const hostedCapabilityProxySpecialPrefixes = [
|
|
23
|
-
'kody.packageStorage',
|
|
24
|
-
'kody.packageSecret',
|
|
25
|
-
'kody.credentialClient',
|
|
26
|
-
'kody.mcp.',
|
|
27
|
-
];
|
|
28
|
-
/**
|
|
29
|
-
* Host methods that cannot use the JSON `/call` Proxy hop. The CLI workerd
|
|
30
|
-
* `kody:runtime` must implement these (streaming body / real `Response`).
|
|
31
|
-
*/
|
|
32
|
-
export const hostedLocalHostSpecialFunctions = ['kody.gatewayFetchStream'];
|
|
33
|
-
/**
|
|
34
|
-
* Full audit list: every hosted special the CLI `--local` host must support
|
|
35
|
-
* (Proxy hop, dedicated host method, or documented prefix family).
|
|
36
|
-
*/
|
|
37
|
-
export const hostedLocalExecuteRuntimeSurface = [
|
|
38
|
-
...hostedCapabilityProxySpecialFunctions,
|
|
39
|
-
...hostedCapabilityProxySpecialPrefixes,
|
|
40
|
-
...hostedLocalHostSpecialFunctions,
|
|
41
|
-
];
|
|
42
|
-
/**
|
|
43
|
-
* CLI `--local` implementations that are more than the generic JSON Proxy.
|
|
44
|
-
* Drift tests assert these markers appear in the workerd runtime source.
|
|
45
|
-
*/
|
|
46
|
-
export const localHostImplementedRuntimeMarkers = [
|
|
47
|
-
{
|
|
48
|
-
id: 'kody.gatewayFetchStream',
|
|
49
|
-
/** Dedicated streaming host method (not Proxy → `/call`). */
|
|
50
|
-
sourceMarker: 'gatewayFetchStream',
|
|
51
|
-
bridgeMarker: '/gateway-fetch',
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
id: 'kody.authenticatedFetch',
|
|
55
|
-
sourceMarker: 'createAuthenticatedFetch',
|
|
56
|
-
bridgeMarker: null,
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
id: 'kody.oauthClientCredentials',
|
|
60
|
-
sourceMarker: 'oauthClientCredentials',
|
|
61
|
-
bridgeMarker: null,
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
id: 'kody.credentialClient*',
|
|
65
|
-
sourceMarker: 'credentialClientOpen',
|
|
66
|
-
bridgeMarker: null,
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
id: 'kody.gatewayFetch',
|
|
70
|
-
/** JSON hop via Proxy; shim calls `kody.gatewayFetch`. */
|
|
71
|
-
sourceMarker: "__kodyNamespace(['kody'])",
|
|
72
|
-
bridgeMarker: '/call',
|
|
73
|
-
},
|
|
74
|
-
];
|
|
75
|
-
//# sourceMappingURL=local-host-runtime-surface.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-host-runtime-surface.js","sourceRoot":"","sources":["../src/local-host-runtime-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,gEAAgE;AAChE,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACpD,yBAAyB;IACzB,mBAAmB;IACnB,6BAA6B;IAC7B,kBAAkB;CACT,CAAA;AAEV,8DAA8D;AAC9D,MAAM,CAAC,MAAM,oCAAoC,GAAG;IACnD,qBAAqB;IACrB,oBAAoB;IACpB,uBAAuB;IACvB,WAAW;CACF,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,yBAAyB,CAAU,CAAA;AAEnF;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC/C,GAAG,qCAAqC;IACxC,GAAG,oCAAoC;IACvC,GAAG,+BAA+B;CACzB,CAAA;AAKV;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG;IACjD;QACC,EAAE,EAAE,yBAAyB;QAC7B,6DAA6D;QAC7D,YAAY,EAAE,oBAAoB;QAClC,YAAY,EAAE,gBAAgB;KAC9B;IACD;QACC,EAAE,EAAE,yBAAyB;QAC7B,YAAY,EAAE,0BAA0B;QACxC,YAAY,EAAE,IAAI;KAClB;IACD;QACC,EAAE,EAAE,6BAA6B;QACjC,YAAY,EAAE,wBAAwB;QACtC,YAAY,EAAE,IAAI;KAClB;IACD;QACC,EAAE,EAAE,wBAAwB;QAC5B,YAAY,EAAE,sBAAsB;QACpC,YAAY,EAAE,IAAI;KAClB;IACD;QACC,EAAE,EAAE,mBAAmB;QACvB,0DAA0D;QAC1D,YAAY,EAAE,2BAA2B;QACzC,YAAY,EAAE,OAAO;KACrB;CACQ,CAAA"}
|
|
@@ -1,405 +0,0 @@
|
|
|
1
|
-
import { init as initEsModuleLexer, parse as parseEsModule } from 'es-module-lexer';
|
|
2
|
-
import { assertTokenSafeApiUrl, capabilityProxyUrl, } from './capability-proxy.js';
|
|
3
|
-
import { localWorkerModuleNames } from './local-runtime-source.js';
|
|
4
|
-
import { capabilityProxyForbiddenMessage, currentStoredTokenLifetimeAlias, featureDisabledMessage, insufficientScopeMessage, isScopedApiToken, readInsufficientScopeDetails, rejectedOauthBearerMessage, } from './api-token.js';
|
|
5
|
-
import { apiTokenEnvVar, cliName } from './defaults.js';
|
|
6
|
-
import { describeNetworkError } from './network-error.js';
|
|
7
|
-
import { readPackageVersion } from './package-info.js';
|
|
8
|
-
/** Eager WASM init for es-module-lexer (shared across import scans). */
|
|
9
|
-
const esModuleLexerReady = initEsModuleLexer();
|
|
10
|
-
/**
|
|
11
|
-
* Open API contract for downloading stamped `kody:@…` modules so
|
|
12
|
-
* `execute --local` can embed them in workerd (no whole-module cloud execute).
|
|
13
|
-
*
|
|
14
|
-
* Platform tracking: https://github.com/kentcdodds/kody/issues/2808
|
|
15
|
-
* TODO(kody#2808): keep this path + response shape aligned with the shipped API.
|
|
16
|
-
*/
|
|
17
|
-
export const localPackageGraphPath = 'v1/local-execute/package-graph';
|
|
18
|
-
/** Linked from user-facing errors when the package-graph API is missing or blocked. */
|
|
19
|
-
export const localPackageGraphPlatformIssueUrl = 'https://github.com/kentcdodds/kody/issues/2808';
|
|
20
|
-
/**
|
|
21
|
-
* When `code` is larger than this, package-graph POSTs a tiny synthetic entry
|
|
22
|
-
* built from the already-scanned `kody:@` import list instead of the full
|
|
23
|
-
* module. Origin only needs those imports (plus the gateway-fetch shim) —
|
|
24
|
-
* shipping a 1.2–1.7 MiB TanStack / React `kody dev` worker bundle on every
|
|
25
|
-
* rebuild trips older 512k Zod caps and wastes bandwidth under live reload.
|
|
26
|
-
* Origin's inline `code` ceiling is the Open API JSON body limit (5 MiB);
|
|
27
|
-
* callers that need the full source scanned can still send it under that cap.
|
|
28
|
-
*/
|
|
29
|
-
export const packageGraphInlineCodePreferImportsChars = 400_000;
|
|
30
|
-
/**
|
|
31
|
-
* Tiny entry for package-graph when the full module is too large to POST.
|
|
32
|
-
* Side-effect imports only — enough for origin's static scanner.
|
|
33
|
-
*/
|
|
34
|
-
export function synthesizePackageGraphEntry(imports) {
|
|
35
|
-
const unique = [...new Set(imports)].sort((left, right) => left.localeCompare(right));
|
|
36
|
-
if (unique.length === 0) {
|
|
37
|
-
return 'export default async function main() {}\n';
|
|
38
|
-
}
|
|
39
|
-
const lines = unique.map((specifier) => `import ${JSON.stringify(specifier)}`);
|
|
40
|
-
return `${lines.join('\n')}\nexport default async function main() {}\n`;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Unique `kody:@…` specifiers from real static / literal-dynamic imports.
|
|
44
|
-
* Uses es-module-lexer (not a regex) so doc comments and string literals are
|
|
45
|
-
* never treated as imports (linkedin overview / #2808).
|
|
46
|
-
*/
|
|
47
|
-
function isTypeOnlyImport(im) {
|
|
48
|
-
if (im.type === 'dynamic')
|
|
49
|
-
return im.probablyTypeOnly === true;
|
|
50
|
-
return im.typeOnly === true;
|
|
51
|
-
}
|
|
52
|
-
function parseModuleImports(code) {
|
|
53
|
-
try {
|
|
54
|
-
return parseEsModule(code)[0];
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
// Incomplete / invalid source (workerd reports the SyntaxError later).
|
|
58
|
-
return [];
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
export async function listSavedPackageImports(code) {
|
|
62
|
-
await esModuleLexerReady;
|
|
63
|
-
const imports = parseModuleImports(code);
|
|
64
|
-
const found = new Set();
|
|
65
|
-
for (const im of imports) {
|
|
66
|
-
if (isTypeOnlyImport(im))
|
|
67
|
-
continue;
|
|
68
|
-
const specifier = im.specifier;
|
|
69
|
-
if (typeof specifier === 'string' && specifier.startsWith('kody:@')) {
|
|
70
|
-
found.add(specifier);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return [...found];
|
|
74
|
-
}
|
|
75
|
-
export async function hasSavedPackageImports(code) {
|
|
76
|
-
return (await listSavedPackageImports(code)).length > 0;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Literal `import("kody:@…")` — static `from` imports are fine; computed
|
|
80
|
-
* `import(specifier)` cannot be bound into workerd ahead of time.
|
|
81
|
-
*/
|
|
82
|
-
export async function hasLiteralDynamicSavedPackageImports(code) {
|
|
83
|
-
await esModuleLexerReady;
|
|
84
|
-
return parseModuleImports(code).some((im) => {
|
|
85
|
-
if (im.type !== 'dynamic' || im.probablyTypeOnly)
|
|
86
|
-
return false;
|
|
87
|
-
return typeof im.specifier === 'string' && im.specifier.startsWith('kody:@');
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Flat workerd module name for a bare `kody:` builtin (not `kody:@…`).
|
|
92
|
-
* Path-like package modules path-join bare builtins; slash-free aliases do not.
|
|
93
|
-
* workerd also rejects leading-`/` absolute module names.
|
|
94
|
-
*/
|
|
95
|
-
export function flatAliasForBareKodyBuiltin(specifier) {
|
|
96
|
-
if (!specifier.startsWith('kody:') || specifier.startsWith('kody:@'))
|
|
97
|
-
return null;
|
|
98
|
-
if (specifier === localWorkerModuleNames.runtime) {
|
|
99
|
-
return localWorkerModuleNames.runtimeFlatAlias;
|
|
100
|
-
}
|
|
101
|
-
// Future bare builtins: slash-free so path-like importers do not rejoin.
|
|
102
|
-
const name = specifier.slice('kody:'.length);
|
|
103
|
-
if (!name || /[/\\]/.test(name))
|
|
104
|
-
return null;
|
|
105
|
-
return `.__kody_builtin__${name}.js`;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Rewrite bare `kody:` builtins (not `kody:@…`) to flat aliases so workerd does
|
|
109
|
-
* not path-join them under path-like module names
|
|
110
|
-
* (`kody:@scope/pkg/export` → `kody:@scope/pkg/kody:runtime`).
|
|
111
|
-
*/
|
|
112
|
-
export async function rewriteBareKodyBuiltinImports(esModule) {
|
|
113
|
-
await esModuleLexerReady;
|
|
114
|
-
const edits = parseModuleImports(esModule)
|
|
115
|
-
.filter((im) => typeof im.specifier === 'string')
|
|
116
|
-
.map((im) => {
|
|
117
|
-
const specifier = im.specifier;
|
|
118
|
-
const alias = flatAliasForBareKodyBuiltin(specifier);
|
|
119
|
-
if (!alias)
|
|
120
|
-
return null;
|
|
121
|
-
return { start: im.start, end: im.end, alias };
|
|
122
|
-
})
|
|
123
|
-
.filter((edit) => edit !== null)
|
|
124
|
-
.sort((a, b) => b.start - a.start);
|
|
125
|
-
let out = esModule;
|
|
126
|
-
for (const edit of edits) {
|
|
127
|
-
// Dynamic imports include quotes in start/end; static imports do not.
|
|
128
|
-
const raw = esModule.slice(edit.start, edit.end);
|
|
129
|
-
const quote = raw.startsWith("'") || raw.startsWith('"') ? raw[0] : null;
|
|
130
|
-
const replacement = quote ? `${quote}${edit.alias}${quote}` : edit.alias;
|
|
131
|
-
out = `${out.slice(0, edit.start)}${replacement}${out.slice(edit.end)}`;
|
|
132
|
-
}
|
|
133
|
-
return out;
|
|
134
|
-
}
|
|
135
|
-
export class LocalPackageGraphError extends Error {
|
|
136
|
-
status;
|
|
137
|
-
code;
|
|
138
|
-
constructor(message, options = {}) {
|
|
139
|
-
super(message);
|
|
140
|
-
this.name = 'LocalPackageGraphError';
|
|
141
|
-
this.status = options.status ?? null;
|
|
142
|
-
this.code = options.code ?? null;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Fetch published, stamped package modules for local workerd embedding.
|
|
147
|
-
* Never falls back to CapabilityProxy → `kody.execute`.
|
|
148
|
-
*/
|
|
149
|
-
/** Exact workerd module name for the origin-supplied gateway-fetch shim. */
|
|
150
|
-
export const localExecuteGatewayFetchShimModuleName = '.__kody_virtual__/runtime.js';
|
|
151
|
-
/**
|
|
152
|
-
* Write package-graph modules into a workerd temp dir and return capnp entries.
|
|
153
|
-
* Shared by execute --local, local package runs, and kody dev app bundling.
|
|
154
|
-
*/
|
|
155
|
-
export async function writePackageModuleFiles(workDir, graph, writeFile, joinPath) {
|
|
156
|
-
const written = [];
|
|
157
|
-
for (const [index, module] of graph.modules.entries()) {
|
|
158
|
-
const file = `pkg-${index}.js`;
|
|
159
|
-
await writeFile(joinPath(workDir, file), module.esModule);
|
|
160
|
-
written.push({ name: module.name, file });
|
|
161
|
-
}
|
|
162
|
-
return written;
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Resolve stamped `kody:@` modules for local workerd.
|
|
166
|
-
* On `--target mock`, capability hops stay on the mock. Dependencies resolve
|
|
167
|
-
* from (1) the local working tree / `.kody/deps.json` / self-package, then
|
|
168
|
-
* (2) published package-graph when `depResolve` is set (login / API token).
|
|
169
|
-
* Published source is not a secret. Fresh HOME with only local deps needs no login.
|
|
170
|
-
*/
|
|
171
|
-
export async function resolveLocalPackageGraph(input) {
|
|
172
|
-
const imports = await listSavedPackageImports(input.code);
|
|
173
|
-
// Mock package-graph is empty by design. When deps are resolved from a
|
|
174
|
-
// separate prod client, skip the round-trip if there are no kody:@ imports.
|
|
175
|
-
// Prod CapabilityProxy still needs package-graph for the gateway-fetch shim
|
|
176
|
-
// even with zero imports — so never early-return on the prod path.
|
|
177
|
-
if (input.depResolve &&
|
|
178
|
-
imports.length === 0 &&
|
|
179
|
-
!(await hasLiteralDynamicSavedPackageImports(input.code))) {
|
|
180
|
-
return { modules: [], imports: [] };
|
|
181
|
-
}
|
|
182
|
-
let localModules = [];
|
|
183
|
-
let unresolved = imports;
|
|
184
|
-
const { mergePackageGraphs, resolveLocalPackageModules, tryLoadSelfManifest } = await import('./mock-local-deps.js');
|
|
185
|
-
if (imports.length > 0 && input.packageRoot) {
|
|
186
|
-
const selfManifest = await tryLoadSelfManifest(input.packageRoot);
|
|
187
|
-
const local = await resolveLocalPackageModules({
|
|
188
|
-
code: input.code,
|
|
189
|
-
packageRoot: input.packageRoot,
|
|
190
|
-
selfManifest,
|
|
191
|
-
onStatus: input.onStatus,
|
|
192
|
-
});
|
|
193
|
-
localModules = local.modules;
|
|
194
|
-
unresolved = local.unresolved;
|
|
195
|
-
// Mock: local-only graphs need no published package-graph (and no login).
|
|
196
|
-
// Prod: still fetch package-graph for the origin gateway-fetch shim even
|
|
197
|
-
// when every kody:@ import resolved from the working tree (Bugbot).
|
|
198
|
-
if (unresolved.length === 0 &&
|
|
199
|
-
(input.depResolve !== undefined || isLikelyMockBearer(input.token))) {
|
|
200
|
-
return { modules: localModules, imports };
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
if (unresolved.length > 0 && !input.depResolve && isLikelyMockBearer(input.token)) {
|
|
204
|
-
throw new LocalPackageGraphError(`kody:@ dependencies need published package-graph while --target mock keeps storage/credentials local. ` +
|
|
205
|
-
`Map them in .kody/deps.json (or package.json#kody.localDeps), keep them in this package's exports, ` +
|
|
206
|
-
`or log in (\`kody login\` / \`kody auth bootstrap\`) / set KODY_API_TOKEN so the CLI can fetch dependency source from prod. ` +
|
|
207
|
-
`Unresolved: ${unresolved.join(', ')}`, { code: 'mock_package_deps_need_auth' });
|
|
208
|
-
}
|
|
209
|
-
const client = input.depResolve
|
|
210
|
-
? {
|
|
211
|
-
apiUrl: input.depResolve.apiUrl,
|
|
212
|
-
token: input.depResolve.token,
|
|
213
|
-
fetchFn: input.depResolve.fetchFn ?? input.fetchFn,
|
|
214
|
-
...(input.depResolve.org ? { org: input.depResolve.org } : {}),
|
|
215
|
-
}
|
|
216
|
-
: {
|
|
217
|
-
apiUrl: input.apiUrl,
|
|
218
|
-
token: input.token,
|
|
219
|
-
fetchFn: input.fetchFn,
|
|
220
|
-
...(input.org ? { org: input.org } : {}),
|
|
221
|
-
};
|
|
222
|
-
if (input.depResolve && unresolved.length > 0) {
|
|
223
|
-
input.onStatus?.(`Resolving ${unresolved.length} kody:@ dependenc${unresolved.length === 1 ? 'y' : 'ies'} from published package-graph (mock keeps storage/credentials local)…`);
|
|
224
|
-
}
|
|
225
|
-
const published = await fetchLocalPackageGraph({
|
|
226
|
-
...client,
|
|
227
|
-
code: input.code,
|
|
228
|
-
conversationId: input.conversationId,
|
|
229
|
-
...(localModules.length > 0 ? { requiredImports: unresolved } : {}),
|
|
230
|
-
});
|
|
231
|
-
if (localModules.length === 0)
|
|
232
|
-
return published;
|
|
233
|
-
return mergePackageGraphs(localModules, published);
|
|
234
|
-
}
|
|
235
|
-
function isLikelyMockBearer(token) {
|
|
236
|
-
return token === 'mock' || token.startsWith('kody_mock_');
|
|
237
|
-
}
|
|
238
|
-
export async function fetchLocalPackageGraph(input) {
|
|
239
|
-
assertTokenSafeApiUrl(input.apiUrl);
|
|
240
|
-
const imports = await listSavedPackageImports(input.code);
|
|
241
|
-
const required = input.requiredImports ?? imports;
|
|
242
|
-
if (await hasLiteralDynamicSavedPackageImports(input.code)) {
|
|
243
|
-
throw new LocalPackageGraphError(`Local execute cannot bind literal dynamic import("kody:@…") yet — use a static import, or wait for runtime package resolution (${localPackageGraphPlatformIssueUrl}).`, { code: 'unsupported_dynamic_package_import' });
|
|
244
|
-
}
|
|
245
|
-
const url = capabilityProxyUrl(input.apiUrl, localPackageGraphPath);
|
|
246
|
-
if (input.org)
|
|
247
|
-
url.searchParams.set('org', input.org);
|
|
248
|
-
const fetchFn = input.fetchFn ?? fetch;
|
|
249
|
-
// Large bundles (kody dev worker apps): only the kody:@ import list matters
|
|
250
|
-
// for stamped-module download. Keep a small synthetic `code` so older
|
|
251
|
-
// origins that still require the field keep working; new origins also
|
|
252
|
-
// accept imports-only.
|
|
253
|
-
const requestCode = input.code.length > packageGraphInlineCodePreferImportsChars
|
|
254
|
-
? synthesizePackageGraphEntry(required)
|
|
255
|
-
: input.code;
|
|
256
|
-
let response;
|
|
257
|
-
try {
|
|
258
|
-
response = await fetchFn(url, {
|
|
259
|
-
method: 'POST',
|
|
260
|
-
signal: input.signal,
|
|
261
|
-
headers: {
|
|
262
|
-
accept: 'application/json',
|
|
263
|
-
'content-type': 'application/json',
|
|
264
|
-
authorization: `Bearer ${input.token}`,
|
|
265
|
-
'user-agent': `${cliName}/${readPackageVersion()}`,
|
|
266
|
-
},
|
|
267
|
-
body: JSON.stringify({
|
|
268
|
-
code: requestCode,
|
|
269
|
-
imports: required,
|
|
270
|
-
...(input.conversationId !== undefined
|
|
271
|
-
? { conversationId: input.conversationId }
|
|
272
|
-
: {}),
|
|
273
|
-
}),
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
catch (error) {
|
|
277
|
-
const reason = describeNetworkError(error);
|
|
278
|
-
throw new LocalPackageGraphError(`Could not reach the Kody API at ${url.origin} (${reason}). Check --api-url / KODY_API_URL and your network.`);
|
|
279
|
-
}
|
|
280
|
-
const body = await readJson(response);
|
|
281
|
-
if (!response.ok) {
|
|
282
|
-
throw describePackageGraphFailure(response.status, body, url, required, input.token);
|
|
283
|
-
}
|
|
284
|
-
const graph = parsePackageGraphBody(body, required);
|
|
285
|
-
const missing = required.filter((specifier) => !graph.modules.some((module) => module.name === specifier));
|
|
286
|
-
if (missing.length > 0) {
|
|
287
|
-
throw new LocalPackageGraphError(`Local package graph response omitted modules for: ${missing.join(', ')}. ${localPackageGraphPlatformIssueUrl}`, { code: 'incomplete_package_graph' });
|
|
288
|
-
}
|
|
289
|
-
return graph;
|
|
290
|
-
}
|
|
291
|
-
function parsePackageGraphBody(body, imports) {
|
|
292
|
-
if (!isRecord(body) || !Array.isArray(body.modules)) {
|
|
293
|
-
throw new LocalPackageGraphError(`Kody package-graph response was missing a modules array. ${localPackageGraphPlatformIssueUrl}`, { code: 'invalid_package_graph' });
|
|
294
|
-
}
|
|
295
|
-
const modules = [];
|
|
296
|
-
for (const entry of body.modules) {
|
|
297
|
-
if (!isRecord(entry) || typeof entry.name !== 'string' || !entry.name.trim()) {
|
|
298
|
-
throw new LocalPackageGraphError(`Kody package-graph response included a module without a name. ${localPackageGraphPlatformIssueUrl}`, { code: 'invalid_package_graph' });
|
|
299
|
-
}
|
|
300
|
-
const esModule = typeof entry.esModule === 'string'
|
|
301
|
-
? entry.esModule
|
|
302
|
-
: typeof entry.source === 'string'
|
|
303
|
-
? entry.source
|
|
304
|
-
: typeof entry.js === 'string'
|
|
305
|
-
? entry.js
|
|
306
|
-
: null;
|
|
307
|
-
if (esModule === null) {
|
|
308
|
-
throw new LocalPackageGraphError(`Kody package-graph module ${JSON.stringify(entry.name)} was missing esModule source. ${localPackageGraphPlatformIssueUrl}`, { code: 'invalid_package_graph' });
|
|
309
|
-
}
|
|
310
|
-
modules.push({ name: entry.name, esModule });
|
|
311
|
-
}
|
|
312
|
-
const reportedImports = Array.isArray(body.imports)
|
|
313
|
-
? body.imports.filter((value) => typeof value === 'string')
|
|
314
|
-
: imports;
|
|
315
|
-
return { modules, imports: reportedImports };
|
|
316
|
-
}
|
|
317
|
-
function describePackageGraphFailure(status, body, url, imports, token) {
|
|
318
|
-
const failure = readErrorBody(body);
|
|
319
|
-
const code = failure?.code ?? null;
|
|
320
|
-
const detail = failure?.message ? ` Server said: ${failure.message}` : '';
|
|
321
|
-
const importList = imports.join(', ');
|
|
322
|
-
if (status === 404) {
|
|
323
|
-
return new LocalPackageGraphError(`Local execute cannot resolve saved package imports (${importList}): Kody has no package-graph endpoint at ${url.pathname} yet. ` +
|
|
324
|
-
`The CLI will not silently fall back to cloud kody.execute for --local. ` +
|
|
325
|
-
`Platform work: ${localPackageGraphPlatformIssueUrl}.${detail}`, { status, code: code ?? 'not_found' });
|
|
326
|
-
}
|
|
327
|
-
if (status === 401) {
|
|
328
|
-
// Same wording as CapabilityProxy session 401 — package-graph is now the auth gate.
|
|
329
|
-
const message = isScopedApiToken(token)
|
|
330
|
-
? `Kody rejected the API token (expired, revoked, or malformed). Mint a fresh scoped token and pass it with --token or ${apiTokenEnvVar}.${detail}`
|
|
331
|
-
: `${rejectedOauthBearerMessage()}${detail}`;
|
|
332
|
-
return new LocalPackageGraphError(message, { status, code });
|
|
333
|
-
}
|
|
334
|
-
if (code === 'feature_disabled') {
|
|
335
|
-
return new LocalPackageGraphError(`${featureDisabledMessage()}${detail}`, { status, code });
|
|
336
|
-
}
|
|
337
|
-
if (code === 'insufficient_scope') {
|
|
338
|
-
return new LocalPackageGraphError(`${insufficientScopeMessage({
|
|
339
|
-
...readInsufficientScopeDetails(body),
|
|
340
|
-
currentLifetime: currentStoredTokenLifetimeAlias(url.origin),
|
|
341
|
-
})}${detail}`, { status, code });
|
|
342
|
-
}
|
|
343
|
-
if (status === 403) {
|
|
344
|
-
return new LocalPackageGraphError(capabilityProxyForbiddenMessage({ code, serverMessage: failure?.message }), { status, code });
|
|
345
|
-
}
|
|
346
|
-
if (code === 'package_import_unresolved' ||
|
|
347
|
-
code === 'not_found' ||
|
|
348
|
-
status === 400 ||
|
|
349
|
-
status === 422) {
|
|
350
|
-
return new LocalPackageGraphError(failure?.message ??
|
|
351
|
-
`Could not resolve saved package import(s) for local bundling (${importList}).${detail}`, { status, code });
|
|
352
|
-
}
|
|
353
|
-
return new LocalPackageGraphError(failure?.message ??
|
|
354
|
-
`Kody package-graph request failed with HTTP ${status} (${url.pathname}).${detail}`, { status, code });
|
|
355
|
-
}
|
|
356
|
-
async function readJson(response) {
|
|
357
|
-
const text = await response.text();
|
|
358
|
-
if (!text)
|
|
359
|
-
return null;
|
|
360
|
-
try {
|
|
361
|
-
return JSON.parse(text);
|
|
362
|
-
}
|
|
363
|
-
catch {
|
|
364
|
-
return text;
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
function readErrorBody(body) {
|
|
368
|
-
if (!isRecord(body) || body.error == null)
|
|
369
|
-
return null;
|
|
370
|
-
const { error } = body;
|
|
371
|
-
if (typeof error === 'string')
|
|
372
|
-
return { code: null, message: error };
|
|
373
|
-
if (isRecord(error)) {
|
|
374
|
-
const code = typeof error.code === 'string' ? error.code : null;
|
|
375
|
-
const message = typeof error.message === 'string' ? error.message : (code ?? JSON.stringify(error));
|
|
376
|
-
return { code, message: preferActionableInvalidParametersMessage(error, message) };
|
|
377
|
-
}
|
|
378
|
-
return { code: null, message: String(error) };
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* Older origins buried oversized-`code` details under Zod `issues` and left
|
|
382
|
-
* `error.message` as "Invalid parameters." — which `kody dev` showed as a bare
|
|
383
|
-
* "Build failed: Invalid parameters." Prefer the size/limit issue text (or any
|
|
384
|
-
* issue message) so CLI output names the actual size and the maximum.
|
|
385
|
-
*/
|
|
386
|
-
function preferActionableInvalidParametersMessage(error, message) {
|
|
387
|
-
if (message !== 'Invalid parameters.')
|
|
388
|
-
return message;
|
|
389
|
-
const details = error.details;
|
|
390
|
-
const issues = isRecord(details) && Array.isArray(details.issues) ? details.issues : null;
|
|
391
|
-
if (issues === null || issues.length === 0)
|
|
392
|
-
return message;
|
|
393
|
-
const issueMessages = issues
|
|
394
|
-
.filter(isRecord)
|
|
395
|
-
.map((issue) => (typeof issue.message === 'string' ? issue.message.trim() : ''))
|
|
396
|
-
.filter((text) => text.length > 0);
|
|
397
|
-
if (issueMessages.length === 0)
|
|
398
|
-
return message;
|
|
399
|
-
const sizeIssue = issueMessages.find((text) => /UTF-8 bytes|the maximum is|too large|maxLength|maximum/i.test(text));
|
|
400
|
-
return sizeIssue ?? issueMessages.join('; ');
|
|
401
|
-
}
|
|
402
|
-
function isRecord(value) {
|
|
403
|
-
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
404
|
-
}
|
|
405
|
-
//# sourceMappingURL=local-package-graph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-package-graph.js","sourceRoot":"","sources":["../src/local-package-graph.ts"],"names":[],"mappings":"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"}
|