farming-code 2.2.29 → 2.2.32

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 (385) hide show
  1. package/README.md +25 -66
  2. package/README.zh_cn.md +15 -66
  3. package/THIRD_PARTY_NOTICES.md +7 -0
  4. package/backend/acp/{client-services.js → client-services.cjs} +132 -134
  5. package/backend/acp/packaged-claude-acp.cjs +37 -0
  6. package/backend/acp/packaged-codex-acp.cjs +37 -0
  7. package/backend/acp/patch-decisions.cjs +182 -0
  8. package/backend/acp/permission-security.cjs +131 -0
  9. package/backend/{acp-checkpoint-store.js → acp-checkpoint-store.cjs} +90 -59
  10. package/backend/{acp-runtime.js → acp-runtime.cjs} +1219 -1125
  11. package/backend/acp-session-state.cjs +622 -0
  12. package/backend/acp-transcript.cjs +525 -0
  13. package/backend/agent-env.cjs +257 -0
  14. package/backend/agent-extension-discovery.cjs +452 -0
  15. package/backend/agent-extension-inventory.cjs +116 -0
  16. package/backend/agent-json-stream.cjs +283 -0
  17. package/backend/agent-lifecycle-journal.cjs +185 -0
  18. package/backend/{agent-manager.js → agent-manager.cjs} +3116 -4275
  19. package/backend/agent-order-transaction.cjs +85 -0
  20. package/backend/agent-order.cjs +159 -0
  21. package/backend/agent-provider-session.cjs +98 -0
  22. package/backend/agent-runtime-binding.cjs +179 -0
  23. package/backend/agent-session-history.cjs +1022 -0
  24. package/backend/agent-session-inventory.cjs +291 -0
  25. package/backend/async-cache.cjs +104 -0
  26. package/backend/atomic-json-store.cjs +67 -0
  27. package/backend/auth.cjs +261 -0
  28. package/backend/authoritative-inventory-cache.cjs +383 -0
  29. package/backend/business-health.cjs +68 -0
  30. package/backend/chat-runtime.cjs +50 -0
  31. package/backend/claude-settings.cjs +132 -0
  32. package/backend/cli-agents.cjs +435 -0
  33. package/backend/codex-context-window.cjs +196 -0
  34. package/backend/codex-models.cjs +228 -0
  35. package/backend/codex-session-archive.cjs +82 -0
  36. package/backend/codex-session-history.cjs +590 -0
  37. package/backend/{codex-terminal-profile.js → codex-terminal-profile.cjs} +149 -155
  38. package/backend/codex-transcript-sanitizer.cjs +130 -0
  39. package/backend/codex-transcript.cjs +2107 -0
  40. package/backend/command-runner-child.cjs +105 -0
  41. package/backend/config-manager.cjs +1263 -0
  42. package/backend/control-api.cjs +439 -0
  43. package/backend/data/LICENSE.cua +21 -0
  44. package/backend/executable-discovery.cjs +204 -0
  45. package/backend/farming-agent-bootstrap.cjs +81 -0
  46. package/backend/farming-agent-bootstrap.zh_cn.md +6 -2
  47. package/backend/{farming-app-cli.js → farming-app-cli.cjs} +441 -493
  48. package/backend/farming-cli.cjs +414 -0
  49. package/backend/farming-net-pass.cjs +319 -0
  50. package/backend/farming-net-registry.cjs +123 -0
  51. package/backend/farming-net-server.cjs +309 -0
  52. package/backend/farming-session-store.cjs +651 -0
  53. package/backend/git-worktree-info.cjs +181 -0
  54. package/backend/haiku-token.cjs +828 -0
  55. package/backend/index-html.cjs +96 -0
  56. package/backend/input-parts.cjs +68 -0
  57. package/backend/input-routing.cjs +40 -0
  58. package/backend/{local-session-engine.js → local-session-engine.cjs} +276 -282
  59. package/backend/main-agent-skills.cjs +309 -0
  60. package/backend/main-page-session.cjs +132 -0
  61. package/backend/native-pty-controller-generation.cjs +139 -0
  62. package/backend/{native-pty-host-client.js → native-pty-host-client.cjs} +338 -346
  63. package/backend/native-pty-host-identity.cjs +125 -0
  64. package/backend/native-pty-host-path.cjs +68 -0
  65. package/backend/{native-pty-host.js → native-pty-host.cjs} +480 -569
  66. package/backend/native-session-engine.cjs +296 -0
  67. package/backend/network.cjs +57 -0
  68. package/backend/npm-update-helper.cjs +399 -0
  69. package/backend/packaged-node-pty.cjs +120 -0
  70. package/backend/preview-session-manager.cjs +89 -0
  71. package/backend/provider-adapters.cjs +492 -0
  72. package/backend/provider-home-configuration.cjs +211 -0
  73. package/backend/provider-session-id.cjs +79 -0
  74. package/backend/provider-session-service.cjs +333 -0
  75. package/backend/qr-share-tickets.cjs +119 -0
  76. package/backend/resource-broadcast-protocol.cjs +50 -0
  77. package/backend/review-diff-router.cjs +202 -0
  78. package/backend/review-diff-service.cjs +1267 -0
  79. package/backend/review-session-router.cjs +93 -0
  80. package/backend/review-session-service.cjs +470 -0
  81. package/backend/review-session-store.cjs +161 -0
  82. package/backend/review-state-router.cjs +132 -0
  83. package/backend/review-state-store.cjs +299 -0
  84. package/backend/run-history-store.cjs +97 -0
  85. package/backend/runtime-dependency-manager.cjs +893 -0
  86. package/backend/runtime-executable-invocation.cjs +37 -0
  87. package/backend/runtime-observation.cjs +96 -0
  88. package/backend/server-process-identity.cjs +70 -0
  89. package/backend/server.cjs +3356 -0
  90. package/backend/session-engine-bridge.cjs +144 -0
  91. package/backend/session-engine-router.cjs +105 -0
  92. package/backend/session-engine.cjs +64 -0
  93. package/backend/session-stream-protocol.cjs +181 -0
  94. package/backend/shell-busy-integration.cjs +442 -0
  95. package/backend/slash-command-discovery.cjs +423 -0
  96. package/backend/storage-layout.cjs +263 -0
  97. package/backend/system-monitor.cjs +96 -0
  98. package/backend/terminal-attach-checkpoint.cjs +73 -0
  99. package/backend/terminal-exit-quiescence.cjs +57 -0
  100. package/backend/{terminal-reducer-flow-control.js → terminal-reducer-flow-control.cjs} +45 -22
  101. package/backend/terminal-runtime-cleanup.cjs +99 -0
  102. package/backend/{terminal-screen-state.js → terminal-screen-state.cjs} +100 -108
  103. package/backend/{terminal-screen-worker-pool.js → terminal-screen-worker-pool.cjs} +89 -79
  104. package/backend/{terminal-screen-worker-thread.js → terminal-screen-worker-thread.cjs} +64 -65
  105. package/backend/terminal-screen-worker.cjs +352 -0
  106. package/backend/terminal-state-serialization.cjs +147 -0
  107. package/backend/{terminal-status.js → terminal-status.cjs} +137 -187
  108. package/backend/theme-manager.cjs +185 -0
  109. package/backend/update-service.cjs +675 -0
  110. package/backend/usage-forecast.cjs +95 -0
  111. package/backend/{usage-history-client.js → usage-history-client.cjs} +144 -94
  112. package/backend/usage-history-smoke.cjs +85 -0
  113. package/backend/usage-history-worker.cjs +60 -0
  114. package/backend/{usage-monitor.js → usage-monitor.cjs} +363 -390
  115. package/backend/workspace-directory.cjs +239 -0
  116. package/backend/workspace-discovery.cjs +271 -0
  117. package/backend/{workspace-file-router.js → workspace-file-router.cjs} +213 -282
  118. package/backend/{workspace-file-service.js → workspace-file-service.cjs} +1139 -1318
  119. package/backend/workspace-root-registry.cjs +192 -0
  120. package/bin/farming +1 -1
  121. package/config/farming.deploy.env.example +1 -1
  122. package/config/farming.install.env.example +1 -1
  123. package/dist/acp/codex-acp-1.1.4.mjs +405 -8
  124. package/dist/assets/App-BCkdpWB6.css +1 -0
  125. package/dist/assets/App-CRjKpaGp.js +697 -0
  126. package/dist/assets/CodeSelect-Ci8sKZPU.js +1 -0
  127. package/dist/assets/CodeSelect-T2eNzrOc.css +1 -0
  128. package/dist/assets/{FileEditorMarkdownPreview-Cs9cLv8a.js → FileEditorMarkdownPreview-V06QHlAg.js} +55 -55
  129. package/dist/assets/FileEditorPane-BX-Wjg9U.js +2 -0
  130. package/dist/assets/IconGlyphs-YhV7tqd4.js +1 -0
  131. package/dist/assets/ProjectFilesSection-BDT2_r0o.js +12 -0
  132. package/dist/assets/ReviewPage-BqAs5sG1.js +3 -0
  133. package/dist/assets/code-dark-B7eM_9G9.css +1 -0
  134. package/dist/assets/{cssMode-Bdg5RpcJ.js → cssMode-ADdAlxTO.js} +1 -1
  135. package/dist/assets/{editor.api2-D74ufkbr.js → editor.api2-BFLAr0YF.js} +162 -162
  136. package/dist/assets/file-icons-BpeqWkIB.js +1 -0
  137. package/dist/assets/{freemarker2-DfMDJfnE.js → freemarker2-C90q5jrp.js} +1 -1
  138. package/dist/assets/{handlebars-BEdPtzMT.js → handlebars-BwUQcEDq.js} +1 -1
  139. package/dist/assets/{html-B1fPb1QD.js → html-1s3uPKfh.js} +1 -1
  140. package/dist/assets/{htmlMode-CY2ZjHxH.js → htmlMode-xtKD99de.js} +1 -1
  141. package/dist/assets/{index-CQNaZc3l.js → index-C8MchCem.js} +3 -3
  142. package/dist/assets/{javascript-BV2OsWA0.js → javascript-Ph7ijyny.js} +1 -1
  143. package/dist/assets/{jsonMode-zd07aeuX.js → jsonMode-D-jGAnFH.js} +1 -1
  144. package/dist/assets/linkComputer-CbGyI_qx.js +1 -0
  145. package/dist/assets/{liquid-BParI24X.js → liquid-0IamE_cI.js} +1 -1
  146. package/dist/assets/{lspLanguageFeatures-BzredkoV.js → lspLanguageFeatures-BxnQunWF.js} +1 -1
  147. package/dist/assets/main-CLKXa6hf.css +1 -0
  148. package/dist/assets/{mdx-vGzUJN98.js → mdx-DdNmfivn.js} +1 -1
  149. package/dist/assets/{monaco.contribution-BmaeBQEc.js → monaco.contribution-B43jsUs1.js} +2 -2
  150. package/dist/assets/{python-CUwdLgsI.js → python-IAt4X5TS.js} +1 -1
  151. package/dist/assets/{razor-BScebUxU.js → razor-DRkFYW0S.js} +1 -1
  152. package/dist/assets/review-C8-oPKXk.css +1 -0
  153. package/dist/assets/{tsMode-DzUAibXK.js → tsMode-_d_4U2gf.js} +1 -1
  154. package/dist/assets/{typescript-D9EOeM7N.js → typescript-C7zcMq9l.js} +1 -1
  155. package/dist/assets/{workers-DAiomYZM.js → workers-D0nOyJzf.js} +1 -1
  156. package/dist/assets/workspace-editor-model-DND_Y-Bj.js +1 -0
  157. package/dist/assets/workspace-editor-monaco-BPWhgcIB.js +4 -0
  158. package/dist/assets/workspace-editor-monaco-N641qPjX.js +1 -0
  159. package/dist/assets/workspace-view-state-k1bTlJ_Z.js +13 -0
  160. package/dist/assets/{xml-wWl1dhkQ.js → xml-BR-HvxT8.js} +1 -1
  161. package/dist/assets/{yaml-Dc2WDaOZ.js → yaml-YtFQwh4q.js} +1 -1
  162. package/dist/index.html +2 -1
  163. package/extensions/browser/backend/agent-browser-runtime.cjs +1040 -0
  164. package/extensions/browser/backend/agent-capability.cjs +85 -0
  165. package/extensions/browser/backend/browser-mcp-server.cjs +655 -0
  166. package/extensions/browser/backend/browser-resource-manager.cjs +1486 -0
  167. package/extensions/browser/backend/browser-resource-store.cjs +228 -0
  168. package/extensions/browser/backend/browser-router.cjs +203 -0
  169. package/extensions/browser/backend/executable-discovery.cjs +248 -0
  170. package/extensions/browser/backend/farming-browser-client.cjs +116 -0
  171. package/extensions/browser/backend/index.cjs +32 -0
  172. package/extensions/browser/backend/managed-chromium-installer.cjs +833 -0
  173. package/extensions/browser/bin/farming-browser +16 -7
  174. package/extensions/computer/backend/agent-capability.cjs +72 -0
  175. package/extensions/computer/backend/computer-constants.cjs +59 -0
  176. package/extensions/computer/backend/computer-mcp-server.cjs +182 -0
  177. package/extensions/computer/backend/computer-resource-manager.cjs +1219 -0
  178. package/extensions/computer/backend/computer-resource-store.cjs +190 -0
  179. package/extensions/computer/backend/computer-router.cjs +257 -0
  180. package/extensions/computer/backend/cua-tools.json +3067 -0
  181. package/extensions/computer/backend/farming-computer-client.cjs +84 -0
  182. package/extensions/computer/backend/index.cjs +35 -0
  183. package/extensions/computer/backend/isolated-browser-provider.cjs +157 -0
  184. package/extensions/computer/bin/farming-computer +131 -0
  185. package/frontend/farming-net/app.js +255 -262
  186. package/frontend/ghostty-loader.js +24 -20
  187. package/frontend/reading-anchor.js +210 -193
  188. package/frontend/runtime-paths.js +24 -26
  189. package/frontend/session-bridge.js +90 -111
  190. package/frontend/session-modal-bridge.js +184 -302
  191. package/frontend/skin-bridge.js +20 -23
  192. package/frontend/skins/crt/app.js +7686 -7901
  193. package/frontend/skins/crt/effects.js +7 -6
  194. package/frontend/skins/crt/index.html +6 -6
  195. package/frontend/skins/crt/styles/markdown.css +4 -4
  196. package/frontend/terminal-bridge.js +174 -181
  197. package/frontend/terminal-replay.js +320 -345
  198. package/frontend/theme-loader.js +55 -71
  199. package/index.html +1 -0
  200. package/package.json +64 -37
  201. package/shared/backend-connection-status.js +38 -69
  202. package/shared/browser-protocol.js +235 -110
  203. package/shared/websocket-liveness.js +40 -0
  204. package/backend/acp/packaged-claude-acp.js +0 -13
  205. package/backend/acp/packaged-codex-acp.js +0 -13
  206. package/backend/acp/patch-decisions.js +0 -153
  207. package/backend/acp/permission-security.js +0 -108
  208. package/backend/acp-session-state.js +0 -644
  209. package/backend/acp-transcript.js +0 -512
  210. package/backend/agent-env.js +0 -250
  211. package/backend/agent-json-stream.js +0 -268
  212. package/backend/agent-lifecycle-journal.js +0 -133
  213. package/backend/agent-memory-report.js +0 -583
  214. package/backend/agent-order.js +0 -166
  215. package/backend/agent-provider-session.js +0 -76
  216. package/backend/agent-runtime-binding.js +0 -174
  217. package/backend/agent-session-history.js +0 -953
  218. package/backend/async-cache.js +0 -94
  219. package/backend/atomic-json-store.js +0 -37
  220. package/backend/auth.js +0 -251
  221. package/backend/bundle-update-helper.js +0 -113
  222. package/backend/chat-runtime.js +0 -28
  223. package/backend/claude-settings.js +0 -121
  224. package/backend/cli-agents.js +0 -486
  225. package/backend/codex-context-window.js +0 -189
  226. package/backend/codex-models.js +0 -226
  227. package/backend/codex-rollout-follower.js +0 -326
  228. package/backend/codex-session-archive.js +0 -65
  229. package/backend/codex-session-history.js +0 -647
  230. package/backend/codex-transcript-sanitizer.js +0 -115
  231. package/backend/codex-transcript.js +0 -2564
  232. package/backend/command-runner-child.js +0 -67
  233. package/backend/config-manager.js +0 -1133
  234. package/backend/control-api.js +0 -455
  235. package/backend/executable-discovery.js +0 -216
  236. package/backend/farming-agent-bootstrap.js +0 -49
  237. package/backend/farming-cli.js +0 -457
  238. package/backend/farming-net-pass.js +0 -285
  239. package/backend/farming-net-registry.js +0 -112
  240. package/backend/farming-net-server.js +0 -298
  241. package/backend/farming-session-store.js +0 -677
  242. package/backend/git-worktree-info.js +0 -181
  243. package/backend/haiku-token.js +0 -772
  244. package/backend/index-html.js +0 -62
  245. package/backend/input-parts.js +0 -54
  246. package/backend/input-routing.js +0 -24
  247. package/backend/json-cli-runtime.js +0 -275
  248. package/backend/main-agent-skills.js +0 -305
  249. package/backend/main-page-session.js +0 -122
  250. package/backend/native-pty-controller-generation.js +0 -106
  251. package/backend/native-pty-host-identity.js +0 -86
  252. package/backend/native-pty-host-path.js +0 -42
  253. package/backend/native-session-engine.js +0 -268
  254. package/backend/network.js +0 -23
  255. package/backend/npm-update-helper.js +0 -374
  256. package/backend/packaged-node-pty.js +0 -99
  257. package/backend/preview-session-manager.js +0 -68
  258. package/backend/provider-adapters.js +0 -399
  259. package/backend/provider-session-id.js +0 -47
  260. package/backend/provider-session-service.js +0 -345
  261. package/backend/qr-share-tickets.js +0 -100
  262. package/backend/review-diff-router.js +0 -180
  263. package/backend/review-diff-service.js +0 -1270
  264. package/backend/review-session-router.js +0 -74
  265. package/backend/review-session-service.js +0 -446
  266. package/backend/review-session-store.js +0 -151
  267. package/backend/review-state-router.js +0 -116
  268. package/backend/review-state-store.js +0 -286
  269. package/backend/run-history-store.js +0 -67
  270. package/backend/runtime-dependency-manager.js +0 -759
  271. package/backend/runtime-executable-invocation.js +0 -20
  272. package/backend/runtime-observation.js +0 -81
  273. package/backend/server-process-identity.js +0 -47
  274. package/backend/server.js +0 -3267
  275. package/backend/session-engine-bridge.js +0 -129
  276. package/backend/session-engine-router.js +0 -66
  277. package/backend/session-engine.js +0 -39
  278. package/backend/session-stream-protocol.js +0 -185
  279. package/backend/shell-busy-integration.js +0 -472
  280. package/backend/slash-command-discovery.js +0 -433
  281. package/backend/storage-layout.js +0 -190
  282. package/backend/system-monitor.js +0 -77
  283. package/backend/terminal-attach-checkpoint.js +0 -74
  284. package/backend/terminal-exit-quiescence.js +0 -39
  285. package/backend/terminal-runtime-cleanup.js +0 -80
  286. package/backend/terminal-screen-worker.js +0 -337
  287. package/backend/terminal-state-serialization.js +0 -127
  288. package/backend/theme-manager.js +0 -163
  289. package/backend/update-service.js +0 -1545
  290. package/backend/usage-forecast.js +0 -86
  291. package/backend/usage-history-scanner.ts +0 -2718
  292. package/backend/usage-history-smoke.js +0 -64
  293. package/backend/usage-history-worker.js +0 -34
  294. package/backend/workspace-directory.js +0 -232
  295. package/backend/workspace-discovery.js +0 -311
  296. package/backend/workspace-root-registry.js +0 -166
  297. package/dist/assets/App-BKNUILuL.css +0 -1
  298. package/dist/assets/App-Ex2oVVXO.js +0 -693
  299. package/dist/assets/FileEditorPane-CNtuGjQ3.js +0 -2
  300. package/dist/assets/IconGlyphs-BClgag6E.js +0 -1
  301. package/dist/assets/ProjectFilesSection-Cf2BEcAN.js +0 -12
  302. package/dist/assets/ReviewPage-BRuxFaH5.js +0 -3
  303. package/dist/assets/code-dark-BEZTQwYZ.css +0 -1
  304. package/dist/assets/file-icons-BOlcJ0ZF.js +0 -1
  305. package/dist/assets/main-DK9Sy7-c.css +0 -1
  306. package/dist/assets/review-BcnwQtJv.css +0 -1
  307. package/dist/assets/workspace-editor-model-CSGCl21x.js +0 -1
  308. package/dist/assets/workspace-editor-monaco-CJNwbpCy.js +0 -4
  309. package/dist/assets/workspace-editor-monaco-CO9w8YV0.js +0 -1
  310. package/dist/assets/workspace-view-state-BjKPYp0E.js +0 -7
  311. package/extensions/browser/backend/agent-browser-runtime.js +0 -1041
  312. package/extensions/browser/backend/agent-capability.js +0 -55
  313. package/extensions/browser/backend/browser-mcp-server.js +0 -621
  314. package/extensions/browser/backend/browser-resource-manager.js +0 -1309
  315. package/extensions/browser/backend/browser-resource-store.js +0 -190
  316. package/extensions/browser/backend/browser-router.js +0 -133
  317. package/extensions/browser/backend/executable-discovery.js +0 -224
  318. package/extensions/browser/backend/farming-browser-client.js +0 -83
  319. package/extensions/browser/backend/index.js +0 -7
  320. package/extensions/browser/frontend/BrowserSidebarPortals.tsx +0 -360
  321. package/extensions/browser/frontend/BrowserViewer.tsx +0 -500
  322. package/extensions/browser/frontend/browser-resource-state.ts +0 -60
  323. package/extensions/browser/frontend/browser.css +0 -567
  324. package/extensions/browser/frontend/types.ts +0 -31
  325. package/extensions/browser/frontend/useBrowserResources.ts +0 -158
  326. package/frontend/vendor/ghostty-web/index.d.ts +0 -1842
  327. package/shared/backend-connection-status.d.ts +0 -37
  328. package/shared/browser-protocol.d.ts +0 -5
  329. /package/dist/assets/{api-w2x5QfxB.js → api-ByCV9MEr.js} +0 -0
  330. /package/dist/assets/{core-vPkV8P_m.js → core-Czwdx12k.js} +0 -0
  331. /package/dist/assets/{fsharp-DNZNZyEE.js → fsharp-BjPpkoJe.js} +0 -0
  332. /package/dist/assets/{go-_kPJjNc_.js → go-BkIDmSUP.js} +0 -0
  333. /package/dist/assets/{graphql-4HCNVt5g.js → graphql-CCJTpqi1.js} +0 -0
  334. /package/dist/assets/{hcl-C87ymY0o.js → hcl-s4z8lUFg.js} +0 -0
  335. /package/dist/assets/{ini-BYrrGNTc.js → ini-CyUW1I7Z.js} +0 -0
  336. /package/dist/assets/{java-B211rJbk.js → java-CFCcGRiM.js} +0 -0
  337. /package/dist/assets/{julia-DVPsRtBm.js → julia-DQyH_EYb.js} +0 -0
  338. /package/dist/assets/{kotlin-BYyNerjp.js → kotlin-B8hA5O51.js} +0 -0
  339. /package/dist/assets/{less-EC9UblGE.js → less-DaVdaas0.js} +0 -0
  340. /package/dist/assets/{lexon-B1yuUdqW.js → lexon-DLBhPd3y.js} +0 -0
  341. /package/dist/assets/{lua-Bo6GFzxT.js → lua-gB1c_cif.js} +0 -0
  342. /package/dist/assets/{m3-C-Y9cBVI.js → m3-C2T3z3gB.js} +0 -0
  343. /package/dist/assets/{markdown-BHu-wLbe.js → markdown-CKq-Euj1.js} +0 -0
  344. /package/dist/assets/{mips-Dkds26rX.js → mips-Bcs5qIDX.js} +0 -0
  345. /package/dist/assets/{msdax-PU4g-8_g.js → msdax-CBP48FHF.js} +0 -0
  346. /package/dist/assets/{mysql-fPpuGpS7.js → mysql-c7tiPcFj.js} +0 -0
  347. /package/dist/assets/{objective-c-Wy1e5JUf.js → objective-c-D4BZkeEV.js} +0 -0
  348. /package/dist/assets/{pascal-BIXwvrqU.js → pascal-CJDZg0MN.js} +0 -0
  349. /package/dist/assets/{pascaligo-DwR0AtL_.js → pascaligo-Bygi8Ynl.js} +0 -0
  350. /package/dist/assets/{perl-CGHAl8my.js → perl-aS8bkf7E.js} +0 -0
  351. /package/dist/assets/{pgsql-B91M73E2.js → pgsql-CzNAYFYl.js} +0 -0
  352. /package/dist/assets/{php-C70ttrCx.js → php-DOtoEFTT.js} +0 -0
  353. /package/dist/assets/{pla-BNrXaRh0.js → pla-DugRnao1.js} +0 -0
  354. /package/dist/assets/{postiats-Dv2IAZR9.js → postiats-DsXwusKh.js} +0 -0
  355. /package/dist/assets/{powerquery-CkY5Wq7J.js → powerquery-DL3o72oD.js} +0 -0
  356. /package/dist/assets/{powershell-uGIYLU3C.js → powershell-C1qHekys.js} +0 -0
  357. /package/dist/assets/{protobuf-CavfmJu-.js → protobuf-DHgsc-cH.js} +0 -0
  358. /package/dist/assets/{pug-Drqnyitx.js → pug-FZXlE_Iu.js} +0 -0
  359. /package/dist/assets/{qrcode-7uGsTEmi.js → qrcode-DJDTdjL7.js} +0 -0
  360. /package/dist/assets/{qsharp-C7yF-Dti.js → qsharp-bLyhI3DT.js} +0 -0
  361. /package/dist/assets/{r-HXLGP0_-.js → r-DjFGXbAa.js} +0 -0
  362. /package/dist/assets/{redis-C4y6mf2p.js → redis-DSoZ_V6u.js} +0 -0
  363. /package/dist/assets/{redshift-DdQrFPrv.js → redshift-CzkdCsrg.js} +0 -0
  364. /package/dist/assets/{restructuredtext-CBrf2PNj.js → restructuredtext-B_XPrGCQ.js} +0 -0
  365. /package/dist/assets/{ruby-CVtMoX2B.js → ruby-Cry2RneJ.js} +0 -0
  366. /package/dist/assets/{rust-Ckq4sbMP.js → rust-CWzdbFq1.js} +0 -0
  367. /package/dist/assets/{sb-er66OpE3.js → sb-DmofU59h.js} +0 -0
  368. /package/dist/assets/{scala-BdWZz-hH.js → scala-BUC2l-vN.js} +0 -0
  369. /package/dist/assets/{scheme-kTV_s2kP.js → scheme-CNIB_72f.js} +0 -0
  370. /package/dist/assets/{scss-Bymy2VJQ.js → scss-DcL4-NbX.js} +0 -0
  371. /package/dist/assets/{shell-bwEP1LQ1.js → shell-CgAGvSSA.js} +0 -0
  372. /package/dist/assets/{solidity-DCddeBgL.js → solidity-DSkt6O_P.js} +0 -0
  373. /package/dist/assets/{sophia-BMN3AQig.js → sophia--5ytcjDN.js} +0 -0
  374. /package/dist/assets/{sparql-CSXOLjzi.js → sparql-C1Srr7cD.js} +0 -0
  375. /package/dist/assets/{sql-COg8ewmK.js → sql-2k_O5fj7.js} +0 -0
  376. /package/dist/assets/{st-CIaZtBS_.js → st-DCCCPqfz.js} +0 -0
  377. /package/dist/assets/{swift-DXiOhUHu.js → swift-Dd8mAfOt.js} +0 -0
  378. /package/dist/assets/{systemverilog-BTDE6Dr2.js → systemverilog-B0-aZYXu.js} +0 -0
  379. /package/dist/assets/{tcl-B0zy9NvV.js → tcl-CZAZwPVX.js} +0 -0
  380. /package/dist/assets/{twig-D594l4Z1.js → twig-D-Ag0tdS.js} +0 -0
  381. /package/dist/assets/{typespec-XKVjaPqo.js → typespec-B7kTFp0Z.js} +0 -0
  382. /package/dist/assets/{useWorkspaceMenuKeyboard-Bpy_s69Z.js → useWorkspaceMenuKeyboard-uYZpDxhU.js} +0 -0
  383. /package/dist/assets/{vb-B2wYoKRV.js → vb-20w1JPum.js} +0 -0
  384. /package/dist/assets/{wgsl-D0Yf2LbK.js → wgsl-CLJfqFt0.js} +0 -0
  385. /package/dist/assets/{workspace-working-copy-C3FSR3N6.js → workspace-working-copy-Cfz07cOd.js} +0 -0
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  const fs = require('fs');
3
3
  const path = require('path');
4
- const { requestJson } = require('../backend/farming-browser-client');
5
- const { rootIdForPath } = require('../../../backend/workspace-root-registry');
4
+ const { requestJson } = require('../backend/farming-browser-client.cjs');
5
+ const { rootIdForPath } = require('../../../backend/workspace-root-registry.cjs');
6
6
 
7
7
  function usage() {
8
8
  return `Usage: farming browser <command> [options]
9
9
 
10
10
  Start here:
11
11
  capability Check whether Farming Browser is available
12
- list Discover this Project's Browser Resources
12
+ list Discover this Agent's Browser Resources
13
13
  create Create another independently visible Browser
14
14
  help workflow Read the recommended Agent workflow
15
15
 
@@ -31,7 +31,7 @@ const TOPIC_HELP = Object.freeze({
31
31
  workflow: `Recommended Agent workflow:
32
32
  1. farming capabilities
33
33
  2. farming browser list
34
- 3. Reuse a Project Browser, or create and start one
34
+ 3. Reuse a Browser owned by this Agent, or create and start one
35
35
  4. Navigate, then take a snapshot
36
36
  5. Act through snapshot refs; wait and snapshot again after page changes
37
37
  6. Use inspection or debugging commands only when the normal flow is insufficient
@@ -230,16 +230,18 @@ function writeJson(value) {
230
230
 
231
231
  async function requireProjectBrowser(id) {
232
232
  const requestedWorkspace = String(process.env.FARMING_PROJECT_WORKSPACE || '').trim();
233
+ const requestedAgentId = String(process.env.FARMING_AGENT_ID || '').trim();
233
234
  if (!requestedWorkspace) return;
234
235
  const workspace = path.resolve(requestedWorkspace);
235
236
  const result = await requestJson('GET', '/api/browsers');
236
237
  const resource = (result.resources || []).find(item => (
237
238
  item?.id === id
239
+ && (!requestedAgentId || item.ownerAgentId === requestedAgentId)
238
240
  && item.workspace
239
241
  && path.resolve(item.workspace) === workspace
240
242
  ));
241
243
  if (!resource) {
242
- throw new Error(`Browser Resource ${id} is not available in this Agent's Project`);
244
+ throw new Error(`Browser Resource ${id} is not owned by this Agent`);
243
245
  }
244
246
  }
245
247
 
@@ -258,7 +260,7 @@ async function run(argv = process.argv.slice(2)) {
258
260
  return 0;
259
261
  }
260
262
  if (command === 'mcp') {
261
- const { runBrowserMcpServer } = require('../backend/browser-mcp-server');
263
+ const { runBrowserMcpServer } = require('../backend/browser-mcp-server.cjs');
262
264
  await runBrowserMcpServer();
263
265
  return 0;
264
266
  }
@@ -275,6 +277,7 @@ async function run(argv = process.argv.slice(2)) {
275
277
  const workspace = path.resolve(requestedWorkspace);
276
278
  const result = await requestJson('POST', '/api/browsers', {
277
279
  rootId: rootIdForPath(workspace),
280
+ agentId: process.env.FARMING_AGENT_ID || undefined,
278
281
  name: option(args, '--name') || undefined,
279
282
  url: option(args, '--url') || undefined,
280
283
  });
@@ -289,7 +292,13 @@ async function run(argv = process.argv.slice(2)) {
289
292
  const workspace = requestedWorkspace ? path.resolve(requestedWorkspace) : '';
290
293
  const result = await requestJson('GET', '/api/browsers');
291
294
  const resources = workspace
292
- ? result.resources.filter(resource => path.resolve(resource.workspace) === workspace)
295
+ ? result.resources.filter(resource => (
296
+ path.resolve(resource.workspace) === workspace
297
+ && (
298
+ !process.env.FARMING_AGENT_ID
299
+ || resource.ownerAgentId === process.env.FARMING_AGENT_ID
300
+ )
301
+ ))
293
302
  : result.resources;
294
303
  writeJson({ resources });
295
304
  return 0;
@@ -0,0 +1,72 @@
1
+ // Generated by scripts/build-backend-runtime.ts. Do not edit.
2
+ "use strict";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var agent_capability_exports = {};
21
+ __export(agent_capability_exports, {
22
+ FARMING_COMPUTER_MCP_SERVER_NAME: () => FARMING_COMPUTER_MCP_SERVER_NAME,
23
+ isFarmingComputerServer: () => isFarmingComputerServer,
24
+ mergeComputerMcpServer: () => mergeComputerMcpServer
25
+ });
26
+ module.exports = __toCommonJS(agent_capability_exports);
27
+ const path = require("path");
28
+ const FARMING_COMPUTER_MCP_SERVER_NAME = "farming-computer";
29
+ const FARMING_COMPUTER_MCP_META_KEY = "farming.dev/extension";
30
+ function recordValue(value) {
31
+ return value && typeof value === "object" ? value : {};
32
+ }
33
+ function isFarmingComputerServer(server) {
34
+ const value = recordValue(server);
35
+ return recordValue(value._meta)[FARMING_COMPUTER_MCP_META_KEY] === "computer";
36
+ }
37
+ function computerMcpEnv(agentEnv) {
38
+ return [
39
+ "FARMING_AGENT_ID",
40
+ "FARMING_CONFIG_DIR",
41
+ "FARMING_CONTROL_URL",
42
+ "FARMING_DISABLE_AUTH",
43
+ "FARMING_PROJECT_WORKSPACE",
44
+ "FARMING_TOKEN_FILE"
45
+ ].flatMap((name) => agentEnv[name] === void 0 || agentEnv[name] === "" ? [] : [{ name, value: String(agentEnv[name]) }]);
46
+ }
47
+ function mergeComputerMcpServer(mcpServers, options) {
48
+ const existing = Array.isArray(mcpServers) ? mcpServers : [];
49
+ const collision = existing.find((server) => recordValue(server).name === FARMING_COMPUTER_MCP_SERVER_NAME && !isFarmingComputerServer(server));
50
+ if (collision) {
51
+ throw new Error(
52
+ `MCP server name "${FARMING_COMPUTER_MCP_SERVER_NAME}" is reserved by the Farming Computer Extension`
53
+ );
54
+ }
55
+ const command = path.join(options.cliBinDir, process.platform === "win32" ? "farming.cmd" : "farming");
56
+ return [
57
+ ...existing.filter((server) => !isFarmingComputerServer(server)),
58
+ {
59
+ name: FARMING_COMPUTER_MCP_SERVER_NAME,
60
+ command,
61
+ args: ["computer", "mcp"],
62
+ env: computerMcpEnv(options.agentEnv || {}),
63
+ _meta: { [FARMING_COMPUTER_MCP_META_KEY]: "computer" }
64
+ }
65
+ ];
66
+ }
67
+ // Annotate the CommonJS export names for ESM import in node:
68
+ 0 && (module.exports = {
69
+ FARMING_COMPUTER_MCP_SERVER_NAME,
70
+ isFarmingComputerServer,
71
+ mergeComputerMcpServer
72
+ });
@@ -0,0 +1,59 @@
1
+ // Generated by scripts/build-backend-runtime.ts. Do not edit.
2
+ "use strict";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var computer_constants_exports = {};
21
+ __export(computer_constants_exports, {
22
+ COMPUTER_CONTAINER_CPUS: () => COMPUTER_CONTAINER_CPUS,
23
+ COMPUTER_CONTAINER_MEMORY: () => COMPUTER_CONTAINER_MEMORY,
24
+ COMPUTER_CONTAINER_PIDS: () => COMPUTER_CONTAINER_PIDS,
25
+ COMPUTER_CONTAINER_SHM_SIZE: () => COMPUTER_CONTAINER_SHM_SIZE,
26
+ COMPUTER_DRIVER_BIN: () => COMPUTER_DRIVER_BIN,
27
+ COMPUTER_DRIVER_VERSION: () => COMPUTER_DRIVER_VERSION,
28
+ COMPUTER_IMAGE: () => COMPUTER_IMAGE,
29
+ COMPUTER_IMAGE_INDEX_DIGEST: () => COMPUTER_IMAGE_INDEX_DIGEST,
30
+ COMPUTER_SCHEMA_SHA256: () => COMPUTER_SCHEMA_SHA256,
31
+ COMPUTER_TOOL_COUNT: () => COMPUTER_TOOL_COUNT,
32
+ COMPUTER_USER: () => COMPUTER_USER
33
+ });
34
+ module.exports = __toCommonJS(computer_constants_exports);
35
+ const COMPUTER_DRIVER_VERSION = "0.12.4";
36
+ const COMPUTER_IMAGE_INDEX_DIGEST = "sha256:274eb636f5cf3fc58f705916ee72b7a701270b3877369d08533a385c5325be9b";
37
+ const COMPUTER_IMAGE = `trycua/xfce-cua@${COMPUTER_IMAGE_INDEX_DIGEST}`;
38
+ const COMPUTER_SCHEMA_SHA256 = "8c9bd7890cb3e1cfc2409c590b087d8313a80672eeed7ceae6beee19356c146c";
39
+ const COMPUTER_TOOL_COUNT = 53;
40
+ const COMPUTER_CONTAINER_MEMORY = "4g";
41
+ const COMPUTER_CONTAINER_CPUS = "2";
42
+ const COMPUTER_CONTAINER_SHM_SIZE = "1g";
43
+ const COMPUTER_CONTAINER_PIDS = "1024";
44
+ const COMPUTER_DRIVER_BIN = "/opt/venv/bin/cua-driver";
45
+ const COMPUTER_USER = "cua";
46
+ // Annotate the CommonJS export names for ESM import in node:
47
+ 0 && (module.exports = {
48
+ COMPUTER_CONTAINER_CPUS,
49
+ COMPUTER_CONTAINER_MEMORY,
50
+ COMPUTER_CONTAINER_PIDS,
51
+ COMPUTER_CONTAINER_SHM_SIZE,
52
+ COMPUTER_DRIVER_BIN,
53
+ COMPUTER_DRIVER_VERSION,
54
+ COMPUTER_IMAGE,
55
+ COMPUTER_IMAGE_INDEX_DIGEST,
56
+ COMPUTER_SCHEMA_SHA256,
57
+ COMPUTER_TOOL_COUNT,
58
+ COMPUTER_USER
59
+ });
@@ -0,0 +1,182 @@
1
+ // Generated by scripts/build-backend-runtime.ts. Do not edit.
2
+ "use strict";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var computer_mcp_server_exports = {};
21
+ __export(computer_mcp_server_exports, {
22
+ ScopedComputerClient: () => ScopedComputerClient,
23
+ createComputerMcpServer: () => createComputerMcpServer,
24
+ loadManifest: () => loadManifest,
25
+ runComputerMcpServer: () => runComputerMcpServer
26
+ });
27
+ module.exports = __toCommonJS(computer_mcp_server_exports);
28
+ var import_server = require("@modelcontextprotocol/sdk/server/index.js");
29
+ var import_stdio = require("@modelcontextprotocol/sdk/server/stdio.js");
30
+ var import_types = require("@modelcontextprotocol/sdk/types.js");
31
+ var import_workspace_root_registry = require("../../../backend/workspace-root-registry.cjs");
32
+ var import_farming_computer_client = require("./farming-computer-client.cjs");
33
+ var import_computer_constants = require("./computer-constants.cjs");
34
+ const fs = require("fs");
35
+ const path = require("path");
36
+ const crypto = require("crypto");
37
+ function recordValue(value) {
38
+ return value && typeof value === "object" && !Array.isArray(value) ? value : {};
39
+ }
40
+ function textResult(value) {
41
+ return {
42
+ content: [{ type: "text", text: JSON.stringify(value, null, 2) }],
43
+ structuredContent: recordValue(value)
44
+ };
45
+ }
46
+ function loadManifest() {
47
+ const file = path.join(__dirname, "cua-tools.json");
48
+ const bytes = fs.readFileSync(file);
49
+ const sha256 = crypto.createHash("sha256").update(bytes).digest("hex");
50
+ if (sha256 !== import_computer_constants.COMPUTER_SCHEMA_SHA256) {
51
+ throw new Error(`Farming Computer tool schema integrity mismatch: ${sha256}`);
52
+ }
53
+ const manifest = JSON.parse(bytes.toString("utf8"));
54
+ if (manifest.driverVersion !== import_computer_constants.COMPUTER_DRIVER_VERSION || manifest.toolCount !== import_computer_constants.COMPUTER_TOOL_COUNT || manifest.tools.length !== import_computer_constants.COMPUTER_TOOL_COUNT) {
55
+ throw new Error("Farming Computer tool schema does not match the pinned Cua Driver contract");
56
+ }
57
+ return manifest;
58
+ }
59
+ class ScopedComputerClient {
60
+ env;
61
+ workspace;
62
+ agentId;
63
+ constructor(env = process.env) {
64
+ this.env = env;
65
+ this.workspace = String(env.FARMING_PROJECT_WORKSPACE || "").trim();
66
+ this.agentId = String(env.FARMING_AGENT_ID || "").trim();
67
+ }
68
+ requireBinding() {
69
+ if (!this.workspace || !this.agentId) {
70
+ throw new Error("This Computer tool server is not bound to a Farming Agent Project");
71
+ }
72
+ }
73
+ async list() {
74
+ this.requireBinding();
75
+ const snapshot = recordValue(await (0, import_farming_computer_client.requestJson)("GET", "/api/computers", void 0, this.env));
76
+ return (Array.isArray(snapshot.resources) ? snapshot.resources : []).map(recordValue).filter((resource) => resource.ownerAgentId === this.agentId);
77
+ }
78
+ async open(input = {}) {
79
+ this.requireBinding();
80
+ const existing = (await this.list())[0];
81
+ const resource = existing || recordValue(await (0, import_farming_computer_client.requestJson)("POST", "/api/computers", {
82
+ rootId: (0, import_workspace_root_registry.rootIdForPath)(this.workspace),
83
+ agentId: this.agentId,
84
+ name: input.name
85
+ }, this.env));
86
+ if (resource.status === "running") return resource;
87
+ return recordValue(await (0, import_farming_computer_client.requestJson)(
88
+ "POST",
89
+ `/api/computers/${encodeURIComponent(String(resource.id))}/start`,
90
+ void 0,
91
+ this.env
92
+ ));
93
+ }
94
+ async stop() {
95
+ const resource = (await this.list())[0];
96
+ if (!resource) return { stopped: true, resource: null };
97
+ return recordValue(await (0, import_farming_computer_client.requestJson)(
98
+ "POST",
99
+ `/api/computers/${encodeURIComponent(String(resource.id))}/stop`,
100
+ void 0,
101
+ this.env
102
+ ));
103
+ }
104
+ async call(upstreamName, input) {
105
+ const resource = await this.open();
106
+ const result = recordValue(await (0, import_farming_computer_client.requestJson)(
107
+ "POST",
108
+ `/api/computers/${encodeURIComponent(String(resource.id))}/tool/${encodeURIComponent(upstreamName)}`,
109
+ input,
110
+ this.env
111
+ ));
112
+ return result;
113
+ }
114
+ }
115
+ function createComputerMcpServer(options = {}) {
116
+ const manifest = loadManifest();
117
+ const client = options.client || new ScopedComputerClient(options.env);
118
+ const server = new import_server.Server(
119
+ { name: "farming-computer", version: "1.0.0" },
120
+ { capabilities: { tools: {} } }
121
+ );
122
+ const lifecycleTools = [{
123
+ name: "computer_open",
124
+ title: "Open Farming Computer",
125
+ description: "Create or start the isolated Computer owned by this Farming Agent.",
126
+ inputSchema: {
127
+ type: "object",
128
+ additionalProperties: false,
129
+ properties: {
130
+ name: { type: "string", minLength: 1, maxLength: 120 }
131
+ }
132
+ },
133
+ annotations: {
134
+ readOnlyHint: false,
135
+ destructiveHint: false,
136
+ idempotentHint: true,
137
+ openWorldHint: true
138
+ }
139
+ }, {
140
+ name: "computer_list",
141
+ title: "List Farming Computer",
142
+ description: "List the isolated Computer owned by this Farming Agent.",
143
+ inputSchema: { type: "object", additionalProperties: false, properties: {} },
144
+ annotations: { readOnlyHint: true, openWorldHint: false }
145
+ }, {
146
+ name: "computer_stop",
147
+ title: "Stop Farming Computer",
148
+ description: "Stop this Agent Computer while retaining its resource row and container state.",
149
+ inputSchema: { type: "object", additionalProperties: false, properties: {} },
150
+ annotations: {
151
+ readOnlyHint: false,
152
+ destructiveHint: false,
153
+ idempotentHint: true,
154
+ openWorldHint: true
155
+ }
156
+ }];
157
+ server.setRequestHandler(import_types.ListToolsRequestSchema, async () => ({
158
+ tools: [...lifecycleTools, ...manifest.tools]
159
+ }));
160
+ server.setRequestHandler(import_types.CallToolRequestSchema, async (request) => {
161
+ const name = request.params.name;
162
+ const input = recordValue(request.params.arguments);
163
+ if (name === "computer_open") return textResult(await client.open(input));
164
+ if (name === "computer_list") return textResult({ resources: await client.list() });
165
+ if (name === "computer_stop") return textResult(await client.stop());
166
+ const tool = manifest.tools.find((candidate) => candidate.name === name);
167
+ if (!tool) throw new Error(`Unknown Computer tool: ${name}`);
168
+ return client.call(tool.upstreamName, input);
169
+ });
170
+ return server;
171
+ }
172
+ async function runComputerMcpServer(options = {}) {
173
+ const server = createComputerMcpServer(options);
174
+ await server.connect(new import_stdio.StdioServerTransport());
175
+ }
176
+ // Annotate the CommonJS export names for ESM import in node:
177
+ 0 && (module.exports = {
178
+ ScopedComputerClient,
179
+ createComputerMcpServer,
180
+ loadManifest,
181
+ runComputerMcpServer
182
+ });