@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,135 +0,0 @@
1
- /**
2
- * Node-side handlers for the workerd → bridge `POST /gateway-fetch` hop:
3
- * mock MSW path (buffered) or prod CapabilityProxy streaming hop.
4
- */
5
- import { callCapabilityProxyGatewayFetchStream, gatewayFetchHeadersHeaderName, gatewayFetchMethodHeaderName, gatewayFetchPackageIdHeaderName, gatewayFetchUrlHeaderName, secretResolutionHeaderName, } from './capability-proxy.js';
6
- import { readBodyBuffer, writeWebResponse, } from './local-runtime-bridge.js';
7
- import { runSecretHeader } from './local-runtime-source.js';
8
- const gatewayMetaHeaderNames = [
9
- gatewayFetchUrlHeaderName,
10
- gatewayFetchMethodHeaderName,
11
- gatewayFetchPackageIdHeaderName,
12
- gatewayFetchHeadersHeaderName,
13
- secretResolutionHeaderName,
14
- 'content-type',
15
- 'content-length',
16
- ];
17
- function headerValue(headers, name) {
18
- const value = headers[name.toLowerCase()];
19
- if (Array.isArray(value))
20
- return value[0];
21
- return value;
22
- }
23
- export async function forwardLocalGatewayFetchStream(input) {
24
- const url = headerValue(input.request.headers, gatewayFetchUrlHeaderName)?.trim();
25
- if (!url) {
26
- await writeWebResponse(input.response, Response.json({
27
- error: {
28
- code: 'invalid_request',
29
- message: 'X-Kody-Gateway-Url is required and must be a non-empty absolute URL.',
30
- },
31
- }, { status: 400, headers: { 'Cache-Control': 'no-store' } }));
32
- return;
33
- }
34
- if (input.mockFetchGateway) {
35
- const body = await readBodyBuffer(input.request);
36
- const method = headerValue(input.request.headers, gatewayFetchMethodHeaderName)?.trim() ||
37
- 'GET';
38
- const packageId = headerValue(input.request.headers, gatewayFetchPackageIdHeaderName)?.trim();
39
- const rawHeaders = headerValue(input.request.headers, gatewayFetchHeadersHeaderName);
40
- let headers = {};
41
- if (rawHeaders) {
42
- try {
43
- const parsed = JSON.parse(rawHeaders);
44
- if (parsed != null && typeof parsed === 'object' && !Array.isArray(parsed)) {
45
- headers = Object.fromEntries(Object.entries(parsed).flatMap(([key, value]) => typeof value === 'string' ? [[key, value]] : []));
46
- }
47
- }
48
- catch {
49
- await writeWebResponse(input.response, Response.json({
50
- error: {
51
- code: 'invalid_request',
52
- message: 'X-Kody-Gateway-Headers must be valid JSON: an object of header names to string values.',
53
- },
54
- }, { status: 400, headers: { 'Cache-Control': 'no-store' } }));
55
- return;
56
- }
57
- }
58
- const contentType = headerValue(input.request.headers, 'content-type');
59
- if (contentType)
60
- headers['content-type'] = contentType;
61
- const resolution = headerValue(input.request.headers, secretResolutionHeaderName);
62
- if (resolution)
63
- headers[secretResolutionHeaderName] = resolution;
64
- const result = await input.mockFetchGateway.handle({
65
- ...(packageId ? { packageId } : {}),
66
- request: {
67
- url,
68
- method,
69
- headers,
70
- ...(body.byteLength > 0
71
- ? { bodyBase64: body.toString('base64') }
72
- : {}),
73
- },
74
- }, input.signal);
75
- const nullBody = result.status === 101 ||
76
- result.status === 103 ||
77
- result.status === 204 ||
78
- result.status === 205 ||
79
- result.status === 304;
80
- const bytes = Buffer.from(result.bodyBase64 ?? '', 'base64');
81
- await writeWebResponse(input.response, new Response(nullBody ? null : bytes, {
82
- status: result.status,
83
- statusText: result.statusText,
84
- headers: result.headers,
85
- }));
86
- return;
87
- }
88
- const method = headerValue(input.request.headers, gatewayFetchMethodHeaderName);
89
- const packageId = headerValue(input.request.headers, gatewayFetchPackageIdHeaderName);
90
- const rawHeaders = headerValue(input.request.headers, gatewayFetchHeadersHeaderName);
91
- let outboundHeaders;
92
- if (rawHeaders) {
93
- try {
94
- const parsed = JSON.parse(rawHeaders);
95
- if (parsed != null && typeof parsed === 'object' && !Array.isArray(parsed)) {
96
- outboundHeaders = Object.fromEntries(Object.entries(parsed).flatMap(([key, value]) => typeof value === 'string' ? [[key, value]] : []));
97
- }
98
- }
99
- catch {
100
- await writeWebResponse(input.response, Response.json({
101
- error: {
102
- code: 'invalid_request',
103
- message: 'X-Kody-Gateway-Headers must be valid JSON: an object of header names to string values.',
104
- },
105
- }, { status: 400, headers: { 'Cache-Control': 'no-store' } }));
106
- return;
107
- }
108
- }
109
- const contentType = headerValue(input.request.headers, 'content-type');
110
- const secretResolution = headerValue(input.request.headers, secretResolutionHeaderName);
111
- const contentLength = headerValue(input.request.headers, 'content-length');
112
- const upstream = await callCapabilityProxyGatewayFetchStream({
113
- ...input.client,
114
- signal: input.signal,
115
- gateway: {
116
- url,
117
- ...(method ? { method } : {}),
118
- ...(packageId ? { packageId } : {}),
119
- ...(outboundHeaders ? { headers: outboundHeaders } : {}),
120
- ...(contentType ? { contentType } : {}),
121
- ...(secretResolution ? { secretResolution } : {}),
122
- },
123
- body: input.request,
124
- ...(contentLength ? { contentLength } : {}),
125
- });
126
- await writeWebResponse(input.response, upstream);
127
- }
128
- /** Headers the workerd bridge may forward (excludes the run secret). */
129
- export function isGatewayFetchForwardHeader(name) {
130
- const lower = name.toLowerCase();
131
- if (lower === runSecretHeader)
132
- return false;
133
- return gatewayMetaHeaderNames.some((allowed) => allowed.toLowerCase() === lower);
134
- }
135
- //# sourceMappingURL=local-gateway-fetch-forward.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-gateway-fetch-forward.js","sourceRoot":"","sources":["../src/local-gateway-fetch-forward.ts"],"names":[],"mappings":"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"}
@@ -1,75 +0,0 @@
1
- /**
2
- * Hosted CapabilityProxy / local-execute host runtime surface that `--local`
3
- * must cover. Keep in sync with kentcdodds/kody:
4
- *
5
- * - `packages/worker/src/open-api/capability-proxy.ts` (JSON `/call` specials)
6
- * - `POST /v1/capability-proxy/gateway-fetch` (`gatewayFetchStream`)
7
- * - `docs/contributing/contracts/cli-streaming-gateway-fetch.md`
8
- * - `docs/contributing/contracts/cli-local-credential-runtime.md`
9
- *
10
- * Generic MCP tools (`kody.emailSend`, …) hop through the JSON Proxy and are
11
- * not listed here. Prefix families (`packageStorage*`, `packageSecret*`,
12
- * `credentialClient*`, `kody.mcp.*`) are listed once as patterns.
13
- */
14
- /** Special-cased CapabilityProxy JSON `/call` paths (exact). */
15
- export const hostedCapabilityProxySpecialFunctions = [
16
- 'kody.authenticatedFetch',
17
- 'kody.gatewayFetch',
18
- 'kody.oauthClientCredentials',
19
- 'workflows.create',
20
- ];
21
- /** Prefix families served by CapabilityProxy JSON `/call`. */
22
- export const hostedCapabilityProxySpecialPrefixes = [
23
- 'kody.packageStorage',
24
- 'kody.packageSecret',
25
- 'kody.credentialClient',
26
- 'kody.mcp.',
27
- ];
28
- /**
29
- * Host methods that cannot use the JSON `/call` Proxy hop. The CLI workerd
30
- * `kody:runtime` must implement these (streaming body / real `Response`).
31
- */
32
- export const hostedLocalHostSpecialFunctions = ['kody.gatewayFetchStream'];
33
- /**
34
- * Full audit list: every hosted special the CLI `--local` host must support
35
- * (Proxy hop, dedicated host method, or documented prefix family).
36
- */
37
- export const hostedLocalExecuteRuntimeSurface = [
38
- ...hostedCapabilityProxySpecialFunctions,
39
- ...hostedCapabilityProxySpecialPrefixes,
40
- ...hostedLocalHostSpecialFunctions,
41
- ];
42
- /**
43
- * CLI `--local` implementations that are more than the generic JSON Proxy.
44
- * Drift tests assert these markers appear in the workerd runtime source.
45
- */
46
- export const localHostImplementedRuntimeMarkers = [
47
- {
48
- id: 'kody.gatewayFetchStream',
49
- /** Dedicated streaming host method (not Proxy → `/call`). */
50
- sourceMarker: 'gatewayFetchStream',
51
- bridgeMarker: '/gateway-fetch',
52
- },
53
- {
54
- id: 'kody.authenticatedFetch',
55
- sourceMarker: 'createAuthenticatedFetch',
56
- bridgeMarker: null,
57
- },
58
- {
59
- id: 'kody.oauthClientCredentials',
60
- sourceMarker: 'oauthClientCredentials',
61
- bridgeMarker: null,
62
- },
63
- {
64
- id: 'kody.credentialClient*',
65
- sourceMarker: 'credentialClientOpen',
66
- bridgeMarker: null,
67
- },
68
- {
69
- id: 'kody.gatewayFetch',
70
- /** JSON hop via Proxy; shim calls `kody.gatewayFetch`. */
71
- sourceMarker: "__kodyNamespace(['kody'])",
72
- bridgeMarker: '/call',
73
- },
74
- ];
75
- //# sourceMappingURL=local-host-runtime-surface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-host-runtime-surface.js","sourceRoot":"","sources":["../src/local-host-runtime-surface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,gEAAgE;AAChE,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACpD,yBAAyB;IACzB,mBAAmB;IACnB,6BAA6B;IAC7B,kBAAkB;CACT,CAAA;AAEV,8DAA8D;AAC9D,MAAM,CAAC,MAAM,oCAAoC,GAAG;IACnD,qBAAqB;IACrB,oBAAoB;IACpB,uBAAuB;IACvB,WAAW;CACF,CAAA;AAEV;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,yBAAyB,CAAU,CAAA;AAEnF;;;GAGG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC/C,GAAG,qCAAqC;IACxC,GAAG,oCAAoC;IACvC,GAAG,+BAA+B;CACzB,CAAA;AAKV;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG;IACjD;QACC,EAAE,EAAE,yBAAyB;QAC7B,6DAA6D;QAC7D,YAAY,EAAE,oBAAoB;QAClC,YAAY,EAAE,gBAAgB;KAC9B;IACD;QACC,EAAE,EAAE,yBAAyB;QAC7B,YAAY,EAAE,0BAA0B;QACxC,YAAY,EAAE,IAAI;KAClB;IACD;QACC,EAAE,EAAE,6BAA6B;QACjC,YAAY,EAAE,wBAAwB;QACtC,YAAY,EAAE,IAAI;KAClB;IACD;QACC,EAAE,EAAE,wBAAwB;QAC5B,YAAY,EAAE,sBAAsB;QACpC,YAAY,EAAE,IAAI;KAClB;IACD;QACC,EAAE,EAAE,mBAAmB;QACvB,0DAA0D;QAC1D,YAAY,EAAE,2BAA2B;QACzC,YAAY,EAAE,OAAO;KACrB;CACQ,CAAA"}
@@ -1,405 +0,0 @@
1
- import { init as initEsModuleLexer, parse as parseEsModule } from 'es-module-lexer';
2
- import { assertTokenSafeApiUrl, capabilityProxyUrl, } from './capability-proxy.js';
3
- import { localWorkerModuleNames } from './local-runtime-source.js';
4
- import { capabilityProxyForbiddenMessage, currentStoredTokenLifetimeAlias, featureDisabledMessage, insufficientScopeMessage, isScopedApiToken, readInsufficientScopeDetails, rejectedOauthBearerMessage, } from './api-token.js';
5
- import { apiTokenEnvVar, cliName } from './defaults.js';
6
- import { describeNetworkError } from './network-error.js';
7
- import { readPackageVersion } from './package-info.js';
8
- /** Eager WASM init for es-module-lexer (shared across import scans). */
9
- const esModuleLexerReady = initEsModuleLexer();
10
- /**
11
- * Open API contract for downloading stamped `kody:@…` modules so
12
- * `execute --local` can embed them in workerd (no whole-module cloud execute).
13
- *
14
- * Platform tracking: https://github.com/kentcdodds/kody/issues/2808
15
- * TODO(kody#2808): keep this path + response shape aligned with the shipped API.
16
- */
17
- export const localPackageGraphPath = 'v1/local-execute/package-graph';
18
- /** Linked from user-facing errors when the package-graph API is missing or blocked. */
19
- export const localPackageGraphPlatformIssueUrl = 'https://github.com/kentcdodds/kody/issues/2808';
20
- /**
21
- * When `code` is larger than this, package-graph POSTs a tiny synthetic entry
22
- * built from the already-scanned `kody:@` import list instead of the full
23
- * module. Origin only needs those imports (plus the gateway-fetch shim) —
24
- * shipping a 1.2–1.7 MiB TanStack / React `kody dev` worker bundle on every
25
- * rebuild trips older 512k Zod caps and wastes bandwidth under live reload.
26
- * Origin's inline `code` ceiling is the Open API JSON body limit (5 MiB);
27
- * callers that need the full source scanned can still send it under that cap.
28
- */
29
- export const packageGraphInlineCodePreferImportsChars = 400_000;
30
- /**
31
- * Tiny entry for package-graph when the full module is too large to POST.
32
- * Side-effect imports only — enough for origin's static scanner.
33
- */
34
- export function synthesizePackageGraphEntry(imports) {
35
- const unique = [...new Set(imports)].sort((left, right) => left.localeCompare(right));
36
- if (unique.length === 0) {
37
- return 'export default async function main() {}\n';
38
- }
39
- const lines = unique.map((specifier) => `import ${JSON.stringify(specifier)}`);
40
- return `${lines.join('\n')}\nexport default async function main() {}\n`;
41
- }
42
- /**
43
- * Unique `kody:@…` specifiers from real static / literal-dynamic imports.
44
- * Uses es-module-lexer (not a regex) so doc comments and string literals are
45
- * never treated as imports (linkedin overview / #2808).
46
- */
47
- function isTypeOnlyImport(im) {
48
- if (im.type === 'dynamic')
49
- return im.probablyTypeOnly === true;
50
- return im.typeOnly === true;
51
- }
52
- function parseModuleImports(code) {
53
- try {
54
- return parseEsModule(code)[0];
55
- }
56
- catch {
57
- // Incomplete / invalid source (workerd reports the SyntaxError later).
58
- return [];
59
- }
60
- }
61
- export async function listSavedPackageImports(code) {
62
- await esModuleLexerReady;
63
- const imports = parseModuleImports(code);
64
- const found = new Set();
65
- for (const im of imports) {
66
- if (isTypeOnlyImport(im))
67
- continue;
68
- const specifier = im.specifier;
69
- if (typeof specifier === 'string' && specifier.startsWith('kody:@')) {
70
- found.add(specifier);
71
- }
72
- }
73
- return [...found];
74
- }
75
- export async function hasSavedPackageImports(code) {
76
- return (await listSavedPackageImports(code)).length > 0;
77
- }
78
- /**
79
- * Literal `import("kody:@…")` — static `from` imports are fine; computed
80
- * `import(specifier)` cannot be bound into workerd ahead of time.
81
- */
82
- export async function hasLiteralDynamicSavedPackageImports(code) {
83
- await esModuleLexerReady;
84
- return parseModuleImports(code).some((im) => {
85
- if (im.type !== 'dynamic' || im.probablyTypeOnly)
86
- return false;
87
- return typeof im.specifier === 'string' && im.specifier.startsWith('kody:@');
88
- });
89
- }
90
- /**
91
- * Flat workerd module name for a bare `kody:` builtin (not `kody:@…`).
92
- * Path-like package modules path-join bare builtins; slash-free aliases do not.
93
- * workerd also rejects leading-`/` absolute module names.
94
- */
95
- export function flatAliasForBareKodyBuiltin(specifier) {
96
- if (!specifier.startsWith('kody:') || specifier.startsWith('kody:@'))
97
- return null;
98
- if (specifier === localWorkerModuleNames.runtime) {
99
- return localWorkerModuleNames.runtimeFlatAlias;
100
- }
101
- // Future bare builtins: slash-free so path-like importers do not rejoin.
102
- const name = specifier.slice('kody:'.length);
103
- if (!name || /[/\\]/.test(name))
104
- return null;
105
- return `.__kody_builtin__${name}.js`;
106
- }
107
- /**
108
- * Rewrite bare `kody:` builtins (not `kody:@…`) to flat aliases so workerd does
109
- * not path-join them under path-like module names
110
- * (`kody:@scope/pkg/export` → `kody:@scope/pkg/kody:runtime`).
111
- */
112
- export async function rewriteBareKodyBuiltinImports(esModule) {
113
- await esModuleLexerReady;
114
- const edits = parseModuleImports(esModule)
115
- .filter((im) => typeof im.specifier === 'string')
116
- .map((im) => {
117
- const specifier = im.specifier;
118
- const alias = flatAliasForBareKodyBuiltin(specifier);
119
- if (!alias)
120
- return null;
121
- return { start: im.start, end: im.end, alias };
122
- })
123
- .filter((edit) => edit !== null)
124
- .sort((a, b) => b.start - a.start);
125
- let out = esModule;
126
- for (const edit of edits) {
127
- // Dynamic imports include quotes in start/end; static imports do not.
128
- const raw = esModule.slice(edit.start, edit.end);
129
- const quote = raw.startsWith("'") || raw.startsWith('"') ? raw[0] : null;
130
- const replacement = quote ? `${quote}${edit.alias}${quote}` : edit.alias;
131
- out = `${out.slice(0, edit.start)}${replacement}${out.slice(edit.end)}`;
132
- }
133
- return out;
134
- }
135
- export class LocalPackageGraphError extends Error {
136
- status;
137
- code;
138
- constructor(message, options = {}) {
139
- super(message);
140
- this.name = 'LocalPackageGraphError';
141
- this.status = options.status ?? null;
142
- this.code = options.code ?? null;
143
- }
144
- }
145
- /**
146
- * Fetch published, stamped package modules for local workerd embedding.
147
- * Never falls back to CapabilityProxy → `kody.execute`.
148
- */
149
- /** Exact workerd module name for the origin-supplied gateway-fetch shim. */
150
- export const localExecuteGatewayFetchShimModuleName = '.__kody_virtual__/runtime.js';
151
- /**
152
- * Write package-graph modules into a workerd temp dir and return capnp entries.
153
- * Shared by execute --local, local package runs, and kody dev app bundling.
154
- */
155
- export async function writePackageModuleFiles(workDir, graph, writeFile, joinPath) {
156
- const written = [];
157
- for (const [index, module] of graph.modules.entries()) {
158
- const file = `pkg-${index}.js`;
159
- await writeFile(joinPath(workDir, file), module.esModule);
160
- written.push({ name: module.name, file });
161
- }
162
- return written;
163
- }
164
- /**
165
- * Resolve stamped `kody:@` modules for local workerd.
166
- * On `--target mock`, capability hops stay on the mock. Dependencies resolve
167
- * from (1) the local working tree / `.kody/deps.json` / self-package, then
168
- * (2) published package-graph when `depResolve` is set (login / API token).
169
- * Published source is not a secret. Fresh HOME with only local deps needs no login.
170
- */
171
- export async function resolveLocalPackageGraph(input) {
172
- const imports = await listSavedPackageImports(input.code);
173
- // Mock package-graph is empty by design. When deps are resolved from a
174
- // separate prod client, skip the round-trip if there are no kody:@ imports.
175
- // Prod CapabilityProxy still needs package-graph for the gateway-fetch shim
176
- // even with zero imports — so never early-return on the prod path.
177
- if (input.depResolve &&
178
- imports.length === 0 &&
179
- !(await hasLiteralDynamicSavedPackageImports(input.code))) {
180
- return { modules: [], imports: [] };
181
- }
182
- let localModules = [];
183
- let unresolved = imports;
184
- const { mergePackageGraphs, resolveLocalPackageModules, tryLoadSelfManifest } = await import('./mock-local-deps.js');
185
- if (imports.length > 0 && input.packageRoot) {
186
- const selfManifest = await tryLoadSelfManifest(input.packageRoot);
187
- const local = await resolveLocalPackageModules({
188
- code: input.code,
189
- packageRoot: input.packageRoot,
190
- selfManifest,
191
- onStatus: input.onStatus,
192
- });
193
- localModules = local.modules;
194
- unresolved = local.unresolved;
195
- // Mock: local-only graphs need no published package-graph (and no login).
196
- // Prod: still fetch package-graph for the origin gateway-fetch shim even
197
- // when every kody:@ import resolved from the working tree (Bugbot).
198
- if (unresolved.length === 0 &&
199
- (input.depResolve !== undefined || isLikelyMockBearer(input.token))) {
200
- return { modules: localModules, imports };
201
- }
202
- }
203
- if (unresolved.length > 0 && !input.depResolve && isLikelyMockBearer(input.token)) {
204
- throw new LocalPackageGraphError(`kody:@ dependencies need published package-graph while --target mock keeps storage/credentials local. ` +
205
- `Map them in .kody/deps.json (or package.json#kody.localDeps), keep them in this package's exports, ` +
206
- `or log in (\`kody login\` / \`kody auth bootstrap\`) / set KODY_API_TOKEN so the CLI can fetch dependency source from prod. ` +
207
- `Unresolved: ${unresolved.join(', ')}`, { code: 'mock_package_deps_need_auth' });
208
- }
209
- const client = input.depResolve
210
- ? {
211
- apiUrl: input.depResolve.apiUrl,
212
- token: input.depResolve.token,
213
- fetchFn: input.depResolve.fetchFn ?? input.fetchFn,
214
- ...(input.depResolve.org ? { org: input.depResolve.org } : {}),
215
- }
216
- : {
217
- apiUrl: input.apiUrl,
218
- token: input.token,
219
- fetchFn: input.fetchFn,
220
- ...(input.org ? { org: input.org } : {}),
221
- };
222
- if (input.depResolve && unresolved.length > 0) {
223
- input.onStatus?.(`Resolving ${unresolved.length} kody:@ dependenc${unresolved.length === 1 ? 'y' : 'ies'} from published package-graph (mock keeps storage/credentials local)…`);
224
- }
225
- const published = await fetchLocalPackageGraph({
226
- ...client,
227
- code: input.code,
228
- conversationId: input.conversationId,
229
- ...(localModules.length > 0 ? { requiredImports: unresolved } : {}),
230
- });
231
- if (localModules.length === 0)
232
- return published;
233
- return mergePackageGraphs(localModules, published);
234
- }
235
- function isLikelyMockBearer(token) {
236
- return token === 'mock' || token.startsWith('kody_mock_');
237
- }
238
- export async function fetchLocalPackageGraph(input) {
239
- assertTokenSafeApiUrl(input.apiUrl);
240
- const imports = await listSavedPackageImports(input.code);
241
- const required = input.requiredImports ?? imports;
242
- if (await hasLiteralDynamicSavedPackageImports(input.code)) {
243
- throw new LocalPackageGraphError(`Local execute cannot bind literal dynamic import("kody:@…") yet — use a static import, or wait for runtime package resolution (${localPackageGraphPlatformIssueUrl}).`, { code: 'unsupported_dynamic_package_import' });
244
- }
245
- const url = capabilityProxyUrl(input.apiUrl, localPackageGraphPath);
246
- if (input.org)
247
- url.searchParams.set('org', input.org);
248
- const fetchFn = input.fetchFn ?? fetch;
249
- // Large bundles (kody dev worker apps): only the kody:@ import list matters
250
- // for stamped-module download. Keep a small synthetic `code` so older
251
- // origins that still require the field keep working; new origins also
252
- // accept imports-only.
253
- const requestCode = input.code.length > packageGraphInlineCodePreferImportsChars
254
- ? synthesizePackageGraphEntry(required)
255
- : input.code;
256
- let response;
257
- try {
258
- response = await fetchFn(url, {
259
- method: 'POST',
260
- signal: input.signal,
261
- headers: {
262
- accept: 'application/json',
263
- 'content-type': 'application/json',
264
- authorization: `Bearer ${input.token}`,
265
- 'user-agent': `${cliName}/${readPackageVersion()}`,
266
- },
267
- body: JSON.stringify({
268
- code: requestCode,
269
- imports: required,
270
- ...(input.conversationId !== undefined
271
- ? { conversationId: input.conversationId }
272
- : {}),
273
- }),
274
- });
275
- }
276
- catch (error) {
277
- const reason = describeNetworkError(error);
278
- throw new LocalPackageGraphError(`Could not reach the Kody API at ${url.origin} (${reason}). Check --api-url / KODY_API_URL and your network.`);
279
- }
280
- const body = await readJson(response);
281
- if (!response.ok) {
282
- throw describePackageGraphFailure(response.status, body, url, required, input.token);
283
- }
284
- const graph = parsePackageGraphBody(body, required);
285
- const missing = required.filter((specifier) => !graph.modules.some((module) => module.name === specifier));
286
- if (missing.length > 0) {
287
- throw new LocalPackageGraphError(`Local package graph response omitted modules for: ${missing.join(', ')}. ${localPackageGraphPlatformIssueUrl}`, { code: 'incomplete_package_graph' });
288
- }
289
- return graph;
290
- }
291
- function parsePackageGraphBody(body, imports) {
292
- if (!isRecord(body) || !Array.isArray(body.modules)) {
293
- throw new LocalPackageGraphError(`Kody package-graph response was missing a modules array. ${localPackageGraphPlatformIssueUrl}`, { code: 'invalid_package_graph' });
294
- }
295
- const modules = [];
296
- for (const entry of body.modules) {
297
- if (!isRecord(entry) || typeof entry.name !== 'string' || !entry.name.trim()) {
298
- throw new LocalPackageGraphError(`Kody package-graph response included a module without a name. ${localPackageGraphPlatformIssueUrl}`, { code: 'invalid_package_graph' });
299
- }
300
- const esModule = typeof entry.esModule === 'string'
301
- ? entry.esModule
302
- : typeof entry.source === 'string'
303
- ? entry.source
304
- : typeof entry.js === 'string'
305
- ? entry.js
306
- : null;
307
- if (esModule === null) {
308
- throw new LocalPackageGraphError(`Kody package-graph module ${JSON.stringify(entry.name)} was missing esModule source. ${localPackageGraphPlatformIssueUrl}`, { code: 'invalid_package_graph' });
309
- }
310
- modules.push({ name: entry.name, esModule });
311
- }
312
- const reportedImports = Array.isArray(body.imports)
313
- ? body.imports.filter((value) => typeof value === 'string')
314
- : imports;
315
- return { modules, imports: reportedImports };
316
- }
317
- function describePackageGraphFailure(status, body, url, imports, token) {
318
- const failure = readErrorBody(body);
319
- const code = failure?.code ?? null;
320
- const detail = failure?.message ? ` Server said: ${failure.message}` : '';
321
- const importList = imports.join(', ');
322
- if (status === 404) {
323
- return new LocalPackageGraphError(`Local execute cannot resolve saved package imports (${importList}): Kody has no package-graph endpoint at ${url.pathname} yet. ` +
324
- `The CLI will not silently fall back to cloud kody.execute for --local. ` +
325
- `Platform work: ${localPackageGraphPlatformIssueUrl}.${detail}`, { status, code: code ?? 'not_found' });
326
- }
327
- if (status === 401) {
328
- // Same wording as CapabilityProxy session 401 — package-graph is now the auth gate.
329
- const message = isScopedApiToken(token)
330
- ? `Kody rejected the API token (expired, revoked, or malformed). Mint a fresh scoped token and pass it with --token or ${apiTokenEnvVar}.${detail}`
331
- : `${rejectedOauthBearerMessage()}${detail}`;
332
- return new LocalPackageGraphError(message, { status, code });
333
- }
334
- if (code === 'feature_disabled') {
335
- return new LocalPackageGraphError(`${featureDisabledMessage()}${detail}`, { status, code });
336
- }
337
- if (code === 'insufficient_scope') {
338
- return new LocalPackageGraphError(`${insufficientScopeMessage({
339
- ...readInsufficientScopeDetails(body),
340
- currentLifetime: currentStoredTokenLifetimeAlias(url.origin),
341
- })}${detail}`, { status, code });
342
- }
343
- if (status === 403) {
344
- return new LocalPackageGraphError(capabilityProxyForbiddenMessage({ code, serverMessage: failure?.message }), { status, code });
345
- }
346
- if (code === 'package_import_unresolved' ||
347
- code === 'not_found' ||
348
- status === 400 ||
349
- status === 422) {
350
- return new LocalPackageGraphError(failure?.message ??
351
- `Could not resolve saved package import(s) for local bundling (${importList}).${detail}`, { status, code });
352
- }
353
- return new LocalPackageGraphError(failure?.message ??
354
- `Kody package-graph request failed with HTTP ${status} (${url.pathname}).${detail}`, { status, code });
355
- }
356
- async function readJson(response) {
357
- const text = await response.text();
358
- if (!text)
359
- return null;
360
- try {
361
- return JSON.parse(text);
362
- }
363
- catch {
364
- return text;
365
- }
366
- }
367
- function readErrorBody(body) {
368
- if (!isRecord(body) || body.error == null)
369
- return null;
370
- const { error } = body;
371
- if (typeof error === 'string')
372
- return { code: null, message: error };
373
- if (isRecord(error)) {
374
- const code = typeof error.code === 'string' ? error.code : null;
375
- const message = typeof error.message === 'string' ? error.message : (code ?? JSON.stringify(error));
376
- return { code, message: preferActionableInvalidParametersMessage(error, message) };
377
- }
378
- return { code: null, message: String(error) };
379
- }
380
- /**
381
- * Older origins buried oversized-`code` details under Zod `issues` and left
382
- * `error.message` as "Invalid parameters." — which `kody dev` showed as a bare
383
- * "Build failed: Invalid parameters." Prefer the size/limit issue text (or any
384
- * issue message) so CLI output names the actual size and the maximum.
385
- */
386
- function preferActionableInvalidParametersMessage(error, message) {
387
- if (message !== 'Invalid parameters.')
388
- return message;
389
- const details = error.details;
390
- const issues = isRecord(details) && Array.isArray(details.issues) ? details.issues : null;
391
- if (issues === null || issues.length === 0)
392
- return message;
393
- const issueMessages = issues
394
- .filter(isRecord)
395
- .map((issue) => (typeof issue.message === 'string' ? issue.message.trim() : ''))
396
- .filter((text) => text.length > 0);
397
- if (issueMessages.length === 0)
398
- return message;
399
- const sizeIssue = issueMessages.find((text) => /UTF-8 bytes|the maximum is|too large|maxLength|maximum/i.test(text));
400
- return sizeIssue ?? issueMessages.join('; ');
401
- }
402
- function isRecord(value) {
403
- return value !== null && typeof value === 'object' && !Array.isArray(value);
404
- }
405
- //# sourceMappingURL=local-package-graph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-package-graph.js","sourceRoot":"","sources":["../src/local-package-graph.ts"],"names":[],"mappings":"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"}