@kodycodes/cli 1.26.1 → 1.26.3

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 (271) hide show
  1. package/dist/auth-4FW6GCLG.js +26 -0
  2. package/dist/auth-4FW6GCLG.js.map +6 -0
  3. package/dist/bin.js +27 -3
  4. package/dist/bin.js.map +6 -1
  5. package/dist/chunk-46IJPEID.js +30 -0
  6. package/dist/chunk-46IJPEID.js.map +6 -0
  7. package/dist/chunk-4D6ORNXY.js +24404 -0
  8. package/dist/chunk-4D6ORNXY.js.map +6 -0
  9. package/dist/chunk-64IM6G4Z.js +341 -0
  10. package/dist/chunk-64IM6G4Z.js.map +6 -0
  11. package/dist/{package-local-runtime-source.js → chunk-64XN367G.js} +373 -52
  12. package/dist/chunk-64XN367G.js.map +6 -0
  13. package/dist/chunk-6XQP5SWX.js +26 -0
  14. package/dist/chunk-6XQP5SWX.js.map +6 -0
  15. package/dist/chunk-75RZUXQL.js +62 -0
  16. package/dist/chunk-75RZUXQL.js.map +6 -0
  17. package/dist/chunk-BISUL7CE.js +106 -0
  18. package/dist/chunk-BISUL7CE.js.map +6 -0
  19. package/dist/chunk-BPGY4IE7.js +57 -0
  20. package/dist/chunk-BPGY4IE7.js.map +6 -0
  21. package/dist/chunk-CASGRYOF.js +21 -0
  22. package/dist/chunk-CASGRYOF.js.map +6 -0
  23. package/dist/chunk-CWWHR4FH.js +19 -0
  24. package/dist/chunk-CWWHR4FH.js.map +6 -0
  25. package/dist/chunk-D55XPY3T.js +1382 -0
  26. package/dist/chunk-D55XPY3T.js.map +6 -0
  27. package/dist/chunk-EOCV74B2.js +948 -0
  28. package/dist/chunk-EOCV74B2.js.map +6 -0
  29. package/dist/chunk-FBVNFWR6.js +437 -0
  30. package/dist/chunk-FBVNFWR6.js.map +6 -0
  31. package/dist/chunk-G4YN6XP5.js +14 -0
  32. package/dist/chunk-G4YN6XP5.js.map +6 -0
  33. package/dist/chunk-G6LJWROP.js +18 -0
  34. package/dist/chunk-G6LJWROP.js.map +6 -0
  35. package/dist/chunk-IHP6PV6X.js +49 -0
  36. package/dist/chunk-IHP6PV6X.js.map +6 -0
  37. package/dist/chunk-JWEFKKAD.js +24 -0
  38. package/dist/chunk-JWEFKKAD.js.map +6 -0
  39. package/dist/chunk-LWNB26KO.js +147 -0
  40. package/dist/chunk-LWNB26KO.js.map +6 -0
  41. package/dist/chunk-OVGXPRSY.js +20 -0
  42. package/dist/chunk-OVGXPRSY.js.map +6 -0
  43. package/dist/chunk-PDWCKWQF.js +453 -0
  44. package/dist/chunk-PDWCKWQF.js.map +6 -0
  45. package/dist/chunk-QHBCP4OB.js +44 -0
  46. package/dist/chunk-QHBCP4OB.js.map +6 -0
  47. package/dist/chunk-R4IUV5P5.js +664 -0
  48. package/dist/chunk-R4IUV5P5.js.map +6 -0
  49. package/dist/chunk-RM34N3KI.js +525 -0
  50. package/dist/chunk-RM34N3KI.js.map +6 -0
  51. package/dist/chunk-RTWUNV76.js +309 -0
  52. package/dist/chunk-RTWUNV76.js.map +6 -0
  53. package/dist/chunk-SMURF26I.js +23 -0
  54. package/dist/chunk-SMURF26I.js.map +6 -0
  55. package/dist/chunk-SXHULGL4.js +426 -0
  56. package/dist/chunk-SXHULGL4.js.map +6 -0
  57. package/dist/chunk-TIL35OWA.js +1959 -0
  58. package/dist/chunk-TIL35OWA.js.map +6 -0
  59. package/dist/chunk-VQS5YSCI.js +54 -0
  60. package/dist/chunk-VQS5YSCI.js.map +6 -0
  61. package/dist/chunk-XDCOWU5R.js +696 -0
  62. package/dist/chunk-XDCOWU5R.js.map +6 -0
  63. package/dist/chunk-XOPPGRUP.js +605 -0
  64. package/dist/chunk-XOPPGRUP.js.map +6 -0
  65. package/dist/cli.js +74 -1500
  66. package/dist/cli.js.map +6 -1
  67. package/dist/dev/dev-watcher.d.ts +5 -1
  68. package/dist/dev-command-3LX234N6.js +4900 -0
  69. package/dist/dev-command-3LX234N6.js.map +6 -0
  70. package/dist/git-credential-FUE3JE3T.js +163 -0
  71. package/dist/git-credential-FUE3JE3T.js.map +6 -0
  72. package/dist/install-ZML2TCDG.js +10694 -0
  73. package/dist/install-ZML2TCDG.js.map +6 -0
  74. package/dist/local-execute-SZV6XN4T.js +368 -0
  75. package/dist/local-execute-SZV6XN4T.js.map +6 -0
  76. package/dist/local-package-run-2TMCAZZ2.js +23 -0
  77. package/dist/local-package-run-2TMCAZZ2.js.map +6 -0
  78. package/dist/mcp-G2AWTIXR.js +21 -0
  79. package/dist/mcp-G2AWTIXR.js.map +6 -0
  80. package/dist/mock-dep-resolve-TVABDNR7.js +52 -0
  81. package/dist/mock-dep-resolve-TVABDNR7.js.map +6 -0
  82. package/dist/mock-fetch-gateway-B5TFGGQS.js +34 -0
  83. package/dist/mock-fetch-gateway-B5TFGGQS.js.map +6 -0
  84. package/dist/mock-local-deps-5SZT3PWT.js +197 -0
  85. package/dist/mock-local-deps-5SZT3PWT.js.map +6 -0
  86. package/dist/mock-server-SV2IKC4I.js +21 -0
  87. package/dist/mock-server-SV2IKC4I.js.map +6 -0
  88. package/dist/open-api-client-DVVMLY7P.js +42 -0
  89. package/dist/open-api-client-DVVMLY7P.js.map +6 -0
  90. package/dist/org-X7B5BI4R.js +132 -0
  91. package/dist/org-X7B5BI4R.js.map +6 -0
  92. package/dist/package-manifest-QH2RU64C.js +14 -0
  93. package/dist/package-manifest-QH2RU64C.js.map +6 -0
  94. package/dist/remote-execute-QMQDVHOY.js +110 -0
  95. package/dist/remote-execute-QMQDVHOY.js.map +6 -0
  96. package/dist/setup-git-5KCUBYPB.js +88 -0
  97. package/dist/setup-git-5KCUBYPB.js.map +6 -0
  98. package/dist/skill-ENPATRIW.js +43 -0
  99. package/dist/skill-ENPATRIW.js.map +6 -0
  100. package/dist/store-WTMRH527.js +48 -0
  101. package/dist/store-WTMRH527.js.map +6 -0
  102. package/dist/structured-error-C65GQ53Z.js +13 -0
  103. package/dist/structured-error-C65GQ53Z.js.map +6 -0
  104. package/dist/target-3QHY7JT4.js +45 -0
  105. package/dist/target-3QHY7JT4.js.map +6 -0
  106. package/dist/webapi-NTVP4BO3.js +2482 -0
  107. package/dist/webapi-NTVP4BO3.js.map +6 -0
  108. package/package.json +8 -8
  109. package/dist/add-mcp-install.js +0 -59
  110. package/dist/add-mcp-install.js.map +0 -1
  111. package/dist/api-token-store.js +0 -120
  112. package/dist/api-token-store.js.map +0 -1
  113. package/dist/api-token.js +0 -238
  114. package/dist/api-token.js.map +0 -1
  115. package/dist/auth-bootstrap.js +0 -373
  116. package/dist/auth-bootstrap.js.map +0 -1
  117. package/dist/auth.js +0 -386
  118. package/dist/auth.js.map +0 -1
  119. package/dist/capability-proxy.js +0 -527
  120. package/dist/capability-proxy.js.map +0 -1
  121. package/dist/credential-call-map.js +0 -155
  122. package/dist/credential-call-map.js.map +0 -1
  123. package/dist/credential-client-runtime-source.js +0 -9
  124. package/dist/credential-client-runtime-source.js.map +0 -1
  125. package/dist/credentialed-fetch-scan.js +0 -98
  126. package/dist/credentialed-fetch-scan.js.map +0 -1
  127. package/dist/defaults.js +0 -34
  128. package/dist/defaults.js.map +0 -1
  129. package/dist/detect-running-hosts.js +0 -13
  130. package/dist/detect-running-hosts.js.map +0 -1
  131. package/dist/dev/dev-assets.js +0 -202
  132. package/dist/dev/dev-assets.js.map +0 -1
  133. package/dist/dev/dev-bundler.js +0 -65
  134. package/dist/dev/dev-bundler.js.map +0 -1
  135. package/dist/dev/dev-events.js +0 -94
  136. package/dist/dev/dev-events.js.map +0 -1
  137. package/dist/dev/dev-port.js +0 -80
  138. package/dist/dev/dev-port.js.map +0 -1
  139. package/dist/dev/dev-protocol.js +0 -14
  140. package/dist/dev/dev-protocol.js.map +0 -1
  141. package/dist/dev/dev-registry.js +0 -95
  142. package/dist/dev/dev-registry.js.map +0 -1
  143. package/dist/dev/dev-watcher.js +0 -156
  144. package/dist/dev/dev-watcher.js.map +0 -1
  145. package/dist/dev/error-page.js +0 -64
  146. package/dist/dev/error-page.js.map +0 -1
  147. package/dist/dev/live-reload.js +0 -148
  148. package/dist/dev/live-reload.js.map +0 -1
  149. package/dist/dev/prebuild.js +0 -102
  150. package/dist/dev/prebuild.js.map +0 -1
  151. package/dist/dev/process-reaper.js +0 -151
  152. package/dist/dev/process-reaper.js.map +0 -1
  153. package/dist/dev/stack-trace.js +0 -56
  154. package/dist/dev/stack-trace.js.map +0 -1
  155. package/dist/dev/workerd-process.js +0 -118
  156. package/dist/dev/workerd-process.js.map +0 -1
  157. package/dist/dev-command.js +0 -672
  158. package/dist/dev-command.js.map +0 -1
  159. package/dist/discover-login-identity.js +0 -77
  160. package/dist/discover-login-identity.js.map +0 -1
  161. package/dist/discover-org.js +0 -62
  162. package/dist/discover-org.js.map +0 -1
  163. package/dist/git-credential.js +0 -147
  164. package/dist/git-credential.js.map +0 -1
  165. package/dist/help.js +0 -333
  166. package/dist/help.js.map +0 -1
  167. package/dist/host-catalog.js +0 -427
  168. package/dist/host-catalog.js.map +0 -1
  169. package/dist/host-config.js +0 -80
  170. package/dist/host-config.js.map +0 -1
  171. package/dist/http-error-body.js +0 -35
  172. package/dist/http-error-body.js.map +0 -1
  173. package/dist/install-hosts.js +0 -328
  174. package/dist/install-hosts.js.map +0 -1
  175. package/dist/install.js +0 -120
  176. package/dist/install.js.map +0 -1
  177. package/dist/invoke-passthrough.js +0 -60
  178. package/dist/invoke-passthrough.js.map +0 -1
  179. package/dist/local-bundle.js +0 -200
  180. package/dist/local-bundle.js.map +0 -1
  181. package/dist/local-execute-auth.js +0 -53
  182. package/dist/local-execute-auth.js.map +0 -1
  183. package/dist/local-execute.js +0 -338
  184. package/dist/local-execute.js.map +0 -1
  185. package/dist/local-gateway-fetch-forward.js +0 -135
  186. package/dist/local-gateway-fetch-forward.js.map +0 -1
  187. package/dist/local-host-runtime-surface.js +0 -75
  188. package/dist/local-host-runtime-surface.js.map +0 -1
  189. package/dist/local-package-graph.js +0 -405
  190. package/dist/local-package-graph.js.map +0 -1
  191. package/dist/local-package-run.js +0 -307
  192. package/dist/local-package-run.js.map +0 -1
  193. package/dist/local-runtime-bridge.js +0 -132
  194. package/dist/local-runtime-bridge.js.map +0 -1
  195. package/dist/local-runtime-source.js +0 -541
  196. package/dist/local-runtime-source.js.map +0 -1
  197. package/dist/login-callback-assets.js +0 -10
  198. package/dist/login-callback-assets.js.map +0 -1
  199. package/dist/login-callback-page.js +0 -362
  200. package/dist/login-callback-page.js.map +0 -1
  201. package/dist/mcp.js +0 -134
  202. package/dist/mcp.js.map +0 -1
  203. package/dist/mock/ensure-msw.js +0 -215
  204. package/dist/mock/ensure-msw.js.map +0 -1
  205. package/dist/mock/install-mock-fetch-shim.js +0 -36
  206. package/dist/mock/install-mock-fetch-shim.js.map +0 -1
  207. package/dist/mock/load-package-mocks.js +0 -136
  208. package/dist/mock/load-package-mocks.js.map +0 -1
  209. package/dist/mock/mock-fetch-gateway.js +0 -343
  210. package/dist/mock/mock-fetch-gateway.js.map +0 -1
  211. package/dist/mock/mock-gateway-fetch-shim.js +0 -104
  212. package/dist/mock/mock-gateway-fetch-shim.js.map +0 -1
  213. package/dist/mock/mock-server.js +0 -499
  214. package/dist/mock/mock-server.js.map +0 -1
  215. package/dist/mock/mock-storage.js +0 -186
  216. package/dist/mock/mock-storage.js.map +0 -1
  217. package/dist/mock/mock-supported.js +0 -63
  218. package/dist/mock/mock-supported.js.map +0 -1
  219. package/dist/mock-dep-resolve.js +0 -47
  220. package/dist/mock-dep-resolve.js.map +0 -1
  221. package/dist/mock-local-deps.js +0 -207
  222. package/dist/mock-local-deps.js.map +0 -1
  223. package/dist/network-error.js +0 -11
  224. package/dist/network-error.js.map +0 -1
  225. package/dist/node-engine.js +0 -21
  226. package/dist/node-engine.js.map +0 -1
  227. package/dist/oauth-provider.js +0 -107
  228. package/dist/oauth-provider.js.map +0 -1
  229. package/dist/onboarding-prompt.js +0 -15
  230. package/dist/onboarding-prompt.js.map +0 -1
  231. package/dist/open-api-client.js +0 -432
  232. package/dist/open-api-client.js.map +0 -1
  233. package/dist/open-url.js +0 -21
  234. package/dist/open-url.js.map +0 -1
  235. package/dist/org-resolve.js +0 -16
  236. package/dist/org-resolve.js.map +0 -1
  237. package/dist/org-slug.js +0 -11
  238. package/dist/org-slug.js.map +0 -1
  239. package/dist/org.js +0 -100
  240. package/dist/org.js.map +0 -1
  241. package/dist/package-app-dev.js +0 -905
  242. package/dist/package-app-dev.js.map +0 -1
  243. package/dist/package-collaborators.js +0 -179
  244. package/dist/package-collaborators.js.map +0 -1
  245. package/dist/package-info.js +0 -19
  246. package/dist/package-info.js.map +0 -1
  247. package/dist/package-local-runtime-source.js.map +0 -1
  248. package/dist/package-manifest.js +0 -364
  249. package/dist/package-manifest.js.map +0 -1
  250. package/dist/process-info.js +0 -14
  251. package/dist/process-info.js.map +0 -1
  252. package/dist/redact.js +0 -16
  253. package/dist/redact.js.map +0 -1
  254. package/dist/remote-execute.js +0 -108
  255. package/dist/remote-execute.js.map +0 -1
  256. package/dist/setup-git.js +0 -676
  257. package/dist/setup-git.js.map +0 -1
  258. package/dist/skill.js +0 -35
  259. package/dist/skill.js.map +0 -1
  260. package/dist/store.js +0 -597
  261. package/dist/store.js.map +0 -1
  262. package/dist/structured-error.js +0 -57
  263. package/dist/structured-error.js.map +0 -1
  264. package/dist/target.js +0 -52
  265. package/dist/target.js.map +0 -1
  266. package/dist/tool-result.js +0 -19
  267. package/dist/tool-result.js.map +0 -1
  268. package/dist/which.js +0 -22
  269. package/dist/which.js.map +0 -1
  270. package/dist/workerd-binary.js +0 -98
  271. package/dist/workerd-binary.js.map +0 -1
@@ -1,107 +0,0 @@
1
- import { validateClientMetadataUrl, } from '@modelcontextprotocol/client';
2
- import { cliClientMetadataUrl, cliClientUri, cliName, cliRedirectUrl, defaultScopes, } from './defaults.js';
3
- import { orgSlugFromFlag } from './org-slug.js';
4
- import { openUrl } from './open-url.js';
5
- export { orgSlugFromFlag } from './org-slug.js';
6
- export function buildCliClientMetadata() {
7
- return {
8
- client_name: cliName,
9
- client_uri: cliClientUri,
10
- redirect_uris: [cliRedirectUrl().href],
11
- grant_types: ['authorization_code', 'refresh_token'],
12
- response_types: ['code'],
13
- token_endpoint_auth_method: 'none',
14
- application_type: 'native',
15
- scope: defaultScopes.join(' '),
16
- };
17
- }
18
- /** SEP-2352 issuer stamp restored from durable CLI storage. */
19
- export function issuerFromStoredCredentials(credentials) {
20
- const recorded = credentials.authorizationServerUrl?.trim();
21
- if (recorded)
22
- return recorded;
23
- return new URL(credentials.mcpUrl).origin;
24
- }
25
- export function createCliOAuthProvider(input) {
26
- const clientMetadataUrl = cliClientMetadataUrl(input.mcpUrl);
27
- validateClientMetadataUrl(clientMetadataUrl);
28
- let codeVerifier = '';
29
- let discoveryState;
30
- // Leave clientInformation unset on a fresh login. Seeding `{ client_id }`
31
- // without an `issuer` stamp makes auth() warn (SEP-2352) on the first
32
- // read. With `clientMetadataUrl` set, the SDK writes
33
- // `{ client_id: clientMetadataUrl, issuer }` when the AS advertises CIMD.
34
- // When reloading stored credentials, stamp `issuer` from durable storage
35
- // so SEP-2352 isolation stays active without a relogin.
36
- let clientInformation = input.existing
37
- ? {
38
- client_id: input.existing.clientId,
39
- ...(input.existing.clientSecret
40
- ? { client_secret: input.existing.clientSecret }
41
- : {}),
42
- issuer: issuerFromStoredCredentials(input.existing),
43
- }
44
- : undefined;
45
- let tokens = input.loadStoredTokens && input.existing
46
- ? {
47
- access_token: input.existing.accessToken,
48
- token_type: input.existing.tokenType,
49
- ...(input.existing.refreshToken
50
- ? { refresh_token: input.existing.refreshToken }
51
- : {}),
52
- ...(input.existing.scope ? { scope: input.existing.scope } : {}),
53
- issuer: issuerFromStoredCredentials(input.existing),
54
- }
55
- : undefined;
56
- return {
57
- clientMetadataUrl,
58
- get redirectUrl() {
59
- return input.redirectUri;
60
- },
61
- get clientMetadata() {
62
- return buildCliClientMetadata();
63
- },
64
- state() {
65
- return input.expectedState;
66
- },
67
- clientInformation() {
68
- return clientInformation;
69
- },
70
- saveClientInformation(next) {
71
- // Round-trip the SEP-2352 `issuer` stamp verbatim.
72
- clientInformation = next;
73
- },
74
- tokens() {
75
- return tokens;
76
- },
77
- saveTokens(next) {
78
- // Round-trip the SEP-2352 `issuer` stamp verbatim.
79
- tokens = next;
80
- },
81
- async redirectToAuthorization(authorizationUrl) {
82
- if (input.org !== undefined) {
83
- authorizationUrl.searchParams.set('org', orgSlugFromFlag(input.org));
84
- }
85
- input.onAuthorizationUrl?.(authorizationUrl);
86
- if (input.openBrowser) {
87
- await openUrl(authorizationUrl.href);
88
- }
89
- },
90
- saveCodeVerifier(next) {
91
- codeVerifier = next;
92
- },
93
- codeVerifier() {
94
- if (!codeVerifier) {
95
- throw new Error('OAuth PKCE verifier is missing.');
96
- }
97
- return codeVerifier;
98
- },
99
- saveDiscoveryState(next) {
100
- discoveryState = next;
101
- },
102
- discoveryState() {
103
- return discoveryState;
104
- },
105
- };
106
- }
107
- //# sourceMappingURL=oauth-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-provider.js","sourceRoot":"","sources":["../src/oauth-provider.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { onboardingUrl } from './defaults.js';
2
- export function buildOnboardingContinuationPrompt() {
3
- return [
4
- 'Kody is connected as an MCP server in this agent.',
5
- 'Help me get started with Kody.',
6
- 'First, briefly explain what Kody can do for me in plain language.',
7
- 'Then help me connect one integration I care about: check coding_guide_get for a matching provider guide (for example provider_github or provider_google) and follow it; otherwise use search and the official guides to find the right setup steps, walk me through the connect or secrets flow, and verify the connection with a small ad hoc execute smoke test.',
8
- 'Do not create any packages until the integration works — start with ad hoc execute calls.',
9
- 'Once the integration works, check community_search for a trusted community package that is close to what I want, fork or adapt it (community_fork, or point me at one-click install on /onboarding or the listing detail), and only create a new package if nothing suitable exists.',
10
- ].join(' ');
11
- }
12
- export function webClientsOnboardingNote(mcpUrl) {
13
- return `For web-based clients (ChatGPT, Claude.ai, Grok), see ${onboardingUrl(mcpUrl)}`;
14
- }
15
- //# sourceMappingURL=onboarding-prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"onboarding-prompt.js","sourceRoot":"","sources":["../src/onboarding-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,UAAU,iCAAiC;IAChD,OAAO;QACN,mDAAmD;QACnD,gCAAgC;QAChC,mEAAmE;QACnE,oWAAoW;QACpW,2FAA2F;QAC3F,sRAAsR;KACtR,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACtD,OAAO,yDAAyD,aAAa,CAAC,MAAM,CAAC,EAAE,CAAA;AACxF,CAAC"}
@@ -1,432 +0,0 @@
1
- import { createHash } from 'node:crypto';
2
- import { mkdir, readFile, rm, writeFile } from 'node:fs/promises';
3
- import { join } from 'node:path';
4
- import { currentStoredTokenLifetimeAlias, insufficientScopeMessage, readInsufficientScopeDetails, } from './api-token.js';
5
- import { apiTokenEnvVar, cliName, defaultApiUrl } from './defaults.js';
6
- import { assertTokenSafeApiUrl, capabilityProxyUrl } from './capability-proxy.js';
7
- import { describeNetworkError } from './network-error.js';
8
- import { readPackageVersion } from './package-info.js';
9
- import { userCacheDir } from './workerd-binary.js';
10
- export class OpenApiError extends Error {
11
- status;
12
- code;
13
- constructor(message, options = {}) {
14
- super(message);
15
- this.name = 'OpenApiError';
16
- this.status = options.status ?? null;
17
- this.code = options.code ?? null;
18
- }
19
- }
20
- /** Path to the live OpenAPI document on the Kody API origin. */
21
- export const openApiDocumentPath = 'openapi.json';
22
- /**
23
- * Bootstrap redeem returns a `kody_at_…` once. Agents must use
24
- * `kody auth bootstrap --code` so the token is stored and never printed.
25
- */
26
- export const cliCredentialBootstrapRedeemOperationId = 'cliCredentialBootstrapRedeem';
27
- /** Per API origin, for the lifetime of the process. */
28
- const openApiRouteCache = new Map();
29
- /**
30
- * Parsed route maps persist under `<cache dir>/openapi/<sha256(etag)>.json`,
31
- * keyed by the document's content hash, with `<sha256(origin)>.etag` naming
32
- * the current hash per API origin. Every process revalidates once with
33
- * `If-None-Match`: 304 reuses the stored map without downloading the ~400KB
34
- * document, 200 replaces it. There is no time-based expiry.
35
- */
36
- const openApiRouteCacheVersion = 1;
37
- function openApiCacheDir() {
38
- return join(userCacheDir(), 'openapi');
39
- }
40
- function sha256Hex(text) {
41
- return createHash('sha256').update(text).digest('hex');
42
- }
43
- function originPointerPath(origin) {
44
- return join(openApiCacheDir(), `${sha256Hex(origin)}.etag`);
45
- }
46
- function routeMapPath(etag) {
47
- return join(openApiCacheDir(), `${sha256Hex(etag)}.json`);
48
- }
49
- function isOperationRoute(value) {
50
- if (!value || typeof value !== 'object')
51
- return false;
52
- const route = value;
53
- return (typeof route.operationId === 'string' &&
54
- typeof route.method === 'string' &&
55
- typeof route.pathTemplate === 'string' &&
56
- Array.isArray(route.pathParamNames) &&
57
- route.pathParamNames.every((name) => typeof name === 'string'));
58
- }
59
- /** Unreadable, corrupt or mismatched files count as a miss and get replaced by the next 200. */
60
- async function readPersistedRoutes(origin) {
61
- try {
62
- const etag = (await readFile(originPointerPath(origin), 'utf8')).trim();
63
- if (!etag)
64
- return null;
65
- const raw = JSON.parse(await readFile(routeMapPath(etag), 'utf8'));
66
- if (!raw || typeof raw !== 'object')
67
- return null;
68
- const entry = raw;
69
- if (entry.version !== openApiRouteCacheVersion || entry.etag !== etag)
70
- return null;
71
- if (!Array.isArray(entry.operations) || !entry.operations.every(isOperationRoute))
72
- return null;
73
- return {
74
- etag,
75
- operations: new Map(entry.operations.map((route) => [route.operationId, route])),
76
- };
77
- }
78
- catch {
79
- return null;
80
- }
81
- }
82
- /** Best effort: the response is already parsed, so a read-only cache dir must not fail the command. */
83
- async function persistRoutes(origin, previousEtag, entry) {
84
- if (!entry.etag)
85
- return;
86
- try {
87
- await mkdir(openApiCacheDir(), { recursive: true });
88
- await writeFile(routeMapPath(entry.etag), JSON.stringify({
89
- version: openApiRouteCacheVersion,
90
- etag: entry.etag,
91
- operations: [...entry.operations.values()],
92
- }));
93
- await writeFile(originPointerPath(origin), entry.etag);
94
- if (previousEtag && previousEtag !== entry.etag) {
95
- await rm(routeMapPath(previousEtag), { force: true });
96
- }
97
- }
98
- catch {
99
- // Cache writes are an optimization only.
100
- }
101
- }
102
- export async function openApiGet(input) {
103
- return openApiRequest({
104
- ...input,
105
- method: 'GET',
106
- path: input.path,
107
- query: input.query,
108
- });
109
- }
110
- /**
111
- * Authenticated Open API request (Bearer `kody_at_…`). Shared by search/whoami
112
- * helpers and `kody api <operationId>`.
113
- */
114
- export async function openApiRequest(input) {
115
- const apiUrl = input.apiUrl || defaultApiUrl;
116
- assertTokenSafeApiUrl(apiUrl);
117
- const url = capabilityProxyUrl(apiUrl, input.path.replace(/^\//, ''));
118
- if (input.org) {
119
- url.searchParams.set('org', input.org);
120
- }
121
- if (input.query) {
122
- appendQueryParams(url.searchParams, input.query);
123
- }
124
- const method = input.method.toUpperCase();
125
- const headers = {
126
- accept: 'application/json',
127
- authorization: `Bearer ${input.token}`,
128
- 'user-agent': `${cliName}/${readPackageVersion()}`,
129
- };
130
- let body;
131
- if (input.body !== undefined && method !== 'GET' && method !== 'HEAD') {
132
- headers['content-type'] = 'application/json';
133
- body = JSON.stringify(input.body);
134
- }
135
- const fetchFn = input.fetchFn ?? fetch;
136
- let response;
137
- try {
138
- response = await fetchFn(url, { method, headers, body });
139
- }
140
- catch (error) {
141
- const reason = describeNetworkError(error);
142
- throw new OpenApiError(`Could not reach the Kody API at ${url.origin} (${reason}). Check --api-url / KODY_API_URL and your network.`);
143
- }
144
- const responseBody = await readJson(response);
145
- if (!response.ok) {
146
- throw describeOpenApiFailure(response.status, responseBody, url);
147
- }
148
- return responseBody;
149
- }
150
- /**
151
- * Call one Open API operation by `operationId` + flat `params`, matching the
152
- * MCP `api` tool shape. Resolves method/path from `/openapi.json`.
153
- */
154
- export async function callOpenApiOperation(input) {
155
- const operationId = input.operationId.trim();
156
- if (!operationId) {
157
- throw new OpenApiError('Provide an Open API operationId (e.g. usageGet, metaGetCurrentUser).');
158
- }
159
- assertApiOperationAllowed(operationId);
160
- const apiUrl = input.apiUrl || defaultApiUrl;
161
- const operations = input.operations ?? (await loadOpenApiOperations({ apiUrl, fetchFn: input.fetchFn }));
162
- const route = operations.get(operationId);
163
- if (!route) {
164
- 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' });
165
- }
166
- const built = buildOpenApiHttpRequest({
167
- route,
168
- params: input.params ?? {},
169
- });
170
- return openApiRequest({
171
- token: input.token,
172
- apiUrl,
173
- fetchFn: input.fetchFn,
174
- ...(input.org ? { org: input.org } : {}),
175
- method: built.method,
176
- path: built.path,
177
- query: built.query,
178
- body: built.body,
179
- });
180
- }
181
- export function assertApiOperationAllowed(operationId) {
182
- if (operationId === cliCredentialBootstrapRedeemOperationId) {
183
- 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' });
184
- }
185
- }
186
- /**
187
- * Split flat MCP-style params into path / query / body for an Open API route.
188
- * GET and DELETE send non-path fields as query; other methods send them as JSON body.
189
- */
190
- export function buildOpenApiHttpRequest(input) {
191
- const remaining = { ...input.params };
192
- const pathParams = {};
193
- for (const name of input.route.pathParamNames) {
194
- if (!(name in remaining) || remaining[name] === undefined || remaining[name] === null) {
195
- throw new OpenApiError(`Missing required path parameter "${name}" for ${input.route.operationId} (${input.route.pathTemplate}).`);
196
- }
197
- pathParams[name] = String(remaining[name]);
198
- delete remaining[name];
199
- }
200
- const path = fillPathTemplate(input.route.pathTemplate, pathParams);
201
- const method = input.route.method.toUpperCase();
202
- if (apiOperationUsesQueryInputs(method)) {
203
- return {
204
- method,
205
- path,
206
- ...(Object.keys(remaining).length > 0 ? { query: remaining } : {}),
207
- };
208
- }
209
- return {
210
- method,
211
- path,
212
- body: remaining,
213
- };
214
- }
215
- export function apiOperationUsesQueryInputs(method) {
216
- const upper = method.toUpperCase();
217
- return upper === 'GET' || upper === 'DELETE';
218
- }
219
- export async function loadOpenApiOperations(input) {
220
- const apiUrl = input.apiUrl || defaultApiUrl;
221
- assertTokenSafeApiUrl(apiUrl);
222
- const cacheKey = new URL(apiUrl).origin;
223
- if (!input.bustCache) {
224
- const cached = openApiRouteCache.get(cacheKey);
225
- if (cached)
226
- return cached.operations;
227
- }
228
- const persisted = input.bustCache ? null : await readPersistedRoutes(cacheKey);
229
- const url = capabilityProxyUrl(apiUrl, openApiDocumentPath);
230
- const fetchFn = input.fetchFn ?? fetch;
231
- let response;
232
- try {
233
- response = await fetchFn(url, {
234
- method: 'GET',
235
- headers: {
236
- accept: 'application/json',
237
- 'user-agent': `${cliName}/${readPackageVersion()}`,
238
- ...(persisted?.etag ? { 'if-none-match': persisted.etag } : {}),
239
- },
240
- });
241
- }
242
- catch (error) {
243
- const reason = describeNetworkError(error);
244
- throw new OpenApiError(`Could not load OpenAPI from ${url.href} (${reason}). Check --api-url / KODY_API_URL and your network.`);
245
- }
246
- if (response.status === 304 && persisted) {
247
- openApiRouteCache.set(cacheKey, persisted);
248
- return persisted.operations;
249
- }
250
- const body = await readJson(response);
251
- if (!response.ok) {
252
- throw new OpenApiError(`Could not load OpenAPI from ${url.href} (HTTP ${response.status}).`, { status: response.status });
253
- }
254
- const entry = { etag: response.headers.get('etag'), operations: indexOpenApiOperations(body) };
255
- openApiRouteCache.set(cacheKey, entry);
256
- await persistRoutes(cacheKey, persisted?.etag ?? null, entry);
257
- return entry.operations;
258
- }
259
- /** Visible for tests. */
260
- export function indexOpenApiOperations(document) {
261
- if (!isRecord(document) || !isRecord(document.paths)) {
262
- throw new OpenApiError('OpenAPI document is missing a paths object.');
263
- }
264
- const operations = new Map();
265
- for (const [pathTemplate, methods] of Object.entries(document.paths)) {
266
- if (!isRecord(methods))
267
- continue;
268
- for (const [method, operation] of Object.entries(methods)) {
269
- if (!isRecord(operation))
270
- continue;
271
- const operationId = typeof operation.operationId === 'string' ? operation.operationId : '';
272
- if (!operationId)
273
- continue;
274
- operations.set(operationId, {
275
- operationId,
276
- method: method.toUpperCase(),
277
- pathTemplate,
278
- pathParamNames: pathParamNamesFromTemplate(pathTemplate),
279
- });
280
- }
281
- }
282
- return operations;
283
- }
284
- /** Clear the in-memory OpenAPI route cache (tests). */
285
- export function clearOpenApiRouteCache() {
286
- openApiRouteCache.clear();
287
- }
288
- function pathParamNamesFromTemplate(pathTemplate) {
289
- const names = [];
290
- for (const match of pathTemplate.matchAll(/\{([^{}/]+)\}/g)) {
291
- const name = match[1];
292
- if (name)
293
- names.push(name);
294
- }
295
- return names;
296
- }
297
- function fillPathTemplate(pathTemplate, pathParams) {
298
- return pathTemplate.replace(/\{([^{}/]+)\}/g, (_full, name) => {
299
- const value = pathParams[name];
300
- if (value === undefined) {
301
- throw new OpenApiError(`Missing path parameter "${name}" for ${pathTemplate}.`);
302
- }
303
- return encodeURIComponent(value);
304
- });
305
- }
306
- function appendQueryParams(searchParams, query) {
307
- for (const [key, value] of Object.entries(query)) {
308
- if (value === undefined || value === null || value === '')
309
- continue;
310
- if (Array.isArray(value)) {
311
- for (const entry of value) {
312
- if (entry === undefined || entry === null)
313
- continue;
314
- searchParams.append(key, stringifyQueryValue(entry));
315
- }
316
- continue;
317
- }
318
- searchParams.set(key, stringifyQueryValue(value));
319
- }
320
- }
321
- function stringifyQueryValue(value) {
322
- if (typeof value === 'string')
323
- return value;
324
- if (typeof value === 'number' || typeof value === 'boolean')
325
- return String(value);
326
- return JSON.stringify(value);
327
- }
328
- export async function searchWithApiToken(input) {
329
- if (input.entity) {
330
- throw new OpenApiError(`Open API search does not support --entity yet. Run \`kody login\` and use MCP search, or omit --entity.`, { status: null, code: 'unsupported' });
331
- }
332
- const body = await openApiGet({
333
- ...input,
334
- path: 'v1/search',
335
- query: {
336
- query: input.query,
337
- domain: input.domain,
338
- limit: input.limit,
339
- },
340
- });
341
- const text = JSON.stringify(body, null, 2);
342
- return {
343
- content: [{ type: 'text', text }],
344
- structuredContent: body,
345
- isError: false,
346
- };
347
- }
348
- export async function whoamiWithApiToken(input) {
349
- const apiUrl = input.apiUrl || defaultApiUrl;
350
- const current = (await openApiGet({
351
- ...input,
352
- apiUrl,
353
- path: 'v1/tokens/current',
354
- }));
355
- let user = null;
356
- try {
357
- const me = (await openApiGet({
358
- ...input,
359
- apiUrl,
360
- path: 'v1/me',
361
- }));
362
- user = {
363
- userId: String(me.user_id ?? ''),
364
- email: String(me.email ?? ''),
365
- displayName: String(me.display_name ?? ''),
366
- };
367
- }
368
- catch (error) {
369
- // account:read is optional; tokens/current needs no scope.
370
- if (!(error instanceof OpenApiError && error.status === 403))
371
- throw error;
372
- }
373
- return {
374
- apiUrl,
375
- token: {
376
- id: String(current.id ?? ''),
377
- name: typeof current.name === 'string' ? current.name : null,
378
- scopes: Array.isArray(current.scopes)
379
- ? current.scopes.filter((scope) => typeof scope === 'string')
380
- : [],
381
- expiresAt: typeof current.expires_at === 'string' ? current.expires_at : null,
382
- maxExpiresAt: typeof current.max_expires_at === 'string' ? current.max_expires_at : null,
383
- },
384
- user,
385
- };
386
- }
387
- async function readJson(response) {
388
- const text = await response.text();
389
- if (!text)
390
- return null;
391
- try {
392
- return JSON.parse(text);
393
- }
394
- catch {
395
- return text;
396
- }
397
- }
398
- function readErrorBody(body) {
399
- if (!isRecord(body) || body.error == null)
400
- return null;
401
- const { error } = body;
402
- if (typeof error === 'string')
403
- return { code: null, message: error };
404
- if (isRecord(error)) {
405
- const code = typeof error.code === 'string' ? error.code : null;
406
- const message = typeof error.message === 'string' ? error.message : code ?? JSON.stringify(error);
407
- return { code, message };
408
- }
409
- return { code: null, message: String(error) };
410
- }
411
- function describeOpenApiFailure(status, body, url) {
412
- const failure = readErrorBody(body);
413
- const code = failure?.code ?? null;
414
- const detail = failure?.message ? ` Server said: ${failure.message}` : '';
415
- if (status === 401) {
416
- return new OpenApiError(`Kody rejected the API token (expired, revoked, or malformed). Mint a fresh scoped token and pass it with --token or ${apiTokenEnvVar}.${detail}`, { status, code });
417
- }
418
- if (status === 403 && code === 'insufficient_scope') {
419
- return new OpenApiError(`${insufficientScopeMessage({
420
- ...readInsufficientScopeDetails(body),
421
- currentLifetime: currentStoredTokenLifetimeAlias(url.origin),
422
- })}${detail}`, { status, code });
423
- }
424
- if (code === 'feature_disabled') {
425
- return new OpenApiError(`Kody returned feature_disabled.${detail}`, { status, code });
426
- }
427
- return new OpenApiError(failure?.message ?? `Kody API request failed with HTTP ${status} (${url.pathname}).`, { status, code });
428
- }
429
- function isRecord(value) {
430
- return value !== null && typeof value === 'object' && !Array.isArray(value);
431
- }
432
- //# sourceMappingURL=open-api-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"open-api-client.js","sourceRoot":"","sources":["../src/open-api-client.ts"],"names":[],"mappings":"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"}
package/dist/open-url.js DELETED
@@ -1,21 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
- export async function openUrl(url) {
3
- const platform = process.platform;
4
- const command = platform === 'darwin'
5
- ? 'open'
6
- : platform === 'win32'
7
- ? 'cmd'
8
- : 'xdg-open';
9
- const args = platform === 'win32' ? ['/c', 'start', '', url] : [url];
10
- return await new Promise((resolve) => {
11
- const child = spawn(command, args, {
12
- detached: true,
13
- stdio: 'ignore',
14
- windowsHide: true,
15
- });
16
- child.on('error', () => resolve(false));
17
- child.unref();
18
- resolve(true);
19
- });
20
- }
21
- //# sourceMappingURL=open-url.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"open-url.js","sourceRoot":"","sources":["../src/open-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACjC,MAAM,OAAO,GACZ,QAAQ,KAAK,QAAQ;QACpB,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,QAAQ,KAAK,OAAO;YACrB,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,UAAU,CAAA;IACf,MAAM,IAAI,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACpE,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YAClC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,IAAI;SACjB,CAAC,CAAA;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QACvC,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,OAAO,CAAC,IAAI,CAAC,CAAA;IACd,CAAC,CAAC,CAAA;AACH,CAAC"}
@@ -1,16 +0,0 @@
1
- import { orgEnvVar, orgSlugFromFlag } from './org-slug.js';
2
- export { orgEnvVar, orgSlugFromFlag } from './org-slug.js';
3
- /**
4
- * Precedence for which org a command acts as: `--org` flag, then `KODY_ORG`,
5
- * then the active org in the credential store.
6
- */
7
- export function resolveOrgSlug(input) {
8
- if (input.flag !== undefined)
9
- return orgSlugFromFlag(input.flag);
10
- const fromEnv = input.env?.[orgEnvVar] ?? process.env[orgEnvVar];
11
- if (typeof fromEnv === 'string' && fromEnv.trim()) {
12
- return orgSlugFromFlag(fromEnv);
13
- }
14
- return undefined;
15
- }
16
- //# sourceMappingURL=org-resolve.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"org-resolve.js","sourceRoot":"","sources":["../src/org-resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE1D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE1D;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAG9B;IACA,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChE,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAChE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnD,OAAO,eAAe,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC"}
package/dist/org-slug.js DELETED
@@ -1,11 +0,0 @@
1
- /** Env var for the default org slug (overridden by `--org`). */
2
- export const orgEnvVar = 'KODY_ORG';
3
- /** Public org slug: trim and lowercase, matching the server's `?org=` rules. */
4
- export function orgSlugFromFlag(value) {
5
- const slug = value.trim().toLowerCase();
6
- if (!slug) {
7
- throw new Error('`--org` requires an organization slug. Example: `kody login --org acme`.');
8
- }
9
- return slug;
10
- }
11
- //# sourceMappingURL=org-slug.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"org-slug.js","sourceRoot":"","sources":["../src/org-slug.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAA;AAEnC,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAC,KAAa;IAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACvC,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACd,0EAA0E,CAC1E,CAAA;IACF,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC"}