@kodycodes/cli 1.26.2 → 1.27.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 (296) hide show
  1. package/README.md +175 -167
  2. package/dist/add-mcp-install.d.ts +1 -1
  3. package/dist/api-token.d.ts +1 -1
  4. package/dist/auth-6ZE6QQXA.js +31 -0
  5. package/dist/auth-6ZE6QQXA.js.map +6 -0
  6. package/dist/auth-bootstrap.d.ts +1 -1
  7. package/dist/auth.d.ts +27 -3
  8. package/dist/bin.js +27 -3
  9. package/dist/bin.js.map +6 -1
  10. package/dist/capability-proxy.d.ts +1 -1
  11. package/dist/chunk-2IHISXHN.js +1413 -0
  12. package/dist/chunk-2IHISXHN.js.map +6 -0
  13. package/dist/chunk-2XPH7L2P.js +23 -0
  14. package/dist/chunk-2XPH7L2P.js.map +6 -0
  15. package/dist/chunk-3H72XY5R.js +535 -0
  16. package/dist/chunk-3H72XY5R.js.map +6 -0
  17. package/dist/chunk-46IJPEID.js +30 -0
  18. package/dist/chunk-46IJPEID.js.map +6 -0
  19. package/dist/chunk-4GIFJVGT.js +14 -0
  20. package/dist/chunk-4GIFJVGT.js.map +6 -0
  21. package/dist/chunk-5JIRHJQP.js +1016 -0
  22. package/dist/chunk-5JIRHJQP.js.map +6 -0
  23. package/dist/chunk-5ZBJAP6G.js +2005 -0
  24. package/dist/chunk-5ZBJAP6G.js.map +6 -0
  25. package/dist/chunk-6ZYUGXVW.js +26 -0
  26. package/dist/chunk-6ZYUGXVW.js.map +6 -0
  27. package/dist/chunk-7PRJ36I5.js +23 -0
  28. package/dist/chunk-7PRJ36I5.js.map +6 -0
  29. package/dist/chunk-BTL3PJ2H.js +38 -0
  30. package/dist/chunk-BTL3PJ2H.js.map +6 -0
  31. package/dist/chunk-CASGRYOF.js +21 -0
  32. package/dist/chunk-CASGRYOF.js.map +6 -0
  33. package/dist/chunk-CPS7HW4T.js +56 -0
  34. package/dist/chunk-CPS7HW4T.js.map +6 -0
  35. package/dist/chunk-CWWHR4FH.js +19 -0
  36. package/dist/chunk-CWWHR4FH.js.map +6 -0
  37. package/dist/chunk-D366STO5.js +2051 -0
  38. package/dist/chunk-D366STO5.js.map +6 -0
  39. package/dist/chunk-DW5UTJ6T.js +115 -0
  40. package/dist/chunk-DW5UTJ6T.js.map +6 -0
  41. package/dist/chunk-EJXEVGWF.js +47 -0
  42. package/dist/chunk-EJXEVGWF.js.map +6 -0
  43. package/dist/chunk-FBEZ6PZ7.js +746 -0
  44. package/dist/chunk-FBEZ6PZ7.js.map +6 -0
  45. package/dist/chunk-JOMBXQOS.js +435 -0
  46. package/dist/chunk-JOMBXQOS.js.map +6 -0
  47. package/dist/{package-local-runtime-source.js → chunk-LU7I7CQ4.js} +395 -52
  48. package/dist/chunk-LU7I7CQ4.js.map +6 -0
  49. package/dist/chunk-OZDWOZLV.js +964 -0
  50. package/dist/chunk-OZDWOZLV.js.map +6 -0
  51. package/dist/chunk-SLNAWWQK.js +64 -0
  52. package/dist/chunk-SLNAWWQK.js.map +6 -0
  53. package/dist/chunk-TUUFQYWP.js +348 -0
  54. package/dist/chunk-TUUFQYWP.js.map +6 -0
  55. package/dist/chunk-UW6AWLXX.js +43 -0
  56. package/dist/chunk-UW6AWLXX.js.map +6 -0
  57. package/dist/chunk-W2SAFAT4.js +1563 -0
  58. package/dist/chunk-W2SAFAT4.js.map +6 -0
  59. package/dist/chunk-XV6D6HSG.js +57 -0
  60. package/dist/chunk-XV6D6HSG.js.map +6 -0
  61. package/dist/chunk-Y4FOJETX.js +616 -0
  62. package/dist/chunk-Y4FOJETX.js.map +6 -0
  63. package/dist/chunk-YDWTXEKQ.js +469 -0
  64. package/dist/chunk-YDWTXEKQ.js.map +6 -0
  65. package/dist/chunk-ZILB2HWE.js +24 -0
  66. package/dist/chunk-ZILB2HWE.js.map +6 -0
  67. package/dist/cli.js +74 -1500
  68. package/dist/cli.js.map +6 -1
  69. package/dist/defaults.d.ts +1 -1
  70. package/dist/detect-running-hosts.d.ts +1 -1
  71. package/dist/dev/dev-assets.d.ts +1 -1
  72. package/dist/dev/dev-registry.d.ts +1 -1
  73. package/dist/dev/error-page.d.ts +1 -1
  74. package/dist/dev/live-reload.d.ts +2 -2
  75. package/dist/dev-command-5PDEIWOC.js +5025 -0
  76. package/dist/dev-command-5PDEIWOC.js.map +6 -0
  77. package/dist/dev-command.d.ts +1 -1
  78. package/dist/discover-login-identity.d.ts +6 -7
  79. package/dist/discover-org.d.ts +2 -3
  80. package/dist/generated/openapi-routes.d.ts +6 -0
  81. package/dist/git-credential-INB2UV4C.js +170 -0
  82. package/dist/git-credential-INB2UV4C.js.map +6 -0
  83. package/dist/install-ONEJRYZ3.js +10728 -0
  84. package/dist/install-ONEJRYZ3.js.map +6 -0
  85. package/dist/install.d.ts +1 -1
  86. package/dist/local-execute-I3BP5NEQ.js +395 -0
  87. package/dist/local-execute-I3BP5NEQ.js.map +6 -0
  88. package/dist/local-execute-auth.d.ts +2 -2
  89. package/dist/local-execute.d.ts +1 -1
  90. package/dist/local-gateway-fetch-forward.d.ts +2 -2
  91. package/dist/local-package-run-JFKNSNWM.js +23 -0
  92. package/dist/local-package-run-JFKNSNWM.js.map +6 -0
  93. package/dist/local-package-run.d.ts +2 -2
  94. package/dist/mock/mock-fetch-gateway.d.ts +2 -2
  95. package/dist/mock/mock-supported.d.ts +1 -1
  96. package/dist/mock-dep-resolve-B5ZH4U3H.js +60 -0
  97. package/dist/mock-dep-resolve-B5ZH4U3H.js.map +6 -0
  98. package/dist/mock-fetch-gateway-S2ULVFAI.js +35 -0
  99. package/dist/mock-fetch-gateway-S2ULVFAI.js.map +6 -0
  100. package/dist/mock-local-deps-2VVNJLFF.js +200 -0
  101. package/dist/mock-local-deps-2VVNJLFF.js.map +6 -0
  102. package/dist/mock-local-deps.d.ts +1 -1
  103. package/dist/mock-server-TFO7Q26H.js +22 -0
  104. package/dist/mock-server-TFO7Q26H.js.map +6 -0
  105. package/dist/oauth-browser.d.ts +42 -0
  106. package/dist/oauth-provider.d.ts +14 -19
  107. package/dist/open-api-client-SR4B7265.js +43 -0
  108. package/dist/open-api-client-SR4B7265.js.map +6 -0
  109. package/dist/open-api-client.d.ts +2 -1
  110. package/dist/org-535LB4PD.js +134 -0
  111. package/dist/org-535LB4PD.js.map +6 -0
  112. package/dist/org-resolve.d.ts +2 -0
  113. package/dist/package-app-dev.d.ts +2 -2
  114. package/dist/package-manifest-DFF6XCPV.js +15 -0
  115. package/dist/package-manifest-DFF6XCPV.js.map +6 -0
  116. package/dist/remote-execute-JN6DRFEU.js +129 -0
  117. package/dist/remote-execute-JN6DRFEU.js.map +6 -0
  118. package/dist/remote-execute.d.ts +3 -3
  119. package/dist/setup-git-MHK563LB.js +87 -0
  120. package/dist/setup-git-MHK563LB.js.map +6 -0
  121. package/dist/setup-git.d.ts +1 -1
  122. package/dist/skill-D74XVI6T.js +61 -0
  123. package/dist/skill-D74XVI6T.js.map +6 -0
  124. package/dist/store-27J4CQZ2.js +48 -0
  125. package/dist/store-27J4CQZ2.js.map +6 -0
  126. package/dist/structured-error-5MLWXYR3.js +14 -0
  127. package/dist/structured-error-5MLWXYR3.js.map +6 -0
  128. package/dist/structured-error.d.ts +1 -1
  129. package/dist/target-33ATHDUF.js +17 -0
  130. package/dist/target-33ATHDUF.js.map +6 -0
  131. package/package.json +12 -11
  132. package/skills/kody/SKILL.md +53 -50
  133. package/dist/add-mcp-install.js +0 -59
  134. package/dist/add-mcp-install.js.map +0 -1
  135. package/dist/api-token-store.js +0 -120
  136. package/dist/api-token-store.js.map +0 -1
  137. package/dist/api-token.js +0 -238
  138. package/dist/api-token.js.map +0 -1
  139. package/dist/auth-bootstrap.js +0 -373
  140. package/dist/auth-bootstrap.js.map +0 -1
  141. package/dist/auth.js +0 -386
  142. package/dist/auth.js.map +0 -1
  143. package/dist/capability-proxy.js +0 -527
  144. package/dist/capability-proxy.js.map +0 -1
  145. package/dist/credential-call-map.js +0 -155
  146. package/dist/credential-call-map.js.map +0 -1
  147. package/dist/credential-client-runtime-source.js +0 -9
  148. package/dist/credential-client-runtime-source.js.map +0 -1
  149. package/dist/credentialed-fetch-scan.js +0 -98
  150. package/dist/credentialed-fetch-scan.js.map +0 -1
  151. package/dist/defaults.js +0 -34
  152. package/dist/defaults.js.map +0 -1
  153. package/dist/detect-running-hosts.js +0 -13
  154. package/dist/detect-running-hosts.js.map +0 -1
  155. package/dist/dev/dev-assets.js +0 -202
  156. package/dist/dev/dev-assets.js.map +0 -1
  157. package/dist/dev/dev-bundler.js +0 -65
  158. package/dist/dev/dev-bundler.js.map +0 -1
  159. package/dist/dev/dev-events.js +0 -94
  160. package/dist/dev/dev-events.js.map +0 -1
  161. package/dist/dev/dev-port.js +0 -80
  162. package/dist/dev/dev-port.js.map +0 -1
  163. package/dist/dev/dev-protocol.js +0 -14
  164. package/dist/dev/dev-protocol.js.map +0 -1
  165. package/dist/dev/dev-registry.js +0 -95
  166. package/dist/dev/dev-registry.js.map +0 -1
  167. package/dist/dev/dev-watcher.js +0 -162
  168. package/dist/dev/dev-watcher.js.map +0 -1
  169. package/dist/dev/error-page.js +0 -64
  170. package/dist/dev/error-page.js.map +0 -1
  171. package/dist/dev/live-reload.js +0 -151
  172. package/dist/dev/live-reload.js.map +0 -1
  173. package/dist/dev/prebuild.js +0 -102
  174. package/dist/dev/prebuild.js.map +0 -1
  175. package/dist/dev/process-reaper.js +0 -151
  176. package/dist/dev/process-reaper.js.map +0 -1
  177. package/dist/dev/stack-trace.js +0 -56
  178. package/dist/dev/stack-trace.js.map +0 -1
  179. package/dist/dev/workerd-process.js +0 -118
  180. package/dist/dev/workerd-process.js.map +0 -1
  181. package/dist/dev-command.js +0 -676
  182. package/dist/dev-command.js.map +0 -1
  183. package/dist/discover-login-identity.js +0 -77
  184. package/dist/discover-login-identity.js.map +0 -1
  185. package/dist/discover-org.js +0 -62
  186. package/dist/discover-org.js.map +0 -1
  187. package/dist/git-credential.js +0 -147
  188. package/dist/git-credential.js.map +0 -1
  189. package/dist/help.js +0 -333
  190. package/dist/help.js.map +0 -1
  191. package/dist/host-catalog.js +0 -427
  192. package/dist/host-catalog.js.map +0 -1
  193. package/dist/host-config.js +0 -80
  194. package/dist/host-config.js.map +0 -1
  195. package/dist/http-error-body.js +0 -35
  196. package/dist/http-error-body.js.map +0 -1
  197. package/dist/install-hosts.js +0 -328
  198. package/dist/install-hosts.js.map +0 -1
  199. package/dist/install.js +0 -120
  200. package/dist/install.js.map +0 -1
  201. package/dist/invoke-passthrough.js +0 -60
  202. package/dist/invoke-passthrough.js.map +0 -1
  203. package/dist/local-bundle.js +0 -200
  204. package/dist/local-bundle.js.map +0 -1
  205. package/dist/local-execute-auth.js +0 -53
  206. package/dist/local-execute-auth.js.map +0 -1
  207. package/dist/local-execute.js +0 -338
  208. package/dist/local-execute.js.map +0 -1
  209. package/dist/local-gateway-fetch-forward.js +0 -135
  210. package/dist/local-gateway-fetch-forward.js.map +0 -1
  211. package/dist/local-host-runtime-surface.js +0 -75
  212. package/dist/local-host-runtime-surface.js.map +0 -1
  213. package/dist/local-package-graph.js +0 -405
  214. package/dist/local-package-graph.js.map +0 -1
  215. package/dist/local-package-run.js +0 -307
  216. package/dist/local-package-run.js.map +0 -1
  217. package/dist/local-runtime-bridge.js +0 -132
  218. package/dist/local-runtime-bridge.js.map +0 -1
  219. package/dist/local-runtime-source.js +0 -541
  220. package/dist/local-runtime-source.js.map +0 -1
  221. package/dist/login-callback-assets.js +0 -10
  222. package/dist/login-callback-assets.js.map +0 -1
  223. package/dist/login-callback-page.js +0 -362
  224. package/dist/login-callback-page.js.map +0 -1
  225. package/dist/mcp.d.ts +0 -34
  226. package/dist/mcp.js +0 -134
  227. package/dist/mcp.js.map +0 -1
  228. package/dist/mock/ensure-msw.js +0 -215
  229. package/dist/mock/ensure-msw.js.map +0 -1
  230. package/dist/mock/install-mock-fetch-shim.js +0 -36
  231. package/dist/mock/install-mock-fetch-shim.js.map +0 -1
  232. package/dist/mock/load-package-mocks.js +0 -136
  233. package/dist/mock/load-package-mocks.js.map +0 -1
  234. package/dist/mock/mock-fetch-gateway.js +0 -343
  235. package/dist/mock/mock-fetch-gateway.js.map +0 -1
  236. package/dist/mock/mock-gateway-fetch-shim.js +0 -104
  237. package/dist/mock/mock-gateway-fetch-shim.js.map +0 -1
  238. package/dist/mock/mock-server.js +0 -499
  239. package/dist/mock/mock-server.js.map +0 -1
  240. package/dist/mock/mock-storage.js +0 -186
  241. package/dist/mock/mock-storage.js.map +0 -1
  242. package/dist/mock/mock-supported.js +0 -63
  243. package/dist/mock/mock-supported.js.map +0 -1
  244. package/dist/mock-dep-resolve.js +0 -47
  245. package/dist/mock-dep-resolve.js.map +0 -1
  246. package/dist/mock-local-deps.js +0 -207
  247. package/dist/mock-local-deps.js.map +0 -1
  248. package/dist/network-error.js +0 -11
  249. package/dist/network-error.js.map +0 -1
  250. package/dist/node-engine.js +0 -21
  251. package/dist/node-engine.js.map +0 -1
  252. package/dist/oauth-provider.js +0 -107
  253. package/dist/oauth-provider.js.map +0 -1
  254. package/dist/onboarding-prompt.js +0 -15
  255. package/dist/onboarding-prompt.js.map +0 -1
  256. package/dist/open-api-client.js +0 -432
  257. package/dist/open-api-client.js.map +0 -1
  258. package/dist/open-url.js +0 -21
  259. package/dist/open-url.js.map +0 -1
  260. package/dist/org-resolve.js +0 -16
  261. package/dist/org-resolve.js.map +0 -1
  262. package/dist/org-slug.js +0 -11
  263. package/dist/org-slug.js.map +0 -1
  264. package/dist/org.js +0 -100
  265. package/dist/org.js.map +0 -1
  266. package/dist/package-app-dev.js +0 -922
  267. package/dist/package-app-dev.js.map +0 -1
  268. package/dist/package-collaborators.js +0 -179
  269. package/dist/package-collaborators.js.map +0 -1
  270. package/dist/package-info.js +0 -19
  271. package/dist/package-info.js.map +0 -1
  272. package/dist/package-local-runtime-source.js.map +0 -1
  273. package/dist/package-manifest.js +0 -364
  274. package/dist/package-manifest.js.map +0 -1
  275. package/dist/process-info.js +0 -14
  276. package/dist/process-info.js.map +0 -1
  277. package/dist/redact.js +0 -16
  278. package/dist/redact.js.map +0 -1
  279. package/dist/remote-execute.js +0 -108
  280. package/dist/remote-execute.js.map +0 -1
  281. package/dist/setup-git.js +0 -676
  282. package/dist/setup-git.js.map +0 -1
  283. package/dist/skill.js +0 -35
  284. package/dist/skill.js.map +0 -1
  285. package/dist/store.js +0 -597
  286. package/dist/store.js.map +0 -1
  287. package/dist/structured-error.js +0 -57
  288. package/dist/structured-error.js.map +0 -1
  289. package/dist/target.js +0 -52
  290. package/dist/target.js.map +0 -1
  291. package/dist/tool-result.js +0 -19
  292. package/dist/tool-result.js.map +0 -1
  293. package/dist/which.js +0 -22
  294. package/dist/which.js.map +0 -1
  295. package/dist/workerd-binary.js +0 -98
  296. 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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"}