@kodycodes/cli 1.26.2 → 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 (270) 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-command-3LX234N6.js +4900 -0
  68. package/dist/dev-command-3LX234N6.js.map +6 -0
  69. package/dist/git-credential-FUE3JE3T.js +163 -0
  70. package/dist/git-credential-FUE3JE3T.js.map +6 -0
  71. package/dist/install-ZML2TCDG.js +10694 -0
  72. package/dist/install-ZML2TCDG.js.map +6 -0
  73. package/dist/local-execute-SZV6XN4T.js +368 -0
  74. package/dist/local-execute-SZV6XN4T.js.map +6 -0
  75. package/dist/local-package-run-2TMCAZZ2.js +23 -0
  76. package/dist/local-package-run-2TMCAZZ2.js.map +6 -0
  77. package/dist/mcp-G2AWTIXR.js +21 -0
  78. package/dist/mcp-G2AWTIXR.js.map +6 -0
  79. package/dist/mock-dep-resolve-TVABDNR7.js +52 -0
  80. package/dist/mock-dep-resolve-TVABDNR7.js.map +6 -0
  81. package/dist/mock-fetch-gateway-B5TFGGQS.js +34 -0
  82. package/dist/mock-fetch-gateway-B5TFGGQS.js.map +6 -0
  83. package/dist/mock-local-deps-5SZT3PWT.js +197 -0
  84. package/dist/mock-local-deps-5SZT3PWT.js.map +6 -0
  85. package/dist/mock-server-SV2IKC4I.js +21 -0
  86. package/dist/mock-server-SV2IKC4I.js.map +6 -0
  87. package/dist/open-api-client-DVVMLY7P.js +42 -0
  88. package/dist/open-api-client-DVVMLY7P.js.map +6 -0
  89. package/dist/org-X7B5BI4R.js +132 -0
  90. package/dist/org-X7B5BI4R.js.map +6 -0
  91. package/dist/package-manifest-QH2RU64C.js +14 -0
  92. package/dist/package-manifest-QH2RU64C.js.map +6 -0
  93. package/dist/remote-execute-QMQDVHOY.js +110 -0
  94. package/dist/remote-execute-QMQDVHOY.js.map +6 -0
  95. package/dist/setup-git-5KCUBYPB.js +88 -0
  96. package/dist/setup-git-5KCUBYPB.js.map +6 -0
  97. package/dist/skill-ENPATRIW.js +43 -0
  98. package/dist/skill-ENPATRIW.js.map +6 -0
  99. package/dist/store-WTMRH527.js +48 -0
  100. package/dist/store-WTMRH527.js.map +6 -0
  101. package/dist/structured-error-C65GQ53Z.js +13 -0
  102. package/dist/structured-error-C65GQ53Z.js.map +6 -0
  103. package/dist/target-3QHY7JT4.js +45 -0
  104. package/dist/target-3QHY7JT4.js.map +6 -0
  105. package/dist/webapi-NTVP4BO3.js +2482 -0
  106. package/dist/webapi-NTVP4BO3.js.map +6 -0
  107. package/package.json +8 -8
  108. package/dist/add-mcp-install.js +0 -59
  109. package/dist/add-mcp-install.js.map +0 -1
  110. package/dist/api-token-store.js +0 -120
  111. package/dist/api-token-store.js.map +0 -1
  112. package/dist/api-token.js +0 -238
  113. package/dist/api-token.js.map +0 -1
  114. package/dist/auth-bootstrap.js +0 -373
  115. package/dist/auth-bootstrap.js.map +0 -1
  116. package/dist/auth.js +0 -386
  117. package/dist/auth.js.map +0 -1
  118. package/dist/capability-proxy.js +0 -527
  119. package/dist/capability-proxy.js.map +0 -1
  120. package/dist/credential-call-map.js +0 -155
  121. package/dist/credential-call-map.js.map +0 -1
  122. package/dist/credential-client-runtime-source.js +0 -9
  123. package/dist/credential-client-runtime-source.js.map +0 -1
  124. package/dist/credentialed-fetch-scan.js +0 -98
  125. package/dist/credentialed-fetch-scan.js.map +0 -1
  126. package/dist/defaults.js +0 -34
  127. package/dist/defaults.js.map +0 -1
  128. package/dist/detect-running-hosts.js +0 -13
  129. package/dist/detect-running-hosts.js.map +0 -1
  130. package/dist/dev/dev-assets.js +0 -202
  131. package/dist/dev/dev-assets.js.map +0 -1
  132. package/dist/dev/dev-bundler.js +0 -65
  133. package/dist/dev/dev-bundler.js.map +0 -1
  134. package/dist/dev/dev-events.js +0 -94
  135. package/dist/dev/dev-events.js.map +0 -1
  136. package/dist/dev/dev-port.js +0 -80
  137. package/dist/dev/dev-port.js.map +0 -1
  138. package/dist/dev/dev-protocol.js +0 -14
  139. package/dist/dev/dev-protocol.js.map +0 -1
  140. package/dist/dev/dev-registry.js +0 -95
  141. package/dist/dev/dev-registry.js.map +0 -1
  142. package/dist/dev/dev-watcher.js +0 -162
  143. package/dist/dev/dev-watcher.js.map +0 -1
  144. package/dist/dev/error-page.js +0 -64
  145. package/dist/dev/error-page.js.map +0 -1
  146. package/dist/dev/live-reload.js +0 -151
  147. package/dist/dev/live-reload.js.map +0 -1
  148. package/dist/dev/prebuild.js +0 -102
  149. package/dist/dev/prebuild.js.map +0 -1
  150. package/dist/dev/process-reaper.js +0 -151
  151. package/dist/dev/process-reaper.js.map +0 -1
  152. package/dist/dev/stack-trace.js +0 -56
  153. package/dist/dev/stack-trace.js.map +0 -1
  154. package/dist/dev/workerd-process.js +0 -118
  155. package/dist/dev/workerd-process.js.map +0 -1
  156. package/dist/dev-command.js +0 -676
  157. package/dist/dev-command.js.map +0 -1
  158. package/dist/discover-login-identity.js +0 -77
  159. package/dist/discover-login-identity.js.map +0 -1
  160. package/dist/discover-org.js +0 -62
  161. package/dist/discover-org.js.map +0 -1
  162. package/dist/git-credential.js +0 -147
  163. package/dist/git-credential.js.map +0 -1
  164. package/dist/help.js +0 -333
  165. package/dist/help.js.map +0 -1
  166. package/dist/host-catalog.js +0 -427
  167. package/dist/host-catalog.js.map +0 -1
  168. package/dist/host-config.js +0 -80
  169. package/dist/host-config.js.map +0 -1
  170. package/dist/http-error-body.js +0 -35
  171. package/dist/http-error-body.js.map +0 -1
  172. package/dist/install-hosts.js +0 -328
  173. package/dist/install-hosts.js.map +0 -1
  174. package/dist/install.js +0 -120
  175. package/dist/install.js.map +0 -1
  176. package/dist/invoke-passthrough.js +0 -60
  177. package/dist/invoke-passthrough.js.map +0 -1
  178. package/dist/local-bundle.js +0 -200
  179. package/dist/local-bundle.js.map +0 -1
  180. package/dist/local-execute-auth.js +0 -53
  181. package/dist/local-execute-auth.js.map +0 -1
  182. package/dist/local-execute.js +0 -338
  183. package/dist/local-execute.js.map +0 -1
  184. package/dist/local-gateway-fetch-forward.js +0 -135
  185. package/dist/local-gateway-fetch-forward.js.map +0 -1
  186. package/dist/local-host-runtime-surface.js +0 -75
  187. package/dist/local-host-runtime-surface.js.map +0 -1
  188. package/dist/local-package-graph.js +0 -405
  189. package/dist/local-package-graph.js.map +0 -1
  190. package/dist/local-package-run.js +0 -307
  191. package/dist/local-package-run.js.map +0 -1
  192. package/dist/local-runtime-bridge.js +0 -132
  193. package/dist/local-runtime-bridge.js.map +0 -1
  194. package/dist/local-runtime-source.js +0 -541
  195. package/dist/local-runtime-source.js.map +0 -1
  196. package/dist/login-callback-assets.js +0 -10
  197. package/dist/login-callback-assets.js.map +0 -1
  198. package/dist/login-callback-page.js +0 -362
  199. package/dist/login-callback-page.js.map +0 -1
  200. package/dist/mcp.js +0 -134
  201. package/dist/mcp.js.map +0 -1
  202. package/dist/mock/ensure-msw.js +0 -215
  203. package/dist/mock/ensure-msw.js.map +0 -1
  204. package/dist/mock/install-mock-fetch-shim.js +0 -36
  205. package/dist/mock/install-mock-fetch-shim.js.map +0 -1
  206. package/dist/mock/load-package-mocks.js +0 -136
  207. package/dist/mock/load-package-mocks.js.map +0 -1
  208. package/dist/mock/mock-fetch-gateway.js +0 -343
  209. package/dist/mock/mock-fetch-gateway.js.map +0 -1
  210. package/dist/mock/mock-gateway-fetch-shim.js +0 -104
  211. package/dist/mock/mock-gateway-fetch-shim.js.map +0 -1
  212. package/dist/mock/mock-server.js +0 -499
  213. package/dist/mock/mock-server.js.map +0 -1
  214. package/dist/mock/mock-storage.js +0 -186
  215. package/dist/mock/mock-storage.js.map +0 -1
  216. package/dist/mock/mock-supported.js +0 -63
  217. package/dist/mock/mock-supported.js.map +0 -1
  218. package/dist/mock-dep-resolve.js +0 -47
  219. package/dist/mock-dep-resolve.js.map +0 -1
  220. package/dist/mock-local-deps.js +0 -207
  221. package/dist/mock-local-deps.js.map +0 -1
  222. package/dist/network-error.js +0 -11
  223. package/dist/network-error.js.map +0 -1
  224. package/dist/node-engine.js +0 -21
  225. package/dist/node-engine.js.map +0 -1
  226. package/dist/oauth-provider.js +0 -107
  227. package/dist/oauth-provider.js.map +0 -1
  228. package/dist/onboarding-prompt.js +0 -15
  229. package/dist/onboarding-prompt.js.map +0 -1
  230. package/dist/open-api-client.js +0 -432
  231. package/dist/open-api-client.js.map +0 -1
  232. package/dist/open-url.js +0 -21
  233. package/dist/open-url.js.map +0 -1
  234. package/dist/org-resolve.js +0 -16
  235. package/dist/org-resolve.js.map +0 -1
  236. package/dist/org-slug.js +0 -11
  237. package/dist/org-slug.js.map +0 -1
  238. package/dist/org.js +0 -100
  239. package/dist/org.js.map +0 -1
  240. package/dist/package-app-dev.js +0 -922
  241. package/dist/package-app-dev.js.map +0 -1
  242. package/dist/package-collaborators.js +0 -179
  243. package/dist/package-collaborators.js.map +0 -1
  244. package/dist/package-info.js +0 -19
  245. package/dist/package-info.js.map +0 -1
  246. package/dist/package-local-runtime-source.js.map +0 -1
  247. package/dist/package-manifest.js +0 -364
  248. package/dist/package-manifest.js.map +0 -1
  249. package/dist/process-info.js +0 -14
  250. package/dist/process-info.js.map +0 -1
  251. package/dist/redact.js +0 -16
  252. package/dist/redact.js.map +0 -1
  253. package/dist/remote-execute.js +0 -108
  254. package/dist/remote-execute.js.map +0 -1
  255. package/dist/setup-git.js +0 -676
  256. package/dist/setup-git.js.map +0 -1
  257. package/dist/skill.js +0 -35
  258. package/dist/skill.js.map +0 -1
  259. package/dist/store.js +0 -597
  260. package/dist/store.js.map +0 -1
  261. package/dist/structured-error.js +0 -57
  262. package/dist/structured-error.js.map +0 -1
  263. package/dist/target.js +0 -52
  264. package/dist/target.js.map +0 -1
  265. package/dist/tool-result.js +0 -19
  266. package/dist/tool-result.js.map +0 -1
  267. package/dist/which.js +0 -22
  268. package/dist/which.js.map +0 -1
  269. package/dist/workerd-binary.js +0 -98
  270. package/dist/workerd-binary.js.map +0 -1
@@ -1,200 +0,0 @@
1
- import * as esbuild from 'esbuild';
2
- import { relative, resolve } from 'node:path';
3
- /** Thrown when esbuild fails; `diagnostics` keeps the structured locations. */
4
- export class BundleError extends Error {
5
- diagnostics;
6
- constructor(message, diagnostics) {
7
- super(message);
8
- this.name = 'BundleError';
9
- this.diagnostics = diagnostics;
10
- }
11
- }
12
- /**
13
- * Node builtins workerd resolves under `nodejs_compat` without the `node:`
14
- * prefix. Must match the hosted publish list
15
- * (`nodeBuiltinPackageNames` in the worker's bare-package-import-declarations),
16
- * so a dependency that does `require('stream')` bundles locally exactly when it
17
- * publishes.
18
- */
19
- export const nodeBuiltinModuleNames = [
20
- '_http_agent',
21
- '_http_client',
22
- '_http_common',
23
- '_http_incoming',
24
- '_http_outgoing',
25
- '_http_server',
26
- '_stream_duplex',
27
- '_stream_passthrough',
28
- '_stream_readable',
29
- '_stream_transform',
30
- '_stream_wrap',
31
- '_stream_writable',
32
- '_tls_common',
33
- '_tls_wrap',
34
- 'assert',
35
- 'async_hooks',
36
- 'buffer',
37
- 'child_process',
38
- 'cluster',
39
- 'console',
40
- 'constants',
41
- 'crypto',
42
- 'dgram',
43
- 'diagnostics_channel',
44
- 'dns',
45
- 'domain',
46
- 'events',
47
- 'fs',
48
- 'http',
49
- 'http2',
50
- 'https',
51
- 'inspector',
52
- 'module',
53
- 'net',
54
- 'os',
55
- 'path',
56
- 'perf_hooks',
57
- 'process',
58
- 'punycode',
59
- 'querystring',
60
- 'readline',
61
- 'repl',
62
- 'stream',
63
- 'string_decoder',
64
- 'sys',
65
- 'timers',
66
- 'tls',
67
- 'trace_events',
68
- 'tty',
69
- 'url',
70
- 'util',
71
- 'v8',
72
- 'vm',
73
- 'wasi',
74
- 'worker_threads',
75
- 'zlib',
76
- ];
77
- /**
78
- * esbuild options shared by one-shot bundles and `kody dev` rebuilds: follow
79
- * relative imports and npm packages, keep `kody:*` external for package-graph
80
- * + runtime binding, and leave Node builtins (`node:*` and bare `stream`,
81
- * `fs/promises`, …) external for workerd `nodejs_compat`.
82
- */
83
- export function localBundleOptions(entry) {
84
- return {
85
- absWorkingDir: process.cwd(),
86
- entryPoints: [entry],
87
- bundle: true,
88
- write: false,
89
- format: 'esm',
90
- platform: 'neutral',
91
- target: 'esnext',
92
- logLevel: 'silent',
93
- packages: 'bundle',
94
- external: [
95
- 'kody:*',
96
- 'node:*',
97
- ...nodeBuiltinModuleNames.flatMap((name) => [name, `${name}/*`]),
98
- ],
99
- };
100
- }
101
- /**
102
- * Bundle a `--file` entry for local workerd the same way hosted execute /
103
- * publish resolves code.
104
- */
105
- export async function bundleLocalUserModule(modulePath) {
106
- const entry = resolve(modulePath);
107
- let result;
108
- try {
109
- result = await esbuild.build(localBundleOptions(entry));
110
- }
111
- catch (error) {
112
- throw createBundleError(modulePath, error);
113
- }
114
- const output = result.outputFiles?.[0];
115
- if (output === undefined) {
116
- throw new BundleError(`Could not bundle ${modulePath}: esbuild produced no output.`, []);
117
- }
118
- if (result.errors.length > 0) {
119
- throw createBundleError(modulePath, { errors: result.errors });
120
- }
121
- return output.text;
122
- }
123
- /**
124
- * `workingDir` is esbuild's `absWorkingDir` (locations are relative to it);
125
- * `displayRoot` is what reported paths are relative to.
126
- */
127
- export function createBundleError(modulePath, error, paths = {
128
- workingDir: process.cwd(),
129
- displayRoot: process.cwd(),
130
- }) {
131
- const diagnostics = bundleDiagnostics(error, paths);
132
- const details = diagnostics.map(formatBundleDiagnostic).join('\n');
133
- const header = `Could not bundle ${modulePath}.`;
134
- const body = details.length > 0 ? `${header}\n${details}` : header;
135
- const messages = diagnostics.map((item) => item.message).join('\n');
136
- // Only when the unresolved specifier itself is kody:@ (not a path that happens
137
- // to contain that substring).
138
- if (/Could not resolve ["']kody:@/i.test(messages)) {
139
- return new BundleError(`${body}\nfix: Map the dependency in .kody/deps.json (or package.json#kody.localDeps), keep it in this package's exports, or log in so published package-graph can supply it.`, diagnostics);
140
- }
141
- if (/Could not resolve|Cannot find module|ENOENT/i.test(body)) {
142
- return new BundleError(`${body}\nfix: Run \`npm install\` in the package directory (and any local deps), then retry.`, diagnostics);
143
- }
144
- return new BundleError(body, diagnostics);
145
- }
146
- /** `file:line:col: message` followed by an indented code frame. */
147
- export function formatBundleDiagnostic(item) {
148
- const where = item.file !== null
149
- ? `${item.file}${item.line !== null ? `:${item.line}` : ''}${item.col !== null ? `:${item.col}` : ''}: `
150
- : '';
151
- return `${where}${item.message}${item.frame ? `\n${item.frame}` : ''}`;
152
- }
153
- function bundleDiagnostics(error, paths) {
154
- if (isEsbuildFailure(error)) {
155
- return error.errors
156
- .filter((item) => item.text.trim().length > 0)
157
- .map((item) => toDiagnostic(item, paths));
158
- }
159
- return [
160
- {
161
- file: null,
162
- line: null,
163
- col: null,
164
- message: error instanceof Error ? error.message : String(error),
165
- frame: null,
166
- },
167
- ];
168
- }
169
- function toDiagnostic(item, paths) {
170
- const location = item.location;
171
- if (!location) {
172
- return { file: null, line: null, col: null, message: item.text.trim(), frame: null };
173
- }
174
- const absolute = resolve(paths.workingDir, location.file);
175
- const fromRoot = relative(paths.displayRoot, absolute);
176
- const file = fromRoot && !fromRoot.startsWith('..') ? fromRoot : absolute;
177
- return {
178
- file,
179
- line: location.line,
180
- col: location.column + 1,
181
- message: item.text.trim(),
182
- frame: codeFrame(location),
183
- };
184
- }
185
- function codeFrame(location) {
186
- if (!location.lineText)
187
- return null;
188
- const gutter = String(location.line);
189
- const pad = ' '.repeat(gutter.length);
190
- const caretWidth = Math.max(1, Math.min(location.length || 1, location.lineText.length));
191
- return (` ${gutter} | ${location.lineText}\n` +
192
- ` ${pad} | ${' '.repeat(location.column)}${'^'.repeat(caretWidth)}`);
193
- }
194
- function isEsbuildFailure(error) {
195
- return (typeof error === 'object' &&
196
- error !== null &&
197
- 'errors' in error &&
198
- Array.isArray(error.errors));
199
- }
200
- //# sourceMappingURL=local-bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-bundle.js","sourceRoot":"","sources":["../src/local-bundle.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- import { missingLocalExecuteAuthMessage, expectedPairedApiOrigin, isPairedApiUrl, resolveScopedApiToken, } from './api-token.js';
2
- import { defaultApiUrl, defaultMcpUrl } from './defaults.js';
3
- function urlOriginOrValue(value) {
4
- try {
5
- return new URL(value).origin;
6
- }
7
- catch {
8
- return value;
9
- }
10
- }
11
- /**
12
- * Bearer for CapabilityProxy / package-graph under `execute --local`.
13
- *
14
- * Priority:
15
- * 1. `--token` / `KODY_API_TOKEN`
16
- * 2. Stored bootstrap/API token from `auth bootstrap --code`
17
- * 3. Fresh `kody login` OAuth access token (never printed)
18
- *
19
- * No under-the-hood `tokenCreate` exchange. Do not scavenge host MCP tokens
20
- * (ADR 0053).
21
- */
22
- export async function resolveLocalExecuteBearer(input) {
23
- const token = resolveScopedApiToken(input);
24
- if (token)
25
- return token;
26
- const apiUrl = input.apiUrl ?? defaultApiUrl;
27
- const mcpUrl = input.mcpUrl ?? defaultMcpUrl;
28
- if (!isPairedApiUrl(apiUrl, mcpUrl)) {
29
- const apiOrigin = urlOriginOrValue(apiUrl);
30
- const mcpOrigin = urlOriginOrValue(mcpUrl);
31
- throw new Error(`kody login credentials for ${mcpOrigin} are only sent to ${expectedPairedApiOrigin(mcpUrl)}. For ${apiOrigin}, run \`kody auth bootstrap --code … --api-url ${apiOrigin}\` or set KODY_API_TOKEN.`);
32
- }
33
- const ensure = input.ensureCredentials ?? (await import('./auth.js')).ensureFreshCredentials;
34
- try {
35
- const credentials = await ensure({
36
- mcpUrl: input.mcpUrl,
37
- org: input.org,
38
- backend: input.backend,
39
- fetchFn: input.fetchFn,
40
- now: input.now,
41
- });
42
- return credentials.accessToken;
43
- }
44
- catch (error) {
45
- // Preserve org-specific guidance from ensureFreshCredentials.
46
- if (error instanceof Error &&
47
- /^No login stored for org "/.test(error.message)) {
48
- throw error;
49
- }
50
- throw new Error(missingLocalExecuteAuthMessage(input.purpose ?? 'execute --local'));
51
- }
52
- }
53
- //# sourceMappingURL=local-execute-auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-execute-auth.js","sourceRoot":"","sources":["../src/local-execute-auth.ts"],"names":[],"mappings":"AACA,OAAO,EACN,8BAA8B,EAC9B,uBAAuB,EACvB,cAAc,EACd,qBAAqB,GAErB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAG5D,SAAS,gBAAgB,CAAC,KAAa;IACtC,IAAI,CAAC;QACJ,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAA;IAC7B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,KAAK,CAAA;IACb,CAAC;AACF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC9C,KASC;IAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;IAC1C,IAAI,KAAK;QAAE,OAAO,KAAK,CAAA;IAEvB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,CAAA;IAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,aAAa,CAAA;IAC5C,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC1C,MAAM,IAAI,KAAK,CACd,8BAA8B,SAAS,qBAAqB,uBAAuB,CAAC,MAAM,CAAC,SAAS,SAAS,kDAAkD,SAAS,2BAA2B,CACnM,CAAA;IACF,CAAC;IAED,MAAM,MAAM,GACX,KAAK,CAAC,iBAAiB,IAAI,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAA;IAC9E,IAAI,CAAC;QACJ,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,EAAE,KAAK,CAAC,GAAG;SACd,CAAC,CAAA;QACF,OAAO,WAAW,CAAC,WAAW,CAAA;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,8DAA8D;QAC9D,IACC,KAAK,YAAY,KAAK;YACtB,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAC/C,CAAC;YACF,MAAM,KAAK,CAAA;QACZ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,KAAK,CAAC,OAAO,IAAI,iBAAiB,CAAC,CAAC,CAAA;IACpF,CAAC;AACF,CAAC"}
@@ -1,338 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
- import { randomBytes } from 'node:crypto';
3
- import { rmSync } from 'node:fs';
4
- import { mkdtemp, rm, writeFile } from 'node:fs/promises';
5
- import { request as httpRequest } from 'node:http';
6
- import { tmpdir } from 'node:os';
7
- import { join } from 'node:path';
8
- import { setTimeout as delay } from 'node:timers/promises';
9
- import { assertTokenSafeApiUrl, callCapabilityProxy, checkCredentialCallMap, openCapabilityProxySession, } from './capability-proxy.js';
10
- import { forwardLocalGatewayFetchStream } from './local-gateway-fetch-forward.js';
11
- import { startLocalRuntimeBridge, } from './local-runtime-bridge.js';
12
- import { missingCredentialCallMapFeatureMessage, sessionSupportsCredentialCallMap, } from './credential-call-map.js';
13
- import { assertLocalExecuteNodeEngine } from './node-engine.js';
14
- import { apiTokenEnvVar } from './defaults.js';
15
- import { hasSavedPackageImports, localExecuteGatewayFetchShimModuleName, resolveLocalPackageGraph, writePackageModuleFiles as writeGraphModuleFiles, } from './local-package-graph.js';
16
- import { createLocalEntrySource, createLocalRuntimeModuleSource, createRuntimeFlatAliasSource, createWorkerdConfig, localWorkerModuleNames, runSecretEnvVar, runSecretHeader, } from './local-runtime-source.js';
17
- import { bundleLocalUserModule } from './local-bundle.js';
18
- import { installMockFetchShimModules } from './mock/install-mock-fetch-shim.js';
19
- import { resolveMockFetchGateway, tryHandleMockGatewayFetchCall, } from './mock/mock-fetch-gateway.js';
20
- import { redact } from './redact.js';
21
- import { ensureWorkerdBinary } from './workerd-binary.js';
22
- export { hasSavedPackageImports, listSavedPackageImports, localPackageGraphPlatformIssueUrl, } from './local-package-graph.js';
23
- const workerdStartTimeoutMs = 30_000;
24
- const workerdExitGraceMs = 1_000;
25
- export const savedPackageImportLocalResolveStatus = 'Module imports saved packages (kody:@…). Fetching stamped package modules for local workerd bundling (no cloud kody.execute defer).';
26
- export const localExecutePackageGraphResolveStatus = 'Fetching local-execute package graph (gateway-fetch shim + any stamped kody:@ modules).';
27
- export async function runLocalExecute(input) {
28
- assertLocalExecuteNodeEngine();
29
- assertTokenSafeApiUrl(input.apiUrl);
30
- const code = input.modulePath !== undefined
31
- ? await bundleLocalUserModule(input.modulePath)
32
- : input.code;
33
- const client = {
34
- apiUrl: input.apiUrl,
35
- token: input.token,
36
- fetchFn: input.fetchFn,
37
- ...(input.org ? { org: input.org } : {}),
38
- };
39
- // Skip the session preflight on the hot path (package-graph authenticates).
40
- // `--credential` still opens a session for feature detection + call-map check.
41
- if (input.credentials) {
42
- const session = await openCapabilityProxySession(client);
43
- assertCredentialCallMapSupported(session, input);
44
- input.onStatus?.('Checking --credential picks against CapabilityProxy…');
45
- const { warnings } = await checkCredentialCallMap({
46
- ...client,
47
- credentials: input.credentials,
48
- conversationId: input.conversationId,
49
- });
50
- for (const warning of warnings) {
51
- input.onStatus?.(warning);
52
- }
53
- }
54
- // Always fetch package-graph: origin returns the gateway-fetch shim even
55
- // when there are no `kody:@` imports so ambient `{{secret:…}}` fetch hops
56
- // (or fails closed) instead of sending a raw placeholder (kody#3020).
57
- input.onStatus?.((await hasSavedPackageImports(code))
58
- ? savedPackageImportLocalResolveStatus
59
- : localExecutePackageGraphResolveStatus);
60
- const packageGraph = await resolveLocalPackageGraph({
61
- ...client,
62
- code,
63
- conversationId: input.conversationId,
64
- ...(input.depResolve ? { depResolve: input.depResolve } : {}),
65
- ...(input.packageRoot ? { packageRoot: input.packageRoot } : {}),
66
- onStatus: input.onStatus,
67
- });
68
- const workerdPath = input.workerdPath ??
69
- (await ensureWorkerdBinary({
70
- onDownload: (url) => input.onStatus?.(`Downloading workerd for local execute from ${url}…`),
71
- }));
72
- const runSecret = randomBytes(32).toString('hex');
73
- const workDir = await mkdtemp(join(tmpdir(), 'kody-local-'));
74
- let child;
75
- let bridge;
76
- // SIGTERM makes workerd drain in-flight requests, which a hung module never finishes.
77
- const stopWorkerd = () => child?.kill('SIGKILL');
78
- const releaseSignals = cleanupOnSignal(() => {
79
- stopWorkerd();
80
- rmSync(workDir, { recursive: true, force: true });
81
- });
82
- const startedAt = new Date();
83
- const finish = (sandbox) => buildLocalExecuteResult({
84
- sandbox,
85
- startedAt,
86
- endedAt: new Date(),
87
- conversationId: input.conversationId,
88
- });
89
- try {
90
- const mockFetchGateway = await resolveMockFetchGateway({
91
- target: input.target ?? 'prod',
92
- packageRoot: input.packageRoot,
93
- passthroughHosts: input.passthroughHosts,
94
- allowPrivateNetwork: input.allowPrivateNetwork,
95
- onStatus: input.onStatus,
96
- });
97
- bridge = await startLocalRuntimeBridge({
98
- runSecret,
99
- forwardCall: async (call, signal) => {
100
- const mocked = tryHandleMockGatewayFetchCall({
101
- gateway: mockFetchGateway,
102
- path: call.path,
103
- args: call.args,
104
- signal,
105
- });
106
- if (mocked)
107
- return await mocked;
108
- return await callCapabilityProxy({
109
- ...client,
110
- ...call,
111
- conversationId: input.conversationId,
112
- ...(input.credentials !== undefined
113
- ? { credentials: input.credentials }
114
- : {}),
115
- signal,
116
- });
117
- },
118
- forwardGatewayFetchStream: async ({ request, response, signal }) => {
119
- await forwardLocalGatewayFetchStream({
120
- request,
121
- response,
122
- signal,
123
- client,
124
- ...(mockFetchGateway ? { mockFetchGateway } : {}),
125
- });
126
- },
127
- });
128
- const files = { entry: 'entry.js', user: 'main.js', runtime: 'runtime.js' };
129
- let packageModules = await writePackageModuleFiles(workDir, packageGraph);
130
- let gatewayFetchShimModules = packageGraph.modules
131
- .map((module) => module.name)
132
- .filter((name) => name === localExecuteGatewayFetchShimModuleName);
133
- if (mockFetchGateway) {
134
- const installed = await installMockFetchShimModules({
135
- workDir,
136
- packageModules,
137
- });
138
- packageModules = installed.packageModules;
139
- gatewayFetchShimModules = installed.sideEffectModules;
140
- }
141
- await writeFile(join(workDir, files.entry), createLocalEntrySource({ sideEffectModules: gatewayFetchShimModules }));
142
- await writeFile(join(workDir, files.user), code);
143
- await writeFile(join(workDir, files.runtime), createLocalRuntimeModuleSource());
144
- await writeFile(join(workDir, localWorkerModuleNames.runtimeFlatAlias), createRuntimeFlatAliasSource());
145
- const configPath = join(workDir, 'config.capnp');
146
- await writeFile(configPath, createWorkerdConfig({
147
- bridgePort: bridge.port,
148
- files,
149
- packageModules,
150
- allowPrivateNetwork: input.allowPrivateNetwork,
151
- }));
152
- const env = { ...process.env, [runSecretEnvVar]: runSecret };
153
- delete env[apiTokenEnvVar];
154
- child = spawn(workerdPath, ['serve', configPath, '--control-fd=3'], {
155
- cwd: workDir,
156
- env,
157
- stdio: ['ignore', 'pipe', 'pipe', 'pipe'],
158
- });
159
- const workerd = watchWorkerd(child);
160
- const started = await workerd.listening;
161
- if ('exitDetail' in started) {
162
- return finish({ error: `Local execute could not load the module${started.exitDetail}` });
163
- }
164
- let response;
165
- try {
166
- response = await postToWorkerd({
167
- port: started.port,
168
- runSecret,
169
- body: JSON.stringify({ params: input.params ?? {} }),
170
- });
171
- }
172
- catch (error) {
173
- const exitDetail = await Promise.race([workerd.exited, delay(workerdExitGraceMs, null)]);
174
- if (exitDetail !== null)
175
- throw new Error(`workerd exited during the run${exitDetail}`);
176
- const reason = error instanceof Error ? error.message : String(error);
177
- throw new Error(`Local execute run failed (${reason}).${workerd.stderr()}`);
178
- }
179
- if (response.status !== 200) {
180
- throw new Error(`Local execute runtime returned HTTP ${response.status}.${workerd.stderr()}`);
181
- }
182
- return finish(JSON.parse(response.body));
183
- }
184
- finally {
185
- releaseSignals();
186
- stopWorkerd();
187
- await bridge?.close();
188
- await rm(workDir, { recursive: true, force: true });
189
- }
190
- }
191
- async function writePackageModuleFiles(workDir, graph) {
192
- return await writeGraphModuleFiles(workDir, graph, writeFile, join);
193
- }
194
- /** Same envelope as cloud execute so `formatToolResult` and `--json` behave identically. */
195
- export function buildLocalExecuteResult(input) {
196
- const { sandbox } = input;
197
- const logs = sandbox.logs ?? [];
198
- const base = {
199
- ...(input.conversationId !== undefined ? { conversationId: input.conversationId } : {}),
200
- timing: {
201
- startedAt: input.startedAt.toISOString(),
202
- endedAt: input.endedAt.toISOString(),
203
- durationMs: input.endedAt.getTime() - input.startedAt.getTime(),
204
- },
205
- };
206
- if (typeof sandbox.error === 'string') {
207
- return {
208
- content: [{ type: 'text', text: `Error: ${sandbox.error}` }],
209
- structuredContent: { ...base, returnedBytes: 0, error: sandbox.error, logs },
210
- isError: true,
211
- };
212
- }
213
- const text = typeof sandbox.result === 'string'
214
- ? sandbox.result
215
- : (JSON.stringify(sandbox.result, null, 2) ?? 'undefined');
216
- const serialized = typeof sandbox.result === 'string'
217
- ? sandbox.result
218
- : (JSON.stringify(sandbox.result) ?? 'undefined');
219
- return {
220
- content: [{ type: 'text', text }],
221
- structuredContent: {
222
- ...base,
223
- returnedBytes: Buffer.byteLength(serialized),
224
- result: sandbox.result,
225
- logs,
226
- },
227
- isError: false,
228
- };
229
- }
230
- /**
231
- * `finally` does not run when the CLI is killed by a signal; without this,
232
- * workerd is orphaned and the user's module stays in the temp dir.
233
- */
234
- function cleanupOnSignal(cleanup) {
235
- const signals = ['SIGINT', 'SIGTERM', 'SIGHUP'];
236
- const release = () => {
237
- for (const signal of signals)
238
- process.off(signal, handler);
239
- };
240
- const handler = (signal) => {
241
- release();
242
- cleanup();
243
- process.kill(process.pid, signal);
244
- };
245
- for (const signal of signals)
246
- process.once(signal, handler);
247
- return release;
248
- }
249
- function watchWorkerd(child) {
250
- let stderrText = '';
251
- child.stderr?.on('data', (chunk) => {
252
- stderrText += chunk.toString('utf8');
253
- });
254
- child.stdout?.resume();
255
- const stderr = () => {
256
- const trimmed = redact(stderrText.trim());
257
- return trimmed ? `\n${trimmed}` : '';
258
- };
259
- const exited = new Promise((resolve) => {
260
- child.once('exit', (code, signal) => {
261
- resolve(` (workerd exit ${signal ?? code})${stderr()}`);
262
- });
263
- });
264
- const listening = new Promise((resolve, reject) => {
265
- const control = child.stdio[3];
266
- let buffered = '';
267
- const timer = setTimeout(() => {
268
- reject(new Error(`workerd did not start within ${workerdStartTimeoutMs / 1000}s.${stderr()}`));
269
- }, workerdStartTimeoutMs);
270
- control?.on('data', (chunk) => {
271
- buffered += chunk.toString('utf8');
272
- for (const line of buffered.split('\n')) {
273
- const port = parseListenPort(line);
274
- if (port !== null) {
275
- clearTimeout(timer);
276
- resolve({ port });
277
- }
278
- }
279
- });
280
- child.once('error', (error) => {
281
- clearTimeout(timer);
282
- reject(new Error(`Could not start workerd: ${error.message}`));
283
- });
284
- void exited.then((exitDetail) => {
285
- clearTimeout(timer);
286
- resolve({ exitDetail });
287
- });
288
- });
289
- return { listening, exited, stderr };
290
- }
291
- function parseListenPort(line) {
292
- if (!line.trim())
293
- return null;
294
- try {
295
- const event = JSON.parse(line);
296
- return event.event === 'listen' && event.socket === 'http' && typeof event.port === 'number'
297
- ? event.port
298
- : null;
299
- }
300
- catch {
301
- return null;
302
- }
303
- }
304
- /** node:http rather than fetch: local runs have no time limit, and fetch gives up after 300s. */
305
- function postToWorkerd(input) {
306
- return new Promise((resolve, reject) => {
307
- const request = httpRequest({
308
- host: '127.0.0.1',
309
- port: input.port,
310
- method: 'POST',
311
- path: '/',
312
- headers: {
313
- 'content-type': 'application/json',
314
- 'content-length': Buffer.byteLength(input.body),
315
- [runSecretHeader]: input.runSecret,
316
- },
317
- }, (response) => {
318
- readBody(response).then((body) => resolve({ status: response.statusCode ?? 0, body }), reject);
319
- });
320
- request.on('error', reject);
321
- request.end(input.body);
322
- });
323
- }
324
- function assertCredentialCallMapSupported(session, input) {
325
- if (!input.credentials)
326
- return;
327
- if (sessionSupportsCredentialCallMap(session.features))
328
- return;
329
- throw new Error(missingCredentialCallMapFeatureMessage());
330
- }
331
- async function readBody(stream) {
332
- const chunks = [];
333
- for await (const chunk of stream) {
334
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
335
- }
336
- return Buffer.concat(chunks).toString('utf8');
337
- }
338
- //# sourceMappingURL=local-execute.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-execute.js","sourceRoot":"","sources":["../src/local-execute.ts"],"names":[],"mappings":"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"}