@kodycodes/cli 1.17.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +51 -5
  2. package/dist/auth.d.ts +30 -4
  3. package/dist/auth.js +94 -13
  4. package/dist/auth.js.map +1 -1
  5. package/dist/capability-proxy.d.ts +7 -0
  6. package/dist/capability-proxy.js +8 -2
  7. package/dist/capability-proxy.js.map +1 -1
  8. package/dist/cli.d.ts +9 -1
  9. package/dist/cli.js +426 -100
  10. package/dist/cli.js.map +1 -1
  11. package/dist/dev-command.d.ts +93 -0
  12. package/dist/dev-command.js +369 -0
  13. package/dist/dev-command.js.map +1 -0
  14. package/dist/discover-org.d.ts +10 -0
  15. package/dist/discover-org.js +62 -0
  16. package/dist/discover-org.js.map +1 -0
  17. package/dist/help.d.ts +13 -1
  18. package/dist/help.js +112 -15
  19. package/dist/help.js.map +1 -1
  20. package/dist/local-execute-auth.d.ts +1 -0
  21. package/dist/local-execute-auth.js +7 -1
  22. package/dist/local-execute-auth.js.map +1 -1
  23. package/dist/local-execute.d.ts +2 -0
  24. package/dist/local-execute.js +6 -1
  25. package/dist/local-execute.js.map +1 -1
  26. package/dist/local-package-graph.js +2 -0
  27. package/dist/local-package-graph.js.map +1 -1
  28. package/dist/local-package-run.d.ts +28 -0
  29. package/dist/local-package-run.js +299 -0
  30. package/dist/local-package-run.js.map +1 -0
  31. package/dist/mcp.d.ts +4 -0
  32. package/dist/mcp.js +3 -0
  33. package/dist/mcp.js.map +1 -1
  34. package/dist/mock/mock-server.d.ts +42 -0
  35. package/dist/mock/mock-server.js +373 -0
  36. package/dist/mock/mock-server.js.map +1 -0
  37. package/dist/mock/mock-storage.d.ts +46 -0
  38. package/dist/mock/mock-storage.js +96 -0
  39. package/dist/mock/mock-storage.js.map +1 -0
  40. package/dist/mock/mock-supported.d.ts +18 -0
  41. package/dist/mock/mock-supported.js +43 -0
  42. package/dist/mock/mock-supported.js.map +1 -0
  43. package/dist/oauth-provider.d.ts +1 -2
  44. package/dist/oauth-provider.js +2 -8
  45. package/dist/oauth-provider.js.map +1 -1
  46. package/dist/open-api-client.d.ts +5 -0
  47. package/dist/open-api-client.js +4 -0
  48. package/dist/open-api-client.js.map +1 -1
  49. package/dist/org-resolve.d.ts +9 -0
  50. package/dist/org-resolve.js +16 -0
  51. package/dist/org-resolve.js.map +1 -0
  52. package/dist/org-slug.d.ts +4 -0
  53. package/dist/org-slug.js +11 -0
  54. package/dist/org-slug.js.map +1 -0
  55. package/dist/org.d.ts +22 -0
  56. package/dist/org.js +100 -0
  57. package/dist/org.js.map +1 -0
  58. package/dist/package-app-dev.d.ts +43 -0
  59. package/dist/package-app-dev.js +356 -0
  60. package/dist/package-app-dev.js.map +1 -0
  61. package/dist/package-local-runtime-source.d.ts +35 -0
  62. package/dist/package-local-runtime-source.js +317 -0
  63. package/dist/package-local-runtime-source.js.map +1 -0
  64. package/dist/package-manifest.d.ts +43 -0
  65. package/dist/package-manifest.js +264 -0
  66. package/dist/package-manifest.js.map +1 -0
  67. package/dist/remote-execute.d.ts +2 -0
  68. package/dist/remote-execute.js +6 -1
  69. package/dist/remote-execute.js.map +1 -1
  70. package/dist/store.d.ts +93 -3
  71. package/dist/store.js +454 -23
  72. package/dist/store.js.map +1 -1
  73. package/dist/structured-error.d.ts +28 -0
  74. package/dist/structured-error.js +57 -0
  75. package/dist/structured-error.js.map +1 -0
  76. package/dist/target.d.ts +25 -0
  77. package/dist/target.js +45 -0
  78. package/dist/target.js.map +1 -0
  79. package/package.json +1 -1
@@ -0,0 +1,299 @@
1
+ /**
2
+ * Run one unpublished package module (export / job / webhook / subscription)
3
+ * in local workerd against `--target prod|mock`.
4
+ */
5
+ import { spawn } from 'node:child_process';
6
+ import { randomBytes } from 'node:crypto';
7
+ import { rmSync } from 'node:fs';
8
+ import { mkdtemp, rm, writeFile } from 'node:fs/promises';
9
+ import { createServer, request as httpRequest, } from 'node:http';
10
+ import { tmpdir } from 'node:os';
11
+ import { join } from 'node:path';
12
+ import { setTimeout as delay } from 'node:timers/promises';
13
+ import { assertTokenSafeApiUrl, callCapabilityProxy, } from './capability-proxy.js';
14
+ import { apiTokenEnvVar } from './defaults.js';
15
+ import { bundleLocalUserModule } from './local-bundle.js';
16
+ import { createWorkerdConfig, } from './local-runtime-source.js';
17
+ import { createPackageLocalRuntimeModuleSource, createPackageModuleEntrySource, localWorkerModuleNames, runSecretEnvVar, runSecretHeader, } from './package-local-runtime-source.js';
18
+ import { redact } from './redact.js';
19
+ import { ensureWorkerdBinary } from './workerd-binary.js';
20
+ const workerdStartTimeoutMs = 30_000;
21
+ const workerdExitGraceMs = 1_000;
22
+ export async function runLocalPackageModule(input) {
23
+ assertTokenSafeApiUrl(input.apiUrl);
24
+ input.onStatus?.(`Bundling ${input.modulePath}…`);
25
+ const code = await bundleLocalUserModule(input.modulePath);
26
+ const client = { apiUrl: input.apiUrl, token: input.token, fetchFn: input.fetchFn };
27
+ const workerdPath = input.workerdPath ??
28
+ (await ensureWorkerdBinary({
29
+ onDownload: (url) => input.onStatus?.(`Downloading workerd from ${url}…`),
30
+ }));
31
+ const runSecret = randomBytes(32).toString('hex');
32
+ const workDir = await mkdtemp(join(tmpdir(), 'kody-pkg-'));
33
+ let child;
34
+ let bridge;
35
+ const stopWorkerd = () => child?.kill('SIGKILL');
36
+ const releaseSignals = cleanupOnSignal(() => {
37
+ stopWorkerd();
38
+ rmSync(workDir, { recursive: true, force: true });
39
+ });
40
+ const startedAt = new Date();
41
+ const finish = (sandbox) => {
42
+ const endedAt = new Date();
43
+ const logs = sandbox.logs ?? [];
44
+ const base = {
45
+ timing: {
46
+ startedAt: startedAt.toISOString(),
47
+ endedAt: endedAt.toISOString(),
48
+ durationMs: endedAt.getTime() - startedAt.getTime(),
49
+ },
50
+ target: input.target,
51
+ };
52
+ if (typeof sandbox.error === 'string') {
53
+ return {
54
+ content: [{ type: 'text', text: `Error: ${sandbox.error}` }],
55
+ structuredContent: { ...base, returnedBytes: 0, error: sandbox.error, logs },
56
+ isError: true,
57
+ };
58
+ }
59
+ const text = typeof sandbox.result === 'string'
60
+ ? sandbox.result
61
+ : (JSON.stringify(sandbox.result, null, 2) ?? 'undefined');
62
+ const serialized = typeof sandbox.result === 'string'
63
+ ? sandbox.result
64
+ : (JSON.stringify(sandbox.result) ?? 'undefined');
65
+ return {
66
+ content: [{ type: 'text', text }],
67
+ structuredContent: {
68
+ ...base,
69
+ returnedBytes: Buffer.byteLength(serialized),
70
+ result: sandbox.result,
71
+ logs,
72
+ },
73
+ isError: false,
74
+ };
75
+ };
76
+ try {
77
+ bridge = await startBridge({
78
+ runSecret,
79
+ forward: (call, signal) => callCapabilityProxy({
80
+ ...client,
81
+ ...call,
82
+ signal,
83
+ }),
84
+ });
85
+ const files = { entry: 'entry.js', user: 'main.js', runtime: 'runtime.js' };
86
+ await writeFile(join(workDir, files.entry), createPackageModuleEntrySource());
87
+ await writeFile(join(workDir, files.user), code);
88
+ await writeFile(join(workDir, files.runtime), createPackageLocalRuntimeModuleSource({
89
+ packageContext: input.packageContext,
90
+ mockStorage: input.target === 'mock',
91
+ }));
92
+ const packageModules = [];
93
+ const configPath = join(workDir, 'config.capnp');
94
+ await writeFile(configPath, createWorkerdConfig({
95
+ bridgePort: bridge.port,
96
+ files,
97
+ packageModules,
98
+ allowPrivateNetwork: input.allowPrivateNetwork,
99
+ }));
100
+ const env = { ...process.env, [runSecretEnvVar]: runSecret };
101
+ delete env[apiTokenEnvVar];
102
+ child = spawn(workerdPath, ['serve', configPath, '--control-fd=3'], {
103
+ cwd: workDir,
104
+ env,
105
+ stdio: ['ignore', 'pipe', 'pipe', 'pipe'],
106
+ });
107
+ const workerd = watchWorkerd(child);
108
+ const started = await workerd.listening;
109
+ if ('exitDetail' in started) {
110
+ return finish({
111
+ error: `Local package run could not load the module${started.exitDetail}`,
112
+ });
113
+ }
114
+ let response;
115
+ try {
116
+ response = await postToWorkerd({
117
+ port: started.port,
118
+ runSecret,
119
+ body: JSON.stringify({ params: input.params ?? {} }),
120
+ });
121
+ }
122
+ catch (error) {
123
+ const exitDetail = await Promise.race([workerd.exited, delay(workerdExitGraceMs, null)]);
124
+ if (exitDetail !== null)
125
+ throw new Error(`workerd exited during the run${exitDetail}`);
126
+ const reason = error instanceof Error ? error.message : String(error);
127
+ throw new Error(`Local package run failed (${reason}).${workerd.stderr()}`);
128
+ }
129
+ if (response.status !== 200) {
130
+ throw new Error(`Local package runtime returned HTTP ${response.status}.${workerd.stderr()}`);
131
+ }
132
+ return finish(JSON.parse(response.body));
133
+ }
134
+ finally {
135
+ releaseSignals();
136
+ stopWorkerd();
137
+ await bridge?.close();
138
+ await rm(workDir, { recursive: true, force: true });
139
+ }
140
+ }
141
+ /** Build the packageContext used for local unpublished package runs. */
142
+ export function buildLocalPackageContext(input) {
143
+ const appBasePath = input.appBasePath ?? '';
144
+ return {
145
+ packageId: input.packageId ?? `local:${input.kodyId}`,
146
+ kodyId: input.kodyId,
147
+ sourceId: `local:${input.kodyId}`,
148
+ publishedCommit: null,
149
+ appBasePath,
150
+ hostedUrl: input.hostedUrl.replace(/\/+$/, ''),
151
+ assetBasePath: appBasePath ? `${appBasePath}/_assets` : '/_assets',
152
+ clientModuleUrl: input.clientModuleUrl ?? null,
153
+ };
154
+ }
155
+ function cleanupOnSignal(cleanup) {
156
+ const signals = ['SIGINT', 'SIGTERM', 'SIGHUP'];
157
+ const release = () => {
158
+ for (const signal of signals)
159
+ process.off(signal, handler);
160
+ };
161
+ const handler = (signal) => {
162
+ release();
163
+ cleanup();
164
+ process.kill(process.pid, signal);
165
+ };
166
+ for (const signal of signals)
167
+ process.once(signal, handler);
168
+ return release;
169
+ }
170
+ function watchWorkerd(child) {
171
+ let stderrText = '';
172
+ child.stderr?.on('data', (chunk) => {
173
+ stderrText += chunk.toString('utf8');
174
+ });
175
+ child.stdout?.resume();
176
+ const stderr = () => {
177
+ const trimmed = redact(stderrText.trim());
178
+ return trimmed ? `\n${trimmed}` : '';
179
+ };
180
+ const exited = new Promise((resolve) => {
181
+ child.once('exit', (code, signal) => {
182
+ resolve(` (workerd exit ${signal ?? code})${stderr()}`);
183
+ });
184
+ });
185
+ const listening = new Promise((resolve, reject) => {
186
+ const control = child.stdio[3];
187
+ let buffered = '';
188
+ const timer = setTimeout(() => {
189
+ reject(new Error(`workerd did not start within ${workerdStartTimeoutMs / 1000}s.${stderr()}`));
190
+ }, workerdStartTimeoutMs);
191
+ control?.on('data', (chunk) => {
192
+ buffered += chunk.toString('utf8');
193
+ for (const line of buffered.split('\n')) {
194
+ const port = parseListenPort(line);
195
+ if (port !== null) {
196
+ clearTimeout(timer);
197
+ resolve({ port });
198
+ }
199
+ }
200
+ });
201
+ child.once('error', (error) => {
202
+ clearTimeout(timer);
203
+ reject(new Error(`Could not start workerd: ${error.message}`));
204
+ });
205
+ void exited.then((exitDetail) => {
206
+ clearTimeout(timer);
207
+ resolve({ exitDetail });
208
+ });
209
+ });
210
+ return { listening, exited, stderr };
211
+ }
212
+ function parseListenPort(line) {
213
+ if (!line.trim())
214
+ return null;
215
+ try {
216
+ const event = JSON.parse(line);
217
+ return event.event === 'listen' && event.socket === 'http' && typeof event.port === 'number'
218
+ ? event.port
219
+ : null;
220
+ }
221
+ catch {
222
+ return null;
223
+ }
224
+ }
225
+ function postToWorkerd(input) {
226
+ return new Promise((resolve, reject) => {
227
+ const request = httpRequest({
228
+ host: '127.0.0.1',
229
+ port: input.port,
230
+ method: 'POST',
231
+ path: '/',
232
+ headers: {
233
+ 'content-type': 'application/json',
234
+ 'content-length': Buffer.byteLength(input.body),
235
+ [runSecretHeader]: input.runSecret,
236
+ },
237
+ }, (response) => {
238
+ readBody(response).then((body) => resolve({ status: response.statusCode ?? 0, body }), reject);
239
+ });
240
+ request.on('error', reject);
241
+ request.end(input.body);
242
+ });
243
+ }
244
+ async function startBridge(input) {
245
+ const inFlight = new AbortController();
246
+ const server = createServer(async (request, response) => {
247
+ const reply = (status, body) => {
248
+ response.writeHead(status, { 'content-type': 'application/json' });
249
+ response.end(JSON.stringify(body));
250
+ };
251
+ if (request.method !== 'POST' ||
252
+ request.url !== '/call' ||
253
+ request.headers[runSecretHeader] !== input.runSecret) {
254
+ reply(403, { error: 'Forbidden' });
255
+ return;
256
+ }
257
+ try {
258
+ const call = parseBridgeCall(await readBody(request));
259
+ const result = await input.forward(call, inFlight.signal);
260
+ reply(200, { result });
261
+ }
262
+ catch (error) {
263
+ reply(200, { error: redact(error instanceof Error ? error.message : String(error)) });
264
+ }
265
+ });
266
+ await new Promise((resolve, reject) => {
267
+ server.once('error', reject);
268
+ server.listen(0, '127.0.0.1', () => resolve());
269
+ });
270
+ return {
271
+ port: server.address().port,
272
+ close: () => new Promise((resolve) => {
273
+ inFlight.abort();
274
+ server.closeAllConnections();
275
+ server.close(() => resolve());
276
+ }),
277
+ };
278
+ }
279
+ function parseBridgeCall(body) {
280
+ const parsed = JSON.parse(body);
281
+ if (!Array.isArray(parsed.path) ||
282
+ parsed.path.length === 0 ||
283
+ !parsed.path.every((segment) => typeof segment === 'string')) {
284
+ throw new Error('Invalid kody:runtime call path.');
285
+ }
286
+ return {
287
+ path: parsed.path,
288
+ args: Array.isArray(parsed.args) ? parsed.args : [],
289
+ };
290
+ }
291
+ async function readBody(stream) {
292
+ const chunks = [];
293
+ for await (const chunk of stream) {
294
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
295
+ }
296
+ return Buffer.concat(chunks).toString('utf8');
297
+ }
298
+ void localWorkerModuleNames;
299
+ //# sourceMappingURL=local-package-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-package-run.js","sourceRoot":"","sources":["../src/local-package-run.ts"],"names":[],"mappings":"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"}
package/dist/mcp.d.ts CHANGED
@@ -4,6 +4,8 @@ export type CallToolInput = {
4
4
  name: 'search' | 'execute' | 'api';
5
5
  args: Record<string, unknown>;
6
6
  mcpUrl?: string;
7
+ /** Use this org's stored login (flag / KODY_ORG / active). */
8
+ org?: string;
7
9
  backend?: SecretBackend;
8
10
  fetchFn?: typeof fetch;
9
11
  };
@@ -17,11 +19,13 @@ export declare function callKodyApiOperation(input: {
17
19
  operationId: string;
18
20
  params: Record<string, unknown>;
19
21
  mcpUrl?: string;
22
+ org?: string;
20
23
  backend?: SecretBackend;
21
24
  fetchFn?: typeof fetch;
22
25
  }): Promise<unknown>;
23
26
  export declare function listKodyTools(input: {
24
27
  mcpUrl?: string;
28
+ org?: string;
25
29
  backend?: SecretBackend;
26
30
  fetchFn?: typeof fetch;
27
31
  }): Promise<Array<{
package/dist/mcp.js CHANGED
@@ -22,6 +22,7 @@ async function connect(mcpUrl, accessToken, fetchFn) {
22
22
  export async function callKodyTool(input) {
23
23
  const credentials = await ensureFreshCredentials({
24
24
  mcpUrl: input.mcpUrl,
25
+ org: input.org,
25
26
  backend: input.backend,
26
27
  fetchFn: input.fetchFn,
27
28
  });
@@ -68,6 +69,7 @@ export async function callKodyApiOperation(input) {
68
69
  name: 'api',
69
70
  args: { operationId: input.operationId, params: input.params },
70
71
  mcpUrl: input.mcpUrl,
72
+ org: input.org,
71
73
  backend: input.backend,
72
74
  fetchFn: input.fetchFn,
73
75
  });
@@ -90,6 +92,7 @@ export async function callKodyApiOperation(input) {
90
92
  export async function listKodyTools(input) {
91
93
  const credentials = await ensureFreshCredentials({
92
94
  mcpUrl: input.mcpUrl,
95
+ org: input.org,
93
96
  backend: input.backend,
94
97
  fetchFn: input.fetchFn,
95
98
  });
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Lightweight in-process mock of the Kody production API for `--target mock`.
3
+ * Does not ship or require kody-celld. Refuses unimplemented routes/ops with
4
+ * `not_implemented_in_mock` rather than faking success.
5
+ */
6
+ import { type MockSessionState } from './mock-storage.js';
7
+ export type MockServerOptions = {
8
+ sessionId?: string;
9
+ resetStorage?: boolean;
10
+ host?: string;
11
+ port?: number;
12
+ /** Fixed package id for scratch packageStorage in local package runs. */
13
+ packageId?: string;
14
+ env?: NodeJS.ProcessEnv;
15
+ };
16
+ export type MockServer = {
17
+ url: string;
18
+ port: number;
19
+ sessionId: string;
20
+ close: () => Promise<void>;
21
+ state: () => MockSessionState;
22
+ };
23
+ export declare function isMockApiToken(token: string): boolean;
24
+ /** Issue a bearer the mock accepts (never a real kody_at_…). */
25
+ export declare function mintMockApiToken(sessionId: string): string;
26
+ export declare function startMockServer(options?: MockServerOptions): Promise<MockServer>;
27
+ /** Ensure a mock is running and return its API origin + token for CLI wiring. */
28
+ export declare function ensureMockTarget(input: {
29
+ sessionId?: string;
30
+ resetStorage?: boolean;
31
+ packageId?: string;
32
+ env?: NodeJS.ProcessEnv;
33
+ /** Reuse an already-started server (e.g. long-lived `kody dev`). */
34
+ existing?: MockServer;
35
+ }): Promise<{
36
+ apiUrl: string;
37
+ token: string;
38
+ server: MockServer;
39
+ started: boolean;
40
+ }>;
41
+ /** Close helper used by tests and short-lived CLI commands. */
42
+ export declare function withMockServer<T>(options: MockServerOptions, fn: (server: MockServer) => Promise<T>): Promise<T>;