farming-code 2.2.14 → 2.2.17

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 (136) hide show
  1. package/README.md +3 -3
  2. package/README.zh_cn.md +3 -3
  3. package/THIRD_PARTY_NOTICES.md +17 -1
  4. package/backend/acp/packaged-codex-acp.js +13 -0
  5. package/backend/acp-runtime.js +413 -24
  6. package/backend/agent-manager.js +572 -557
  7. package/backend/agent-provider-session.js +15 -1
  8. package/backend/agent-runtime-binding.js +9 -55
  9. package/backend/chat-runtime.js +28 -0
  10. package/backend/codex-rollout-follower.js +83 -0
  11. package/backend/codex-session-archive.js +12 -1
  12. package/backend/codex-session-history.js +94 -0
  13. package/backend/codex-transcript.js +2 -1
  14. package/backend/config-manager.js +25 -17
  15. package/backend/control-api.js +3 -1
  16. package/backend/farming-app-cli.js +21 -0
  17. package/backend/farming-session-store.js +2 -1
  18. package/backend/native-pty-host-client.js +59 -2
  19. package/backend/npm-update-helper.js +65 -7
  20. package/backend/provider-adapters.js +123 -38
  21. package/backend/provider-session-service.js +138 -34
  22. package/backend/server.js +94 -105
  23. package/backend/storage-layout.js +5 -16
  24. package/backend/update-service.js +94 -5
  25. package/backend/usage-history-client.js +305 -0
  26. package/backend/usage-history-scanner.generated.js +2250 -0
  27. package/backend/usage-history-scanner.ts +2718 -0
  28. package/backend/usage-history-smoke.js +64 -0
  29. package/backend/usage-history-worker.js +34 -0
  30. package/backend/usage-monitor.js +188 -588
  31. package/backend/vendor/usage-parsers/CC_STATISTICS_LICENSE +21 -0
  32. package/backend/vendor/usage-parsers/CODEXBAR_LICENSE +21 -0
  33. package/backend/vendor/usage-parsers/VENDOR.json +45 -0
  34. package/dist/acp/LICENSE.codex-acp +190 -0
  35. package/dist/acp/codex-acp-1.1.4.js +30718 -0
  36. package/dist/assets/App-6yWdwzj8.js +210 -0
  37. package/dist/assets/{FileEditorMarkdownPreview-UlVd0O4D.js → FileEditorMarkdownPreview-R0jwwLME.js} +4 -4
  38. package/dist/assets/FileEditorPane-DNy3LAqS.js +2 -0
  39. package/dist/assets/{IconGlyphs-AU22gPDY.js → IconGlyphs-BsUfqpKN.js} +1 -1
  40. package/dist/assets/ProjectFilesSection-BhDEUVHA.js +12 -0
  41. package/dist/assets/{ReviewPage-CeDKDyZh.js → ReviewPage-ChtByBe3.js} +1 -1
  42. package/dist/assets/{abnfDiagram-VRR7QNED-BgawzDQT.js → abnfDiagram-VRR7QNED-nnglrXFi.js} +1 -1
  43. package/dist/assets/{architectureDiagram-ZJ3FMSHR-DUShwPg0.js → architectureDiagram-ZJ3FMSHR-BEXMaFfY.js} +1 -1
  44. package/dist/assets/{blockDiagram-677ZJIJ3-CeGZviXR.js → blockDiagram-677ZJIJ3-1mCezSBk.js} +1 -1
  45. package/dist/assets/{c4Diagram-LMCZKHZV-CLhYht6S.js → c4Diagram-LMCZKHZV-DhTiI6Uv.js} +1 -1
  46. package/dist/assets/channel-BVWNatUB.js +1 -0
  47. package/dist/assets/{chunk-32BRIVSS-LFYpT-Cu.js → chunk-32BRIVSS-CCdsKd73.js} +1 -1
  48. package/dist/assets/{chunk-52WLFC77-BH6jDw9J.js → chunk-52WLFC77-Gncjk4LF.js} +1 -1
  49. package/dist/assets/{chunk-C7G6YPKG-B_mIUlb7.js → chunk-C7G6YPKG-CiDVUP82.js} +1 -1
  50. package/dist/assets/{chunk-EX3LRPZG-C63hVuAJ.js → chunk-EX3LRPZG-z6gXP2_N.js} +1 -1
  51. package/dist/assets/{chunk-FWX5IMBZ-CboX-WF_.js → chunk-FWX5IMBZ-DMZBccQa.js} +2 -2
  52. package/dist/assets/{chunk-HOUHSVGY-BOgSd6Un.js → chunk-HOUHSVGY-D8tIeoPk.js} +1 -1
  53. package/dist/assets/{chunk-ICXQ74PX-C0K-pgZt.js → chunk-ICXQ74PX-b6oQ2Q17.js} +1 -1
  54. package/dist/assets/{chunk-MOJQB5TN-CVMfwN_7.js → chunk-MOJQB5TN-DAVH_p2a.js} +1 -1
  55. package/dist/assets/{chunk-OGEWGWER-DLT3pxyw.js → chunk-OGEWGWER-DxoiMCI-.js} +1 -1
  56. package/dist/assets/{chunk-PUDLZKDR-Cd079yIQ.js → chunk-PUDLZKDR-NsOWh7HM.js} +1 -1
  57. package/dist/assets/{chunk-Q4XR5HBZ-D0jHa6SO.js → chunk-Q4XR5HBZ-Di4H7L21.js} +1 -1
  58. package/dist/assets/{chunk-V7JOEXUC-CVDtR75H.js → chunk-V7JOEXUC-DttpZg9Y.js} +1 -1
  59. package/dist/assets/{chunk-VAUOI2AC-B-W2_9Ot.js → chunk-VAUOI2AC-UHNr_yhX.js} +1 -1
  60. package/dist/assets/{chunk-VR4S4FIN-FD3kWh32.js → chunk-VR4S4FIN-D-Fmtd4Z.js} +1 -1
  61. package/dist/assets/{chunk-WYO6CB5R-C2bGaS5r.js → chunk-WYO6CB5R-CUxMtfK2.js} +4 -4
  62. package/dist/assets/{chunk-ZGVPDNZ5-ymgts0zo.js → chunk-ZGVPDNZ5-CoV2QEl0.js} +1 -1
  63. package/dist/assets/classDiagram-OUVF2IWQ-Db0ib5iE.js +1 -0
  64. package/dist/assets/classDiagram-v2-EOCWNBFH-Bkf69XF9.js +1 -0
  65. package/dist/assets/code-dark-5esj0bRu.css +1 -0
  66. package/dist/assets/{cynefinDiagram-TSTJHNR4-CwpobXIl.js → cynefinDiagram-TSTJHNR4-0xPI92Lg.js} +1 -1
  67. package/dist/assets/{dagre-VKFMJZFB-Dkhlfjna.js → dagre-VKFMJZFB-DfuMG4gU.js} +1 -1
  68. package/dist/assets/{diagram-FQU43EPY-hA8dicp6.js → diagram-FQU43EPY-CT00bLZ6.js} +1 -1
  69. package/dist/assets/{diagram-G47NLZAW-BTY6JTzO.js → diagram-G47NLZAW-Xbh7zXUx.js} +1 -1
  70. package/dist/assets/{diagram-NH7WQ7WH-xkaHHX9M.js → diagram-NH7WQ7WH-SRDVPfn7.js} +1 -1
  71. package/dist/assets/{diagram-OA4YK3LP-gk_fg9UU.js → diagram-OA4YK3LP-CQRli4Np.js} +1 -1
  72. package/dist/assets/{diagram-WEI45ONY-BvC8xd6T.js → diagram-WEI45ONY-DMf17WQi.js} +1 -1
  73. package/dist/assets/{ebnfDiagram-CCIWWBDH-CR7RaNat.js → ebnfDiagram-CCIWWBDH-DhpFkgJ5.js} +1 -1
  74. package/dist/assets/{erDiagram-Q63AITRT-_M-JFPbj.js → erDiagram-Q63AITRT-1IwxWmJo.js} +1 -1
  75. package/dist/assets/file-icons-DpbrD5ZP.js +1 -0
  76. package/dist/assets/flowDiagram-23GEKE2U-DYFo2xmB.js +1 -0
  77. package/dist/assets/{ganttDiagram-NO4QXBWP-Bl8P1yf_.js → ganttDiagram-NO4QXBWP-BNCdfyr1.js} +1 -1
  78. package/dist/assets/{gitGraphDiagram-IHSO6WYX-DoHa5ysz.js → gitGraphDiagram-IHSO6WYX-pbyWZuiX.js} +1 -1
  79. package/dist/assets/{index-BA-iH2Kg.js → index-C8ZFKye1.js} +2 -2
  80. package/dist/assets/{infoDiagram-FWYZ7A6U-DSFcSuUs.js → infoDiagram-FWYZ7A6U-BcTOgDbe.js} +1 -1
  81. package/dist/assets/{ishikawaDiagram-FXEZZL3T-DdkqullI.js → ishikawaDiagram-FXEZZL3T-DCdvGKrn.js} +1 -1
  82. package/dist/assets/{journeyDiagram-5HDEW3XC-B4hRnQJr.js → journeyDiagram-5HDEW3XC-BZ-1q_IT.js} +1 -1
  83. package/dist/assets/{kanban-definition-HUTT4EX6-tm2FZB2E.js → kanban-definition-HUTT4EX6-BIgejCjj.js} +1 -1
  84. package/dist/assets/{line-CmsjK4kn.js → line-CfptFMmX.js} +1 -1
  85. package/dist/assets/main-DSO3i_Gs.css +1 -0
  86. package/dist/assets/{mermaid.core-C7UT_EEL.js → mermaid.core-gSpX30pV.js} +3 -3
  87. package/dist/assets/{mindmap-definition-LN4V7U3C-DplfjGms.js → mindmap-definition-LN4V7U3C-BKBaI4LW.js} +1 -1
  88. package/dist/assets/{pegDiagram-2B236MQR-lu3SdkQs.js → pegDiagram-2B236MQR-sBvDY3VX.js} +1 -1
  89. package/dist/assets/{pieDiagram-ENE6RG2P-3fHbmDf9.js → pieDiagram-ENE6RG2P-DWlWcu08.js} +1 -1
  90. package/dist/assets/{quadrantDiagram-ABIIQ3AL-a5qoWz-X.js → quadrantDiagram-ABIIQ3AL-DZutUd3J.js} +1 -1
  91. package/dist/assets/{railroadDiagram-RFXS5EU6-D2TOuXW9.js → railroadDiagram-RFXS5EU6-DQb3lXGM.js} +1 -1
  92. package/dist/assets/{requirementDiagram-TGXJPOKE-LQBWpUvd.js → requirementDiagram-TGXJPOKE-DqFGXu2e.js} +1 -1
  93. package/dist/assets/{sankeyDiagram-HTMAVEWB-B1ohYoyK.js → sankeyDiagram-HTMAVEWB-d7ECahnO.js} +1 -1
  94. package/dist/assets/{sequenceDiagram-DBY2YBRQ-C3vM-hMq.js → sequenceDiagram-DBY2YBRQ-DdsbKqct.js} +1 -1
  95. package/dist/assets/{stateDiagram-2N3HPSRC-BvFhOryI.js → stateDiagram-2N3HPSRC-P6iSrgwR.js} +1 -1
  96. package/dist/assets/stateDiagram-v2-6OUMAXLB-DIYSf_qh.js +1 -0
  97. package/dist/assets/{swimlanes-5IMT3BWC-DKF_b-2s.js → swimlanes-5IMT3BWC-BGnZJx1M.js} +1 -1
  98. package/dist/assets/swimlanesDiagram-G3AALYLV-BIkrlKrZ.js +8 -0
  99. package/dist/assets/{timeline-definition-FHXFAJF6-vAs11ux_.js → timeline-definition-FHXFAJF6-rA-r3aUR.js} +1 -1
  100. package/dist/assets/{vennDiagram-L72KCM5P-BybTX_9B.js → vennDiagram-L72KCM5P-DiVKUjA9.js} +1 -1
  101. package/dist/assets/{wardleyDiagram-EHGQE667-CicUmMBR.js → wardleyDiagram-EHGQE667-Cfxh7UOn.js} +1 -1
  102. package/dist/assets/workspace-editor-model-D0Im34S5.js +1 -0
  103. package/dist/assets/{workspace-editor-monaco-BICJESG0.js → workspace-editor-monaco-BIpqcWf1.js} +1 -1
  104. package/dist/assets/workspace-editor-monaco-DLlws5Ig.js +1 -0
  105. package/dist/assets/{workspace-view-state-DvYG_9PH.js → workspace-view-state-BpPINu84.js} +1 -1
  106. package/dist/assets/{xychartDiagram-FW5EYKEG-BhWDyCX-.js → xychartDiagram-FW5EYKEG--hmryQeL.js} +1 -1
  107. package/dist/crt-mermaid-renderer.js +313 -313
  108. package/dist/index.html +1 -1
  109. package/frontend/session-bridge.js +24 -2
  110. package/frontend/skins/crt/app.js +203 -85
  111. package/frontend/skins/crt/index.html +2 -11
  112. package/frontend/skins/crt/styles/effects.css +2 -34
  113. package/package.json +30 -12
  114. package/shared/backend-connection-status.d.ts +25 -0
  115. package/shared/backend-connection-status.js +40 -0
  116. package/shared/browser-protocol.js +3 -3
  117. package/backend/app-server-api.js +0 -917
  118. package/backend/codex-app-server-home.js +0 -39
  119. package/backend/codex-app-server-runtime.js +0 -901
  120. package/dist/assets/App-Bumi772v.js +0 -206
  121. package/dist/assets/FileEditorPane-Dxx4rKOg.js +0 -2
  122. package/dist/assets/ProjectFilesSection-DE7Nb9Jk.js +0 -12
  123. package/dist/assets/channel-Uw90AO0b.js +0 -1
  124. package/dist/assets/classDiagram-OUVF2IWQ-DKW_dtku.js +0 -1
  125. package/dist/assets/classDiagram-v2-EOCWNBFH-C8Fi7-yv.js +0 -1
  126. package/dist/assets/code-dark-DPiuyeSp.css +0 -1
  127. package/dist/assets/code-mobile-3C2Rr-CN.css +0 -1
  128. package/dist/assets/file-icons-Bw2qd5iT.js +0 -1
  129. package/dist/assets/flowDiagram-23GEKE2U-DAiS5Y7G.js +0 -1
  130. package/dist/assets/main-Bqtb5kuz.css +0 -1
  131. package/dist/assets/stateDiagram-v2-6OUMAXLB-WMrz4PNo.js +0 -1
  132. package/dist/assets/swimlanesDiagram-G3AALYLV-BGswC9oC.js +0 -8
  133. package/dist/assets/workspace-editor-model-BQol4qbA.js +0 -1
  134. package/dist/assets/workspace-editor-monaco-DRJ7IaXk.js +0 -1
  135. package/scripts/sync-ghostty-vendor.js +0 -66
  136. /package/dist/assets/{core-D0LFJkDt.js → core-B9MwRjDE.js} +0 -0
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-Di0sYzi1.js";import"./src-WBW1QxJt.js";import"./chunk-WYO6CB5R-C2bGaS5r.js";import"./chunk-ICXQ74PX-C0K-pgZt.js";import"./chunk-HOUHSVGY-BOgSd6Un.js";import"./chunk-Q4XR5HBZ-D0jHa6SO.js";import"./chunk-7BUUIJ7U-ZBRhjLOh.js";import"./chunk-OGEWGWER-DLT3pxyw.js";import"./chunk-32BRIVSS-LFYpT-Cu.js";import"./chunk-XXDRQBXY-BBXwjhUx.js";import"./chunk-VR4S4FIN-FD3kWh32.js";import"./chunk-C7G6YPKG-B_mIUlb7.js";import"./chunk-ZGVPDNZ5-ymgts0zo.js";import"./chunk-52WLFC77-BH6jDw9J.js";import"./chunk-FWX5IMBZ-CboX-WF_.js";import{i as t,n,r,t as i}from"./chunk-EX3LRPZG-C63hVuAJ.js";var a={parser:n,get db(){return new i(2)},renderer:r,styles:t,init:e(e=>{e.state||={},e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1,8 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-Di0sYzi1.js";import"./src-WBW1QxJt.js";import"./chunk-WYO6CB5R-C2bGaS5r.js";import"./chunk-ICXQ74PX-C0K-pgZt.js";import"./chunk-HOUHSVGY-BOgSd6Un.js";import"./chunk-Q4XR5HBZ-D0jHa6SO.js";import"./chunk-7BUUIJ7U-ZBRhjLOh.js";import"./chunk-OGEWGWER-DLT3pxyw.js";import"./chunk-32BRIVSS-LFYpT-Cu.js";import"./chunk-XXDRQBXY-BBXwjhUx.js";import"./chunk-VR4S4FIN-FD3kWh32.js";import"./chunk-C7G6YPKG-B_mIUlb7.js";import"./chunk-ZGVPDNZ5-ymgts0zo.js";import"./chunk-52WLFC77-BH6jDw9J.js";import"./chunk-FWX5IMBZ-CboX-WF_.js";import"./chunk-ZIRB5QZD-DncwlQQc.js";import{r as t,t as n}from"./chunk-PUDLZKDR-Cd079yIQ.js";var r=n({defaultLayout:`swimlane`,styles:e(e=>`${t(e)}
2
- .swimlane.cluster rect {
3
- stroke: ${e.clusterBorder} !important;
4
- }
5
- [data-look="neo"].cluster rect {
6
- filter: none;
7
- }
8
- `,`getStyles`)});export{r as diagram};
@@ -1 +0,0 @@
1
- import{a as e,d as t,f as n,l as r,o as i,s as a}from"./workspace-working-copy-D8-s_Sgh.js";var o=`farming-file`,s=new Map([[`.c++`,`cpp`],[`.inl`,`cpp`],[`.ipp`,`cpp`],[`.jsonl`,`json`],[`.odpsql`,`sql`],[`.osql`,`sql`],[`.zsh`,`shell`]]),c=new Set([`.md`,`.markdown`,`.mdown`,`.mkd`]),l=new Set([`.svg`]);function u(e){return e.replace(/[^a-zA-Z0-9_-]+/g,`-`)||`file`}function d(e){return t(e)}function f(e){return`${d(e)}:${e.file.sha1||``}:${e.file.size??``}:${e.file.mtimeMs??``}`}function p(e){let t=r(e.file.path,e.workspaceRoot);return{scheme:o,path:t.startsWith(`/`)?t:`/${t}`}}function m(e){return e.scheme===o}function h(e){return new Set(e.map(d))}function g(e,t){return new Set(e.map(t))}function _(e,t){return t.has(e)}function v(e,t){return m(e)&&!t.has(e.toString())}function y(e){return`code-file-editor-tab-${u(d(e))}`}function b(e){return e.split(`/`).filter(Boolean).pop()||e}function x(e){let t=b(e).toLowerCase(),n=t.lastIndexOf(`.`);return n>0?t.slice(n):``}function S(e){return c.has(x(e))}function C(e){return l.has(x(e))}function w(e){return e.split(`/`).filter(Boolean)}function T(e,t){return e.slice(0,t+1).join(`/`)}function E(e){let t=e.externalChanged?`, changed on disk`:e.dirty?`, unsaved changes`:``;return`${b(e.file.path)}, ${e.file.path}${t}`}function D(e){let t=!!e.file.preview,n=e.file.preview?.kind===`image`||e.file.preview?.kind===`pdf`||e.file.preview?.kind===`binary`,r=e.diffOnly===!0,i=t||r,a=!t&&!r;return{preview:t,visualPreview:n,diffOnly:r,readOnly:i,canEditText:!i,canShowDiff:!t,canShowBlame:a,canShowLineChanges:a}}function O(e){let t=e.diffOpen&&!e.visualPreview,n=e.diffOnly&&!t,r=!t&&!n&&!e.visualPreview,i=!!e.markdownSplitOpen&&r,a=!!e.markdownPreviewOpen&&r&&!i,o=!!e.sourcePreviewOpen&&r&&!a&&!i,s=!e.visualPreview&&!t&&!n&&!a&&!o&&!i;return{showDiffView:t,showDiffOnlyPreview:n,showMarkdownSplit:i,showMarkdownPreview:a,showSourcePreview:o,showMonaco:s,showEditorOverlays:s||i}}function k(t,n,r){let o=!!r.statusText,s=n.canEditText&&a(t),c=n.canShowDiff,l=!!r.canPreviewMarkdown,u=!!r.canPreviewSource,d=!n.visualPreview&&!n.diffOnly,f=!n.diffOnly&&i(t),p=n.canEditText&&e(t);return{showBar:r.showBreadcrumbs||o||s||c||l||u||d||f||p,showStatus:o,showSave:s,showDiff:c,showMarkdownPreview:l,showSourcePreview:u,showWordWrap:d,showReload:f,showOverwrite:p}}function A(e){return e.externalChanged||n(e)===`conflict`?`changedOnDisk`:null}function j(e,t){return{mode:e,lineNumber:t,loading:!0,error:null,changes:null}}function M(e,t,n){return{mode:e,lineNumber:t,loading:!1,error:null,changes:n}}function N(e,t,n){return{mode:e,lineNumber:t,loading:!1,error:n instanceof Error?n.message:`Failed to load line changes`,changes:null}}function P(e){return e.startsWith(`@@`)?`meta`:e.startsWith(`+`)?`added`:e.startsWith(`-`)?`deleted`:`context`}function F(e){return b(e).toLowerCase()}function I(e){return e.replace(/~+$/,``)}function L(e,t){return e.toLowerCase().endsWith(t.toLowerCase())}function R(e,t){let n=e.replace(/[.+^${}()|[\]\\]/g,`\\$&`).replace(/\*/g,`.*`).replace(/\?/g,`.`);return RegExp(`^${n}$`,`i`).test(t)}function z(e,t){let n=e?.split(/\r?\n/,1)[0];if(!n)return null;for(let e of t)if(e.firstLine)try{if(new RegExp(e.firstLine).test(n))return e.id}catch{}return null}function B(e,t,n){let r=I(e),i=r.toLowerCase(),a=F(r),o=n.find(e=>e.filenames?.some(e=>e.toLowerCase()===a));if(o)return o.id;let c=n.flatMap(e=>(e.extensions??[]).map(t=>({language:e,extension:t}))).sort((e,t)=>t.extension.length-e.extension.length).find(({extension:e})=>L(i,e));if(c)return c.language.id;let l=n.find(e=>e.filenamePatterns?.some(e=>R(e,a)));return l?l.id:z(t,n)||Array.from(s.entries()).sort((e,t)=>t[0].length-e[0].length).find(([e])=>L(i,e))?.[1]||`plaintext`}function V(e){return e?new Date(e*1e3).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`}):``}function H(e){let t=V(e.authorTime),n=e.author||`Unknown`;return t?`${t} ${n}`:n}function U(e,t){let n=t?84:112,r=t?110:240,i=e.reduce((e,t)=>Math.max(e,H(t).length),0);return i<=0?n:Math.min(r,Math.max(n,Math.ceil(i*7.2)+18))}function W(e){let t=Math.max(1,e.lineHeight);return e.visibleRanges.length>0?{firstVisibleLine:Math.max(1,Math.min(...e.visibleRanges.map(e=>e.startLineNumber))-1),lastVisibleLine:Math.max(1,Math.max(...e.visibleRanges.map(e=>e.endLineNumber))+1)}:{firstVisibleLine:Math.max(1,Math.floor(e.scrollTop/t)),lastVisibleLine:Math.ceil((e.scrollTop+e.hostHeight)/t)+1}}function G(e,t){let n=Math.max(1,t.firstVisibleLine),r=Math.max(n,t.lastVisibleLine),i=Math.max(1,t.lineHeight),a=t.hostTop-i,o=t.hostTop+t.hostHeight+i;return e.slice(n-1,Math.min(e.length,r)).filter(e=>e.lineNumber>=n&&e.lineNumber<=r).map(e=>({line:e,top:t.hostTop+t.getTopForLineNumber(e.lineNumber)-t.scrollTop})).filter(e=>e.top>=a&&e.top<=o)}function K(e,t){let n=e.trim();return!n||n===`Unknown`||!t||!t.includes(`{author}`)?``:t.replace(/\{author\}/g,encodeURIComponent(n))}function q(e){return[400,404,409,413,415,501].includes(e)}function J(e,t){let n=Math.max(1,t.lineCount),r=Math.max(1,Math.min(e.lineNumber,n)),i=Math.max(1,t.getLineMaxColumn(r)),a=Math.max(1,Math.min(e.column??1,i));return{startLineNumber:r,startColumn:a,endLineNumber:r,endColumn:e.endColumn?Math.max(a,Math.min(e.endColumn,i)):a}}export{y as A,f as C,T as D,w as E,W as M,A as O,g as S,p as T,N as _,S as a,P as b,v as c,H as d,k as f,D as g,J as h,m as i,E as j,O as k,_ as l,G as m,V as n,C as o,b as p,q as r,B as s,U as t,K as u,M as v,d as w,h as x,j as y};
@@ -1 +0,0 @@
1
- import{o as e}from"./workspace-editor-monaco-BICJESG0.js";export{e as preloadWorkspaceEditorMonaco};
@@ -1,66 +0,0 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
-
4
- const projectRoot = path.join(__dirname, '..');
5
- const sourcePackageDir = path.join(projectRoot, 'node_modules/ghostty-web');
6
- const sourceDir = path.join(sourcePackageDir, 'dist');
7
- const targetDir = path.join(projectRoot, 'frontend/vendor/ghostty-web');
8
-
9
- function ensureDirectory(dirPath) {
10
- fs.mkdirSync(dirPath, { recursive: true });
11
- }
12
-
13
- function copyDirectoryContents(source, target) {
14
- ensureDirectory(target);
15
-
16
- const entries = fs.readdirSync(source, { withFileTypes: true });
17
- entries.forEach((entry) => {
18
- const sourcePath = path.join(source, entry.name);
19
- const targetPath = path.join(target, entry.name);
20
-
21
- if (entry.isDirectory()) {
22
- copyDirectoryContents(sourcePath, targetPath);
23
- return;
24
- }
25
-
26
- fs.copyFileSync(sourcePath, targetPath);
27
- });
28
- }
29
-
30
- function replaceOnce(filePath, search, replacement) {
31
- const source = fs.readFileSync(filePath, 'utf8');
32
- if (!source.includes(search)) {
33
- throw new Error(`Expected Ghostty vendor pattern not found in ${filePath}`);
34
- }
35
-
36
- fs.writeFileSync(filePath, source.replace(search, replacement));
37
- }
38
-
39
- function patchGhosttyVendor() {
40
- // The upstream build ceilings the measured "M" width, which makes CJK and
41
- // soft-wrapped terminal content visibly wider than native Ghostty. Keep this
42
- // local runtime patch here so npm install cannot overwrite the vendored fix.
43
- replaceOnce(
44
- path.join(targetDir, 'ghostty-web.js'),
45
- 'const g = B.measureText("M"), E = Math.ceil(g.width),',
46
- 'const g = B.measureText("M"), E = g.width,'
47
- );
48
- replaceOnce(
49
- path.join(targetDir, 'ghostty-web.umd.cjs'),
50
- 'const g=B.measureText("M"),E=Math.ceil(g.width),',
51
- 'const g=B.measureText("M"),E=g.width,'
52
- );
53
- }
54
-
55
- function syncGhosttyVendor() {
56
- if (!fs.existsSync(sourceDir)) {
57
- throw new Error(`ghostty-web dist directory not found: ${sourceDir}`);
58
- }
59
-
60
- copyDirectoryContents(sourceDir, targetDir);
61
- fs.copyFileSync(path.join(sourcePackageDir, 'LICENSE'), path.join(targetDir, 'LICENSE'));
62
- patchGhosttyVendor();
63
- console.log(`Synced Ghostty vendor assets to ${targetDir}`);
64
- }
65
-
66
- syncGhosttyVendor();