@kodycodes/cli 3.1.6 → 3.3.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 +23 -1
- package/dist/{auth-YUFNOOTY.js → auth-KD6IT7RH.js} +8 -5
- package/dist/auth.d.ts +24 -0
- package/dist/bin.js +10 -9
- package/dist/bin.js.map +1 -1
- package/dist/{chunk-AFGRPGHE.js → chunk-2DCCAVPD.js} +159 -65
- package/dist/chunk-2DCCAVPD.js.map +6 -0
- package/dist/{chunk-NRLXYJKW.js → chunk-3DASQK6N.js} +3 -3
- package/dist/{chunk-OIXNZ63K.js → chunk-3PN6V3EX.js} +13 -13
- package/dist/chunk-AED3YBAI.js +355 -0
- package/dist/chunk-AED3YBAI.js.map +6 -0
- package/dist/{chunk-2GSKFEWW.js → chunk-AWDVFTR2.js} +95 -5
- package/dist/chunk-AWDVFTR2.js.map +6 -0
- package/dist/{chunk-BQOJGN24.js → chunk-F7MVIDV6.js} +3 -3
- package/dist/{chunk-2XSV546S.js → chunk-FB6I4T2J.js} +292 -78
- package/dist/{chunk-2XSV546S.js.map → chunk-FB6I4T2J.js.map} +1 -1
- package/dist/{chunk-ZK52DY36.js → chunk-MU6NWE3A.js} +6 -6
- package/dist/{chunk-SAK2XRKX.js → chunk-RETDMHIH.js} +3 -3
- package/dist/chunk-S3KLKZ4C.js +124 -0
- package/dist/chunk-S3KLKZ4C.js.map +6 -0
- package/dist/{chunk-LISUPAAK.js → chunk-TZKZOMEA.js} +5 -117
- package/dist/chunk-TZKZOMEA.js.map +6 -0
- package/dist/{chunk-OWIJPBAX.js → chunk-Y6JYX35N.js} +6 -4
- package/dist/chunk-Y6JYX35N.js.map +6 -0
- package/dist/cli.d.ts +4 -1
- package/dist/cli.js +11 -10
- package/dist/commands-RPUZAOAB.js +806 -0
- package/dist/commands-RPUZAOAB.js.map +6 -0
- package/dist/{dev-command-NUN5HHRC.js → dev-command-Y2TN23BI.js} +28 -27
- package/dist/dev-command-Y2TN23BI.js.map +6 -0
- package/dist/execution-context/client.d.ts +89 -0
- package/dist/execution-context/commands.d.ts +26 -0
- package/dist/execution-context/daemon.d.ts +47 -0
- package/dist/execution-context/keystore.d.ts +58 -0
- package/dist/execution-context/run-executor.d.ts +20 -0
- package/dist/{git-credential-SL4Y6YKO.js → git-credential-WTF6ZIL4.js} +8 -7
- package/dist/git-credential-WTF6ZIL4.js.map +6 -0
- package/dist/{local-execute-5J53ZM5Z.js → local-execute-3H2ROHTP.js} +14 -13
- package/dist/local-execute-3H2ROHTP.js.map +6 -0
- package/dist/{local-package-graph-7TEPDAGV.js → local-package-graph-657CN4KN.js} +4 -3
- package/dist/{local-package-run-OPC7VXO3.js → local-package-run-C2XX2U5D.js} +10 -9
- package/dist/login-notice.d.ts +28 -1
- package/dist/{mock-dep-resolve-QRMNGDHM.js → mock-dep-resolve-BSFBRPO6.js} +8 -7
- package/dist/mock-dep-resolve-BSFBRPO6.js.map +6 -0
- package/dist/{mock-local-deps-EUL62AHI.js → mock-local-deps-6D73XVTZ.js} +6 -5
- package/dist/oauth-browser.d.ts +24 -0
- package/dist/{open-api-client-K2BEQBO3.js → open-api-client-L472YVI6.js} +4 -3
- package/dist/{remote-execute-BRXK2NIJ.js → remote-execute-J4SASOP2.js} +5 -4
- package/dist/remote-execute-J4SASOP2.js.map +6 -0
- package/dist/run-executor-VXPFKJ3K.js +27 -0
- package/dist/run-executor-VXPFKJ3K.js.map +6 -0
- package/dist/{setup-git-DCMWZYIG.js → setup-git-WDMOJAFN.js} +5 -4
- package/package.json +1 -1
- package/dist/chunk-2GSKFEWW.js.map +0 -6
- package/dist/chunk-AFGRPGHE.js.map +0 -6
- package/dist/chunk-LISUPAAK.js.map +0 -6
- package/dist/chunk-OWIJPBAX.js.map +0 -6
- package/dist/dev-command-NUN5HHRC.js.map +0 -6
- package/dist/git-credential-SL4Y6YKO.js.map +0 -6
- package/dist/local-execute-5J53ZM5Z.js.map +0 -6
- package/dist/mock-dep-resolve-QRMNGDHM.js.map +0 -6
- package/dist/remote-execute-BRXK2NIJ.js.map +0 -6
- /package/dist/{auth-YUFNOOTY.js.map → auth-KD6IT7RH.js.map} +0 -0
- /package/dist/{chunk-NRLXYJKW.js.map → chunk-3DASQK6N.js.map} +0 -0
- /package/dist/{chunk-OIXNZ63K.js.map → chunk-3PN6V3EX.js.map} +0 -0
- /package/dist/{chunk-BQOJGN24.js.map → chunk-F7MVIDV6.js.map} +0 -0
- /package/dist/{chunk-ZK52DY36.js.map → chunk-MU6NWE3A.js.map} +0 -0
- /package/dist/{chunk-SAK2XRKX.js.map → chunk-RETDMHIH.js.map} +0 -0
- /package/dist/{local-package-graph-7TEPDAGV.js.map → local-package-graph-657CN4KN.js.map} +0 -0
- /package/dist/{local-package-run-OPC7VXO3.js.map → local-package-run-C2XX2U5D.js.map} +0 -0
- /package/dist/{mock-local-deps-EUL62AHI.js.map → mock-local-deps-6D73XVTZ.js.map} +0 -0
- /package/dist/{open-api-client-K2BEQBO3.js.map → open-api-client-L472YVI6.js.map} +0 -0
- /package/dist/{setup-git-DCMWZYIG.js.map → setup-git-WDMOJAFN.js.map} +0 -0
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
userCacheDir
|
|
4
|
+
} from "./chunk-BML3W5CO.js";
|
|
2
5
|
import {
|
|
3
6
|
assertTokenSafeApiUrl,
|
|
4
7
|
capabilityProxyUrl,
|
|
@@ -7,10 +10,7 @@ import {
|
|
|
7
10
|
readInsufficientScopeDetails,
|
|
8
11
|
readPackageVersion,
|
|
9
12
|
rejectedApiTokenMessage
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import {
|
|
12
|
-
userCacheDir
|
|
13
|
-
} from "./chunk-BML3W5CO.js";
|
|
13
|
+
} from "./chunk-TZKZOMEA.js";
|
|
14
14
|
import {
|
|
15
15
|
formatUnreachableApiMessage,
|
|
16
16
|
requestSentStatus
|
|
@@ -333,6 +333,96 @@ var bakedOpenApiRoutes = [
|
|
|
333
333
|
pathTemplate: "/v1/execute",
|
|
334
334
|
pathParamNames: []
|
|
335
335
|
},
|
|
336
|
+
{
|
|
337
|
+
operationId: "executionChainGet",
|
|
338
|
+
method: "GET",
|
|
339
|
+
pathTemplate: "/v1/execution-chain",
|
|
340
|
+
pathParamNames: []
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
operationId: "executionChainSet",
|
|
344
|
+
method: "PUT",
|
|
345
|
+
pathTemplate: "/v1/execution-chain",
|
|
346
|
+
pathParamNames: []
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
operationId: "executionContextAttach",
|
|
350
|
+
method: "POST",
|
|
351
|
+
pathTemplate: "/v1/execution-contexts/{id}/attachments",
|
|
352
|
+
pathParamNames: ["id"]
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
operationId: "executionContextAuditList",
|
|
356
|
+
method: "GET",
|
|
357
|
+
pathTemplate: "/v1/execution-contexts/{id}/audit",
|
|
358
|
+
pathParamNames: ["id"]
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
operationId: "executionContextDetach",
|
|
362
|
+
method: "DELETE",
|
|
363
|
+
pathTemplate: "/v1/execution-contexts/{id}/attachments/{org_id}",
|
|
364
|
+
pathParamNames: ["id", "org_id"]
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
operationId: "executionContextGet",
|
|
368
|
+
method: "GET",
|
|
369
|
+
pathTemplate: "/v1/execution-contexts/{id}",
|
|
370
|
+
pathParamNames: ["id"]
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
operationId: "executionContextList",
|
|
374
|
+
method: "GET",
|
|
375
|
+
pathTemplate: "/v1/execution-contexts",
|
|
376
|
+
pathParamNames: []
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
operationId: "executionContextOptIn",
|
|
380
|
+
method: "POST",
|
|
381
|
+
pathTemplate: "/v1/execution-contexts/{id}/opt-in",
|
|
382
|
+
pathParamNames: ["id"]
|
|
383
|
+
},
|
|
384
|
+
{
|
|
385
|
+
operationId: "executionContextOptOut",
|
|
386
|
+
method: "DELETE",
|
|
387
|
+
pathTemplate: "/v1/execution-contexts/{id}/opt-in",
|
|
388
|
+
pathParamNames: ["id"]
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
operationId: "executionContextRevoke",
|
|
392
|
+
method: "DELETE",
|
|
393
|
+
pathTemplate: "/v1/execution-contexts/{id}",
|
|
394
|
+
pathParamNames: ["id"]
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
operationId: "executionContextRunList",
|
|
398
|
+
method: "GET",
|
|
399
|
+
pathTemplate: "/v1/execution-contexts/{id}/runs",
|
|
400
|
+
pathParamNames: ["id"]
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
operationId: "executionContextShareList",
|
|
404
|
+
method: "GET",
|
|
405
|
+
pathTemplate: "/v1/execution-contexts/{id}/sharing",
|
|
406
|
+
pathParamNames: ["id"]
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
operationId: "executionContextShareRemove",
|
|
410
|
+
method: "DELETE",
|
|
411
|
+
pathTemplate: "/v1/execution-contexts/{id}/sharing/{grant_id}",
|
|
412
|
+
pathParamNames: ["id", "grant_id"]
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
operationId: "executionContextShareSet",
|
|
416
|
+
method: "PUT",
|
|
417
|
+
pathTemplate: "/v1/execution-contexts/{id}/sharing",
|
|
418
|
+
pathParamNames: ["id"]
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
operationId: "executionContextUpdate",
|
|
422
|
+
method: "PATCH",
|
|
423
|
+
pathTemplate: "/v1/execution-contexts/{id}",
|
|
424
|
+
pathParamNames: ["id"]
|
|
425
|
+
},
|
|
336
426
|
{
|
|
337
427
|
operationId: "followAdd",
|
|
338
428
|
method: "POST",
|
|
@@ -1687,4 +1777,4 @@ export {
|
|
|
1687
1777
|
toolResultFromHttpBody,
|
|
1688
1778
|
whoamiWithApiToken
|
|
1689
1779
|
};
|
|
1690
|
-
//# sourceMappingURL=chunk-
|
|
1780
|
+
//# sourceMappingURL=chunk-AWDVFTR2.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/open-api-client.ts", "../src/generated/openapi-routes.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
isPairedApiUrl,
|
|
5
5
|
notAuthenticatedMessage,
|
|
6
6
|
resolveScopedApiToken
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-TZKZOMEA.js";
|
|
8
8
|
import {
|
|
9
9
|
defaultApiUrl,
|
|
10
10
|
defaultMcpUrl
|
|
@@ -30,7 +30,7 @@ async function resolveLocalExecuteBearer(input) {
|
|
|
30
30
|
`kody login credentials for ${mcpOrigin} are only sent to ${expectedPairedApiOrigin(mcpUrl)}. For ${apiOrigin}, run \`kody auth bootstrap --code \u2026 --api-url ${apiOrigin}\` or set KODY_API_TOKEN.`
|
|
31
31
|
);
|
|
32
32
|
}
|
|
33
|
-
const ensure = input.ensureCredentials ?? (await import("./auth-
|
|
33
|
+
const ensure = input.ensureCredentials ?? (await import("./auth-KD6IT7RH.js")).ensureFreshCredentials;
|
|
34
34
|
try {
|
|
35
35
|
const credentials = await ensure({
|
|
36
36
|
mcpUrl: input.mcpUrl,
|
|
@@ -51,4 +51,4 @@ async function resolveLocalExecuteBearer(input) {
|
|
|
51
51
|
export {
|
|
52
52
|
resolveLocalExecuteBearer
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=chunk-
|
|
54
|
+
//# sourceMappingURL=chunk-F7MVIDV6.js.map
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
-
import {
|
|
3
|
-
redactError
|
|
4
|
-
} from "./chunk-CASGRYOF.js";
|
|
5
2
|
import {
|
|
6
3
|
openUrl
|
|
7
4
|
} from "./chunk-GVSGNTG6.js";
|
|
8
5
|
import {
|
|
9
6
|
orgSlugFromFlag
|
|
10
7
|
} from "./chunk-CWWHR4FH.js";
|
|
8
|
+
import {
|
|
9
|
+
redactError
|
|
10
|
+
} from "./chunk-CASGRYOF.js";
|
|
11
11
|
import {
|
|
12
12
|
OpenApiError,
|
|
13
13
|
openApiGet,
|
|
14
14
|
openApiRequest
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-AWDVFTR2.js";
|
|
16
16
|
import {
|
|
17
17
|
isScopedApiToken,
|
|
18
18
|
notAuthenticatedMessage
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-TZKZOMEA.js";
|
|
20
20
|
import {
|
|
21
21
|
fileStorePath,
|
|
22
22
|
loadCredentialStore,
|
|
@@ -1520,6 +1520,58 @@ function validateAuthResponse(as, client, parameters, expectedState) {
|
|
|
1520
1520
|
}
|
|
1521
1521
|
return brand(new URLSearchParams(parameters));
|
|
1522
1522
|
}
|
|
1523
|
+
async function deviceAuthorizationRequest(as, client, clientAuthentication, parameters, options) {
|
|
1524
|
+
assertAs(as);
|
|
1525
|
+
assertClient(client);
|
|
1526
|
+
const url = resolveEndpoint(as, "device_authorization_endpoint", client.use_mtls_endpoint_aliases, options?.[allowInsecureRequests] !== true);
|
|
1527
|
+
const body = new URLSearchParams(parameters);
|
|
1528
|
+
body.set("client_id", client.client_id);
|
|
1529
|
+
const headers = prepareHeaders(options?.headers);
|
|
1530
|
+
headers.set("accept", "application/json");
|
|
1531
|
+
return authenticatedRequest(as, client, clientAuthentication, url, body, headers, options);
|
|
1532
|
+
}
|
|
1533
|
+
async function processDeviceAuthorizationResponse(as, client, response) {
|
|
1534
|
+
assertAs(as);
|
|
1535
|
+
assertClient(client);
|
|
1536
|
+
if (!looseInstanceOf(response, Response)) {
|
|
1537
|
+
throw CodedTypeError('"response" must be an instance of Response', ERR_INVALID_ARG_TYPE);
|
|
1538
|
+
}
|
|
1539
|
+
await checkOAuthBodyError(response, 200, "Device Authorization Endpoint");
|
|
1540
|
+
assertReadableResponse(response);
|
|
1541
|
+
const json = await getResponseJsonBody(response);
|
|
1542
|
+
assertString(json.device_code, '"response" body "device_code" property', INVALID_RESPONSE, {
|
|
1543
|
+
body: json
|
|
1544
|
+
});
|
|
1545
|
+
assertString(json.user_code, '"response" body "user_code" property', INVALID_RESPONSE, {
|
|
1546
|
+
body: json
|
|
1547
|
+
});
|
|
1548
|
+
assertString(json.verification_uri, '"response" body "verification_uri" property', INVALID_RESPONSE, { body: json });
|
|
1549
|
+
let expiresIn = typeof json.expires_in !== "number" ? parseFloat(json.expires_in) : json.expires_in;
|
|
1550
|
+
assertNumber(expiresIn, true, '"response" body "expires_in" property', INVALID_RESPONSE, {
|
|
1551
|
+
body: json
|
|
1552
|
+
});
|
|
1553
|
+
json.expires_in = expiresIn;
|
|
1554
|
+
if (json.verification_uri_complete !== void 0) {
|
|
1555
|
+
assertString(json.verification_uri_complete, '"response" body "verification_uri_complete" property', INVALID_RESPONSE, { body: json });
|
|
1556
|
+
}
|
|
1557
|
+
if (json.interval !== void 0) {
|
|
1558
|
+
assertNumber(json.interval, false, '"response" body "interval" property', INVALID_RESPONSE, {
|
|
1559
|
+
body: json
|
|
1560
|
+
});
|
|
1561
|
+
}
|
|
1562
|
+
return json;
|
|
1563
|
+
}
|
|
1564
|
+
async function deviceCodeGrantRequest(as, client, clientAuthentication, deviceCode, options) {
|
|
1565
|
+
assertAs(as);
|
|
1566
|
+
assertClient(client);
|
|
1567
|
+
assertString(deviceCode, '"deviceCode"');
|
|
1568
|
+
const parameters = new URLSearchParams(options?.additionalParameters);
|
|
1569
|
+
parameters.set("device_code", deviceCode);
|
|
1570
|
+
return tokenEndpointRequest(as, client, clientAuthentication, "urn:ietf:params:oauth:grant-type:device_code", parameters, options);
|
|
1571
|
+
}
|
|
1572
|
+
async function processDeviceCodeResponse(as, client, response, options) {
|
|
1573
|
+
return processGenericAccessTokenResponse(as, client, response, void 0, options?.[jweDecrypt], options?.recognizedTokenTypes);
|
|
1574
|
+
}
|
|
1523
1575
|
async function getResponseJsonBody(response, check = assertApplicationJson) {
|
|
1524
1576
|
let json;
|
|
1525
1577
|
try {
|
|
@@ -1651,6 +1703,91 @@ async function createPkcePair() {
|
|
|
1651
1703
|
const challenge = await calculatePKCECodeChallenge(verifier);
|
|
1652
1704
|
return { verifier, challenge };
|
|
1653
1705
|
}
|
|
1706
|
+
async function startDeviceAuthorization(input) {
|
|
1707
|
+
if (!input.authorizationServer.device_authorization_endpoint) {
|
|
1708
|
+
throw new Error(
|
|
1709
|
+
"This Kody server does not support `kody login --device` yet. Use `kody login` instead."
|
|
1710
|
+
);
|
|
1711
|
+
}
|
|
1712
|
+
const client = cliOAuthClient(input.mcpUrl);
|
|
1713
|
+
const parameters = new URLSearchParams();
|
|
1714
|
+
parameters.set("scope", input.scope ?? defaultScopes.join(" "));
|
|
1715
|
+
parameters.set("resource", input.mcpUrl);
|
|
1716
|
+
if (input.org !== void 0) parameters.set("org", orgSlugFromFlag(input.org));
|
|
1717
|
+
const response = await deviceAuthorizationRequest(
|
|
1718
|
+
input.authorizationServer,
|
|
1719
|
+
client,
|
|
1720
|
+
None(),
|
|
1721
|
+
parameters,
|
|
1722
|
+
{
|
|
1723
|
+
...insecure(input.authorizationServer.issuer),
|
|
1724
|
+
[customFetch]: fetchFrom(input.fetchFn)
|
|
1725
|
+
}
|
|
1726
|
+
);
|
|
1727
|
+
return processDeviceAuthorizationResponse(
|
|
1728
|
+
input.authorizationServer,
|
|
1729
|
+
client,
|
|
1730
|
+
response
|
|
1731
|
+
);
|
|
1732
|
+
}
|
|
1733
|
+
function deviceGrantErrorMessage(code) {
|
|
1734
|
+
switch (code) {
|
|
1735
|
+
case "access_denied":
|
|
1736
|
+
return "The sign-in was denied in the browser. Run `kody login --device` to try again.";
|
|
1737
|
+
case "expired_token":
|
|
1738
|
+
return "The sign-in code expired before it was approved. Run `kody login --device` to get a new code.";
|
|
1739
|
+
case "invalid_grant":
|
|
1740
|
+
return "The sign-in code is no longer valid. Run `kody login --device` to get a new code.";
|
|
1741
|
+
case "unauthorized_client":
|
|
1742
|
+
return "This Kody server does not allow device sign-in for the CLI.";
|
|
1743
|
+
default:
|
|
1744
|
+
return null;
|
|
1745
|
+
}
|
|
1746
|
+
}
|
|
1747
|
+
async function pollDeviceAuthorization(input) {
|
|
1748
|
+
const client = cliOAuthClient(input.mcpUrl);
|
|
1749
|
+
const now = input.now ?? Date.now;
|
|
1750
|
+
const sleep = input.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
|
|
1751
|
+
const deadline = now() + input.expiresInSeconds * 1e3;
|
|
1752
|
+
let intervalSeconds = Math.max(5, input.intervalSeconds);
|
|
1753
|
+
const resource = new URLSearchParams();
|
|
1754
|
+
resource.set("resource", input.mcpUrl);
|
|
1755
|
+
while (true) {
|
|
1756
|
+
await sleep(intervalSeconds * 1e3);
|
|
1757
|
+
if (now() >= deadline) {
|
|
1758
|
+
throw new Error(deviceGrantErrorMessage("expired_token") ?? "expired");
|
|
1759
|
+
}
|
|
1760
|
+
const response = await deviceCodeGrantRequest(
|
|
1761
|
+
input.authorizationServer,
|
|
1762
|
+
client,
|
|
1763
|
+
None(),
|
|
1764
|
+
input.deviceCode,
|
|
1765
|
+
{
|
|
1766
|
+
...insecure(input.authorizationServer.issuer),
|
|
1767
|
+
[customFetch]: fetchFrom(input.fetchFn),
|
|
1768
|
+
additionalParameters: resource
|
|
1769
|
+
}
|
|
1770
|
+
);
|
|
1771
|
+
try {
|
|
1772
|
+
const tokens = await processDeviceCodeResponse(
|
|
1773
|
+
input.authorizationServer,
|
|
1774
|
+
client,
|
|
1775
|
+
response
|
|
1776
|
+
);
|
|
1777
|
+
return tokenSetFromResult(input.authorizationServer.issuer, tokens);
|
|
1778
|
+
} catch (error) {
|
|
1779
|
+
if (!(error instanceof ResponseBodyError)) throw error;
|
|
1780
|
+
if (error.error === "authorization_pending") continue;
|
|
1781
|
+
if (error.error === "slow_down") {
|
|
1782
|
+
intervalSeconds += 5;
|
|
1783
|
+
continue;
|
|
1784
|
+
}
|
|
1785
|
+
throw new Error(
|
|
1786
|
+
deviceGrantErrorMessage(error.error) ?? `Device sign-in failed: ${error.error_description ?? error.error}`
|
|
1787
|
+
);
|
|
1788
|
+
}
|
|
1789
|
+
}
|
|
1790
|
+
}
|
|
1654
1791
|
|
|
1655
1792
|
// src/auth.ts
|
|
1656
1793
|
function isAccessTokenExpired(credentials, now = Date.now()) {
|
|
@@ -1876,7 +2013,7 @@ function startCallbackServer(redirectUri) {
|
|
|
1876
2013
|
if ("code" in error && error.code === "EADDRINUSE") {
|
|
1877
2014
|
reject(
|
|
1878
2015
|
new Error(
|
|
1879
|
-
`Login callback port ${port} is in use. Stop the other listener and retry.`
|
|
2016
|
+
`Login callback port ${port} is in use. Stop the other listener and retry, or run \`kody login --device\`, which needs no local port.`
|
|
1880
2017
|
)
|
|
1881
2018
|
);
|
|
1882
2019
|
return;
|
|
@@ -1968,6 +2105,81 @@ function waitForCallback(input) {
|
|
|
1968
2105
|
);
|
|
1969
2106
|
});
|
|
1970
2107
|
}
|
|
2108
|
+
async function finishLoginWithOAuthTokens(input) {
|
|
2109
|
+
const { options, mcpUrl, apiUrl, orgHint, credentialDir, tokens } = input;
|
|
2110
|
+
const device = await mintDeviceToken({
|
|
2111
|
+
apiUrl,
|
|
2112
|
+
oauthAccessToken: tokens.accessToken,
|
|
2113
|
+
lifetime: options.lifetime ?? "long",
|
|
2114
|
+
fetchFn: options.fetchFn
|
|
2115
|
+
});
|
|
2116
|
+
let org = device.loginOrg ?? orgHint;
|
|
2117
|
+
let account;
|
|
2118
|
+
const discover = options.discoverIdentity ?? discoverLoginIdentity;
|
|
2119
|
+
try {
|
|
2120
|
+
const boundOrg = org;
|
|
2121
|
+
const identity = await discover({
|
|
2122
|
+
mcpUrl,
|
|
2123
|
+
apiUrl,
|
|
2124
|
+
accessToken: device.token,
|
|
2125
|
+
fetchFn: options.fetchFn,
|
|
2126
|
+
...boundOrg ? { org: boundOrg } : {}
|
|
2127
|
+
});
|
|
2128
|
+
if (orgHint && identity.org !== orgHint) {
|
|
2129
|
+
input.fail("failed");
|
|
2130
|
+
throw new Error(
|
|
2131
|
+
`Login was bound to org "${identity.org}" but \`--org ${orgHint}\` was requested.`
|
|
2132
|
+
);
|
|
2133
|
+
}
|
|
2134
|
+
org = identity.org;
|
|
2135
|
+
account = identity.account;
|
|
2136
|
+
} catch (error) {
|
|
2137
|
+
if (error instanceof Error && error.message.startsWith("Login was bound to org ")) {
|
|
2138
|
+
throw error;
|
|
2139
|
+
}
|
|
2140
|
+
if (!org) {
|
|
2141
|
+
const existing = loadCredentialStore(
|
|
2142
|
+
mcpUrl,
|
|
2143
|
+
options.backend,
|
|
2144
|
+
options.resolution
|
|
2145
|
+
);
|
|
2146
|
+
if (existing && Object.keys(existing.orgs).length > 0) {
|
|
2147
|
+
input.fail("failed");
|
|
2148
|
+
throw new Error(
|
|
2149
|
+
"Could not determine the organization for this login. Re-run with `kody login --org <slug>`."
|
|
2150
|
+
);
|
|
2151
|
+
}
|
|
2152
|
+
}
|
|
2153
|
+
}
|
|
2154
|
+
const credentials = deviceCredentials({
|
|
2155
|
+
mcpUrl,
|
|
2156
|
+
apiUrl,
|
|
2157
|
+
authorizationServerUrl: tokens.issuer,
|
|
2158
|
+
token: device.token,
|
|
2159
|
+
expiresAt: device.expiresAt,
|
|
2160
|
+
scopes: device.scopes,
|
|
2161
|
+
org
|
|
2162
|
+
});
|
|
2163
|
+
let saved;
|
|
2164
|
+
try {
|
|
2165
|
+
saved = saveCredentials(credentials, options.backend, options.resolution);
|
|
2166
|
+
} catch (error) {
|
|
2167
|
+
input.fail("save_failed");
|
|
2168
|
+
if (isCredentialFolderError(error)) {
|
|
2169
|
+
throw new CredentialDirError({
|
|
2170
|
+
dir: credentialDir ?? credentialDirFor(mcpUrl, options.resolution),
|
|
2171
|
+
cause: redactError(error),
|
|
2172
|
+
phase: "save",
|
|
2173
|
+
...options.platform ? { platform: options.platform } : {}
|
|
2174
|
+
});
|
|
2175
|
+
}
|
|
2176
|
+
throw new Error(
|
|
2177
|
+
`You approved the sign-in, but Kody could not save it on this computer. What went wrong: ${redactError(error).message}`,
|
|
2178
|
+
{ cause: error }
|
|
2179
|
+
);
|
|
2180
|
+
}
|
|
2181
|
+
return { credentials, saved, org, account };
|
|
2182
|
+
}
|
|
1971
2183
|
async function login(options = {}) {
|
|
1972
2184
|
const mcpUrl = options.mcpUrl ?? defaultMcpUrl;
|
|
1973
2185
|
const apiUrl = options.apiUrl ?? defaultApiUrl;
|
|
@@ -2028,80 +2240,19 @@ async function login(options = {}) {
|
|
|
2028
2240
|
codeVerifier: pkce.verifier,
|
|
2029
2241
|
fetchFn: options.fetchFn
|
|
2030
2242
|
});
|
|
2031
|
-
const
|
|
2243
|
+
const finished = await finishLoginWithOAuthTokens({
|
|
2244
|
+
options,
|
|
2245
|
+
mcpUrl,
|
|
2032
2246
|
apiUrl,
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
let account;
|
|
2039
|
-
const discover = options.discoverIdentity ?? discoverLoginIdentity;
|
|
2040
|
-
try {
|
|
2041
|
-
const boundOrg = org;
|
|
2042
|
-
const identity = await discover({
|
|
2043
|
-
mcpUrl,
|
|
2044
|
-
apiUrl,
|
|
2045
|
-
accessToken: device.token,
|
|
2046
|
-
fetchFn: options.fetchFn,
|
|
2047
|
-
...boundOrg ? { org: boundOrg } : {}
|
|
2048
|
-
});
|
|
2049
|
-
if (orgHint && identity.org !== orgHint) {
|
|
2050
|
-
completeCallback?.({ kind: "error", error: "failed" });
|
|
2247
|
+
orgHint,
|
|
2248
|
+
credentialDir,
|
|
2249
|
+
tokens,
|
|
2250
|
+
fail: (error) => {
|
|
2251
|
+
completeCallback?.({ kind: "error", error });
|
|
2051
2252
|
completeCallback = void 0;
|
|
2052
|
-
throw new Error(
|
|
2053
|
-
`Login was bound to org "${identity.org}" but \`--org ${orgHint}\` was requested.`
|
|
2054
|
-
);
|
|
2055
2253
|
}
|
|
2056
|
-
org = identity.org;
|
|
2057
|
-
account = identity.account;
|
|
2058
|
-
} catch (error) {
|
|
2059
|
-
if (error instanceof Error && error.message.startsWith("Login was bound to org ")) {
|
|
2060
|
-
throw error;
|
|
2061
|
-
}
|
|
2062
|
-
if (!org) {
|
|
2063
|
-
const existing = loadCredentialStore(
|
|
2064
|
-
mcpUrl,
|
|
2065
|
-
options.backend,
|
|
2066
|
-
options.resolution
|
|
2067
|
-
);
|
|
2068
|
-
if (existing && Object.keys(existing.orgs).length > 0) {
|
|
2069
|
-
completeCallback?.({ kind: "error", error: "failed" });
|
|
2070
|
-
completeCallback = void 0;
|
|
2071
|
-
throw new Error(
|
|
2072
|
-
"Could not determine the organization for this login. Re-run with `kody login --org <slug>`."
|
|
2073
|
-
);
|
|
2074
|
-
}
|
|
2075
|
-
}
|
|
2076
|
-
}
|
|
2077
|
-
const credentials = deviceCredentials({
|
|
2078
|
-
mcpUrl,
|
|
2079
|
-
apiUrl,
|
|
2080
|
-
authorizationServerUrl: tokens.issuer,
|
|
2081
|
-
token: device.token,
|
|
2082
|
-
expiresAt: device.expiresAt,
|
|
2083
|
-
scopes: device.scopes,
|
|
2084
|
-
org
|
|
2085
2254
|
});
|
|
2086
|
-
|
|
2087
|
-
try {
|
|
2088
|
-
saved = saveCredentials(credentials, options.backend, options.resolution);
|
|
2089
|
-
} catch (error) {
|
|
2090
|
-
completeCallback?.({ kind: "error", error: "save_failed" });
|
|
2091
|
-
completeCallback = void 0;
|
|
2092
|
-
if (isCredentialFolderError(error)) {
|
|
2093
|
-
throw new CredentialDirError({
|
|
2094
|
-
dir: credentialDir ?? credentialDirFor(mcpUrl, options.resolution),
|
|
2095
|
-
cause: redactError(error),
|
|
2096
|
-
phase: "save",
|
|
2097
|
-
...options.platform ? { platform: options.platform } : {}
|
|
2098
|
-
});
|
|
2099
|
-
}
|
|
2100
|
-
throw new Error(
|
|
2101
|
-
`You approved the sign-in, but Kody could not save it on this computer. What went wrong: ${redactError(error).message}`,
|
|
2102
|
-
{ cause: error }
|
|
2103
|
-
);
|
|
2104
|
-
}
|
|
2255
|
+
const { credentials, saved, org, account } = finished;
|
|
2105
2256
|
completeCallback?.({
|
|
2106
2257
|
kind: "success",
|
|
2107
2258
|
...org ? { org } : {},
|
|
@@ -2122,6 +2273,68 @@ async function login(options = {}) {
|
|
|
2122
2273
|
throw redactError(error);
|
|
2123
2274
|
}
|
|
2124
2275
|
}
|
|
2276
|
+
async function loginWithDevice(options = {}) {
|
|
2277
|
+
const mcpUrl = options.mcpUrl ?? defaultMcpUrl;
|
|
2278
|
+
const apiUrl = options.apiUrl ?? defaultApiUrl;
|
|
2279
|
+
const orgHint = options.org === void 0 ? void 0 : orgSlugFromFlag(options.org);
|
|
2280
|
+
const credentialDir = options.backend?.kind === "file" && options.backend.path ? dirname2(options.backend.path) : options.backend ? void 0 : credentialDirFor(mcpUrl, options.resolution);
|
|
2281
|
+
if (credentialDir) {
|
|
2282
|
+
ensureCredentialDirWritable(
|
|
2283
|
+
credentialDir,
|
|
2284
|
+
options.platform ? { platform: options.platform } : {}
|
|
2285
|
+
);
|
|
2286
|
+
}
|
|
2287
|
+
try {
|
|
2288
|
+
const authorizationServer = await discoverCliAuthorizationServer({
|
|
2289
|
+
issuer: new URL(new URL(mcpUrl).origin),
|
|
2290
|
+
fetchFn: options.fetchFn
|
|
2291
|
+
});
|
|
2292
|
+
const started = await startDeviceAuthorization({
|
|
2293
|
+
authorizationServer,
|
|
2294
|
+
mcpUrl,
|
|
2295
|
+
...orgHint ? { org: orgHint } : {},
|
|
2296
|
+
fetchFn: options.fetchFn
|
|
2297
|
+
});
|
|
2298
|
+
options.onDeviceCode?.({
|
|
2299
|
+
userCode: started.user_code,
|
|
2300
|
+
verificationUri: started.verification_uri,
|
|
2301
|
+
...started.verification_uri_complete ? { verificationUriComplete: started.verification_uri_complete } : {},
|
|
2302
|
+
expiresIn: started.expires_in
|
|
2303
|
+
});
|
|
2304
|
+
const tokens = await pollDeviceAuthorization({
|
|
2305
|
+
authorizationServer,
|
|
2306
|
+
mcpUrl,
|
|
2307
|
+
deviceCode: started.device_code,
|
|
2308
|
+
intervalSeconds: started.interval ?? 5,
|
|
2309
|
+
expiresInSeconds: Math.min(
|
|
2310
|
+
started.expires_in,
|
|
2311
|
+
Math.ceil((options.timeoutMs ?? started.expires_in * 1e3) / 1e3)
|
|
2312
|
+
),
|
|
2313
|
+
fetchFn: options.fetchFn,
|
|
2314
|
+
...options.now ? { now: options.now } : {},
|
|
2315
|
+
...options.sleep ? { sleep: options.sleep } : {}
|
|
2316
|
+
});
|
|
2317
|
+
const { credentials, saved, org, account } = await finishLoginWithOAuthTokens({
|
|
2318
|
+
options,
|
|
2319
|
+
mcpUrl,
|
|
2320
|
+
apiUrl,
|
|
2321
|
+
orgHint,
|
|
2322
|
+
credentialDir,
|
|
2323
|
+
tokens,
|
|
2324
|
+
fail: () => {
|
|
2325
|
+
}
|
|
2326
|
+
});
|
|
2327
|
+
return {
|
|
2328
|
+
credentials,
|
|
2329
|
+
backendKind: saved.backend.kind,
|
|
2330
|
+
backendPath: saved.backend.path,
|
|
2331
|
+
...org ? { org } : {},
|
|
2332
|
+
...account ? { account } : {}
|
|
2333
|
+
};
|
|
2334
|
+
} catch (error) {
|
|
2335
|
+
throw redactError(error);
|
|
2336
|
+
}
|
|
2337
|
+
}
|
|
2125
2338
|
|
|
2126
2339
|
export {
|
|
2127
2340
|
isAccessTokenExpired,
|
|
@@ -2130,6 +2343,7 @@ export {
|
|
|
2130
2343
|
resolvePendingOrgSlug,
|
|
2131
2344
|
ensureFreshCredentials,
|
|
2132
2345
|
ensureOpenApiCredentials,
|
|
2133
|
-
login
|
|
2346
|
+
login,
|
|
2347
|
+
loginWithDevice
|
|
2134
2348
|
};
|
|
2135
|
-
//# sourceMappingURL=chunk-
|
|
2349
|
+
//# sourceMappingURL=chunk-FB6I4T2J.js.map
|