farming-code 2.2.6
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.
- package/LICENSE +21 -0
- package/README.md +287 -0
- package/README.zh_cn.md +329 -0
- package/SECURITY.md +29 -0
- package/THIRD_PARTY_NOTICES.md +106 -0
- package/backend/acp/client-services.js +312 -0
- package/backend/acp/patch-decisions.js +137 -0
- package/backend/acp/permission-security.js +108 -0
- package/backend/acp-runtime.js +1144 -0
- package/backend/acp-session-state.js +448 -0
- package/backend/acp-transcript.js +169 -0
- package/backend/agent-activity.js +186 -0
- package/backend/agent-env.js +250 -0
- package/backend/agent-json-stream.js +268 -0
- package/backend/agent-manager.js +4259 -0
- package/backend/agent-memory-report.js +583 -0
- package/backend/agent-order.js +162 -0
- package/backend/agent-provider-session.js +287 -0
- package/backend/agent-session-history.js +888 -0
- package/backend/app-server-api.js +917 -0
- package/backend/async-cache.js +94 -0
- package/backend/auth.js +178 -0
- package/backend/claude-settings.js +121 -0
- package/backend/cli-agents.js +484 -0
- package/backend/codex-app-server-home.js +39 -0
- package/backend/codex-app-server-runtime.js +901 -0
- package/backend/codex-context-window.js +189 -0
- package/backend/codex-models.js +229 -0
- package/backend/codex-rollout-follower.js +243 -0
- package/backend/codex-session-history.js +553 -0
- package/backend/codex-transcript-sanitizer.js +103 -0
- package/backend/codex-transcript.js +2341 -0
- package/backend/command-runner-child.js +67 -0
- package/backend/config-manager.js +815 -0
- package/backend/control-api.js +151 -0
- package/backend/data/chinese-poetic-words.json +8223 -0
- package/backend/data/poetic-word-sources/china.json +49209 -0
- package/backend/data/poetic-word-sources/india.json +9763 -0
- package/backend/data/poetic-word-sources/japan.json +8455 -0
- package/backend/executable-discovery.js +207 -0
- package/backend/farming-app-cli.js +790 -0
- package/backend/farming-cli.js +400 -0
- package/backend/farming-session-store.js +373 -0
- package/backend/haiku-token.js +772 -0
- package/backend/index-html.js +49 -0
- package/backend/input-parts.js +54 -0
- package/backend/input-routing.js +24 -0
- package/backend/json-cli-runtime.js +161 -0
- package/backend/local-session-engine.js +620 -0
- package/backend/main-agent-skills.js +292 -0
- package/backend/main-page-session.js +119 -0
- package/backend/native-pty-host-client.js +516 -0
- package/backend/native-pty-host-path.js +22 -0
- package/backend/native-pty-host.js +816 -0
- package/backend/native-session-engine.js +196 -0
- package/backend/network.js +23 -0
- package/backend/npm-update-helper.js +196 -0
- package/backend/packaged-node-pty.js +79 -0
- package/backend/provider-session-id.js +47 -0
- package/backend/qr-share-tickets.js +100 -0
- package/backend/review-diff-router.js +180 -0
- package/backend/review-diff-service.js +1270 -0
- package/backend/review-session-router.js +74 -0
- package/backend/review-session-service.js +432 -0
- package/backend/review-session-store.js +144 -0
- package/backend/review-state-router.js +116 -0
- package/backend/review-state-store.js +287 -0
- package/backend/run-history-store.js +70 -0
- package/backend/server.js +2446 -0
- package/backend/session-engine-bridge.js +110 -0
- package/backend/session-engine-router.js +66 -0
- package/backend/session-engine.js +39 -0
- package/backend/shell-busy-integration.js +472 -0
- package/backend/slash-command-discovery.js +296 -0
- package/backend/storage-layout.js +101 -0
- package/backend/system-monitor.js +77 -0
- package/backend/terminal-runtime-cleanup.js +80 -0
- package/backend/terminal-screen-state.js +240 -0
- package/backend/terminal-screen-worker-pool.js +165 -0
- package/backend/terminal-screen-worker-thread.js +161 -0
- package/backend/terminal-screen-worker.js +255 -0
- package/backend/terminal-status.js +356 -0
- package/backend/theme-manager.js +145 -0
- package/backend/update-service.js +1183 -0
- package/backend/usage-forecast.js +86 -0
- package/backend/usage-monitor.js +1357 -0
- package/backend/workspace-discovery.js +311 -0
- package/backend/workspace-file-router.js +431 -0
- package/backend/workspace-file-service.js +2765 -0
- package/bin/farming +5 -0
- package/config/farming.deploy.env.example +13 -0
- package/config/farming.install.env.example +17 -0
- package/dist/assets/App-BrP-ENHg.css +1 -0
- package/dist/assets/App-Dza5yEDe.js +124 -0
- package/dist/assets/FileEditorMarkdownPreview-DRDNQ8mX.css +1 -0
- package/dist/assets/FileEditorMarkdownPreview-elKWc8Im.js +404 -0
- package/dist/assets/FileEditorPane-BQLocXOp.js +5 -0
- package/dist/assets/IconGlyphs-RkMAdBXF.js +1 -0
- package/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/assets/ProjectFilesSection-lS1azbgj.js +12 -0
- package/dist/assets/ReviewPage-DgnmgU2T.js +3 -0
- package/dist/assets/abap-Cc5D5h5i.js +1 -0
- package/dist/assets/abnfDiagram-VRR7QNED-BgawzDQT.js +1 -0
- package/dist/assets/apex-BKopwLmx.js +1 -0
- package/dist/assets/api-D1lyBYIQ.js +1 -0
- package/dist/assets/arc-CWoVlxJw.js +1 -0
- package/dist/assets/architecture-TIHT7OUA-CbJBFh3w.js +1 -0
- package/dist/assets/architectureDiagram-ZJ3FMSHR-DUShwPg0.js +36 -0
- package/dist/assets/array-HeX70jSN.js +1 -0
- package/dist/assets/azcli-DI-C34WA.js +1 -0
- package/dist/assets/bat-Cbp6u42z.js +1 -0
- package/dist/assets/bicep-4QA1jTCM.js +2 -0
- package/dist/assets/blockDiagram-677ZJIJ3-CeGZviXR.js +132 -0
- package/dist/assets/c4Diagram-LMCZKHZV-CLhYht6S.js +10 -0
- package/dist/assets/cameligo-Dda_adPs.js +1 -0
- package/dist/assets/channel-Uw90AO0b.js +1 -0
- package/dist/assets/chunk-2Q5K7J3B-d5WWh8jo.js +1 -0
- package/dist/assets/chunk-32BRIVSS-LFYpT-Cu.js +1 -0
- package/dist/assets/chunk-52WLFC77-BH6jDw9J.js +10 -0
- package/dist/assets/chunk-5FCAYU7R-C7AmIhYv.js +1 -0
- package/dist/assets/chunk-5HE753X5-C8cXaouP.js +1 -0
- package/dist/assets/chunk-5JV3BV7I-C1PtimcA.js +1 -0
- package/dist/assets/chunk-5TONJI2A-_81zUME8.js +2 -0
- package/dist/assets/chunk-5VM5RSS4-Dlw7AXWp.js +15 -0
- package/dist/assets/chunk-7BUUIJ7U-ZBRhjLOh.js +1 -0
- package/dist/assets/chunk-BIQX33UG-CWmzxeAw.js +1 -0
- package/dist/assets/chunk-C7G6YPKG-B_mIUlb7.js +1 -0
- package/dist/assets/chunk-CQNSW5MT-CMayolwI.js +1 -0
- package/dist/assets/chunk-CYSBUYHQ-lSPbrL3Z.js +1 -0
- package/dist/assets/chunk-DECur_0Z.js +1 -0
- package/dist/assets/chunk-EMLP6XTP-D9-jtCnM.js +1 -0
- package/dist/assets/chunk-EX3LRPZG-C63hVuAJ.js +231 -0
- package/dist/assets/chunk-FWX5IMBZ-CboX-WF_.js +2 -0
- package/dist/assets/chunk-HOUHSVGY-BOgSd6Un.js +1 -0
- package/dist/assets/chunk-ICXQ74PX-C0K-pgZt.js +2 -0
- package/dist/assets/chunk-JG7HCLWE-Cib606u_.js +2 -0
- package/dist/assets/chunk-JWPE2WC7-DSyBRaRG.js +1 -0
- package/dist/assets/chunk-KEIR6QF5-CNOHik0T.js +161 -0
- package/dist/assets/chunk-MOJQB5TN-CVMfwN_7.js +88 -0
- package/dist/assets/chunk-MOZMSUNE-D6JeZqmE.js +1 -0
- package/dist/assets/chunk-OGEWGWER-DLT3pxyw.js +1 -0
- package/dist/assets/chunk-OSBZ3O6U-C0W8KSeg.js +1 -0
- package/dist/assets/chunk-PUDLZKDR-Cd079yIQ.js +156 -0
- package/dist/assets/chunk-Q4XR5HBZ-D0jHa6SO.js +70 -0
- package/dist/assets/chunk-QBLGF6JB-p4omp7uO.js +1 -0
- package/dist/assets/chunk-R7FJI6CG-CZ_p9hSr.js +1 -0
- package/dist/assets/chunk-RYQCIY6F-CZA9pvFX.js +1 -0
- package/dist/assets/chunk-U6XO7XAA-CcXKsWxp.js +2 -0
- package/dist/assets/chunk-V7JOEXUC-CVDtR75H.js +206 -0
- package/dist/assets/chunk-VAUOI2AC-B-W2_9Ot.js +1 -0
- package/dist/assets/chunk-VR4S4FIN-FD3kWh32.js +1 -0
- package/dist/assets/chunk-WYO6CB5R-C2bGaS5r.js +127 -0
- package/dist/assets/chunk-XXDRQBXY-BBXwjhUx.js +1 -0
- package/dist/assets/chunk-Y2CYZVJY-Di0sYzi1.js +1 -0
- package/dist/assets/chunk-YOTPTUD7-BXHmEk89.js +1 -0
- package/dist/assets/chunk-ZGVPDNZ5-ymgts0zo.js +62 -0
- package/dist/assets/chunk-ZIRB5QZD-DncwlQQc.js +32 -0
- package/dist/assets/classDiagram-OUVF2IWQ-DKW_dtku.js +1 -0
- package/dist/assets/classDiagram-v2-EOCWNBFH-C8Fi7-yv.js +1 -0
- package/dist/assets/clojure-CvY8A83L.js +1 -0
- package/dist/assets/code-dark-Cjb1QGhu.css +1 -0
- package/dist/assets/code-mobile-3C2Rr-CN.css +1 -0
- package/dist/assets/codicon-ngg6Pgfi.ttf +0 -0
- package/dist/assets/coffee-4LX2Sv8A.js +1 -0
- package/dist/assets/core-ZlAPicox.js +3 -0
- package/dist/assets/cose-bilkent-JH36ORCC-BNIAz0nN.js +1 -0
- package/dist/assets/cpp-D4AzSV28.js +1 -0
- package/dist/assets/csharp-C4nWN4Yd.js +1 -0
- package/dist/assets/csp-CiEaaS5Z.js +1 -0
- package/dist/assets/css-DXxBRsbk.js +3 -0
- package/dist/assets/css.worker-DyDu5ynT.js +89 -0
- package/dist/assets/cssMode-DDWxTPm_.js +1 -0
- package/dist/assets/cynefin-VYW2F7L2-DgXGHlRt.js +1 -0
- package/dist/assets/cynefinDiagram-TSTJHNR4-CwpobXIl.js +62 -0
- package/dist/assets/cypher-DOMzqyFA.js +1 -0
- package/dist/assets/cytoscape.esm-Cl8iC3D7.js +321 -0
- package/dist/assets/dagre-DXlcHgr3.js +1 -0
- package/dist/assets/dagre-VKFMJZFB-Dkhlfjna.js +4 -0
- package/dist/assets/dart-BWS7MXt_.js +1 -0
- package/dist/assets/defaultLocale-GJwWH1Jr.js +1 -0
- package/dist/assets/diagram-FQU43EPY-hA8dicp6.js +3 -0
- package/dist/assets/diagram-G47NLZAW-BTY6JTzO.js +24 -0
- package/dist/assets/diagram-NH7WQ7WH-xkaHHX9M.js +24 -0
- package/dist/assets/diagram-OA4YK3LP-gk_fg9UU.js +30 -0
- package/dist/assets/diagram-WEI45ONY-BvC8xd6T.js +41 -0
- package/dist/assets/dist-ClAL-Tv5.js +1 -0
- package/dist/assets/dockerfile-Baf4U3xT.js +1 -0
- package/dist/assets/ebnfDiagram-CCIWWBDH-CR7RaNat.js +1 -0
- package/dist/assets/ecl-CT7udlkQ.js +1 -0
- package/dist/assets/editor-CtbFZlk0.css +1 -0
- package/dist/assets/editor.api2-B9h6iFPK.js +872 -0
- package/dist/assets/editor.worker-Dpt_xPrs.js +26 -0
- package/dist/assets/elixir-CIbAZw5l.js +1 -0
- package/dist/assets/erDiagram-Q63AITRT-_M-JFPbj.js +85 -0
- package/dist/assets/eventmodeling-45OFAUF4-DXYTQ2nt.js +1 -0
- package/dist/assets/file-icons-EFUGSSwf.js +1 -0
- package/dist/assets/flow9-Dqiw45WV.js +1 -0
- package/dist/assets/flowDiagram-23GEKE2U-DAiS5Y7G.js +1 -0
- package/dist/assets/freemarker2-QBsTERH-.js +3 -0
- package/dist/assets/fsharp-E8E2L9jU.js +1 -0
- package/dist/assets/ganttDiagram-NO4QXBWP-Bl8P1yf_.js +292 -0
- package/dist/assets/gitGraph-TEB2WS4Q-CzTBjEvV.js +1 -0
- package/dist/assets/gitGraphDiagram-IHSO6WYX-DoHa5ysz.js +106 -0
- package/dist/assets/go-CouVSN4D.js +1 -0
- package/dist/assets/graphlib-CbSvZcZU.js +1 -0
- package/dist/assets/graphql-a6h6h5-t.js +1 -0
- package/dist/assets/handlebars-CuoxPo5A.js +1 -0
- package/dist/assets/hcl-vso3e6N-.js +1 -0
- package/dist/assets/html-gX5PEu0Q.js +1 -0
- package/dist/assets/html.worker-IWNXhnIC.js +502 -0
- package/dist/assets/htmlMode-DIWUbUxd.js +1 -0
- package/dist/assets/index-BpHPeJf0.js +10 -0
- package/dist/assets/info-DKCQHKI2-DznP7j3s.js +1 -0
- package/dist/assets/infoDiagram-FWYZ7A6U-DSFcSuUs.js +2 -0
- package/dist/assets/ini-SwZZkotR.js +1 -0
- package/dist/assets/init-BPLPMQ3Y.js +1 -0
- package/dist/assets/ishikawaDiagram-FXEZZL3T-DdkqullI.js +70 -0
- package/dist/assets/java-CtRLC4_3.js +1 -0
- package/dist/assets/javascript-BYKGIUGs.js +1 -0
- package/dist/assets/journeyDiagram-5HDEW3XC-B4hRnQJr.js +139 -0
- package/dist/assets/json.worker-c4h5s80L.js +58 -0
- package/dist/assets/jsonMode-AFmQQP6u.js +7 -0
- package/dist/assets/jsx-runtime-BthL93pI.js +1 -0
- package/dist/assets/julia-CuJWFKQH.js +1 -0
- package/dist/assets/kanban-definition-HUTT4EX6-tm2FZB2E.js +89 -0
- package/dist/assets/katex-C8DPyI6s.js +257 -0
- package/dist/assets/kotlin-B_kBhsre.js +1 -0
- package/dist/assets/less-CtrHIfz3.js +2 -0
- package/dist/assets/lexon-yVt1pJLu.js +1 -0
- package/dist/assets/line-CmsjK4kn.js +1 -0
- package/dist/assets/linear-Dld3_ERu.js +1 -0
- package/dist/assets/liquid-DBIl-f0z.js +1 -0
- package/dist/assets/lspLanguageFeatures-DK6tqicV.js +4 -0
- package/dist/assets/lua-prOwgJ4U.js +1 -0
- package/dist/assets/m3-DhrdTQ84.js +1 -0
- package/dist/assets/main-DTJwH51M.css +1 -0
- package/dist/assets/map-LZWWoeWa.js +1 -0
- package/dist/assets/markdown-DoI5HwSM.js +1 -0
- package/dist/assets/mdx-DS-bVtZN.js +1 -0
- package/dist/assets/mermaid-parser.core-BQtepoLd.js +4 -0
- package/dist/assets/mermaid.core-C7UT_EEL.js +11 -0
- package/dist/assets/mindmap-definition-LN4V7U3C-DplfjGms.js +96 -0
- package/dist/assets/mips-Dye5jsBU.js +1 -0
- package/dist/assets/monaco.contribution-CyLosfZI.js +2 -0
- package/dist/assets/msdax-TkNOyIL8.js +1 -0
- package/dist/assets/mysql-CEc-RKZF.js +1 -0
- package/dist/assets/objective-c-CqqCsQz0.js +1 -0
- package/dist/assets/ordinal-BLrOss5K.js +1 -0
- package/dist/assets/packet-7NZHBO7P-BDEPOPha.js +1 -0
- package/dist/assets/pascal-DO_pj8yg.js +1 -0
- package/dist/assets/pascaligo-1cbdZdF3.js +1 -0
- package/dist/assets/path-YdFzr2W6.js +1 -0
- package/dist/assets/pegDiagram-2B236MQR-lu3SdkQs.js +1 -0
- package/dist/assets/perl-B_N3PYfC.js +1 -0
- package/dist/assets/pgsql-9iYk1FQ7.js +1 -0
- package/dist/assets/php-rO2sgoUM.js +1 -0
- package/dist/assets/pie-RZYD4A2V-DWIrwPJQ.js +1 -0
- package/dist/assets/pieDiagram-ENE6RG2P-3fHbmDf9.js +39 -0
- package/dist/assets/pla-Cbgv60kq.js +1 -0
- package/dist/assets/postiats-y6xrhy_M.js +1 -0
- package/dist/assets/powerquery-BaD8gWNE.js +1 -0
- package/dist/assets/powershell-BMhG4JVe.js +1 -0
- package/dist/assets/preload-helper-mJowh_hw.js +1 -0
- package/dist/assets/protobuf-CdOP5kN3.js +2 -0
- package/dist/assets/pug-Ck60hNF9.js +1 -0
- package/dist/assets/python-C93q3xXz.js +1 -0
- package/dist/assets/qoder-C9LmmOSf.svg +1 -0
- package/dist/assets/qoder-Cf9gl0Y5.svg +1 -0
- package/dist/assets/qoder-gHCinseV.svg +1 -0
- package/dist/assets/qrcode-DV-_rjU8.js +3 -0
- package/dist/assets/qsharp-BcaKFfP-.js +1 -0
- package/dist/assets/quadrantDiagram-ABIIQ3AL-a5qoWz-X.js +7 -0
- package/dist/assets/r-rFNes0iK.js +1 -0
- package/dist/assets/radar-I7S5WNFK-B7OaD8vp.js +1 -0
- package/dist/assets/railroad-3IZDKUUU-BXW2nuCA.js +1 -0
- package/dist/assets/railroad-abnf-AHOZXSZD-Buw9QG2r.js +1 -0
- package/dist/assets/railroad-ebnf-EBAXGLYW-BjSi4sWJ.js +1 -0
- package/dist/assets/railroad-peg-LSFZ7HO6-DN1wIVhS.js +1 -0
- package/dist/assets/railroadDiagram-RFXS5EU6-D2TOuXW9.js +1 -0
- package/dist/assets/razor-CBifNGXO.js +1 -0
- package/dist/assets/react-dom-gtU6X-Hj.js +1 -0
- package/dist/assets/redis-DkpQ3K6G.js +1 -0
- package/dist/assets/redshift-Di9N5TI3.js +1 -0
- package/dist/assets/requirementDiagram-TGXJPOKE-LQBWpUvd.js +84 -0
- package/dist/assets/restructuredtext-By5ZzLt6.js +1 -0
- package/dist/assets/review-BcnwQtJv.css +1 -0
- package/dist/assets/rough.esm-c4PR5shF.js +1 -0
- package/dist/assets/ruby-fF5zGiLp.js +1 -0
- package/dist/assets/rust-C5b3AYY6.js +1 -0
- package/dist/assets/sankeyDiagram-HTMAVEWB-B1ohYoyK.js +40 -0
- package/dist/assets/sb-CD07UNRs.js +1 -0
- package/dist/assets/scala-jtn1ip9G.js +1 -0
- package/dist/assets/scheme-C4vqMkn_.js +1 -0
- package/dist/assets/scss-I4Glxjbz.js +3 -0
- package/dist/assets/sequenceDiagram-DBY2YBRQ-C3vM-hMq.js +162 -0
- package/dist/assets/shell-DubUcuns.js +1 -0
- package/dist/assets/sizeCapture-X5ZJPWSS-daTB6OcF.js +1 -0
- package/dist/assets/solidity-CNy2KSl2.js +1 -0
- package/dist/assets/sophia-D9_URt84.js +1 -0
- package/dist/assets/sparql-DviXpm4C.js +1 -0
- package/dist/assets/sql-vDRbAZgK.js +1 -0
- package/dist/assets/src-WBW1QxJt.js +1 -0
- package/dist/assets/st-CnpnRqA7.js +1 -0
- package/dist/assets/stateDiagram-2N3HPSRC-BvFhOryI.js +1 -0
- package/dist/assets/stateDiagram-v2-6OUMAXLB-WMrz4PNo.js +1 -0
- package/dist/assets/swift-D_g8Ganz.js +1 -0
- package/dist/assets/swimlanes-5IMT3BWC-DKF_b-2s.js +2 -0
- package/dist/assets/swimlanesDiagram-G3AALYLV-BGswC9oC.js +8 -0
- package/dist/assets/systemverilog-OuZa5h1M.js +1 -0
- package/dist/assets/tcl-DBm9ucsV.js +1 -0
- package/dist/assets/timeline-definition-FHXFAJF6-vAs11ux_.js +120 -0
- package/dist/assets/tokens-BwenNn5Q.css +1 -0
- package/dist/assets/treeView-QDETBFTQ-BVfICaZQ.js +1 -0
- package/dist/assets/treemap-6X3UGDF4-oWHPqo17.js +1 -0
- package/dist/assets/ts.worker-BwM5Ha3L.js +67719 -0
- package/dist/assets/tsMode-DGZTlTj8.js +11 -0
- package/dist/assets/twig-BRzEqX5Y.js +1 -0
- package/dist/assets/typescript-KJKfYO7K.js +1 -0
- package/dist/assets/typespec-D4ZgGeX8.js +1 -0
- package/dist/assets/useWorkspaceMenuKeyboard-CneKAZUJ.js +1 -0
- package/dist/assets/vb-DcP4s6WS.js +1 -0
- package/dist/assets/vennDiagram-L72KCM5P-BybTX_9B.js +34 -0
- package/dist/assets/wardley-OPB4EBWU-Dg8t5y3s.js +1 -0
- package/dist/assets/wardleyDiagram-EHGQE667-CicUmMBR.js +78 -0
- package/dist/assets/wgsl-CnRJ_QUf.js +298 -0
- package/dist/assets/workers-BSQRIkqa.js +1 -0
- package/dist/assets/workspace-view-state-CTyDzk2D.js +1 -0
- package/dist/assets/xml-C8FAcN6j.js +1 -0
- package/dist/assets/xychartDiagram-FW5EYKEG-BhWDyCX-.js +7 -0
- package/dist/assets/yaml-BQ4NrRhG.js +1 -0
- package/dist/assets/zsh-CLpveKlF.svg +1 -0
- package/dist/assets/zsh-FxSpMPbz.svg +1 -0
- package/dist/farming-2/app-icon-v2-180.png +0 -0
- package/dist/farming-2/app-icon-v2-192.png +0 -0
- package/dist/farming-2/app-icon-v2-512.png +0 -0
- package/dist/farming-2/app-icon-v2-maskable-512.png +0 -0
- package/dist/farming-2/app-icon-v2-master.png +0 -0
- package/dist/farming-2/favicon-v2-16.png +0 -0
- package/dist/farming-2/favicon-v2-32.png +0 -0
- package/dist/farming-2/favicon-v2-48.png +0 -0
- package/dist/farming-2/favicon-v2-64.png +0 -0
- package/dist/farming-2/favicon-v2.ico +0 -0
- package/dist/farming-2/favicon.ico +0 -0
- package/dist/farming-2/github-social-preview.png +0 -0
- package/dist/farming-2/images/avatar-watercolor-v1-bee-garden.png +0 -0
- package/dist/farming-2/images/avatar-watercolor-v2.png +0 -0
- package/dist/farming-2/images/avatar-watercolor-v3.png +0 -0
- package/dist/farming-2/legacy-icons-v1/favicon.ico +1 -0
- package/dist/farming-2/legacy-icons-v1/logo-16.png +0 -0
- package/dist/farming-2/legacy-icons-v1/logo-180.png +0 -0
- package/dist/farming-2/legacy-icons-v1/logo-192.png +0 -0
- package/dist/farming-2/legacy-icons-v1/logo-32.png +0 -0
- package/dist/farming-2/legacy-icons-v1/logo-48.png +0 -0
- package/dist/farming-2/legacy-icons-v1/logo-512.png +0 -0
- package/dist/farming-2/legacy-icons-v1/logo-64.png +0 -0
- package/dist/farming-2/logo-16.png +0 -0
- package/dist/farming-2/logo-180.png +0 -0
- package/dist/farming-2/logo-192.png +0 -0
- package/dist/farming-2/logo-32.png +0 -0
- package/dist/farming-2/logo-48.png +0 -0
- package/dist/farming-2/logo-512.png +0 -0
- package/dist/farming-2/logo-64.png +0 -0
- package/dist/farming-2/site.webmanifest +27 -0
- package/dist/farming-2/style_capsules/watercolor-pastoral.json +94 -0
- package/dist/index.html +27 -0
- package/frontend/ghostty-loader.js +24 -0
- package/frontend/runtime-paths.js +28 -0
- package/frontend/session-bridge.js +82 -0
- package/frontend/session-modal-bridge.js +331 -0
- package/frontend/skin-bridge.js +25 -0
- package/frontend/skins/crt/app.js +6940 -0
- package/frontend/skins/crt/assets/branding/farming-crt-icon.svg +11 -0
- package/frontend/skins/crt/assets/branding/farming-crt-logo-v1.png +0 -0
- package/frontend/skins/crt/assets/effects/phosphor-noise.svg +11 -0
- package/frontend/skins/crt/assets/fonts/departure-mono/DepartureMonoNerdFontMono-Regular.otf +0 -0
- package/frontend/skins/crt/assets/fonts/departure-mono/LICENSE +93 -0
- package/frontend/skins/crt/effects.js +8 -0
- package/frontend/skins/crt/index.html +1712 -0
- package/frontend/skins/crt/styles/billing.css +1003 -0
- package/frontend/skins/crt/styles/effects.css +171 -0
- package/frontend/skins/crt/styles/history.css +215 -0
- package/frontend/skins/crt/styles/monochrome-green.css +509 -0
- package/frontend/skins/crt/styles/search.css +271 -0
- package/frontend/terminal-bridge.js +192 -0
- package/frontend/theme-loader.js +84 -0
- package/frontend/themes/terminal/theme.json +24 -0
- package/frontend/vendor/ghostty-web/LICENSE +21 -0
- package/frontend/vendor/ghostty-web/__vite-browser-external-2447137e.js +4 -0
- package/frontend/vendor/ghostty-web/ghostty-vt.wasm +0 -0
- package/frontend/vendor/ghostty-web/ghostty-web.js +2963 -0
- package/frontend/vendor/ghostty-web/ghostty-web.umd.cjs +13 -0
- package/frontend/vendor/ghostty-web/index.d.ts +1842 -0
- package/index.html +23 -0
- package/package.json +144 -0
- package/scripts/sync-ghostty-vendor.js +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Farming 2",
|
|
3
|
+
"short_name": "Farming 2",
|
|
4
|
+
"icons": [
|
|
5
|
+
{
|
|
6
|
+
"src": "app-icon-v2-192.png",
|
|
7
|
+
"sizes": "192x192",
|
|
8
|
+
"type": "image/png",
|
|
9
|
+
"purpose": "any"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"src": "app-icon-v2-512.png",
|
|
13
|
+
"sizes": "512x512",
|
|
14
|
+
"type": "image/png",
|
|
15
|
+
"purpose": "any"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"src": "app-icon-v2-maskable-512.png",
|
|
19
|
+
"sizes": "512x512",
|
|
20
|
+
"type": "image/png",
|
|
21
|
+
"purpose": "maskable"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"theme_color": "#f8f4e8",
|
|
25
|
+
"background_color": "#f8f4e8",
|
|
26
|
+
"display": "standalone"
|
|
27
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "farming_2_watercolor_pastoral",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"principle": "Style is frozen; scene is free. Reuse this capsule to keep Farming 2 watercolor assets visually consistent while changing subject, layout, or scene.",
|
|
5
|
+
"style_capsule": {
|
|
6
|
+
"medium": [
|
|
7
|
+
"loose black ink sketch lines",
|
|
8
|
+
"soft transparent watercolor washes",
|
|
9
|
+
"warm cream paper texture",
|
|
10
|
+
"naturally imperfect hand-drawn edges"
|
|
11
|
+
],
|
|
12
|
+
"mood": [
|
|
13
|
+
"gentle pastoral",
|
|
14
|
+
"friendly",
|
|
15
|
+
"storybook",
|
|
16
|
+
"quietly cheerful",
|
|
17
|
+
"handmade rather than polished"
|
|
18
|
+
],
|
|
19
|
+
"palette": {
|
|
20
|
+
"hat": "warm honey yellow",
|
|
21
|
+
"clothing": "muted sage green",
|
|
22
|
+
"hair": "soft brown",
|
|
23
|
+
"skin": "soft peach with warm rosy cheeks",
|
|
24
|
+
"line": "warm gray-black ink",
|
|
25
|
+
"paper": "pale cream watercolor paper",
|
|
26
|
+
"accent": "small honey yellow or muted garden tones"
|
|
27
|
+
},
|
|
28
|
+
"line_quality": [
|
|
29
|
+
"loose and slightly uneven",
|
|
30
|
+
"confident but not clean vector outlines",
|
|
31
|
+
"no mechanical symmetry",
|
|
32
|
+
"thin imperfect circle when a portrait frame is needed"
|
|
33
|
+
],
|
|
34
|
+
"texture": [
|
|
35
|
+
"visible watercolor grain",
|
|
36
|
+
"uneven wash edges",
|
|
37
|
+
"subtle paper fibers",
|
|
38
|
+
"soft color pooling"
|
|
39
|
+
],
|
|
40
|
+
"avoid": [
|
|
41
|
+
"vector art",
|
|
42
|
+
"anime",
|
|
43
|
+
"glossy digital icon",
|
|
44
|
+
"corporate mascot polish",
|
|
45
|
+
"over-sharpened detail",
|
|
46
|
+
"thick badge border",
|
|
47
|
+
"perfect circular frame",
|
|
48
|
+
"heavy shadows",
|
|
49
|
+
"realistic skin texture",
|
|
50
|
+
"busy background for small icons",
|
|
51
|
+
"tiny decorative details near the face"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"modes": {
|
|
55
|
+
"favicon_small": {
|
|
56
|
+
"reference_asset": "../images/avatar-watercolor-v1-bee-garden.png",
|
|
57
|
+
"current_production_asset": "../app-icon-v2-master.png",
|
|
58
|
+
"goal": "Keep the farmer readable at 16px and 32px while retaining the garden and bee as Farming brand cues at larger app-icon sizes.",
|
|
59
|
+
"composition_rules": [
|
|
60
|
+
"face, eyes, smile, cheeks, and straw hat must be readable as simple shapes",
|
|
61
|
+
"use a tighter crop for browser favicons and the complete garden composition for installed app icons",
|
|
62
|
+
"keep the expression simple and cute",
|
|
63
|
+
"favor broad color blocks over watercolor detail",
|
|
64
|
+
"keep the bee and flower accents when the output size can render them clearly"
|
|
65
|
+
],
|
|
66
|
+
"prompt_addendum": "Make the face and straw hat dominant. Use a very thin, uneven, partially broken warm gray pencil circle if a frame is needed. Keep only four readable color blocks: honey-yellow hat, peach face, soft brown hair, muted sage clothing. Almost no background details."
|
|
67
|
+
},
|
|
68
|
+
"illustration_large": {
|
|
69
|
+
"reference_asset": "../images/avatar-watercolor-v1-bee-garden.png",
|
|
70
|
+
"goal": "Carry Farming 2's pastoral watercolor brand feeling in docs, product pages, and larger visual scenes.",
|
|
71
|
+
"composition_rules": [
|
|
72
|
+
"allow small bees, wildflowers, vines, paths, wooden hives, and gentle garden scenery",
|
|
73
|
+
"keep the scene airy with white paper breathing room",
|
|
74
|
+
"use decorative detail only where it will remain visible at the intended size",
|
|
75
|
+
"preserve the loose ink and transparent watercolor feeling"
|
|
76
|
+
],
|
|
77
|
+
"prompt_addendum": "Use a cozy hand-drawn bee garden atmosphere with loose black ink line art, soft transparent watercolor washes, honey yellow accents, muted sage greens, wildflowers, wooden hives, and warm paper texture."
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"saved_references": [
|
|
81
|
+
{
|
|
82
|
+
"path": "../images/avatar-watercolor-v1-bee-garden.png",
|
|
83
|
+
"role": "large illustration and brand mood reference"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"path": "../images/avatar-watercolor-v2.png",
|
|
87
|
+
"role": "intermediate simplified avatar reference"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"path": "../images/avatar-watercolor-v3.png",
|
|
91
|
+
"role": "small icon simplification reference"
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
}
|
package/dist/index.html
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
|
6
|
+
<meta name="theme-color" content="#f8f4e8" />
|
|
7
|
+
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
8
|
+
<meta name="mobile-web-app-capable" content="yes" />
|
|
9
|
+
<meta name="apple-mobile-web-app-title" content="Farming 2" />
|
|
10
|
+
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
11
|
+
<link rel="icon" href="/farming/farming-2/favicon-v2.ico" sizes="any" />
|
|
12
|
+
<link rel="icon" type="image/png" href="/farming/farming-2/favicon-v2-16.png" sizes="16x16" />
|
|
13
|
+
<link rel="icon" type="image/png" href="/farming/farming-2/favicon-v2-32.png" sizes="32x32" />
|
|
14
|
+
<link rel="icon" type="image/png" href="/farming/farming-2/favicon-v2-48.png" sizes="48x48" />
|
|
15
|
+
<link rel="apple-touch-icon" sizes="180x180" href="/farming/farming-2/app-icon-v2-180.png" />
|
|
16
|
+
<link rel="manifest" href="/farming/farming-2/site.webmanifest" />
|
|
17
|
+
<title>Farming 2</title>
|
|
18
|
+
<script type="module" crossorigin src="/farming/assets/index-BpHPeJf0.js"></script>
|
|
19
|
+
<link rel="modulepreload" crossorigin href="/farming/assets/chunk-DECur_0Z.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="/farming/assets/preload-helper-mJowh_hw.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/farming/assets/jsx-runtime-BthL93pI.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/farming/assets/react-dom-gtU6X-Hj.js">
|
|
23
|
+
</head>
|
|
24
|
+
<body>
|
|
25
|
+
<div id="root"></div>
|
|
26
|
+
</body>
|
|
27
|
+
</html>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
let shouldLoadGhostty = false;
|
|
2
|
+
try {
|
|
3
|
+
shouldLoadGhostty = window.localStorage.getItem('farmingTerminalEngine') === 'ghostty';
|
|
4
|
+
} catch {
|
|
5
|
+
shouldLoadGhostty = false;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
window.__ghosttyReadyPromise = shouldLoadGhostty ? (async () => {
|
|
9
|
+
try {
|
|
10
|
+
const vendorPath = window.FarmingRuntimePaths
|
|
11
|
+
? window.FarmingRuntimePaths.path('/vendor/ghostty-web')
|
|
12
|
+
: '/vendor/ghostty-web';
|
|
13
|
+
const { init, Terminal, FitAddon } = await import(`${vendorPath}/ghostty-web.js`);
|
|
14
|
+
await init(`${vendorPath}/ghostty-vt.wasm`);
|
|
15
|
+
window.GhosttyWeb = {
|
|
16
|
+
Terminal,
|
|
17
|
+
FitAddon
|
|
18
|
+
};
|
|
19
|
+
return window.GhosttyWeb;
|
|
20
|
+
} catch (error) {
|
|
21
|
+
console.error('Failed to initialize Ghostty terminal:', error);
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
})() : Promise.resolve(null);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
(function attachRuntimePaths(global) {
|
|
2
|
+
const pathname = String(global.location && global.location.pathname || '').replace(/\/+$/, '');
|
|
3
|
+
const crtMarker = '/crt';
|
|
4
|
+
const markerIndex = pathname.lastIndexOf(crtMarker);
|
|
5
|
+
const basePath = markerIndex >= 0 ? pathname.slice(0, markerIndex) : '';
|
|
6
|
+
|
|
7
|
+
function path(suffix = '/') {
|
|
8
|
+
const normalizedSuffix = suffix.startsWith('/') ? suffix : `/${suffix}`;
|
|
9
|
+
return basePath ? `${basePath}${normalizedSuffix}` : normalizedSuffix;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function apiPath(suffix = '/') {
|
|
13
|
+
const normalizedSuffix = suffix.startsWith('/') ? suffix : `/${suffix}`;
|
|
14
|
+
return path(`/api${normalizedSuffix}`);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function webSocketUrl() {
|
|
18
|
+
const protocol = global.location.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
19
|
+
return `${protocol}//${global.location.host}${path('/ws')}`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
global.FarmingRuntimePaths = {
|
|
23
|
+
basePath,
|
|
24
|
+
path,
|
|
25
|
+
apiPath,
|
|
26
|
+
webSocketUrl,
|
|
27
|
+
};
|
|
28
|
+
})(window);
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
(function attachSessionBridge(global) {
|
|
2
|
+
function createClient(options = {}) {
|
|
3
|
+
const getSocket = options.getSocket || (() => null);
|
|
4
|
+
const fetchImpl = options.fetchImpl || global.fetch.bind(global);
|
|
5
|
+
|
|
6
|
+
function send(message) {
|
|
7
|
+
const ws = getSocket();
|
|
8
|
+
if (!ws || ws.readyState !== global.WebSocket.OPEN) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
ws.send(JSON.stringify(message));
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return {
|
|
16
|
+
focusAgent(agentId, options = {}) {
|
|
17
|
+
return send({
|
|
18
|
+
type: 'focus-agent',
|
|
19
|
+
agentId,
|
|
20
|
+
...(options.streamScope ? { streamScope: options.streamScope } : {}),
|
|
21
|
+
...(options.previewScope ? { previewScope: options.previewScope } : {}),
|
|
22
|
+
...(options.refreshState === true ? { refreshState: true } : {}),
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
|
|
26
|
+
sendInput(agentId, input) {
|
|
27
|
+
return send({
|
|
28
|
+
type: 'input',
|
|
29
|
+
agentId,
|
|
30
|
+
input,
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
sendComposerMessage(agentId, message, attachments = []) {
|
|
35
|
+
return send({
|
|
36
|
+
type: 'composer-input',
|
|
37
|
+
agentId,
|
|
38
|
+
message,
|
|
39
|
+
...(attachments.length > 0 ? { attachments } : {}),
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
interruptAgent(agentId) {
|
|
44
|
+
return send({
|
|
45
|
+
type: 'interrupt-agent',
|
|
46
|
+
agentId,
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
resizeAgent(agentId, cols, rows) {
|
|
51
|
+
return send({
|
|
52
|
+
type: 'resize-agent',
|
|
53
|
+
agentId,
|
|
54
|
+
cols,
|
|
55
|
+
rows,
|
|
56
|
+
});
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
killAgent(agentId) {
|
|
60
|
+
return send({
|
|
61
|
+
type: 'kill-agent',
|
|
62
|
+
agentId,
|
|
63
|
+
});
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
async getSessionView(agentId) {
|
|
67
|
+
const path = global.FarmingRuntimePaths
|
|
68
|
+
? global.FarmingRuntimePaths.apiPath(`/agents/${agentId}/session-view`)
|
|
69
|
+
: `/api/agents/${agentId}/session-view`;
|
|
70
|
+
const response = await fetchImpl(path);
|
|
71
|
+
if (!response.ok) {
|
|
72
|
+
throw new Error(`Failed to load session view: ${response.status}`);
|
|
73
|
+
}
|
|
74
|
+
return response.json();
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
global.FarmingSessionBridge = {
|
|
80
|
+
createClient,
|
|
81
|
+
};
|
|
82
|
+
})(window);
|