@runfusion/fusion 0.74.0-beta.2 → 0.74.0-beta.4

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 (127) hide show
  1. package/dist/bin.js +5416 -3166
  2. package/dist/child-process-worker.js +3540 -1656
  3. package/dist/client/.vite/manifest.json +272 -272
  4. package/dist/client/assets/AgentDetailView-BGXTnuBR.js +13 -0
  5. package/dist/client/assets/AgentDetailView-CH11Ydji.css +1 -0
  6. package/dist/client/assets/{AgentPermissionPolicyEditor-BycC7HhP.js → AgentPermissionPolicyEditor-DswM202p.js} +1 -1
  7. package/dist/client/assets/AgentsView-CEpZDrmC.js +24 -0
  8. package/dist/client/assets/{ChatView-DAsZY1We.js → ChatView-BXXX0q6G.js} +3 -3
  9. package/dist/client/assets/CommandCenter-CqjN1-9X.js +97 -0
  10. package/dist/client/assets/DevServerView-BUO7JRi6.js +1 -0
  11. package/dist/client/assets/{DirectoryPicker-DsCk3Nsw.js → DirectoryPicker-CiP4h5C7.js} +1 -1
  12. package/dist/client/assets/{DocumentsView-8EI6KNBY.js → DocumentsView-DwLD0h2S.js} +1 -1
  13. package/dist/client/assets/EvalsView-C9juKffD.js +1 -0
  14. package/dist/client/assets/{ExperimentalAgentOnboardingModal-ce6DROKD.js → ExperimentalAgentOnboardingModal-DYvw9TEh.js} +1 -1
  15. package/dist/client/assets/{GoalsView-BVlTtw-u.js → GoalsView-BD1AkfVN.js} +1 -1
  16. package/dist/client/assets/{InsightsView-BKQeROkb.js → InsightsView-Q0mu759R.js} +1 -1
  17. package/dist/client/assets/{MemoryView-DCzTnxsV.js → MemoryView-DCTqPpCG.js} +1 -1
  18. package/dist/client/assets/{PiExtensionsManager-C94HwDz5.js → PiExtensionsManager-CSe_uGfa.js} +1 -1
  19. package/dist/client/assets/{PluginManager-C3DegklW.js → PluginManager-DPm8YQC0.js} +1 -1
  20. package/dist/client/assets/{PullRequestView-CrE89UL7.js → PullRequestView-BpJgNDLH.js} +2 -2
  21. package/dist/client/assets/{ReportModal-BD1ZUDdV.js → ReportModal-iGmTZqiF.js} +1 -1
  22. package/dist/client/assets/ResearchView-BfgKB-6z.js +2 -0
  23. package/dist/client/assets/{SecretsView-6qK8Idb7.js → SecretsView-CqvQLK7z.js} +1 -1
  24. package/dist/client/assets/SessionTerminal-A9di8GAo.js +2 -0
  25. package/dist/client/assets/SettingsModal-BsCUsAXe.js +21 -0
  26. package/dist/client/assets/{SettingsModal-BkOSlfyr.js → SettingsModal-D-iyPGZE.js} +1 -1
  27. package/dist/client/assets/SettingsModal-DmfMotcd.css +1 -0
  28. package/dist/client/assets/{SettingsTextareaRow-Btyx5kaR.js → SettingsTextareaRow-DwgHxMMY.js} +1 -1
  29. package/dist/client/assets/{SetupWizardModal-Blhx-dRt.js → SetupWizardModal-CrSnLN44.js} +2 -2
  30. package/dist/client/assets/{SkillsView-DGE5kYc3.js → SkillsView-C_STy7KI.js} +1 -1
  31. package/dist/client/assets/{TodoView-YSGI7ATd.js → TodoView-BJJNGNLq.js} +1 -1
  32. package/dist/client/assets/{WorkflowNodeEditor-CZiEThu2.js → WorkflowNodeEditor-Jp5i_Vxu.js} +3 -3
  33. package/dist/client/assets/{WorkflowNodeEditor-nCx4nqoL.css → WorkflowNodeEditor-sZ96V3Kd.css} +1 -1
  34. package/dist/client/assets/{agent-import-generation-DQeNZMAm.js → agent-import-generation-DbVrl8ou.js} +1 -1
  35. package/dist/client/assets/{app-Dn1u7zJ9.js → app-BYs5Cx-j.js} +2 -2
  36. package/dist/client/assets/{app-DaikOPcV.js → app-CTV8PCYh.js} +3 -3
  37. package/dist/client/assets/{app-DJIiVHdA.js → app-CwdZxrJI.js} +2 -2
  38. package/dist/client/assets/{app-hQw_x2KJ.js → app-DE-MPJxA.js} +2 -2
  39. package/dist/client/assets/{app-DxTbBEMH.js → app-e8c4wb5t.js} +2 -2
  40. package/dist/client/assets/{app-DMZ_RusZ.js → app-yKugq_Ld.js} +2 -2
  41. package/dist/client/assets/{architectureDiagram-3BPJPVTR-DhaJNKa4.js → architectureDiagram-3BPJPVTR-Ctz8GX1N.js} +1 -1
  42. package/dist/client/assets/{blockDiagram-GPEHLZMM-pKpg7gJU.js → blockDiagram-GPEHLZMM-WI_YPphw.js} +1 -1
  43. package/dist/client/assets/{c4Diagram-AAUBKEIU-DVPXKJnr.js → c4Diagram-AAUBKEIU-BLwS5Zfh.js} +1 -1
  44. package/dist/client/assets/channel-CMMrQrQu.js +1 -0
  45. package/dist/client/assets/{chunk-2J33WTMH-CHt90T5z.js → chunk-2J33WTMH-DeXlX12-.js} +1 -1
  46. package/dist/client/assets/{chunk-4BX2VUAB-DsWFYy0a.js → chunk-4BX2VUAB-zvCEraJR.js} +1 -1
  47. package/dist/client/assets/{chunk-55IACEB6-D8XiXEo8.js → chunk-55IACEB6-BgZq96DR.js} +1 -1
  48. package/dist/client/assets/{chunk-727SXJPM-DlUYBn_Y.js → chunk-727SXJPM-CayoVGXL.js} +1 -1
  49. package/dist/client/assets/{chunk-AQP2D5EJ-BSdPOr9q.js → chunk-AQP2D5EJ-BmaktpVP.js} +1 -1
  50. package/dist/client/assets/{chunk-FMBD7UC4-B9IAeBld.js → chunk-FMBD7UC4-qYWgZPF8.js} +1 -1
  51. package/dist/client/assets/{chunk-ND2GUHAM-CmxnYQrR.js → chunk-ND2GUHAM-DIovauCc.js} +1 -1
  52. package/dist/client/assets/{chunk-QZHKN3VN-Dxp6Po_j.js → chunk-QZHKN3VN-DXWnr9LE.js} +1 -1
  53. package/dist/client/assets/classDiagram-4FO5ZUOK-CqxyehbN.js +1 -0
  54. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CqxyehbN.js +1 -0
  55. package/dist/client/assets/common-13IRj_PO.js +1 -0
  56. package/dist/client/assets/common-BBynATth.js +1 -0
  57. package/dist/client/assets/common-BG-vw0tL.js +1 -0
  58. package/dist/client/assets/common-DSo46rnH.js +1 -0
  59. package/dist/client/assets/common-DbOCE-0i.js +1 -0
  60. package/dist/client/assets/common-DnXF4Jmj.js +1 -0
  61. package/dist/client/assets/{cose-bilkent-S5V4N54A-BNl3bhpS.js → cose-bilkent-S5V4N54A-Dee9mTjK.js} +1 -1
  62. package/dist/client/assets/{dagre-BM42HDAG-DFs7WCcz.js → dagre-BM42HDAG-CU-v2zoi.js} +1 -1
  63. package/dist/client/assets/{dashboard-view-DnoTcnIo.js → dashboard-view-BM790i02.js} +1 -1
  64. package/dist/client/assets/{dashboard-view-ZGxLEL9r.js → dashboard-view-CG4rzThC.js} +1 -1
  65. package/dist/client/assets/{dashboard-view-vc8kgLMs.js → dashboard-view-COary9sK.js} +1 -1
  66. package/dist/client/assets/{diagram-2AECGRRQ-C2PVozvu.js → diagram-2AECGRRQ-DIqdnJ5B.js} +1 -1
  67. package/dist/client/assets/{diagram-5GNKFQAL-DFJ5b9H8.js → diagram-5GNKFQAL-ChpdUlpb.js} +1 -1
  68. package/dist/client/assets/{diagram-KO2AKTUF-D335CW-c.js → diagram-KO2AKTUF-BxmzOp-c.js} +1 -1
  69. package/dist/client/assets/{diagram-LMA3HP47-DSfhroAW.js → diagram-LMA3HP47-DLEx-0rl.js} +1 -1
  70. package/dist/client/assets/{diagram-OG6HWLK6-8iGveM-Z.js → diagram-OG6HWLK6-DEpkJ3cG.js} +1 -1
  71. package/dist/client/assets/{erDiagram-TEJ5UH35-Xc56MEEi.js → erDiagram-TEJ5UH35-C3Rjr78a.js} +1 -1
  72. package/dist/client/assets/{flowDiagram-I6XJVG4X-DjCU9WbD.js → flowDiagram-I6XJVG4X-aPbBbeiH.js} +1 -1
  73. package/dist/client/assets/{folder-open-BRrB44UX.js → folder-open-BnNbfyzc.js} +1 -1
  74. package/dist/client/assets/{ganttDiagram-6RSMTGT7-CXQE1bea.js → ganttDiagram-6RSMTGT7-BEzAwvJ4.js} +1 -1
  75. package/dist/client/assets/{gitGraphDiagram-PVQCEYII--mrSABLC.js → gitGraphDiagram-PVQCEYII-Y4hB2swQ.js} +1 -1
  76. package/dist/client/assets/index-8wtfjIkg.js +2675 -0
  77. package/dist/client/assets/index-Bp3UBLOz.css +1 -0
  78. package/dist/client/assets/{infoDiagram-5YYISTIA-CTS_nljP.js → infoDiagram-5YYISTIA-pd3J7fRT.js} +1 -1
  79. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CpV5x3gk.js → ishikawaDiagram-YF4QCWOH-B968vfOH.js} +1 -1
  80. package/dist/client/assets/{journeyDiagram-JHISSGLW-BK2QCMnt.js → journeyDiagram-JHISSGLW-V4crhYKX.js} +1 -1
  81. package/dist/client/assets/{kanban-definition-UN3LZRKU-B4srpspY.js → kanban-definition-UN3LZRKU-Cl8LxR6k.js} +1 -1
  82. package/dist/client/assets/{mermaid.core-B8DVAt21.js → mermaid.core-rb_bKdHH.js} +4 -4
  83. package/dist/client/assets/{mindmap-definition-RKZ34NQL-CsmmiPpA.js → mindmap-definition-RKZ34NQL-Cnu-LPHz.js} +1 -1
  84. package/dist/client/assets/{pieDiagram-4H26LBE5-BahLDqf4.js → pieDiagram-4H26LBE5-C6hPYepr.js} +1 -1
  85. package/dist/client/assets/{puzzle-BFPQsuIa.js → puzzle-C8AvcmuM.js} +1 -1
  86. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-Bo3u0wTU.js → quadrantDiagram-W4KKPZXB-CUImgAi-.js} +1 -1
  87. package/dist/client/assets/{requirementDiagram-4Y6WPE33-DYkYsz7d.js → requirementDiagram-4Y6WPE33-DzDLxIYz.js} +1 -1
  88. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BCbh0BSY.js → sankeyDiagram-5OEKKPKP-DSr_oIy8.js} +1 -1
  89. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-C2AP9GlE.js → sequenceDiagram-3UESZ5HK-DO2E98Hv.js} +1 -1
  90. package/dist/client/assets/{shield-alert-tlZOi02c.js → shield-alert-Byjz1VmT.js} +1 -1
  91. package/dist/client/assets/{standing-instructions-template-C0Rzv9Mr.js → standing-instructions-template-Cf9fZ8bv.js} +1 -1
  92. package/dist/client/assets/{stateDiagram-AJRCARHV-CARkH0ug.js → stateDiagram-AJRCARHV-BYPlDS4u.js} +1 -1
  93. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-C2He043y.js → stateDiagram-v2-BHNVJYJU-Ce_6vh1Q.js} +1 -1
  94. package/dist/client/assets/{timeline-definition-PNZ67QCA-MvbYneEM.js → timeline-definition-PNZ67QCA-CG1FeaKV.js} +1 -1
  95. package/dist/client/assets/{upload-DWK0F17Z.js → upload-yPsE_DRN.js} +1 -1
  96. package/dist/client/assets/{users-1AkDfM14.js → users-C_YmWx9d.js} +1 -1
  97. package/dist/client/assets/{vennDiagram-CIIHVFJN-DOjzzLqc.js → vennDiagram-CIIHVFJN-JLUXqFyb.js} +1 -1
  98. package/dist/client/assets/{wardley-L42UT6IY-Di70vhu2.js → wardley-L42UT6IY-D_UBzrZ2.js} +1 -1
  99. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-nK6ARhDv.js → wardleyDiagram-YWT4CUSO-BzwMrdpL.js} +1 -1
  100. package/dist/client/assets/{xychartDiagram-2RQKCTM6-C7_y76B7.js → xychartDiagram-2RQKCTM6-C5TjbAcZ.js} +1 -1
  101. package/dist/client/index.html +2 -2
  102. package/dist/client/sw.js +633 -13
  103. package/dist/client/version.json +1 -1
  104. package/dist/extension.js +3999 -2008
  105. package/package.json +1 -1
  106. package/skill/fusion/references/engine-tools.md +1 -1
  107. package/dist/client/assets/AgentDetailView-CoeSgMXS.css +0 -1
  108. package/dist/client/assets/AgentDetailView-DH4Cn5iG.js +0 -13
  109. package/dist/client/assets/AgentsView-Dkij8Sm8.js +0 -24
  110. package/dist/client/assets/CommandCenter-jTzBo-pg.js +0 -97
  111. package/dist/client/assets/DevServerView-CxlacYJp.js +0 -1
  112. package/dist/client/assets/EvalsView-kYnaIk11.js +0 -1
  113. package/dist/client/assets/ResearchView-eMiRw1EM.js +0 -2
  114. package/dist/client/assets/SessionTerminal-DtFLyUaK.js +0 -2
  115. package/dist/client/assets/SettingsModal-BTfZlghk.css +0 -1
  116. package/dist/client/assets/SettingsModal-DSq-_qwo.js +0 -21
  117. package/dist/client/assets/channel-xFBfK0sX.js +0 -1
  118. package/dist/client/assets/classDiagram-4FO5ZUOK-BFBVD968.js +0 -1
  119. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BFBVD968.js +0 -1
  120. package/dist/client/assets/common-BDp2y6CF.js +0 -1
  121. package/dist/client/assets/common-BnEo5fLN.js +0 -1
  122. package/dist/client/assets/common-Bzr_Y8h4.js +0 -1
  123. package/dist/client/assets/common-CvwyFzfv.js +0 -1
  124. package/dist/client/assets/common-CztCXRkz.js +0 -1
  125. package/dist/client/assets/common-DPe2mbb7.js +0 -1
  126. package/dist/client/assets/index-C2xsZoNG.js +0 -2671
  127. package/dist/client/assets/index-Dv-95s50.css +0 -1
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-xterm-BNq00GSj.js","assets/vendor-react-SZ_qB27O.js","assets/vendor-xterm-LZoznX6r.css","assets/addon-fit-C1WQXRvu.js","assets/addon-unicode11-BVmNDUBM.js","assets/addon-webgl-uLc0RKcC.js"])))=>i.map(i=>d[i]);
2
+ import{J as xe,K as z,N as ce,O as J,Q as de,U as I,W as Ne,Y as Re,p as Pe,_ as je,$ as Y,a0 as Me,a1 as Le,a as De,a2 as K,a3 as Oe,a4 as Ae}from"./index-8wtfjIkg.js";import{r as n,j as t}from"./vendor-react-SZ_qB27O.js";import"./vendor-xterm-BNq00GSj.js";import{u as ze}from"./vendor-i18n-GF3RlKbq.js";import{S as Be}from"./shield-alert-Byjz1VmT.js";import"./vendor-codemirror-jBKmHyH0.js";import"./vendor-reactflow-9C3XTE7_.js";const Fe=32*1024,Ie=1e4,Ke=100,We="\x1B",$e=" ",Ue="",Qe="\x1B[A",Ve="\x1B[B",Je="\x1B[C",Ye="\x1B[D",W={ctrl:"Ctrl",escape:"Esc",tab:"Tab",ctrlC:"^C"};function ue(m){if(m.length!==1)return null;const o=m.toUpperCase().charCodeAt(0);return o>=64&&o<=95?String.fromCharCode(o&31):null}function He(){const[m,f]=n.useState(()=>Y());return n.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const o=window.matchMedia(Me),a=window.visualViewport,y=()=>f(Y());return y(),typeof a?.addEventListener=="function"&&a.addEventListener("resize",y),typeof o.addEventListener=="function"?(o.addEventListener("change",y),()=>{o.removeEventListener("change",y),typeof a?.removeEventListener=="function"&&a.removeEventListener("resize",y)}):(o.addListener(y),()=>{o.removeListener(y),typeof a?.removeEventListener=="function"&&a.removeEventListener("resize",y)})},[]),m}function Ge(m,f){if(typeof window>"u")return"";const a=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/api/cli-sessions/ws?sessionId=${encodeURIComponent(m)}&ticket=${encodeURIComponent(f)}`;return Ae(a)}function qe(){return/Mac|iPhone|iPad|iPod/i.test(navigator.platform)}function Ze(m){if(typeof window<"u"&&typeof window.atob=="function"){const f=window.atob(m),o=new Uint8Array(f.length);for(let a=0;a<f.length;a++)o[a]=f.charCodeAt(a);return new TextDecoder("utf-8").decode(o)}return Buffer.from(m,"base64").toString("utf8")}function lt({sessionId:m,readOnly:f=!1,posture:o,mode:a="live",projectId:y,onConfirmAdvance:E,showConfirmAdvance:$=!1,onOpenAdapterSettings:H}){const{t:r}=ze("app"),C=n.useRef(null),T=n.useRef(null),M=n.useRef(null),g=n.useRef(null),S=n.useRef(null),[G,q]=n.useState(!1),[me,U]=n.useState(!1),[Z,X]=n.useState(!1),x=He(),{keyboardOpen:B,keyboardOverlap:fe}=xe({enabled:x}),pe=n.useRef(null),[_,ee]=n.useState(""),[N,L]=n.useState(!1),[ye,be]=n.useState(()=>z().customShortcuts),[te,ne]=n.useState(null),ie=f||te===!0,D=!f&&te===!1&&a==="live",b=n.useCallback(e=>{if(!e||!D)return;const i=S.current;i?.readyState===WebSocket.OPEN&&i.send(JSON.stringify({type:"input",data:e}))},[D]),R=n.useCallback(e=>{if(N){const i=ue(e);if(L(!1),i){b(i);return}}b(e)},[N,b]),l=n.useCallback(e=>{e.preventDefault()},[]),he=n.useCallback(e=>{e?.preventDefault?.(),_&&b(_),b("\r"),ee("")},[_,b]),we=n.useCallback(e=>{if(N&&e.length>_.length){const i=e.slice(_.length,_.length+1),d=ue(i);if(L(!1),d){b(d);return}}ee(e)},[N,_,b]);n.useEffect(()=>{$&&U(!1)},[$,m]);const O=n.useCallback((e,i)=>{const d=S.current;d?.readyState===WebSocket.OPEN&&d.send(JSON.stringify({type:"resize",cols:e,rows:i}))},[]),se=n.useCallback(()=>{const e=T.current;if(!e)return;const i=z(),d=ce(i.fontFamily);e.options.fontFamily=d,C.current?.style.setProperty("--terminal-glyph-font-family",J(i.fontFamily)),e.options.fontSize=i.fontSize,e.options.cursorStyle=i.cursorStyle,e.options.cursorBlink=i.cursorBlink&&D;try{M.current?.fit?.(),O(e.cols,e.rows)}catch{}de(i.fontSize,d).then(P=>{if(!(!P||T.current!==e||e.options.fontSize!==i.fontSize||e.options.fontFamily!==d)){I(e,d),e.options.fontSize=i.fontSize;try{M.current?.fit?.(),O(e.cols,e.rows),I(e,d),e.refresh(0,Math.max(0,e.rows-1))}catch{}}},()=>{})},[D,O]);n.useEffect(()=>{if(typeof window>"u")return;const e=i=>{i.key===Le&&(se(),be(z().customShortcuts))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[se]),n.useEffect(()=>{if(!m||typeof window>"u")return;let e=!1,i=null,d=null,P=0;ne(null);const Q=O,ve=p=>{if(P+=p,P<Fe)return;const h=S.current;h?.readyState===WebSocket.OPEN&&h.send(JSON.stringify({type:"ack",bytes:P})),P=0};return(async()=>{let p;try{p=await De(`/cli-sessions/${encodeURIComponent(m)}/attach-ticket`,{method:"POST",body:JSON.stringify(y?{projectId:y}:{})})}catch{return}if(e)return;ne(p.readOnly);const h=!f&&!p.readOnly&&a==="live",[{Terminal:Ee},{FitAddon:Ce},{Unicode11Addon:Te}]=await Promise.all([K(()=>import("./vendor-xterm-BNq00GSj.js").then(c=>c.x),__vite__mapDeps([0,1,2])),K(()=>import("./addon-fit-C1WQXRvu.js").then(c=>c.a),__vite__mapDeps([3,1])),K(()=>import("./addon-unicode11-BVmNDUBM.js").then(c=>c.a),__vite__mapDeps([4,1]))]);if(e||!C.current)return;const w=z(),A=ce(w.fontFamily);C.current.style.setProperty("--terminal-glyph-font-family",J(w.fontFamily));const s=new Ee({convertEol:!1,cursorBlink:w.cursorBlink&&h,cursorStyle:w.cursorStyle,disableStdin:!h,scrollback:Ie,fontFamily:A,fontSize:w.fontSize}),j=new Ce;s.loadAddon(j);const ge=new Te;if(s.loadAddon(ge),s.unicode.activeVersion="11",Oe(()=>{s.open(C.current)}),T.current=s,M.current=j,w.renderer==="auto"&&!Y())try{const{WebglAddon:c}=await K(async()=>{const{WebglAddon:u}=await import("./addon-webgl-uLc0RKcC.js").then(k=>k.a);return{WebglAddon:u}},__vite__mapDeps([5,1]));if(!e){const u=new c;u.onContextLoss(()=>{try{u.dispose()}catch{}g.current===u&&(g.current=null)}),s.loadAddon(u),g.current=u}}catch{}try{j.fit()}catch{}(async()=>{if(!(!await de(w.fontSize,A)||e||T.current!==s||M.current!==j||s.options.fontSize!==w.fontSize||s.options.fontFamily!==A))try{I(s,A),s.options.fontSize=w.fontSize,j.fit(),Q(s.cols,s.rows),I(s,A),s.refresh(0,Math.max(0,s.rows-1))}catch{}})(),h&&(s.onData(c=>{const u=S.current;u?.readyState===WebSocket.OPEN&&u.send(JSON.stringify({type:"input",data:c}))}),s.attachCustomKeyEventHandler(c=>{if(c.type!=="keydown"||!(qe()?c.metaKey:c.ctrlKey)||c.altKey||c.shiftKey)return!0;const k=c.key.toLowerCase();if(k==="c"){const v=s.hasSelection()?s.getSelection():"";return v?(navigator.clipboard?.writeText(v).catch(()=>{}),!1):!0}if(k==="v"){const v=navigator.clipboard?.readText;return v&&v.call(navigator.clipboard).then(re=>{if(!re)return;const le=S.current;le?.readyState===WebSocket.OPEN&&le.send(JSON.stringify({type:"input",data:re}))}).catch(()=>{}),!1}return!0})),i=new ResizeObserver(()=>{d&&clearTimeout(d),d=setTimeout(()=>{try{j.fit(),Q(s.cols,s.rows),s.refresh(0,Math.max(0,s.rows-1))}catch{}},Ke)}),i.observe(C.current);const V=new WebSocket(Ge(m,p.ticket));S.current=V,V.onopen=()=>{Q(s.cols,s.rows)},V.onmessage=c=>{let u;try{u=JSON.parse(typeof c.data=="string"?c.data:"")}catch{return}switch(u.type){case"scrollback":case"data":{if(typeof u.data!="string")return;const k=Ze(u.data),v=k.length;s.write(k,()=>ve(v));break}}}})(),()=>{e=!0,d&&clearTimeout(d),i&&i.disconnect();const p=S.current;if(p){p.onopen=null,p.onmessage=null,p.onclose=null,p.onerror=null;try{p.close()}catch{}S.current=null}if(g.current){try{g.current.dispose()}catch{}g.current=null}const h=T.current;if(h){try{h.dispose()}catch{}T.current=null}M.current=null}},[m,f,a,y,O]);const oe=n.useMemo(()=>a==="idle"?r("cliTerminal.replayIdle","Session idle"):a==="ended"?r("cliTerminal.replayEnded","Session ended"):null,[a,r]),Se=n.useCallback(async()=>{if(E){X(!0);try{await E("advance"),U(!0)}finally{X(!1)}}},[E]),_e=n.useCallback(async()=>{E&&await E("not-yet"),U(!0)},[E]),F=!!o?.elevated,ae=o?.elevatedFlags?.join(", "),ke={"--terminal-glyph-font-family":J(z().fontFamily)};return t.jsxs("div",{className:`cli-session-terminal${x?" cli-session-terminal--mobile":""}${x&&B?" cli-session-terminal--keyboard-open":""}`,"data-mode":a,"data-read-only":ie,"data-mobile":x,"data-keyboard-open":x&&B,children:[t.jsxs("header",{className:"cli-session-terminal__header",children:[o&&t.jsxs("div",{className:"cli-session-terminal__posture-wrap",children:[t.jsxs("button",{type:"button",className:`cli-posture-chip${F?" cli-posture-chip--elevated":""}`,"data-elevated":F,"aria-expanded":G,onClick:()=>q(e=>!e),children:[F?t.jsx(Be,{size:13,"aria-hidden":"true"}):t.jsx(Ne,{size:13,"aria-hidden":"true"}),t.jsx("span",{className:"cli-posture-chip__name",children:o.adapterName}),o.mode&&t.jsx("span",{className:"cli-posture-chip__mode",children:o.mode}),F&&ae&&t.jsx("span",{className:"cli-posture-chip__flag",children:ae})]}),G&&t.jsxs("div",{className:"cli-posture-tooltip",role:"tooltip",children:[t.jsx("p",{className:"cli-posture-tooltip__title",children:r("cliTerminal.postureResolved","Resolved posture")}),t.jsxs("ul",{className:"cli-posture-tooltip__list",children:[(o.resolved??[]).map((e,i)=>t.jsx("li",{children:e},i)),(o.resolved??[]).length===0&&t.jsx("li",{children:o.mode??r("cliTerminal.postureBaseline","Baseline")})]}),H&&t.jsxs("button",{type:"button",className:"cli-posture-tooltip__settings",onClick:()=>{q(!1),H()},children:[t.jsx(Re,{size:12,"aria-hidden":"true"}),r("cliTerminal.adapterSettings","Adapter settings")]})]})]}),ie&&t.jsxs("span",{className:"cli-session-terminal__readonly-badge",children:[t.jsx(Pe,{size:12,"aria-hidden":"true"}),r("cliTerminal.readOnly","Read-only")]}),oe&&t.jsx("span",{className:"cli-session-terminal__replay-badge","data-replay-mode":a,children:oe})]}),t.jsx("div",{className:"cli-session-terminal__viewport",ref:C,"data-testid":"cli-terminal-viewport",style:ke}),$&&!me&&t.jsxs("div",{className:"cli-session-terminal__advance-strip",role:"region",children:[t.jsx("span",{className:"cli-session-terminal__advance-copy",children:r("cliTerminal.advancePrompt","This session looks idle — advance to review?")}),t.jsxs("div",{className:"cli-session-terminal__advance-actions",children:[t.jsx("button",{type:"button",className:"cli-session-terminal__advance-btn",disabled:Z,onClick:Se,children:r("cliTerminal.advance","Advance")}),t.jsx("button",{type:"button",className:"cli-session-terminal__advance-btn cli-session-terminal__advance-btn--secondary",disabled:Z,onClick:_e,children:r("cliTerminal.notYet","Not yet")})]})]}),x&&D&&t.jsxs("div",{className:`cli-session-terminal__mobile-bar${B?" cli-session-terminal__mobile-bar--keyboard-open":""}`,"data-testid":"cli-terminal-mobile-bar",style:B?{bottom:`${fe}px`}:void 0,children:[t.jsxs("div",{className:"cli-session-terminal__key-row","data-testid":"cli-terminal-key-bar",children:[t.jsx("button",{type:"button",className:`cli-terminal-key cli-terminal-key--ctrl${N?" cli-terminal-key--active":""}`,"data-testid":"cli-key-ctrl","aria-label":r("cliTerminal.mobileKeyCtrl","Sticky Ctrl modifier"),"aria-pressed":N,onPointerDown:l,onMouseDown:l,onClick:()=>L(e=>!e),children:W.ctrl}),t.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-esc","aria-label":r("cliTerminal.mobileKeyEsc","Send Escape"),onPointerDown:l,onMouseDown:l,onClick:()=>R(We),children:W.escape}),t.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-tab","aria-label":r("cliTerminal.mobileKeyTab","Send Tab"),onPointerDown:l,onMouseDown:l,onClick:()=>R($e),children:W.tab}),t.jsx("button",{type:"button",className:"cli-terminal-key cli-terminal-key--ctrlc","data-testid":"cli-key-ctrl-c","aria-label":r("cliTerminal.mobileKeyCtrlC","Send Ctrl-C"),onPointerDown:l,onMouseDown:l,onClick:()=>{L(!1),b(Ue)},children:W.ctrlC}),t.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-up","aria-label":r("cliTerminal.mobileKeyArrowUp","Cursor up"),onPointerDown:l,onMouseDown:l,onClick:()=>R(Qe),children:"↑"}),t.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-down","aria-label":r("cliTerminal.mobileKeyArrowDown","Cursor down"),onPointerDown:l,onMouseDown:l,onClick:()=>R(Ve),children:"↓"}),t.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-left","aria-label":r("cliTerminal.mobileKeyArrowLeft","Cursor left"),onPointerDown:l,onMouseDown:l,onClick:()=>R(Ye),children:"←"}),t.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-right","aria-label":r("cliTerminal.mobileKeyArrowRight","Cursor right"),onPointerDown:l,onMouseDown:l,onClick:()=>R(Je),children:"→"}),ye.map(e=>t.jsx("button",{type:"button",className:"cli-terminal-key cli-terminal-key--custom","data-testid":`cli-terminal-custom-shortcut-${e.id}`,title:e.label,"aria-label":e.label,onPointerDown:l,onMouseDown:l,onClick:()=>{L(!1),b(je(e.value))},children:e.label},e.id))]}),t.jsxs("form",{className:"cli-session-terminal__input-row",onSubmit:he,children:[t.jsx("input",{ref:pe,type:"text",className:"cli-session-terminal__mobile-input","data-testid":"cli-terminal-mobile-input",value:_,placeholder:r("cliTerminal.mobileInputPlaceholder","Type to send to the session…"),autoCapitalize:"off",autoCorrect:"off",autoComplete:"off",spellCheck:!1,onChange:e=>we(e.target.value)}),t.jsx("button",{type:"submit",className:"cli-session-terminal__mobile-send","data-testid":"cli-terminal-mobile-send","aria-label":r("cliTerminal.mobileSend","Send"),onPointerDown:l,onMouseDown:l,children:r("cliTerminal.mobileSend","Send")})]})]})]})}export{lt as SessionTerminal};