@kodycodes/cli 1.5.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -16
- package/dist/help.js +6 -4
- package/dist/help.js.map +1 -1
- package/dist/local-execute.d.ts +2 -10
- package/dist/local-execute.js +20 -21
- package/dist/local-execute.js.map +1 -1
- package/dist/local-package-graph.d.ts +46 -0
- package/dist/local-package-graph.js +180 -0
- package/dist/local-package-graph.js.map +1 -0
- package/dist/local-runtime-source.d.ts +11 -0
- package/dist/local-runtime-source.js +13 -3
- package/dist/local-runtime-source.js.map +1 -1
- package/package.json +1 -1
- package/skills/kody/SKILL.md +11 -8
package/README.md
CHANGED
|
@@ -64,7 +64,7 @@ Or run via `npx @kodycodes/cli` without a global install.
|
|
|
64
64
|
| `kody status` | Shows CLI login state without printing secrets. |
|
|
65
65
|
| `kody whoami` | Confirms the CLI MCP connection and lists tools. With a scoped API token (and no login), shows token identity via the Open API. |
|
|
66
66
|
| `kody search [query]` | Calls Kody `search` from the CLI (prefer the host MCP tool). Token-only auth uses Open API `GET /v1/search`. |
|
|
67
|
-
| `kody execute` | Calls Kody `execute` from the CLI (`--invoke`, `--code`, `--file`, or stdin via `--file -`). With a scoped API token and no login (or with `--token`), cloud execute goes through CapabilityProxy → `kody.execute` — no `kody login`. Add `--local` to run the module on this machine instead. |
|
|
67
|
+
| `kody execute` | Calls Kody `execute` from the CLI (`--invoke`, `--code`, `--file`, or stdin via `--file -`). With a scoped API token and no login (or with `--token`), cloud execute goes through CapabilityProxy → `kody.execute` — no `kody login`. Add `--local` to run the module (and static `kody:@…` package modules) on this machine instead. |
|
|
68
68
|
|
|
69
69
|
`--json` prints structured MCP results.
|
|
70
70
|
|
|
@@ -104,10 +104,10 @@ npx @kodycodes/cli whoami
|
|
|
104
104
|
with `--params`) on this machine instead of in Kody's cloud sandbox. Local CPU
|
|
105
105
|
is free; every `kody:runtime` call (`kody.*`, `kody.mcp.*`, `workflows.create`)
|
|
106
106
|
is proxied to Kody's CapabilityProxy and metered like a cloud hop. Static
|
|
107
|
-
`kody:@scope/package/export` imports
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
`execute
|
|
107
|
+
`kody:@scope/package/export` imports are **resolved into the local workerd
|
|
108
|
+
bundle** via `POST /v1/local-execute/package-graph` (same Open API token —
|
|
109
|
+
never hosted MCP `execute`, and never a whole-module CapabilityProxy →
|
|
110
|
+
`kody.execute` defer). There is no author-facing `packages.invoke`.
|
|
111
111
|
|
|
112
112
|
```bash
|
|
113
113
|
export KODY_API_TOKEN=… # scoped token minted through the Kody `api` tool
|
|
@@ -130,22 +130,28 @@ npx @kodycodes/cli execute --local --file ./task.js --params '{"to":"me@example.
|
|
|
130
130
|
- **API:** `https://api.kody.codes` by default (`--api-url` or `KODY_API_URL`
|
|
131
131
|
to override). The CLI calls `GET /v1/capability-proxy/session` before
|
|
132
132
|
starting workerd and `POST /v1/capability-proxy/call` with
|
|
133
|
-
`{ path, args, conversationId? }` for each runtime call.
|
|
133
|
+
`{ path, args, conversationId? }` for each runtime call. When the module
|
|
134
|
+
imports `kody:@…`, it also calls `POST /v1/local-execute/package-graph` to
|
|
135
|
+
download stamped package modules for local embedding
|
|
136
|
+
([platform issue](https://github.com/kentcdodds/kody/issues/2808)).
|
|
134
137
|
- **Errors:** an expired/revoked token or an account without the
|
|
135
138
|
`local-execute` flag fails fast with a clear message before any code runs.
|
|
136
139
|
The token is only sent over https (plain http is allowed for localhost).
|
|
140
|
+
Missing package-graph API, unresolved imports, or missing artifacts fail
|
|
141
|
+
clearly — there is **no silent fallback** to cloud `kody.execute`.
|
|
137
142
|
- **Lifetime:** no execution time limit locally; Ctrl-C (or SIGTERM) stops
|
|
138
143
|
workerd and removes the temporary module.
|
|
139
|
-
- **Saved packages:** `import { … } from 'kody:@owner/name/export'`
|
|
140
|
-
`--local
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
do not switch to hosted MCP `execute`. `--invoke` without
|
|
145
|
-
thin passthrough for a single export
|
|
146
|
-
`email`, and `events` stay unbound
|
|
147
|
-
|
|
148
|
-
machine, including
|
|
144
|
+
- **Saved packages:** `import { … } from 'kody:@owner/name/export'` under
|
|
145
|
+
`--local` keeps the user module + package graph in local workerd. Local
|
|
146
|
+
package CPU is not billed as a full cloud execute of the user module;
|
|
147
|
+
per-call CapabilityProxy hops (and whatever the package-graph prep call
|
|
148
|
+
meters once shipped) may still meter. Prefer keeping `--local` in agent
|
|
149
|
+
workflows — do not switch to hosted MCP `execute`. `--invoke` without
|
|
150
|
+
`--local` is the thin passthrough for a single export (still cloud).
|
|
151
|
+
`packageStorage()`, `packageSecrets`, `email`, and `events` stay unbound on
|
|
152
|
+
the ad hoc entry like cloud execute unless the downloaded package modules
|
|
153
|
+
carry stamps. Outbound `fetch` goes straight from this machine, including
|
|
154
|
+
to local-network hosts.
|
|
149
155
|
|
|
150
156
|
## Token storage
|
|
151
157
|
|
package/dist/help.js
CHANGED
|
@@ -32,10 +32,12 @@ Usage:
|
|
|
32
32
|
|
|
33
33
|
--local Run the execute module on this machine (workerd, Linux/macOS).
|
|
34
34
|
Requires Node.js 22 or newer and a token with the local-execute
|
|
35
|
-
scope.
|
|
36
|
-
package
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
scope. Static kody:@… imports are fetched via
|
|
36
|
+
POST /v1/local-execute/package-graph and embedded in local
|
|
37
|
+
workerd (CapabilityProxy only for per-call kody:runtime hops —
|
|
38
|
+
never a whole-module cloud kody.execute defer). Fails clearly
|
|
39
|
+
when that package-graph API is unavailable. Cloud token execute
|
|
40
|
+
(no --local) uses CapabilityProxy → kody.execute for every module.
|
|
39
41
|
|
|
40
42
|
Environment:
|
|
41
43
|
KODY_MCP_URL Override the default MCP URL (${defaultMcpUrl})
|
package/dist/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,MAAM,CAAC,MAAM,KAAK,GAAG,YAAY,kBAAkB,EAAE;;;;;;;;;;;;;;;;;QAiB7C,aAAa,CAAC,aAAa,CAAC;;oCAEA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;cAExC,cAAc
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAEtD,MAAM,CAAC,MAAM,KAAK,GAAG,YAAY,kBAAkB,EAAE;;;;;;;;;;;;;;;;;QAiB7C,aAAa,CAAC,aAAa,CAAC;;oCAEA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;cAExC,cAAc;;;;;;;;;;;;;;;;;;sDAkB0B,aAAa;IAC/D,cAAc;mDACiC,aAAa;;;CAG/D,CAAA"}
|
package/dist/local-execute.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ToolCallResult } from './mcp.js';
|
|
2
|
+
export { hasSavedPackageImports, listSavedPackageImports, localPackageGraphPlatformIssueUrl, } from './local-package-graph.js';
|
|
2
3
|
export type LocalExecuteInput = {
|
|
3
4
|
code: string;
|
|
4
5
|
params?: unknown;
|
|
@@ -16,15 +17,7 @@ type SandboxResponse = {
|
|
|
16
17
|
error?: string;
|
|
17
18
|
logs?: Array<string>;
|
|
18
19
|
};
|
|
19
|
-
|
|
20
|
-
export declare function hasSavedPackageImports(code: string): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Saved-package imports need origin ownership, shares, stamps, and the hosted
|
|
23
|
-
* module graph. Local workerd cannot resolve them offline, so `--local`
|
|
24
|
-
* transparently uses CapabilityProxy → `kody.execute` (Open API / token —
|
|
25
|
-
* never hosted MCP `execute`). There is no author-facing `packages.invoke`.
|
|
26
|
-
*/
|
|
27
|
-
export declare const savedPackageImportLocalFallbackStatus = "Module imports saved packages (kody:@\u2026). Resolving and running via Open API CapabilityProxy \u2192 kody.execute (package graph on origin; still no hosted MCP execute).";
|
|
20
|
+
export declare const savedPackageImportLocalResolveStatus = "Module imports saved packages (kody:@\u2026). Fetching stamped package modules for local workerd bundling (no cloud kody.execute defer).";
|
|
28
21
|
export declare function runLocalExecute(input: LocalExecuteInput): Promise<ToolCallResult>;
|
|
29
22
|
/** Same envelope as cloud execute so `formatToolResult` and `--json` behave identically. */
|
|
30
23
|
export declare function buildLocalExecuteResult(input: {
|
|
@@ -33,4 +26,3 @@ export declare function buildLocalExecuteResult(input: {
|
|
|
33
26
|
endedAt: Date;
|
|
34
27
|
conversationId?: string;
|
|
35
28
|
}): ToolCallResult;
|
|
36
|
-
export {};
|
package/dist/local-execute.js
CHANGED
|
@@ -9,39 +9,28 @@ import { setTimeout as delay } from 'node:timers/promises';
|
|
|
9
9
|
import { assertTokenSafeApiUrl, callCapabilityProxy, openCapabilityProxySession, } from './capability-proxy.js';
|
|
10
10
|
import { assertLocalExecuteNodeEngine } from './node-engine.js';
|
|
11
11
|
import { apiTokenEnvVar } from './defaults.js';
|
|
12
|
+
import { fetchLocalPackageGraph, hasSavedPackageImports, } from './local-package-graph.js';
|
|
12
13
|
import { createLocalEntrySource, createLocalRuntimeModuleSource, createWorkerdConfig, runSecretEnvVar, runSecretHeader, } from './local-runtime-source.js';
|
|
13
14
|
import { redact } from './redact.js';
|
|
14
|
-
import { runRemoteExecuteWithToken } from './remote-execute.js';
|
|
15
15
|
import { ensureWorkerdBinary } from './workerd-binary.js';
|
|
16
|
+
export { hasSavedPackageImports, listSavedPackageImports, localPackageGraphPlatformIssueUrl, } from './local-package-graph.js';
|
|
16
17
|
const workerdStartTimeoutMs = 30_000;
|
|
17
18
|
const workerdExitGraceMs = 1_000;
|
|
18
|
-
|
|
19
|
-
export function hasSavedPackageImports(code) {
|
|
20
|
-
return /(?:\bfrom\s*|\bimport\s*\(?\s*)["']kody:@/.test(code);
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Saved-package imports need origin ownership, shares, stamps, and the hosted
|
|
24
|
-
* module graph. Local workerd cannot resolve them offline, so `--local`
|
|
25
|
-
* transparently uses CapabilityProxy → `kody.execute` (Open API / token —
|
|
26
|
-
* never hosted MCP `execute`). There is no author-facing `packages.invoke`.
|
|
27
|
-
*/
|
|
28
|
-
export const savedPackageImportLocalFallbackStatus = 'Module imports saved packages (kody:@…). Resolving and running via Open API CapabilityProxy → kody.execute (package graph on origin; still no hosted MCP execute).';
|
|
19
|
+
export const savedPackageImportLocalResolveStatus = 'Module imports saved packages (kody:@…). Fetching stamped package modules for local workerd bundling (no cloud kody.execute defer).';
|
|
29
20
|
export async function runLocalExecute(input) {
|
|
30
21
|
assertLocalExecuteNodeEngine();
|
|
31
22
|
assertTokenSafeApiUrl(input.apiUrl);
|
|
23
|
+
const client = { apiUrl: input.apiUrl, token: input.token, fetchFn: input.fetchFn };
|
|
24
|
+
await openCapabilityProxySession(client);
|
|
25
|
+
let packageGraph = { modules: [], imports: [] };
|
|
32
26
|
if (hasSavedPackageImports(input.code)) {
|
|
33
|
-
input.onStatus?.(
|
|
34
|
-
|
|
27
|
+
input.onStatus?.(savedPackageImportLocalResolveStatus);
|
|
28
|
+
packageGraph = await fetchLocalPackageGraph({
|
|
29
|
+
...client,
|
|
35
30
|
code: input.code,
|
|
36
|
-
params: input.params,
|
|
37
31
|
conversationId: input.conversationId,
|
|
38
|
-
token: input.token,
|
|
39
|
-
apiUrl: input.apiUrl,
|
|
40
|
-
fetchFn: input.fetchFn,
|
|
41
32
|
});
|
|
42
33
|
}
|
|
43
|
-
const client = { apiUrl: input.apiUrl, token: input.token, fetchFn: input.fetchFn };
|
|
44
|
-
await openCapabilityProxySession(client);
|
|
45
34
|
const workerdPath = input.workerdPath ??
|
|
46
35
|
(await ensureWorkerdBinary({
|
|
47
36
|
onDownload: (url) => input.onStatus?.(`Downloading workerd for local execute from ${url}…`),
|
|
@@ -77,8 +66,9 @@ export async function runLocalExecute(input) {
|
|
|
77
66
|
await writeFile(join(workDir, files.entry), createLocalEntrySource());
|
|
78
67
|
await writeFile(join(workDir, files.user), input.code);
|
|
79
68
|
await writeFile(join(workDir, files.runtime), createLocalRuntimeModuleSource());
|
|
69
|
+
const packageModules = await writePackageModuleFiles(workDir, packageGraph);
|
|
80
70
|
const configPath = join(workDir, 'config.capnp');
|
|
81
|
-
await writeFile(configPath, createWorkerdConfig({ bridgePort: bridge.port, files }));
|
|
71
|
+
await writeFile(configPath, createWorkerdConfig({ bridgePort: bridge.port, files, packageModules }));
|
|
82
72
|
const env = { ...process.env, [runSecretEnvVar]: runSecret };
|
|
83
73
|
delete env[apiTokenEnvVar];
|
|
84
74
|
child = spawn(workerdPath, ['serve', configPath, '--control-fd=3'], {
|
|
@@ -118,6 +108,15 @@ export async function runLocalExecute(input) {
|
|
|
118
108
|
await rm(workDir, { recursive: true, force: true });
|
|
119
109
|
}
|
|
120
110
|
}
|
|
111
|
+
async function writePackageModuleFiles(workDir, graph) {
|
|
112
|
+
const written = [];
|
|
113
|
+
for (const [index, module] of graph.modules.entries()) {
|
|
114
|
+
const file = `pkg-${index}.js`;
|
|
115
|
+
await writeFile(join(workDir, file), module.esModule);
|
|
116
|
+
written.push({ name: module.name, file });
|
|
117
|
+
}
|
|
118
|
+
return written;
|
|
119
|
+
}
|
|
121
120
|
/** Same envelope as cloud execute so `formatToolResult` and `--json` behave identically. */
|
|
122
121
|
export function buildLocalExecuteResult(input) {
|
|
123
122
|
const { sandbox } = input;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-execute.js","sourceRoot":"","sources":["../src/local-execute.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-execute.js","sourceRoot":"","sources":["../src/local-execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EACN,YAAY,EACZ,OAAO,IAAI,WAAW,GAGtB,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EACN,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,GAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EACN,sBAAsB,EACtB,sBAAsB,GAEtB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACN,sBAAsB,EACtB,8BAA8B,EAC9B,mBAAmB,EACnB,eAAe,EACf,eAAe,GAEf,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EACN,sBAAsB,EACtB,uBAAuB,EACvB,iCAAiC,GACjC,MAAM,0BAA0B,CAAA;AAmBjC,MAAM,qBAAqB,GAAG,MAAM,CAAA;AACpC,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAEhC,MAAM,CAAC,MAAM,oCAAoC,GAChD,qIAAqI,CAAA;AAEtI,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAwB;IAC7D,4BAA4B,EAAE,CAAA;IAC9B,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;IACnF,MAAM,0BAA0B,CAAC,MAAM,CAAC,CAAA;IAExC,IAAI,YAAY,GAAsB,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAA;IAClE,IAAI,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,KAAK,CAAC,QAAQ,EAAE,CAAC,oCAAoC,CAAC,CAAA;QACtD,YAAY,GAAG,MAAM,sBAAsB,CAAC;YAC3C,GAAG,MAAM;YACT,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,cAAc,EAAE,KAAK,CAAC,cAAc;SACpC,CAAC,CAAA;IACH,CAAC;IAED,MAAM,WAAW,GAChB,KAAK,CAAC,WAAW;QACjB,CAAC,MAAM,mBAAmB,CAAC;YAC1B,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,8CAA8C,GAAG,GAAG,CAAC;SAC3F,CAAC,CAAC,CAAA;IAEJ,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC,CAAA;IAC5D,IAAI,KAA+B,CAAA;IACnC,IAAI,MAA0B,CAAA;IAC9B,sFAAsF;IACtF,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAChD,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,EAAE;QAC3C,WAAW,EAAE,CAAA;QACb,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAG,CAAC,OAAwB,EAAE,EAAE,CAC3C,uBAAuB,CAAC;QACvB,OAAO;QACP,SAAS;QACT,OAAO,EAAE,IAAI,IAAI,EAAE;QACnB,cAAc,EAAE,KAAK,CAAC,cAAc;KACpC,CAAC,CAAA;IACH,IAAI,CAAC;QACJ,MAAM,GAAG,MAAM,WAAW,CAAC;YAC1B,SAAS;YACT,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CACzB,mBAAmB,CAAC;gBACnB,GAAG,MAAM;gBACT,GAAG,IAAI;gBACP,cAAc,EAAE,KAAK,CAAC,cAAc;gBACpC,MAAM;aACN,CAAC;SACH,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,CAAA;QAC3E,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC,CAAA;QACrE,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACtD,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,8BAA8B,EAAE,CAAC,CAAA;QAC/E,MAAM,cAAc,GAAG,MAAM,uBAAuB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;QAChD,MAAM,SAAS,CACd,UAAU,EACV,mBAAmB,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CACvE,CAAA;QAED,MAAM,GAAG,GAAsB,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,CAAA;QAC/E,OAAO,GAAG,CAAC,cAAc,CAAC,CAAA;QAC1B,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAC,EAAE;YACnE,GAAG,EAAE,OAAO;YACZ,GAAG;YACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SACzC,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;QACnC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,CAAA;QACvC,IAAI,YAAY,IAAI,OAAO,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,EAAE,KAAK,EAAE,0CAA0C,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QACzF,CAAC;QACD,IAAI,QAA0C,CAAA;QAC9C,IAAI,CAAC;YACJ,QAAQ,GAAG,MAAM,aAAa,CAAC;gBAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,SAAS;gBACT,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;aACpD,CAAC,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;YACxF,IAAI,UAAU,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAA;YACtF,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACrE,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAC5E,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAC9F,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAoB,CAAC,CAAA;IAC5D,CAAC;YAAS,CAAC;QACV,cAAc,EAAE,CAAA;QAChB,WAAW,EAAE,CAAA;QACb,MAAM,MAAM,EAAE,KAAK,EAAE,CAAA;QACrB,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACpD,CAAC;AACF,CAAC;AAED,KAAK,UAAU,uBAAuB,CACrC,OAAe,EACf,KAAwB;IAExB,MAAM,OAAO,GAAoC,EAAE,CAAA;IACnD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,CAAA;QAC9B,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QACrD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,OAAO,CAAA;AACf,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,uBAAuB,CAAC,KAKvC;IACA,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAA;IAC/B,MAAM,IAAI,GAAG;QACZ,GAAG,CAAC,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,EAAE;YACP,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;YACxC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE;YACpC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE;SAC/D;KACD,CAAA;IACD,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO;YACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAC5D,iBAAiB,EAAE,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE;YAC5E,OAAO,EAAE,IAAI;SACb,CAAA;IACF,CAAC;IACD,MAAM,IAAI,GACT,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;QACjC,CAAC,CAAC,OAAO,CAAC,MAAM;QAChB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,WAAW,CAAC,CAAA;IAC5D,MAAM,UAAU,GACf,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ;QACjC,CAAC,CAAC,OAAO,CAAC,MAAM;QAChB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,CAAA;IACnD,OAAO;QACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,iBAAiB,EAAE;YAClB,GAAG,IAAI;YACP,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;YAC5C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI;SACJ;QACD,OAAO,EAAE,KAAK;KACd,CAAA;AACF,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,OAAmB;IAC3C,MAAM,OAAO,GAA0B,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;IACtE,MAAM,OAAO,GAAG,GAAG,EAAE;QACpB,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3D,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,CAAC,MAAsB,EAAE,EAAE;QAC1C,OAAO,EAAE,CAAA;QACT,OAAO,EAAE,CAAA;QACT,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAClC,CAAC,CAAA;IACD,KAAK,MAAM,MAAM,IAAI,OAAO;QAAE,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3D,OAAO,OAAO,CAAA;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAmB;IACxC,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QAC1C,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IACF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;QACzC,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACrC,CAAC,CAAA;IACD,MAAM,MAAM,GAAG,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QAC9C,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACnC,OAAO,CAAC,kBAAkB,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,IAAI,OAAO,CAA4C,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5F,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAoB,CAAA;QACjD,IAAI,QAAQ,GAAG,EAAE,CAAA;QACjB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,qBAAqB,GAAG,IAAI,KAAK,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;QAC/F,CAAC,EAAE,qBAAqB,CAAC,CAAA;QACzB,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACrC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;gBAClC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACnB,YAAY,CAAC,KAAK,CAAC,CAAA;oBACnB,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;gBAClB,CAAC;YACF,CAAC;QACF,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC7B,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;QACF,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;YAC/B,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;AACrC,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACpC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAA;IAC7B,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuD,CAAA;QACpF,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC3F,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,IAAI,CAAA;IACR,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAA;IACZ,CAAC;AACF,CAAC;AAED,iGAAiG;AACjG,SAAS,aAAa,CAAC,KAItB;IACA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,MAAM,OAAO,GAAG,WAAW,CAC1B;YACC,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG;YACT,OAAO,EAAE;gBACR,cAAc,EAAE,kBAAkB;gBAClC,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC/C,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS;aAClC;SACD,EACD,CAAC,QAAQ,EAAE,EAAE;YACZ,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CACtB,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,UAAU,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAC7D,MAAM,CACN,CAAA;QACF,CAAC,CACD,CAAA;QACD,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC,CAAC,CAAA;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,KAM1B;IACA,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAA;IACtC,MAAM,MAAM,GAAW,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QAC/D,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,IAAa,EAAE,EAAE;YAC/C,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAA;YAClE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACnC,CAAC,CAAA;QACD,IACC,OAAO,CAAC,MAAM,KAAK,MAAM;YACzB,OAAO,CAAC,GAAG,KAAK,OAAO;YACvB,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,KAAK,CAAC,SAAS,EACnD,CAAC;YACF,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;YAClC,OAAM;QACP,CAAC;QACD,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;YACrD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;YACzD,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAA;QACtF,CAAC;IACF,CAAC,CAAC,CAAA;IACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IACF,OAAO;QACN,IAAI,EAAG,MAAM,CAAC,OAAO,EAAkB,CAAC,IAAI;QAC5C,KAAK,EAAE,GAAG,EAAE,CACX,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC7B,QAAQ,CAAC,KAAK,EAAE,CAAA;YAChB,MAAM,CAAC,mBAAmB,EAAE,CAAA;YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9B,CAAC,CAAC;KACH,CAAA;AACF,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuC,CAAA;IACrE,IACC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QACxB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,EAC3D,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACnD,CAAC;IACD,OAAO;QACN,IAAI,EAAE,MAAM,CAAC,IAAqB;QAClC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;KACnD,CAAA;AACF,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,MAAuB;IAC9C,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC9C,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type CapabilityProxyClientInput } from './capability-proxy.js';
|
|
2
|
+
/**
|
|
3
|
+
* Open API contract for downloading stamped `kody:@…` modules so
|
|
4
|
+
* `execute --local` can embed them in workerd (no whole-module cloud execute).
|
|
5
|
+
*
|
|
6
|
+
* Platform tracking: https://github.com/kentcdodds/kody/issues/2808
|
|
7
|
+
* TODO(kody#2808): keep this path + response shape aligned with the shipped API.
|
|
8
|
+
*/
|
|
9
|
+
export declare const localPackageGraphPath = "v1/local-execute/package-graph";
|
|
10
|
+
/** Linked from user-facing errors when the package-graph API is missing or blocked. */
|
|
11
|
+
export declare const localPackageGraphPlatformIssueUrl = "https://github.com/kentcdodds/kody/issues/2808";
|
|
12
|
+
export type LocalPackageModule = {
|
|
13
|
+
/** Exact workerd / Worker Loader module name (often a `kody:@…` specifier). */
|
|
14
|
+
name: string;
|
|
15
|
+
/** ESM source embedded in the local workerd config. */
|
|
16
|
+
esModule: string;
|
|
17
|
+
};
|
|
18
|
+
export type LocalPackageGraph = {
|
|
19
|
+
modules: Array<LocalPackageModule>;
|
|
20
|
+
imports: Array<string>;
|
|
21
|
+
};
|
|
22
|
+
/** Unique `kody:@…` specifiers referenced by static or literal-dynamic imports. */
|
|
23
|
+
export declare function listSavedPackageImports(code: string): Array<string>;
|
|
24
|
+
export declare function hasSavedPackageImports(code: string): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Literal `import("kody:@…")` (or `import('kody:@…')`) — static `from` imports
|
|
27
|
+
* are fine; computed `import(specifier)` cannot be bound into workerd ahead of
|
|
28
|
+
* time without a runtime resolver.
|
|
29
|
+
*/
|
|
30
|
+
export declare function hasLiteralDynamicSavedPackageImports(code: string): boolean;
|
|
31
|
+
export declare class LocalPackageGraphError extends Error {
|
|
32
|
+
readonly status: number | null;
|
|
33
|
+
readonly code: string | null;
|
|
34
|
+
constructor(message: string, options?: {
|
|
35
|
+
status?: number | null;
|
|
36
|
+
code?: string | null;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Fetch published, stamped package modules for local workerd embedding.
|
|
41
|
+
* Never falls back to CapabilityProxy → `kody.execute`.
|
|
42
|
+
*/
|
|
43
|
+
export declare function fetchLocalPackageGraph(input: CapabilityProxyClientInput & {
|
|
44
|
+
code: string;
|
|
45
|
+
conversationId?: string;
|
|
46
|
+
}): Promise<LocalPackageGraph>;
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { assertTokenSafeApiUrl, capabilityProxyUrl, } from './capability-proxy.js';
|
|
2
|
+
import { cliName } from './defaults.js';
|
|
3
|
+
import { describeNetworkError } from './network-error.js';
|
|
4
|
+
import { readPackageVersion } from './package-info.js';
|
|
5
|
+
/**
|
|
6
|
+
* Open API contract for downloading stamped `kody:@…` modules so
|
|
7
|
+
* `execute --local` can embed them in workerd (no whole-module cloud execute).
|
|
8
|
+
*
|
|
9
|
+
* Platform tracking: https://github.com/kentcdodds/kody/issues/2808
|
|
10
|
+
* TODO(kody#2808): keep this path + response shape aligned with the shipped API.
|
|
11
|
+
*/
|
|
12
|
+
export const localPackageGraphPath = 'v1/local-execute/package-graph';
|
|
13
|
+
/** Linked from user-facing errors when the package-graph API is missing or blocked. */
|
|
14
|
+
export const localPackageGraphPlatformIssueUrl = 'https://github.com/kentcdodds/kody/issues/2808';
|
|
15
|
+
const staticImportPattern = /(?:\bfrom\s+|\bimport\s*\(\s*|\bimport\s+)["'](kody:@[^"']+)["']/g;
|
|
16
|
+
/** Unique `kody:@…` specifiers referenced by static or literal-dynamic imports. */
|
|
17
|
+
export function listSavedPackageImports(code) {
|
|
18
|
+
const found = new Set();
|
|
19
|
+
for (const match of code.matchAll(staticImportPattern)) {
|
|
20
|
+
const specifier = match[1];
|
|
21
|
+
if (specifier)
|
|
22
|
+
found.add(specifier);
|
|
23
|
+
}
|
|
24
|
+
return [...found];
|
|
25
|
+
}
|
|
26
|
+
export function hasSavedPackageImports(code) {
|
|
27
|
+
return listSavedPackageImports(code).length > 0;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Literal `import("kody:@…")` (or `import('kody:@…')`) — static `from` imports
|
|
31
|
+
* are fine; computed `import(specifier)` cannot be bound into workerd ahead of
|
|
32
|
+
* time without a runtime resolver.
|
|
33
|
+
*/
|
|
34
|
+
export function hasLiteralDynamicSavedPackageImports(code) {
|
|
35
|
+
return /\bimport\s*\(\s*["']kody:@[^"']+["']\s*\)/.test(code);
|
|
36
|
+
}
|
|
37
|
+
export class LocalPackageGraphError extends Error {
|
|
38
|
+
status;
|
|
39
|
+
code;
|
|
40
|
+
constructor(message, options = {}) {
|
|
41
|
+
super(message);
|
|
42
|
+
this.name = 'LocalPackageGraphError';
|
|
43
|
+
this.status = options.status ?? null;
|
|
44
|
+
this.code = options.code ?? null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Fetch published, stamped package modules for local workerd embedding.
|
|
49
|
+
* Never falls back to CapabilityProxy → `kody.execute`.
|
|
50
|
+
*/
|
|
51
|
+
export async function fetchLocalPackageGraph(input) {
|
|
52
|
+
assertTokenSafeApiUrl(input.apiUrl);
|
|
53
|
+
const imports = listSavedPackageImports(input.code);
|
|
54
|
+
if (imports.length === 0) {
|
|
55
|
+
return { modules: [], imports: [] };
|
|
56
|
+
}
|
|
57
|
+
if (hasLiteralDynamicSavedPackageImports(input.code)) {
|
|
58
|
+
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' });
|
|
59
|
+
}
|
|
60
|
+
const url = capabilityProxyUrl(input.apiUrl, localPackageGraphPath);
|
|
61
|
+
const fetchFn = input.fetchFn ?? fetch;
|
|
62
|
+
let response;
|
|
63
|
+
try {
|
|
64
|
+
response = await fetchFn(url, {
|
|
65
|
+
method: 'POST',
|
|
66
|
+
signal: input.signal,
|
|
67
|
+
headers: {
|
|
68
|
+
accept: 'application/json',
|
|
69
|
+
'content-type': 'application/json',
|
|
70
|
+
authorization: `Bearer ${input.token}`,
|
|
71
|
+
'user-agent': `${cliName}/${readPackageVersion()}`,
|
|
72
|
+
},
|
|
73
|
+
body: JSON.stringify({
|
|
74
|
+
code: input.code,
|
|
75
|
+
imports,
|
|
76
|
+
...(input.conversationId !== undefined
|
|
77
|
+
? { conversationId: input.conversationId }
|
|
78
|
+
: {}),
|
|
79
|
+
}),
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
const reason = describeNetworkError(error);
|
|
84
|
+
throw new LocalPackageGraphError(`Could not reach the Kody API at ${url.origin} (${reason}). Check --api-url / KODY_API_URL and your network.`);
|
|
85
|
+
}
|
|
86
|
+
const body = await readJson(response);
|
|
87
|
+
if (!response.ok) {
|
|
88
|
+
throw describePackageGraphFailure(response.status, body, url, imports);
|
|
89
|
+
}
|
|
90
|
+
const graph = parsePackageGraphBody(body, imports);
|
|
91
|
+
const missing = imports.filter((specifier) => !graph.modules.some((module) => module.name === specifier));
|
|
92
|
+
if (missing.length > 0) {
|
|
93
|
+
throw new LocalPackageGraphError(`Local package graph response omitted modules for: ${missing.join(', ')}. ${localPackageGraphPlatformIssueUrl}`, { code: 'incomplete_package_graph' });
|
|
94
|
+
}
|
|
95
|
+
return graph;
|
|
96
|
+
}
|
|
97
|
+
function parsePackageGraphBody(body, imports) {
|
|
98
|
+
if (!isRecord(body) || !Array.isArray(body.modules)) {
|
|
99
|
+
throw new LocalPackageGraphError(`Kody package-graph response was missing a modules array. ${localPackageGraphPlatformIssueUrl}`, { code: 'invalid_package_graph' });
|
|
100
|
+
}
|
|
101
|
+
const modules = [];
|
|
102
|
+
for (const entry of body.modules) {
|
|
103
|
+
if (!isRecord(entry) || typeof entry.name !== 'string' || !entry.name.trim()) {
|
|
104
|
+
throw new LocalPackageGraphError(`Kody package-graph response included a module without a name. ${localPackageGraphPlatformIssueUrl}`, { code: 'invalid_package_graph' });
|
|
105
|
+
}
|
|
106
|
+
const esModule = typeof entry.esModule === 'string'
|
|
107
|
+
? entry.esModule
|
|
108
|
+
: typeof entry.source === 'string'
|
|
109
|
+
? entry.source
|
|
110
|
+
: typeof entry.js === 'string'
|
|
111
|
+
? entry.js
|
|
112
|
+
: null;
|
|
113
|
+
if (esModule === null) {
|
|
114
|
+
throw new LocalPackageGraphError(`Kody package-graph module ${JSON.stringify(entry.name)} was missing esModule source. ${localPackageGraphPlatformIssueUrl}`, { code: 'invalid_package_graph' });
|
|
115
|
+
}
|
|
116
|
+
modules.push({ name: entry.name, esModule });
|
|
117
|
+
}
|
|
118
|
+
const reportedImports = Array.isArray(body.imports)
|
|
119
|
+
? body.imports.filter((value) => typeof value === 'string')
|
|
120
|
+
: imports;
|
|
121
|
+
return { modules, imports: reportedImports };
|
|
122
|
+
}
|
|
123
|
+
function describePackageGraphFailure(status, body, url, imports) {
|
|
124
|
+
const failure = readErrorBody(body);
|
|
125
|
+
const code = failure?.code ?? null;
|
|
126
|
+
const detail = failure?.message ? ` Server said: ${failure.message}` : '';
|
|
127
|
+
const importList = imports.join(', ');
|
|
128
|
+
if (status === 404) {
|
|
129
|
+
return new LocalPackageGraphError(`Local execute cannot resolve saved package imports (${importList}): Kody has no package-graph endpoint at ${url.pathname} yet. ` +
|
|
130
|
+
`The CLI will not silently fall back to cloud kody.execute for --local. ` +
|
|
131
|
+
`Platform work: ${localPackageGraphPlatformIssueUrl}.${detail}`, { status, code: code ?? 'not_found' });
|
|
132
|
+
}
|
|
133
|
+
if (status === 401) {
|
|
134
|
+
return new LocalPackageGraphError(`Kody rejected the API token while fetching the local package graph.${detail}`, { status, code });
|
|
135
|
+
}
|
|
136
|
+
if (code === 'feature_disabled') {
|
|
137
|
+
return new LocalPackageGraphError(`Kody returned feature_disabled while fetching the local package graph.${detail}`, { status, code });
|
|
138
|
+
}
|
|
139
|
+
if (code === 'insufficient_scope') {
|
|
140
|
+
return new LocalPackageGraphError(`The API token is missing a scope required to fetch the local package graph.${detail}`, { status, code });
|
|
141
|
+
}
|
|
142
|
+
if (code === 'package_import_unresolved' ||
|
|
143
|
+
code === 'not_found' ||
|
|
144
|
+
status === 400 ||
|
|
145
|
+
status === 403 ||
|
|
146
|
+
status === 422) {
|
|
147
|
+
return new LocalPackageGraphError(failure?.message ??
|
|
148
|
+
`Could not resolve saved package import(s) for local bundling (${importList}).${detail}`, { status, code });
|
|
149
|
+
}
|
|
150
|
+
return new LocalPackageGraphError(failure?.message ??
|
|
151
|
+
`Kody package-graph request failed with HTTP ${status} (${url.pathname}).${detail}`, { status, code });
|
|
152
|
+
}
|
|
153
|
+
async function readJson(response) {
|
|
154
|
+
const text = await response.text();
|
|
155
|
+
if (!text)
|
|
156
|
+
return null;
|
|
157
|
+
try {
|
|
158
|
+
return JSON.parse(text);
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
return text;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
function readErrorBody(body) {
|
|
165
|
+
if (!isRecord(body) || body.error == null)
|
|
166
|
+
return null;
|
|
167
|
+
const { error } = body;
|
|
168
|
+
if (typeof error === 'string')
|
|
169
|
+
return { code: null, message: error };
|
|
170
|
+
if (isRecord(error)) {
|
|
171
|
+
const code = typeof error.code === 'string' ? error.code : null;
|
|
172
|
+
const message = typeof error.message === 'string' ? error.message : (code ?? JSON.stringify(error));
|
|
173
|
+
return { code, message };
|
|
174
|
+
}
|
|
175
|
+
return { code: null, message: String(error) };
|
|
176
|
+
}
|
|
177
|
+
function isRecord(value) {
|
|
178
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=local-package-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-package-graph.js","sourceRoot":"","sources":["../src/local-package-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,11 +16,21 @@ export declare const runSecretHeader = "x-kody-run-secret";
|
|
|
16
16
|
export declare const runSecretEnvVar = "KODY_RUN_SECRET";
|
|
17
17
|
export declare function createLocalRuntimeModuleSource(): string;
|
|
18
18
|
export declare function createLocalEntrySource(): string;
|
|
19
|
+
export type WorkerdPackageModuleFile = {
|
|
20
|
+
/** Exact module name as imported from user / package code (e.g. `kody:@scope/pkg/export`). */
|
|
21
|
+
name: string;
|
|
22
|
+
/** Path relative to the workerd config file. */
|
|
23
|
+
file: string;
|
|
24
|
+
};
|
|
19
25
|
/**
|
|
20
26
|
* workerd text config. `files` are embedded relative to the config file.
|
|
21
27
|
* Outbound fetch reaches public and private networks: local execute runs as
|
|
22
28
|
* the user on their own machine, and reaching local services is part of why
|
|
23
29
|
* one would run locally.
|
|
30
|
+
*
|
|
31
|
+
* Optional `packageModules` are stamped `kody:@…` (and nested) modules from
|
|
32
|
+
* POST /v1/local-execute/package-graph — embedded alongside the user module so
|
|
33
|
+
* imports resolve inside local workerd without a remote `kody.execute`.
|
|
24
34
|
*/
|
|
25
35
|
export declare function createWorkerdConfig(input: {
|
|
26
36
|
bridgePort: number;
|
|
@@ -29,4 +39,5 @@ export declare function createWorkerdConfig(input: {
|
|
|
29
39
|
user: string;
|
|
30
40
|
runtime: string;
|
|
31
41
|
};
|
|
42
|
+
packageModules?: Array<WorkerdPackageModuleFile>;
|
|
32
43
|
}): string;
|
|
@@ -53,8 +53,10 @@ export const workflows = {
|
|
|
53
53
|
|
|
54
54
|
// Always null: there is no author-facing packages.invoke. Use a static
|
|
55
55
|
// kody:@scope/package/export import when the name is known, or import(specifier)
|
|
56
|
-
// when the name is data. Under --local,
|
|
57
|
-
//
|
|
56
|
+
// when the name is data. Under --local, static kody:@ imports are resolved into
|
|
57
|
+
// the workerd module list via POST /v1/local-execute/package-graph (see
|
|
58
|
+
// local-package-graph.ts / kentcdodds/kody#2808) — never a whole-module
|
|
59
|
+
// CapabilityProxy → kody.execute hop.
|
|
58
60
|
export const packages = null;
|
|
59
61
|
|
|
60
62
|
export function packageStorage() {
|
|
@@ -161,9 +163,17 @@ export default {
|
|
|
161
163
|
* Outbound fetch reaches public and private networks: local execute runs as
|
|
162
164
|
* the user on their own machine, and reaching local services is part of why
|
|
163
165
|
* one would run locally.
|
|
166
|
+
*
|
|
167
|
+
* Optional `packageModules` are stamped `kody:@…` (and nested) modules from
|
|
168
|
+
* POST /v1/local-execute/package-graph — embedded alongside the user module so
|
|
169
|
+
* imports resolve inside local workerd without a remote `kody.execute`.
|
|
164
170
|
*/
|
|
165
171
|
export function createWorkerdConfig(input) {
|
|
166
172
|
const flags = localExecuteCompatibilityFlags.map((flag) => JSON.stringify(flag)).join(', ');
|
|
173
|
+
const packageEntries = (input.packageModules ?? [])
|
|
174
|
+
.map((module) => ` (name = ${JSON.stringify(module.name)}, esModule = embed ${JSON.stringify(module.file)}),`)
|
|
175
|
+
.join('\n');
|
|
176
|
+
const packageBlock = packageEntries ? `\n${packageEntries}` : '';
|
|
167
177
|
return `using Workerd = import "/workerd/workerd.capnp";
|
|
168
178
|
|
|
169
179
|
const config :Workerd.Config = (
|
|
@@ -179,7 +189,7 @@ const kodyWorker :Workerd.Worker = (
|
|
|
179
189
|
modules = [
|
|
180
190
|
(name = ${JSON.stringify(localWorkerModuleNames.entry)}, esModule = embed ${JSON.stringify(input.files.entry)}),
|
|
181
191
|
(name = ${JSON.stringify(localWorkerModuleNames.user)}, esModule = embed ${JSON.stringify(input.files.user)}),
|
|
182
|
-
(name = ${JSON.stringify(localWorkerModuleNames.runtime)}, esModule = embed ${JSON.stringify(input.files.runtime)})
|
|
192
|
+
(name = ${JSON.stringify(localWorkerModuleNames.runtime)}, esModule = embed ${JSON.stringify(input.files.runtime)}),${packageBlock}
|
|
183
193
|
],
|
|
184
194
|
compatibilityDate = ${JSON.stringify(localExecuteCompatibilityDate)},
|
|
185
195
|
compatibilityFlags = [${flags}],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-runtime-source.js","sourceRoot":"","sources":["../src/local-runtime-source.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAA;AACzD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,eAAe,CAAU,CAAA;AAExE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACrC,KAAK,EAAE,uBAAuB;IAC9B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,cAAc;CACd,CAAA;AAEV,qFAAqF;AACrF,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAA;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAEhD,MAAM,UAAU,8BAA8B;IAC7C,OAAO
|
|
1
|
+
{"version":3,"file":"local-runtime-source.js","sourceRoot":"","sources":["../src/local-runtime-source.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAA;AACzD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,eAAe,CAAU,CAAA;AAExE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACrC,KAAK,EAAE,uBAAuB;IAC9B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,cAAc;CACd,CAAA;AAEV,qFAAqF;AACrF,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAA;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAA;AAEhD,MAAM,UAAU,8BAA8B;IAC7C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFP,CAAC,SAAS,EAAE,CAAA;AACb,CAAC;AAED,MAAM,UAAU,sBAAsB;IACrC,OAAO;2CACmC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC;;gCAEzD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;;;;;;;;;uBASxC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;iCA2BL,IAAI,CAAC,SAAS,CAAC,KAAK,sBAAsB,CAAC,IAAI,EAAE,CAAC;;;;;;;;;;;;;;;;CAgBlF,CAAC,SAAS,EAAE,CAAA;AACb,CAAC;AASD;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAInC;IACA,MAAM,KAAK,GAAG,8BAA8B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3F,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;SACjD,GAAG,CACH,CAAC,MAAM,EAAE,EAAE,CACV,eAAe,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAChG;SACA,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAChE,OAAO;;;;;8DAKsD,KAAK,CAAC,UAAU;;;;;;;;cAQhE,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;cACnG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;cACjG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,YAAY;;wBAE9G,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC;0BAC3C,KAAK;;;;cAIjB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;;;CAGlG,CAAA;AACD,CAAC"}
|
package/package.json
CHANGED
package/skills/kody/SKILL.md
CHANGED
|
@@ -74,14 +74,17 @@ To run execute with a scoped API token and **no** `kody login`, set
|
|
|
74
74
|
`KODY_API_TOKEN` (or `--token`). Cloud execute (no `--local`) goes through
|
|
75
75
|
CapabilityProxy → `kody.execute`. Add `--local` to run the module on this
|
|
76
76
|
machine instead (Node.js 22 or newer; older Node fails before workerd starts).
|
|
77
|
-
Modules with `kody:@…` imports keep `--local
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
77
|
+
Modules with static `kody:@…` imports keep `--local`: the CLI fetches stamped
|
|
78
|
+
package modules via `POST /v1/local-execute/package-graph` and embeds them in
|
|
79
|
+
local workerd (CapabilityProxy only for per-call `kody:runtime` hops — not a
|
|
80
|
+
whole-module cloud defer). If that package-graph API is missing, `--local`
|
|
81
|
+
fails clearly rather than silently billing a remote execute. Mint the token
|
|
82
|
+
with the MCP `api` tool `tokenCreate` — include `local-execute` plus the
|
|
83
|
+
capability scopes the module calls — and pass `--token` or `KODY_API_TOKEN`.
|
|
84
|
+
If neither login nor a token is set, the CLI error says that.
|
|
85
|
+
`insufficient_scope` means the token is missing a scope; `feature_disabled`
|
|
86
|
+
means the account `local-execute` flag is off. Never read MCP OAuth tokens
|
|
87
|
+
from the host.
|
|
85
88
|
|
|
86
89
|
```bash
|
|
87
90
|
KODY_API_TOKEN=… npx @kodycodes/cli execute --file ./task.js --params '{"q":"email"}'
|