@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.
Files changed (73) hide show
  1. package/README.md +23 -1
  2. package/dist/{auth-YUFNOOTY.js → auth-KD6IT7RH.js} +8 -5
  3. package/dist/auth.d.ts +24 -0
  4. package/dist/bin.js +10 -9
  5. package/dist/bin.js.map +1 -1
  6. package/dist/{chunk-AFGRPGHE.js → chunk-2DCCAVPD.js} +159 -65
  7. package/dist/chunk-2DCCAVPD.js.map +6 -0
  8. package/dist/{chunk-NRLXYJKW.js → chunk-3DASQK6N.js} +3 -3
  9. package/dist/{chunk-OIXNZ63K.js → chunk-3PN6V3EX.js} +13 -13
  10. package/dist/chunk-AED3YBAI.js +355 -0
  11. package/dist/chunk-AED3YBAI.js.map +6 -0
  12. package/dist/{chunk-2GSKFEWW.js → chunk-AWDVFTR2.js} +95 -5
  13. package/dist/chunk-AWDVFTR2.js.map +6 -0
  14. package/dist/{chunk-BQOJGN24.js → chunk-F7MVIDV6.js} +3 -3
  15. package/dist/{chunk-2XSV546S.js → chunk-FB6I4T2J.js} +292 -78
  16. package/dist/{chunk-2XSV546S.js.map → chunk-FB6I4T2J.js.map} +1 -1
  17. package/dist/{chunk-ZK52DY36.js → chunk-MU6NWE3A.js} +6 -6
  18. package/dist/{chunk-SAK2XRKX.js → chunk-RETDMHIH.js} +3 -3
  19. package/dist/chunk-S3KLKZ4C.js +124 -0
  20. package/dist/chunk-S3KLKZ4C.js.map +6 -0
  21. package/dist/{chunk-LISUPAAK.js → chunk-TZKZOMEA.js} +5 -117
  22. package/dist/chunk-TZKZOMEA.js.map +6 -0
  23. package/dist/{chunk-OWIJPBAX.js → chunk-Y6JYX35N.js} +6 -4
  24. package/dist/chunk-Y6JYX35N.js.map +6 -0
  25. package/dist/cli.d.ts +4 -1
  26. package/dist/cli.js +11 -10
  27. package/dist/commands-RPUZAOAB.js +806 -0
  28. package/dist/commands-RPUZAOAB.js.map +6 -0
  29. package/dist/{dev-command-NUN5HHRC.js → dev-command-Y2TN23BI.js} +28 -27
  30. package/dist/dev-command-Y2TN23BI.js.map +6 -0
  31. package/dist/execution-context/client.d.ts +89 -0
  32. package/dist/execution-context/commands.d.ts +26 -0
  33. package/dist/execution-context/daemon.d.ts +47 -0
  34. package/dist/execution-context/keystore.d.ts +58 -0
  35. package/dist/execution-context/run-executor.d.ts +20 -0
  36. package/dist/{git-credential-SL4Y6YKO.js → git-credential-WTF6ZIL4.js} +8 -7
  37. package/dist/git-credential-WTF6ZIL4.js.map +6 -0
  38. package/dist/{local-execute-5J53ZM5Z.js → local-execute-3H2ROHTP.js} +14 -13
  39. package/dist/local-execute-3H2ROHTP.js.map +6 -0
  40. package/dist/{local-package-graph-7TEPDAGV.js → local-package-graph-657CN4KN.js} +4 -3
  41. package/dist/{local-package-run-OPC7VXO3.js → local-package-run-C2XX2U5D.js} +10 -9
  42. package/dist/login-notice.d.ts +28 -1
  43. package/dist/{mock-dep-resolve-QRMNGDHM.js → mock-dep-resolve-BSFBRPO6.js} +8 -7
  44. package/dist/mock-dep-resolve-BSFBRPO6.js.map +6 -0
  45. package/dist/{mock-local-deps-EUL62AHI.js → mock-local-deps-6D73XVTZ.js} +6 -5
  46. package/dist/oauth-browser.d.ts +24 -0
  47. package/dist/{open-api-client-K2BEQBO3.js → open-api-client-L472YVI6.js} +4 -3
  48. package/dist/{remote-execute-BRXK2NIJ.js → remote-execute-J4SASOP2.js} +5 -4
  49. package/dist/remote-execute-J4SASOP2.js.map +6 -0
  50. package/dist/run-executor-VXPFKJ3K.js +27 -0
  51. package/dist/run-executor-VXPFKJ3K.js.map +6 -0
  52. package/dist/{setup-git-DCMWZYIG.js → setup-git-WDMOJAFN.js} +5 -4
  53. package/package.json +1 -1
  54. package/dist/chunk-2GSKFEWW.js.map +0 -6
  55. package/dist/chunk-AFGRPGHE.js.map +0 -6
  56. package/dist/chunk-LISUPAAK.js.map +0 -6
  57. package/dist/chunk-OWIJPBAX.js.map +0 -6
  58. package/dist/dev-command-NUN5HHRC.js.map +0 -6
  59. package/dist/git-credential-SL4Y6YKO.js.map +0 -6
  60. package/dist/local-execute-5J53ZM5Z.js.map +0 -6
  61. package/dist/mock-dep-resolve-QRMNGDHM.js.map +0 -6
  62. package/dist/remote-execute-BRXK2NIJ.js.map +0 -6
  63. /package/dist/{auth-YUFNOOTY.js.map → auth-KD6IT7RH.js.map} +0 -0
  64. /package/dist/{chunk-NRLXYJKW.js.map → chunk-3DASQK6N.js.map} +0 -0
  65. /package/dist/{chunk-OIXNZ63K.js.map → chunk-3PN6V3EX.js.map} +0 -0
  66. /package/dist/{chunk-BQOJGN24.js.map → chunk-F7MVIDV6.js.map} +0 -0
  67. /package/dist/{chunk-ZK52DY36.js.map → chunk-MU6NWE3A.js.map} +0 -0
  68. /package/dist/{chunk-SAK2XRKX.js.map → chunk-RETDMHIH.js.map} +0 -0
  69. /package/dist/{local-package-graph-7TEPDAGV.js.map → local-package-graph-657CN4KN.js.map} +0 -0
  70. /package/dist/{local-package-run-OPC7VXO3.js.map → local-package-run-C2XX2U5D.js.map} +0 -0
  71. /package/dist/{mock-local-deps-EUL62AHI.js.map → mock-local-deps-6D73XVTZ.js.map} +0 -0
  72. /package/dist/{open-api-client-K2BEQBO3.js.map → open-api-client-L472YVI6.js.map} +0 -0
  73. /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-LISUPAAK.js";
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-2GSKFEWW.js.map
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-LISUPAAK.js";
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-YUFNOOTY.js")).ensureFreshCredentials;
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-BQOJGN24.js.map
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-2GSKFEWW.js";
15
+ } from "./chunk-AWDVFTR2.js";
16
16
  import {
17
17
  isScopedApiToken,
18
18
  notAuthenticatedMessage
19
- } from "./chunk-LISUPAAK.js";
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 device = await mintDeviceToken({
2243
+ const finished = await finishLoginWithOAuthTokens({
2244
+ options,
2245
+ mcpUrl,
2032
2246
  apiUrl,
2033
- oauthAccessToken: tokens.accessToken,
2034
- lifetime: options.lifetime ?? "long",
2035
- fetchFn: options.fetchFn
2036
- });
2037
- let org = device.loginOrg ?? orgHint;
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
- let saved;
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-2XSV546S.js.map
2349
+ //# sourceMappingURL=chunk-FB6I4T2J.js.map