@kodycodes/cli 1.8.0 → 1.9.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 +2 -0
- package/dist/api-token-store.d.ts +2 -1
- package/dist/api-token-store.js.map +1 -1
- package/dist/api-token.d.ts +19 -1
- package/dist/api-token.js +20 -3
- package/dist/api-token.js.map +1 -1
- package/dist/cli.d.ts +12 -5
- package/dist/cli.js +82 -23
- package/dist/cli.js.map +1 -1
- package/dist/help.js +23 -7
- package/dist/help.js.map +1 -1
- package/dist/local-execute-auth.d.ts +3 -12
- package/dist/local-execute-auth.js +2 -9
- package/dist/local-execute-auth.js.map +1 -1
- package/dist/open-api-client.d.ts +58 -0
- package/dist/open-api-client.js +199 -9
- package/dist/open-api-client.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -65,6 +65,7 @@ Or run via `npx @kodycodes/cli` without a global install.
|
|
|
65
65
|
| `kody auth bootstrap --code` | Redeems a one-shot `kody_bc_…` from MCP `cliCredentialBootstrap` and stores the resulting `kody_at_…` for `execute --local` (never prints the token). |
|
|
66
66
|
| `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. |
|
|
67
67
|
| `kody search [query]` | Calls Kody `search` from the CLI (prefer the host MCP tool). Token-only auth uses Open API `GET /v1/search`. |
|
|
68
|
+
| `kody api <operationId>` | Thin Open API wrapper matching the MCP `api` tool: `operationId` + flat `--params` JSON. Auth: `--token` / `KODY_API_TOKEN` / stored `auth bootstrap` token. |
|
|
68
69
|
| `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. |
|
|
69
70
|
|
|
70
71
|
`--json` prints structured MCP results.
|
|
@@ -93,6 +94,7 @@ npx @kodycodes/cli execute --code 'export default async () => ({ ok: true })'
|
|
|
93
94
|
npx @kodycodes/cli execute --local --file ./task.js --params '{"to":"me@example.com"}'
|
|
94
95
|
npx @kodycodes/cli search "what can you do"
|
|
95
96
|
npx @kodycodes/cli whoami
|
|
97
|
+
npx @kodycodes/cli api usageGet --params '{}'
|
|
96
98
|
```
|
|
97
99
|
|
|
98
100
|
- Neither bootstrap store, `kody login`, nor a token → the error prefers
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type SecretBackend, type StoreResolution } from './store.js';
|
|
2
2
|
/**
|
|
3
3
|
* Scoped API token stored by `auth bootstrap` (ADR 0056) for
|
|
4
|
-
* `execute --local
|
|
4
|
+
* `execute --local`, Open API search/whoami, and token-auth cloud execute.
|
|
5
|
+
* Separate from `kody login` OAuth credentials.
|
|
5
6
|
*/
|
|
6
7
|
export type StoredApiToken = {
|
|
7
8
|
version: 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-token-store.js","sourceRoot":"","sources":["../src/api-token-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EACN,iBAAiB,EACjB,2BAA2B,GAG3B,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"api-token-store.js","sourceRoot":"","sources":["../src/api-token-store.ts"],"names":[],"mappings":"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"}
|
package/dist/api-token.d.ts
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
|
+
import { loadStoredApiToken } from './api-token-store.js';
|
|
2
|
+
import type { SecretBackend, StoreResolution } from './store.js';
|
|
1
3
|
/** Platform tracking for login OAuth as CapabilityProxy / package-graph Bearer. */
|
|
2
4
|
export declare const localExecuteOauthPlatformIssueUrl = "https://github.com/kentcdodds/kody/issues/2812";
|
|
5
|
+
export type ResolveScopedApiTokenInput = {
|
|
6
|
+
tokenValues?: {
|
|
7
|
+
token?: string;
|
|
8
|
+
};
|
|
9
|
+
env?: NodeJS.ProcessEnv;
|
|
10
|
+
apiUrl?: string;
|
|
11
|
+
apiTokenBackend?: SecretBackend;
|
|
12
|
+
apiTokenResolution?: StoreResolution;
|
|
13
|
+
/** Test seam. */
|
|
14
|
+
loadApiToken?: typeof loadStoredApiToken;
|
|
15
|
+
};
|
|
3
16
|
/**
|
|
4
17
|
* Scoped Open API / CapabilityProxy token (`kody_at_…`). Same source for
|
|
5
18
|
* `execute --local`, token-only cloud execute, and Open API search/whoami.
|
|
@@ -7,6 +20,11 @@ export declare const localExecuteOauthPlatformIssueUrl = "https://github.com/ken
|
|
|
7
20
|
export declare function readApiToken(values?: {
|
|
8
21
|
token?: string;
|
|
9
22
|
}, env?: NodeJS.ProcessEnv): string | null;
|
|
23
|
+
/**
|
|
24
|
+
* Resolve a scoped API token without falling back to `kody login` OAuth.
|
|
25
|
+
* Priority: `--token` / `KODY_API_TOKEN` → stored bootstrap/API token.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveScopedApiToken(input?: ResolveScopedApiTokenInput): string | null;
|
|
10
28
|
/** True when the bearer looks like a minted Open API token (not MCP OAuth). */
|
|
11
29
|
export declare function isScopedApiToken(token: string): boolean;
|
|
12
30
|
/**
|
|
@@ -35,7 +53,7 @@ export declare function insufficientScopeMessage(input: {
|
|
|
35
53
|
export declare function featureDisabledMessage(): string;
|
|
36
54
|
export declare function requireApiToken(values?: {
|
|
37
55
|
token?: string;
|
|
38
|
-
}, env?: NodeJS.ProcessEnv, purpose?: string): string;
|
|
56
|
+
}, env?: NodeJS.ProcessEnv, purpose?: string, options?: Omit<ResolveScopedApiTokenInput, 'tokenValues' | 'env'>): string;
|
|
39
57
|
/** True when the user passed `--token` (not only the env var). */
|
|
40
58
|
export declare function hasExplicitTokenFlag(values: {
|
|
41
59
|
token?: string;
|
package/dist/api-token.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { loadStoredApiToken } from './api-token-store.js';
|
|
2
|
+
import { apiTokenEnvVar, defaultApiUrl } from './defaults.js';
|
|
2
3
|
/** Platform tracking for login OAuth as CapabilityProxy / package-graph Bearer. */
|
|
3
4
|
export const localExecuteOauthPlatformIssueUrl = 'https://github.com/kentcdodds/kody/issues/2812';
|
|
4
5
|
/**
|
|
@@ -9,6 +10,18 @@ export function readApiToken(values = {}, env = process.env) {
|
|
|
9
10
|
const token = (values.token ?? env[apiTokenEnvVar] ?? '').trim();
|
|
10
11
|
return token.length > 0 ? token : null;
|
|
11
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Resolve a scoped API token without falling back to `kody login` OAuth.
|
|
15
|
+
* Priority: `--token` / `KODY_API_TOKEN` → stored bootstrap/API token.
|
|
16
|
+
*/
|
|
17
|
+
export function resolveScopedApiToken(input = {}) {
|
|
18
|
+
const token = readApiToken(input.tokenValues, input.env);
|
|
19
|
+
if (token)
|
|
20
|
+
return token;
|
|
21
|
+
const apiUrl = input.apiUrl || defaultApiUrl;
|
|
22
|
+
const loadApi = input.loadApiToken ?? loadStoredApiToken;
|
|
23
|
+
return loadApi(apiUrl, input.apiTokenBackend, input.apiTokenResolution)?.token ?? null;
|
|
24
|
+
}
|
|
12
25
|
/** True when the bearer looks like a minted Open API token (not MCP OAuth). */
|
|
13
26
|
export function isScopedApiToken(token) {
|
|
14
27
|
return token.startsWith('kody_at_');
|
|
@@ -55,8 +68,12 @@ export function insufficientScopeMessage(input) {
|
|
|
55
68
|
export function featureDisabledMessage() {
|
|
56
69
|
return 'Kody returned feature_disabled: CapabilityProxy is not enabled for this Kody account (feature flag `local-execute`). `execute --local` and token-auth cloud execute both stop here; minting another token does not bypass the flag. Browser `kody login` can still run cloud execute over MCP.';
|
|
57
70
|
}
|
|
58
|
-
export function requireApiToken(values = {}, env = process.env, purpose = 'this command') {
|
|
59
|
-
const token =
|
|
71
|
+
export function requireApiToken(values = {}, env = process.env, purpose = 'this command', options = {}) {
|
|
72
|
+
const token = resolveScopedApiToken({
|
|
73
|
+
tokenValues: values,
|
|
74
|
+
env,
|
|
75
|
+
...options,
|
|
76
|
+
});
|
|
60
77
|
if (!token)
|
|
61
78
|
throw new Error(missingApiTokenMessage(purpose));
|
|
62
79
|
return token;
|
package/dist/api-token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-token.js","sourceRoot":"","sources":["../src/api-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"api-token.js","sourceRoot":"","sources":["../src/api-token.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { resolveScopedApiToken } from './api-token.js';
|
|
2
|
+
export { readApiToken, requireApiToken as resolveApiToken, resolveScopedApiToken, } from './api-token.js';
|
|
2
3
|
export { resolveLocalExecuteBearer } from './local-execute-auth.js';
|
|
3
4
|
export { authBootstrap, redeemBootstrapCode } from './auth-bootstrap.js';
|
|
4
|
-
export type CommandName = 'login' | 'logout' | 'status' | 'auth' | 'whoami' | 'search' | 'execute' | 'install' | 'skill' | 'help' | 'version';
|
|
5
|
+
export type CommandName = 'login' | 'logout' | 'status' | 'auth' | 'whoami' | 'search' | 'api' | 'execute' | 'install' | 'skill' | 'help' | 'version';
|
|
5
6
|
export declare function apiUrlFrom(values: {
|
|
6
7
|
apiUrl?: string;
|
|
7
8
|
}, env?: NodeJS.ProcessEnv): string;
|
|
@@ -57,11 +58,14 @@ export declare function buildExecuteToolArgs(input: {
|
|
|
57
58
|
paramsJson?: string;
|
|
58
59
|
conversationId?: string;
|
|
59
60
|
}): Record<string, unknown>;
|
|
61
|
+
/** Parse `--params` JSON for `kody api` (flat object, same as MCP `api`). */
|
|
62
|
+
export declare function parseApiParamsJson(paramsJson?: string): Record<string, unknown>;
|
|
60
63
|
/**
|
|
61
64
|
* Prefer a scoped API token when the user passed `--token`, or when
|
|
62
|
-
* `KODY_API_TOKEN` is
|
|
63
|
-
* Logged-in MCP OAuth still wins over an
|
|
64
|
-
*
|
|
65
|
+
* `KODY_API_TOKEN` / a stored bootstrap token is available and there is no
|
|
66
|
+
* stored `kody login` session. Logged-in MCP OAuth still wins over an
|
|
67
|
+
* env-only or stored token so a leftover token does not hijack cloud MCP
|
|
68
|
+
* commands.
|
|
65
69
|
*/
|
|
66
70
|
export declare function shouldUseApiToken(input: {
|
|
67
71
|
tokenValues: {
|
|
@@ -70,6 +74,9 @@ export declare function shouldUseApiToken(input: {
|
|
|
70
74
|
mcpUrl: string;
|
|
71
75
|
allowEnvWithoutLogin: boolean;
|
|
72
76
|
env?: NodeJS.ProcessEnv;
|
|
77
|
+
apiUrl?: string;
|
|
73
78
|
/** Override session detection (tests). */
|
|
74
79
|
hasSession?: boolean;
|
|
80
|
+
/** Test seam for stored bootstrap/API token lookup. */
|
|
81
|
+
loadApiToken?: NonNullable<Parameters<typeof resolveScopedApiToken>[0]>['loadApiToken'];
|
|
75
82
|
}): boolean;
|
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { parseArgs } from 'node:util';
|
|
2
2
|
import { readFile } from 'node:fs/promises';
|
|
3
|
-
import { hasExplicitTokenFlag,
|
|
3
|
+
import { hasExplicitTokenFlag, requireApiToken, resolveScopedApiToken, } from './api-token.js';
|
|
4
4
|
import { deleteStoredApiToken, loadStoredApiToken, } from './api-token-store.js';
|
|
5
5
|
import { authBootstrap } from './auth-bootstrap.js';
|
|
6
6
|
import { defaultApiUrl, defaultMcpUrl, modernMcpProtocolVersion } from './defaults.js';
|
|
@@ -12,12 +12,12 @@ import { runInstall } from './install.js';
|
|
|
12
12
|
import { resolveLocalExecuteBearer } from './local-execute-auth.js';
|
|
13
13
|
import { runLocalExecute } from './local-execute.js';
|
|
14
14
|
import { assertLocalExecuteNodeEngine } from './node-engine.js';
|
|
15
|
-
import { searchWithApiToken, whoamiWithApiToken } from './open-api-client.js';
|
|
15
|
+
import { callOpenApiOperation, searchWithApiToken, whoamiWithApiToken, } from './open-api-client.js';
|
|
16
16
|
import { runRemoteExecuteWithToken } from './remote-execute.js';
|
|
17
17
|
import { installSkill } from './skill.js';
|
|
18
18
|
import { readPackageVersion } from './package-info.js';
|
|
19
19
|
import { redactError } from './redact.js';
|
|
20
|
-
export { readApiToken, requireApiToken as resolveApiToken } from './api-token.js';
|
|
20
|
+
export { readApiToken, requireApiToken as resolveApiToken, resolveScopedApiToken, } from './api-token.js';
|
|
21
21
|
export { resolveLocalExecuteBearer } from './local-execute-auth.js';
|
|
22
22
|
export { authBootstrap, redeemBootstrapCode } from './auth-bootstrap.js';
|
|
23
23
|
function mcpUrlFrom(values) {
|
|
@@ -72,6 +72,7 @@ export function resolveCommand(argv) {
|
|
|
72
72
|
case 'auth':
|
|
73
73
|
case 'whoami':
|
|
74
74
|
case 'search':
|
|
75
|
+
case 'api':
|
|
75
76
|
case 'execute':
|
|
76
77
|
case 'install':
|
|
77
78
|
case 'skill':
|
|
@@ -198,7 +199,7 @@ async function dispatch(parsed, write, writeErr) {
|
|
|
198
199
|
const result = await authBootstrap({ code, apiUrl });
|
|
199
200
|
const scopes = result.stored.scopes?.join(', ') || '(none)';
|
|
200
201
|
write([
|
|
201
|
-
`Bootstrap API token stored for execute --local.`,
|
|
202
|
+
`Bootstrap API token stored for execute --local, search, whoami, api, and token-auth cloud execute.`,
|
|
202
203
|
`api: ${result.stored.apiUrl}`,
|
|
203
204
|
`token id: ${result.stored.tokenId}`,
|
|
204
205
|
`scopes: ${scopes}`,
|
|
@@ -212,14 +213,20 @@ async function dispatch(parsed, write, writeErr) {
|
|
|
212
213
|
}
|
|
213
214
|
case 'whoami': {
|
|
214
215
|
const tokenValues = tokenFlagValues(parsed.values);
|
|
215
|
-
|
|
216
|
+
const apiUrl = apiUrlFrom({
|
|
217
|
+
apiUrl: typeof parsed.values['api-url'] === 'string'
|
|
218
|
+
? parsed.values['api-url']
|
|
219
|
+
: undefined,
|
|
220
|
+
});
|
|
221
|
+
if (shouldUseApiToken({
|
|
222
|
+
tokenValues,
|
|
223
|
+
mcpUrl,
|
|
224
|
+
apiUrl,
|
|
225
|
+
allowEnvWithoutLogin: true,
|
|
226
|
+
})) {
|
|
216
227
|
const identity = await whoamiWithApiToken({
|
|
217
|
-
token: requireApiToken(tokenValues, process.env, 'whoami'),
|
|
218
|
-
apiUrl
|
|
219
|
-
apiUrl: typeof parsed.values['api-url'] === 'string'
|
|
220
|
-
? parsed.values['api-url']
|
|
221
|
-
: undefined,
|
|
222
|
-
}),
|
|
228
|
+
token: requireApiToken(tokenValues, process.env, 'whoami', { apiUrl }),
|
|
229
|
+
apiUrl,
|
|
223
230
|
});
|
|
224
231
|
if (json) {
|
|
225
232
|
write(`${JSON.stringify(identity, null, 2)}\n`);
|
|
@@ -256,14 +263,20 @@ async function dispatch(parsed, write, writeErr) {
|
|
|
256
263
|
case 'search': {
|
|
257
264
|
const query = parsed.positionals.join(' ').trim();
|
|
258
265
|
const tokenValues = tokenFlagValues(parsed.values);
|
|
259
|
-
|
|
266
|
+
const apiUrl = apiUrlFrom({
|
|
267
|
+
apiUrl: typeof parsed.values['api-url'] === 'string'
|
|
268
|
+
? parsed.values['api-url']
|
|
269
|
+
: undefined,
|
|
270
|
+
});
|
|
271
|
+
if (shouldUseApiToken({
|
|
272
|
+
tokenValues,
|
|
273
|
+
mcpUrl,
|
|
274
|
+
apiUrl,
|
|
275
|
+
allowEnvWithoutLogin: true,
|
|
276
|
+
})) {
|
|
260
277
|
const result = await searchWithApiToken({
|
|
261
|
-
token: requireApiToken(tokenValues, process.env, 'search'),
|
|
262
|
-
apiUrl
|
|
263
|
-
apiUrl: typeof parsed.values['api-url'] === 'string'
|
|
264
|
-
? parsed.values['api-url']
|
|
265
|
-
: undefined,
|
|
266
|
-
}),
|
|
278
|
+
token: requireApiToken(tokenValues, process.env, 'search', { apiUrl }),
|
|
279
|
+
apiUrl,
|
|
267
280
|
query: query || undefined,
|
|
268
281
|
entity: typeof parsed.values.entity === 'string' ? parsed.values.entity : undefined,
|
|
269
282
|
domain: typeof parsed.values.domain === 'string' ? parsed.values.domain : undefined,
|
|
@@ -328,6 +341,7 @@ async function dispatch(parsed, write, writeErr) {
|
|
|
328
341
|
shouldUseApiToken({
|
|
329
342
|
tokenValues,
|
|
330
343
|
mcpUrl,
|
|
344
|
+
apiUrl,
|
|
331
345
|
allowEnvWithoutLogin: true,
|
|
332
346
|
});
|
|
333
347
|
const result = local
|
|
@@ -350,13 +364,35 @@ async function dispatch(parsed, write, writeErr) {
|
|
|
350
364
|
invoke,
|
|
351
365
|
params: args.params,
|
|
352
366
|
conversationId: args.conversationId,
|
|
353
|
-
token: requireApiToken(tokenValues, process.env, 'execute with an API token'),
|
|
367
|
+
token: requireApiToken(tokenValues, process.env, 'execute with an API token', { apiUrl }),
|
|
354
368
|
apiUrl,
|
|
355
369
|
})
|
|
356
370
|
: await callKodyTool({ name: 'execute', args, mcpUrl });
|
|
357
371
|
write(formatToolResult(result, json));
|
|
358
372
|
return result.isError ? 1 : 0;
|
|
359
373
|
}
|
|
374
|
+
case 'api': {
|
|
375
|
+
const operationId = parsed.positionals[0]?.trim() ?? '';
|
|
376
|
+
if (!operationId || parsed.positionals.length > 1) {
|
|
377
|
+
throw new Error('Usage: kody api <operationId> [--params <json>] [--token <token>] [--api-url <url>] [--json]');
|
|
378
|
+
}
|
|
379
|
+
const apiUrl = apiUrlFrom({
|
|
380
|
+
apiUrl: typeof parsed.values['api-url'] === 'string'
|
|
381
|
+
? parsed.values['api-url']
|
|
382
|
+
: undefined,
|
|
383
|
+
});
|
|
384
|
+
const tokenValues = tokenFlagValues(parsed.values);
|
|
385
|
+
const params = parseApiParamsJson(typeof parsed.values.params === 'string' ? parsed.values.params : undefined);
|
|
386
|
+
const result = await callOpenApiOperation({
|
|
387
|
+
operationId,
|
|
388
|
+
params,
|
|
389
|
+
token: requireApiToken(tokenValues, process.env, 'api', { apiUrl }),
|
|
390
|
+
apiUrl,
|
|
391
|
+
});
|
|
392
|
+
// Always JSON: mirrors MCP `api` structured results for agents/scripts.
|
|
393
|
+
write(`${JSON.stringify(result, null, 2)}\n`);
|
|
394
|
+
return 0;
|
|
395
|
+
}
|
|
360
396
|
case 'install': {
|
|
361
397
|
const result = await runInstall({
|
|
362
398
|
mcpUrl,
|
|
@@ -429,19 +465,42 @@ function tokenFlagValues(values) {
|
|
|
429
465
|
token: typeof values.token === 'string' ? values.token : undefined,
|
|
430
466
|
};
|
|
431
467
|
}
|
|
468
|
+
/** Parse `--params` JSON for `kody api` (flat object, same as MCP `api`). */
|
|
469
|
+
export function parseApiParamsJson(paramsJson) {
|
|
470
|
+
if (paramsJson === undefined)
|
|
471
|
+
return {};
|
|
472
|
+
let parsed;
|
|
473
|
+
try {
|
|
474
|
+
parsed = JSON.parse(paramsJson);
|
|
475
|
+
}
|
|
476
|
+
catch {
|
|
477
|
+
throw new Error('--params must be valid JSON (a flat object).');
|
|
478
|
+
}
|
|
479
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
480
|
+
throw new Error('--params must be a JSON object (e.g. \'{"query":"email"}\').');
|
|
481
|
+
}
|
|
482
|
+
return parsed;
|
|
483
|
+
}
|
|
432
484
|
/**
|
|
433
485
|
* Prefer a scoped API token when the user passed `--token`, or when
|
|
434
|
-
* `KODY_API_TOKEN` is
|
|
435
|
-
* Logged-in MCP OAuth still wins over an
|
|
436
|
-
*
|
|
486
|
+
* `KODY_API_TOKEN` / a stored bootstrap token is available and there is no
|
|
487
|
+
* stored `kody login` session. Logged-in MCP OAuth still wins over an
|
|
488
|
+
* env-only or stored token so a leftover token does not hijack cloud MCP
|
|
489
|
+
* commands.
|
|
437
490
|
*/
|
|
438
491
|
export function shouldUseApiToken(input) {
|
|
439
492
|
if (hasExplicitTokenFlag(input.tokenValues))
|
|
440
493
|
return true;
|
|
441
494
|
if (!input.allowEnvWithoutLogin)
|
|
442
495
|
return false;
|
|
443
|
-
if (!
|
|
496
|
+
if (!resolveScopedApiToken({
|
|
497
|
+
tokenValues: input.tokenValues,
|
|
498
|
+
env: input.env,
|
|
499
|
+
apiUrl: input.apiUrl,
|
|
500
|
+
loadApiToken: input.loadApiToken,
|
|
501
|
+
})) {
|
|
444
502
|
return false;
|
|
503
|
+
}
|
|
445
504
|
const loggedIn = input.hasSession ?? loadCredentials(input.mcpUrl) != null;
|
|
446
505
|
return !loggedIn;
|
|
447
506
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/help.js
CHANGED
|
@@ -12,6 +12,7 @@ Usage:
|
|
|
12
12
|
kody auth bootstrap --code <kody_bc_…> [--api-url <url>]
|
|
13
13
|
kody whoami [--mcp-url <url>] [--token <token>] [--api-url <url>] [--json]
|
|
14
14
|
kody search [query] [--entity <ref>] [--domain <id>] [--limit <n>] [--token <token>] [--api-url <url>] [--json]
|
|
15
|
+
kody api <operationId> [--params <json>] [--token <token>] [--api-url <url>] [--json]
|
|
15
16
|
kody execute [--invoke <ref> | --code <esm> | --file <path>] [--params <json>] [--conversation-id <id>] [--json]
|
|
16
17
|
[--token <token>] [--api-url <url>] [--local]
|
|
17
18
|
kody install [--mcp-url <url>] [--clients <ids>] [--yes] [--project] [--json]
|
|
@@ -26,20 +27,35 @@ Usage:
|
|
|
26
27
|
auth bootstrap
|
|
27
28
|
Redeem a one-shot \`kody_bc_…\` from MCP \`cliCredentialBootstrap\`
|
|
28
29
|
(POST /v1/tokens/bootstrap/redeem, no Authorization header).
|
|
29
|
-
Stores the resulting \`kody_at_…\` for \`execute --local
|
|
30
|
+
Stores the resulting \`kody_at_…\` for \`execute --local\`,
|
|
31
|
+
search, whoami, api, and token-auth cloud execute without
|
|
30
32
|
printing the token. Prefer this over tokenCreate for agents
|
|
31
|
-
already on MCP. Interactive humans can use \`kody login\`
|
|
33
|
+
already on MCP. Interactive humans can use \`kody login\`
|
|
34
|
+
instead. Do not call \`kody api cliCredentialBootstrapRedeem\`
|
|
35
|
+
— that would print the token.
|
|
36
|
+
|
|
37
|
+
api Call one Open API operation by operationId + flat --params
|
|
38
|
+
JSON (same shape as the MCP \`api\` tool). Uses scoped API
|
|
39
|
+
auth only (\`--token\` / ${apiTokenEnvVar} / stored bootstrap).
|
|
40
|
+
Prints JSON. Example: \`kody api usageGet --params '{}'\`.
|
|
41
|
+
Unknown operationIds error clearly; see
|
|
42
|
+
${defaultApiUrl}/openapi.json. tokenCreate / tokenRotate
|
|
43
|
+
responses include a one-time token value — prefer env storage
|
|
44
|
+
over pasting into chat.
|
|
32
45
|
|
|
33
46
|
--token / ${apiTokenEnvVar}
|
|
34
47
|
Scoped API token (preferred via env). With no \`kody login\`
|
|
35
|
-
session, search / whoami / execute use the Open API and
|
|
48
|
+
session, search / whoami / api / execute use the Open API and
|
|
36
49
|
CapabilityProxy — including cloud execute without --local.
|
|
50
|
+
Auth priority matches \`execute --local\`: \`--token\` /
|
|
51
|
+
${apiTokenEnvVar}; stored bootstrap/API token from
|
|
52
|
+
\`auth bootstrap\`; then \`kody login\` where applicable.
|
|
37
53
|
Mint with the MCP \`api\` tool \`tokenCreate\` (include
|
|
38
54
|
\`local-execute\` plus the capability scopes you need), or use
|
|
39
55
|
\`auth bootstrap\` after \`cliCredentialBootstrap\`.
|
|
40
|
-
For \`execute --local\`,
|
|
41
|
-
|
|
42
|
-
|
|
56
|
+
For \`execute --local\`, a valid \`kody login\` session can also
|
|
57
|
+
supply Bearer when no scoped token is available (no tokenCreate
|
|
58
|
+
exchange).
|
|
43
59
|
|
|
44
60
|
--local Run the execute module on this machine (workerd, Linux/macOS).
|
|
45
61
|
Requires Node.js 22 or newer. Auth: \`--token\` /
|
|
@@ -53,7 +69,7 @@ Usage:
|
|
|
53
69
|
|
|
54
70
|
Environment:
|
|
55
71
|
KODY_MCP_URL Override the default MCP URL (${defaultMcpUrl})
|
|
56
|
-
${apiTokenEnvVar} Scoped API token for token-auth search / whoami / execute
|
|
72
|
+
${apiTokenEnvVar} Scoped API token for token-auth search / whoami / api / execute
|
|
57
73
|
KODY_API_URL Override the Kody API URL (${defaultApiUrl})
|
|
58
74
|
KODY_CACHE_DIR Where execute --local caches workerd (default: user cache dir)
|
|
59
75
|
KODY_WORKERD_PATH Use this workerd binary instead of the pinned download
|
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
|
|
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;;;;;;;;;;;;;;;;;;;QAmB7C,aAAa,CAAC,aAAa,CAAC;;oCAEA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;wCAcd,cAAc;;;eAGvC,aAAa;;;;cAId,cAAc;;;;;eAKb,cAAc;;;;;;;;;;;eAWd,cAAc;;;;;;;;;sDASyB,aAAa;IAC/D,cAAc;mDACiC,aAAa;;;CAG/D,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ensureFreshCredentials } from './auth.js';
|
|
2
|
-
import {
|
|
3
|
-
import type { SecretBackend
|
|
2
|
+
import { type ResolveScopedApiTokenInput } from './api-token.js';
|
|
3
|
+
import type { SecretBackend } from './store.js';
|
|
4
4
|
/**
|
|
5
5
|
* Bearer for CapabilityProxy / package-graph under `execute --local`.
|
|
6
6
|
*
|
|
@@ -12,21 +12,12 @@ import type { SecretBackend, StoreResolution } from './store.js';
|
|
|
12
12
|
* No under-the-hood `tokenCreate` exchange. Do not scavenge host MCP tokens
|
|
13
13
|
* (ADR 0053).
|
|
14
14
|
*/
|
|
15
|
-
export declare function resolveLocalExecuteBearer(input: {
|
|
16
|
-
tokenValues?: {
|
|
17
|
-
token?: string;
|
|
18
|
-
};
|
|
19
|
-
env?: NodeJS.ProcessEnv;
|
|
15
|
+
export declare function resolveLocalExecuteBearer(input: ResolveScopedApiTokenInput & {
|
|
20
16
|
mcpUrl?: string;
|
|
21
|
-
apiUrl?: string;
|
|
22
17
|
backend?: SecretBackend;
|
|
23
|
-
apiTokenBackend?: SecretBackend;
|
|
24
|
-
apiTokenResolution?: StoreResolution;
|
|
25
18
|
fetchFn?: typeof fetch;
|
|
26
19
|
now?: number;
|
|
27
20
|
purpose?: string;
|
|
28
21
|
/** Test seam. */
|
|
29
22
|
ensureCredentials?: typeof ensureFreshCredentials;
|
|
30
|
-
/** Test seam. */
|
|
31
|
-
loadApiToken?: typeof loadStoredApiToken;
|
|
32
23
|
}): Promise<string>;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { ensureFreshCredentials } from './auth.js';
|
|
2
|
-
import { missingLocalExecuteAuthMessage,
|
|
3
|
-
import { loadStoredApiToken } from './api-token-store.js';
|
|
4
|
-
import { defaultApiUrl } from './defaults.js';
|
|
2
|
+
import { missingLocalExecuteAuthMessage, resolveScopedApiToken, } from './api-token.js';
|
|
5
3
|
/**
|
|
6
4
|
* Bearer for CapabilityProxy / package-graph under `execute --local`.
|
|
7
5
|
*
|
|
@@ -14,14 +12,9 @@ import { defaultApiUrl } from './defaults.js';
|
|
|
14
12
|
* (ADR 0053).
|
|
15
13
|
*/
|
|
16
14
|
export async function resolveLocalExecuteBearer(input) {
|
|
17
|
-
const token =
|
|
15
|
+
const token = resolveScopedApiToken(input);
|
|
18
16
|
if (token)
|
|
19
17
|
return token;
|
|
20
|
-
const apiUrl = input.apiUrl || defaultApiUrl;
|
|
21
|
-
const loadApi = input.loadApiToken ?? loadStoredApiToken;
|
|
22
|
-
const stored = loadApi(apiUrl, input.apiTokenBackend, input.apiTokenResolution);
|
|
23
|
-
if (stored?.token)
|
|
24
|
-
return stored.token;
|
|
25
18
|
const ensure = input.ensureCredentials ?? ensureFreshCredentials;
|
|
26
19
|
try {
|
|
27
20
|
const credentials = await ensure({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-execute-auth.js","sourceRoot":"","sources":["../src/local-execute-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EACN,8BAA8B,EAC9B,
|
|
1
|
+
{"version":3,"file":"local-execute-auth.js","sourceRoot":"","sources":["../src/local-execute-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EACN,8BAA8B,EAC9B,qBAAqB,GAErB,MAAM,gBAAgB,CAAA;AAGvB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC9C,KAQC;IAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,IAAI,KAAK;QAAE,OAAO,KAAK,CAAA;IAEvB,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,IAAI,sBAAsB,CAAA;IAChE,IAAI,CAAC;QACJ,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,EAAE,KAAK,CAAC,GAAG;SACd,CAAC,CAAA;QACF,OAAO,WAAW,CAAC,WAAW,CAAA;IAC/B,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,KAAK,CAAC,OAAO,IAAI,iBAAiB,CAAC,CAAC,CAAA;IACpF,CAAC;AACF,CAAC"}
|
|
@@ -12,10 +12,68 @@ export declare class OpenApiError extends Error {
|
|
|
12
12
|
code?: string | null;
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
|
+
/** Path to the live OpenAPI document on the Kody API origin. */
|
|
16
|
+
export declare const openApiDocumentPath = "openapi.json";
|
|
17
|
+
/**
|
|
18
|
+
* Bootstrap redeem returns a `kody_at_…` once. Agents must use
|
|
19
|
+
* `kody auth bootstrap --code` so the token is stored and never printed.
|
|
20
|
+
*/
|
|
21
|
+
export declare const cliCredentialBootstrapRedeemOperationId = "cliCredentialBootstrapRedeem";
|
|
22
|
+
export type OpenApiOperationRoute = {
|
|
23
|
+
operationId: string;
|
|
24
|
+
method: string;
|
|
25
|
+
pathTemplate: string;
|
|
26
|
+
pathParamNames: Array<string>;
|
|
27
|
+
};
|
|
15
28
|
export declare function openApiGet(input: OpenApiClientInput & {
|
|
16
29
|
path: string;
|
|
17
30
|
query?: Record<string, string | number | undefined>;
|
|
18
31
|
}): Promise<unknown>;
|
|
32
|
+
/**
|
|
33
|
+
* Authenticated Open API request (Bearer `kody_at_…`). Shared by search/whoami
|
|
34
|
+
* helpers and `kody api <operationId>`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function openApiRequest(input: OpenApiClientInput & {
|
|
37
|
+
method: string;
|
|
38
|
+
path: string;
|
|
39
|
+
query?: Record<string, unknown>;
|
|
40
|
+
body?: Record<string, unknown>;
|
|
41
|
+
}): Promise<unknown>;
|
|
42
|
+
/**
|
|
43
|
+
* Call one Open API operation by `operationId` + flat `params`, matching the
|
|
44
|
+
* MCP `api` tool shape. Resolves method/path from `/openapi.json`.
|
|
45
|
+
*/
|
|
46
|
+
export declare function callOpenApiOperation(input: OpenApiClientInput & {
|
|
47
|
+
operationId: string;
|
|
48
|
+
params?: Record<string, unknown>;
|
|
49
|
+
/** Test seam: skip /openapi.json fetch. */
|
|
50
|
+
operations?: Map<string, OpenApiOperationRoute>;
|
|
51
|
+
}): Promise<unknown>;
|
|
52
|
+
export declare function assertApiOperationAllowed(operationId: string): void;
|
|
53
|
+
/**
|
|
54
|
+
* Split flat MCP-style params into path / query / body for an Open API route.
|
|
55
|
+
* GET and DELETE send non-path fields as query; other methods send them as JSON body.
|
|
56
|
+
*/
|
|
57
|
+
export declare function buildOpenApiHttpRequest(input: {
|
|
58
|
+
route: OpenApiOperationRoute;
|
|
59
|
+
params: Record<string, unknown>;
|
|
60
|
+
}): {
|
|
61
|
+
method: string;
|
|
62
|
+
path: string;
|
|
63
|
+
query?: Record<string, unknown>;
|
|
64
|
+
body?: Record<string, unknown>;
|
|
65
|
+
};
|
|
66
|
+
export declare function apiOperationUsesQueryInputs(method: string): boolean;
|
|
67
|
+
export declare function loadOpenApiOperations(input: {
|
|
68
|
+
apiUrl?: string;
|
|
69
|
+
fetchFn?: typeof fetch;
|
|
70
|
+
/** Bypass cache (tests). */
|
|
71
|
+
bustCache?: boolean;
|
|
72
|
+
}): Promise<Map<string, OpenApiOperationRoute>>;
|
|
73
|
+
/** Visible for tests. */
|
|
74
|
+
export declare function indexOpenApiOperations(document: unknown): Map<string, OpenApiOperationRoute>;
|
|
75
|
+
/** Clear the in-memory OpenAPI route cache (tests). */
|
|
76
|
+
export declare function clearOpenApiRouteCache(): void;
|
|
19
77
|
export declare function searchWithApiToken(input: OpenApiClientInput & {
|
|
20
78
|
query?: string;
|
|
21
79
|
domain?: string;
|
package/dist/open-api-client.js
CHANGED
|
@@ -13,17 +13,137 @@ export class OpenApiError extends Error {
|
|
|
13
13
|
this.code = options.code ?? null;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
+
/** Path to the live OpenAPI document on the Kody API origin. */
|
|
17
|
+
export const openApiDocumentPath = 'openapi.json';
|
|
18
|
+
/**
|
|
19
|
+
* Bootstrap redeem returns a `kody_at_…` once. Agents must use
|
|
20
|
+
* `kody auth bootstrap --code` so the token is stored and never printed.
|
|
21
|
+
*/
|
|
22
|
+
export const cliCredentialBootstrapRedeemOperationId = 'cliCredentialBootstrapRedeem';
|
|
23
|
+
const openApiRouteCache = new Map();
|
|
16
24
|
export async function openApiGet(input) {
|
|
25
|
+
return openApiRequest({
|
|
26
|
+
...input,
|
|
27
|
+
method: 'GET',
|
|
28
|
+
path: input.path,
|
|
29
|
+
query: input.query,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Authenticated Open API request (Bearer `kody_at_…`). Shared by search/whoami
|
|
34
|
+
* helpers and `kody api <operationId>`.
|
|
35
|
+
*/
|
|
36
|
+
export async function openApiRequest(input) {
|
|
17
37
|
const apiUrl = input.apiUrl || defaultApiUrl;
|
|
18
38
|
assertTokenSafeApiUrl(apiUrl);
|
|
19
|
-
const url = capabilityProxyUrl(apiUrl, input.path);
|
|
39
|
+
const url = capabilityProxyUrl(apiUrl, input.path.replace(/^\//, ''));
|
|
20
40
|
if (input.query) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
41
|
+
appendQueryParams(url.searchParams, input.query);
|
|
42
|
+
}
|
|
43
|
+
const method = input.method.toUpperCase();
|
|
44
|
+
const headers = {
|
|
45
|
+
accept: 'application/json',
|
|
46
|
+
authorization: `Bearer ${input.token}`,
|
|
47
|
+
'user-agent': `${cliName}/${readPackageVersion()}`,
|
|
48
|
+
};
|
|
49
|
+
let body;
|
|
50
|
+
if (input.body !== undefined && method !== 'GET' && method !== 'HEAD') {
|
|
51
|
+
headers['content-type'] = 'application/json';
|
|
52
|
+
body = JSON.stringify(input.body);
|
|
53
|
+
}
|
|
54
|
+
const fetchFn = input.fetchFn ?? fetch;
|
|
55
|
+
let response;
|
|
56
|
+
try {
|
|
57
|
+
response = await fetchFn(url, { method, headers, body });
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
const reason = describeNetworkError(error);
|
|
61
|
+
throw new OpenApiError(`Could not reach the Kody API at ${url.origin} (${reason}). Check --api-url / KODY_API_URL and your network.`);
|
|
62
|
+
}
|
|
63
|
+
const responseBody = await readJson(response);
|
|
64
|
+
if (!response.ok) {
|
|
65
|
+
throw describeOpenApiFailure(response.status, responseBody, url);
|
|
66
|
+
}
|
|
67
|
+
return responseBody;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Call one Open API operation by `operationId` + flat `params`, matching the
|
|
71
|
+
* MCP `api` tool shape. Resolves method/path from `/openapi.json`.
|
|
72
|
+
*/
|
|
73
|
+
export async function callOpenApiOperation(input) {
|
|
74
|
+
const operationId = input.operationId.trim();
|
|
75
|
+
if (!operationId) {
|
|
76
|
+
throw new OpenApiError('Provide an Open API operationId (e.g. usageGet, metaGetCurrentUser).');
|
|
77
|
+
}
|
|
78
|
+
assertApiOperationAllowed(operationId);
|
|
79
|
+
const apiUrl = input.apiUrl || defaultApiUrl;
|
|
80
|
+
const operations = input.operations ?? (await loadOpenApiOperations({ apiUrl, fetchFn: input.fetchFn }));
|
|
81
|
+
const route = operations.get(operationId);
|
|
82
|
+
if (!route) {
|
|
83
|
+
throw new OpenApiError(`Unknown operationId "${operationId}". Operation ids are listed in ${capabilityProxyUrl(apiUrl, openApiDocumentPath).href} and match Kody capability names (plus token operations such as tokenCreate).`, { status: 404, code: 'not_found' });
|
|
84
|
+
}
|
|
85
|
+
const built = buildOpenApiHttpRequest({
|
|
86
|
+
route,
|
|
87
|
+
params: input.params ?? {},
|
|
88
|
+
});
|
|
89
|
+
return openApiRequest({
|
|
90
|
+
token: input.token,
|
|
91
|
+
apiUrl,
|
|
92
|
+
fetchFn: input.fetchFn,
|
|
93
|
+
method: built.method,
|
|
94
|
+
path: built.path,
|
|
95
|
+
query: built.query,
|
|
96
|
+
body: built.body,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
export function assertApiOperationAllowed(operationId) {
|
|
100
|
+
if (operationId === cliCredentialBootstrapRedeemOperationId) {
|
|
101
|
+
throw new OpenApiError(`Refusing to call ${cliCredentialBootstrapRedeemOperationId}: redeem returns a kody_at_… token that must not print to stdout. Use \`kody auth bootstrap --code <kody_bc_…>\` instead (stores the token; never prints it).`, { status: null, code: 'refused' });
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Split flat MCP-style params into path / query / body for an Open API route.
|
|
106
|
+
* GET and DELETE send non-path fields as query; other methods send them as JSON body.
|
|
107
|
+
*/
|
|
108
|
+
export function buildOpenApiHttpRequest(input) {
|
|
109
|
+
const remaining = { ...input.params };
|
|
110
|
+
const pathParams = {};
|
|
111
|
+
for (const name of input.route.pathParamNames) {
|
|
112
|
+
if (!(name in remaining) || remaining[name] === undefined || remaining[name] === null) {
|
|
113
|
+
throw new OpenApiError(`Missing required path parameter "${name}" for ${input.route.operationId} (${input.route.pathTemplate}).`);
|
|
25
114
|
}
|
|
115
|
+
pathParams[name] = String(remaining[name]);
|
|
116
|
+
delete remaining[name];
|
|
26
117
|
}
|
|
118
|
+
const path = fillPathTemplate(input.route.pathTemplate, pathParams);
|
|
119
|
+
const method = input.route.method.toUpperCase();
|
|
120
|
+
if (apiOperationUsesQueryInputs(method)) {
|
|
121
|
+
return {
|
|
122
|
+
method,
|
|
123
|
+
path,
|
|
124
|
+
...(Object.keys(remaining).length > 0 ? { query: remaining } : {}),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
return {
|
|
128
|
+
method,
|
|
129
|
+
path,
|
|
130
|
+
body: remaining,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
export function apiOperationUsesQueryInputs(method) {
|
|
134
|
+
const upper = method.toUpperCase();
|
|
135
|
+
return upper === 'GET' || upper === 'DELETE';
|
|
136
|
+
}
|
|
137
|
+
export async function loadOpenApiOperations(input) {
|
|
138
|
+
const apiUrl = input.apiUrl || defaultApiUrl;
|
|
139
|
+
assertTokenSafeApiUrl(apiUrl);
|
|
140
|
+
const cacheKey = new URL(apiUrl).origin;
|
|
141
|
+
if (!input.bustCache) {
|
|
142
|
+
const cached = openApiRouteCache.get(cacheKey);
|
|
143
|
+
if (cached)
|
|
144
|
+
return cached;
|
|
145
|
+
}
|
|
146
|
+
const url = capabilityProxyUrl(apiUrl, openApiDocumentPath);
|
|
27
147
|
const fetchFn = input.fetchFn ?? fetch;
|
|
28
148
|
let response;
|
|
29
149
|
try {
|
|
@@ -31,20 +151,90 @@ export async function openApiGet(input) {
|
|
|
31
151
|
method: 'GET',
|
|
32
152
|
headers: {
|
|
33
153
|
accept: 'application/json',
|
|
34
|
-
authorization: `Bearer ${input.token}`,
|
|
35
154
|
'user-agent': `${cliName}/${readPackageVersion()}`,
|
|
36
155
|
},
|
|
37
156
|
});
|
|
38
157
|
}
|
|
39
158
|
catch (error) {
|
|
40
159
|
const reason = describeNetworkError(error);
|
|
41
|
-
throw new OpenApiError(`Could not
|
|
160
|
+
throw new OpenApiError(`Could not load OpenAPI from ${url.href} (${reason}). Check --api-url / KODY_API_URL and your network.`);
|
|
42
161
|
}
|
|
43
162
|
const body = await readJson(response);
|
|
44
163
|
if (!response.ok) {
|
|
45
|
-
throw
|
|
164
|
+
throw new OpenApiError(`Could not load OpenAPI from ${url.href} (HTTP ${response.status}).`, { status: response.status });
|
|
165
|
+
}
|
|
166
|
+
const operations = indexOpenApiOperations(body);
|
|
167
|
+
openApiRouteCache.set(cacheKey, operations);
|
|
168
|
+
return operations;
|
|
169
|
+
}
|
|
170
|
+
/** Visible for tests. */
|
|
171
|
+
export function indexOpenApiOperations(document) {
|
|
172
|
+
if (!isRecord(document) || !isRecord(document.paths)) {
|
|
173
|
+
throw new OpenApiError('OpenAPI document is missing a paths object.');
|
|
174
|
+
}
|
|
175
|
+
const operations = new Map();
|
|
176
|
+
for (const [pathTemplate, methods] of Object.entries(document.paths)) {
|
|
177
|
+
if (!isRecord(methods))
|
|
178
|
+
continue;
|
|
179
|
+
for (const [method, operation] of Object.entries(methods)) {
|
|
180
|
+
if (!isRecord(operation))
|
|
181
|
+
continue;
|
|
182
|
+
const operationId = typeof operation.operationId === 'string' ? operation.operationId : '';
|
|
183
|
+
if (!operationId)
|
|
184
|
+
continue;
|
|
185
|
+
operations.set(operationId, {
|
|
186
|
+
operationId,
|
|
187
|
+
method: method.toUpperCase(),
|
|
188
|
+
pathTemplate,
|
|
189
|
+
pathParamNames: pathParamNamesFromTemplate(pathTemplate),
|
|
190
|
+
});
|
|
191
|
+
}
|
|
46
192
|
}
|
|
47
|
-
return
|
|
193
|
+
return operations;
|
|
194
|
+
}
|
|
195
|
+
/** Clear the in-memory OpenAPI route cache (tests). */
|
|
196
|
+
export function clearOpenApiRouteCache() {
|
|
197
|
+
openApiRouteCache.clear();
|
|
198
|
+
}
|
|
199
|
+
function pathParamNamesFromTemplate(pathTemplate) {
|
|
200
|
+
const names = [];
|
|
201
|
+
for (const match of pathTemplate.matchAll(/\{([^{}/]+)\}/g)) {
|
|
202
|
+
const name = match[1];
|
|
203
|
+
if (name)
|
|
204
|
+
names.push(name);
|
|
205
|
+
}
|
|
206
|
+
return names;
|
|
207
|
+
}
|
|
208
|
+
function fillPathTemplate(pathTemplate, pathParams) {
|
|
209
|
+
return pathTemplate.replace(/\{([^{}/]+)\}/g, (_full, name) => {
|
|
210
|
+
const value = pathParams[name];
|
|
211
|
+
if (value === undefined) {
|
|
212
|
+
throw new OpenApiError(`Missing path parameter "${name}" for ${pathTemplate}.`);
|
|
213
|
+
}
|
|
214
|
+
return encodeURIComponent(value);
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
function appendQueryParams(searchParams, query) {
|
|
218
|
+
for (const [key, value] of Object.entries(query)) {
|
|
219
|
+
if (value === undefined || value === null || value === '')
|
|
220
|
+
continue;
|
|
221
|
+
if (Array.isArray(value)) {
|
|
222
|
+
for (const entry of value) {
|
|
223
|
+
if (entry === undefined || entry === null)
|
|
224
|
+
continue;
|
|
225
|
+
searchParams.append(key, stringifyQueryValue(entry));
|
|
226
|
+
}
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
searchParams.set(key, stringifyQueryValue(value));
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
function stringifyQueryValue(value) {
|
|
233
|
+
if (typeof value === 'string')
|
|
234
|
+
return value;
|
|
235
|
+
if (typeof value === 'number' || typeof value === 'boolean')
|
|
236
|
+
return String(value);
|
|
237
|
+
return JSON.stringify(value);
|
|
48
238
|
}
|
|
49
239
|
export async function searchWithApiToken(input) {
|
|
50
240
|
if (input.entity) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-api-client.js","sourceRoot":"","sources":["../src/open-api-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"open-api-client.js","sourceRoot":"","sources":["../src/open-api-client.ts"],"names":[],"mappings":"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"}
|