@runfusion/fusion 0.50.0 → 0.52.0

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 (144) hide show
  1. package/dist/bin.js +9801 -4827
  2. package/dist/client/.vite/manifest.json +328 -327
  3. package/dist/client/assets/{AgentDetailView-D2oYUApl.js → AgentDetailView-C-PM8cwG.js} +1 -1
  4. package/dist/client/assets/{AgentPermissionPolicyEditor-DGgx46f3.js → AgentPermissionPolicyEditor-DrVW4VPc.js} +1 -1
  5. package/dist/client/assets/{AgentsView-Dhf5Vq_T.js → AgentsView-DJJO0laF.js} +6 -11
  6. package/dist/client/assets/ChatView-C7uTm5hO.js +16 -0
  7. package/dist/client/assets/ChatView-D_2wBIIx.css +1 -0
  8. package/dist/client/assets/CommandCenter-CKvo0MuO.js +71 -0
  9. package/dist/client/assets/{DevServerView-DjJYp6Jj.js → DevServerView-BHLG4Mxg.js} +1 -1
  10. package/dist/client/assets/{DirectoryPicker-CYPYp9T4.js → DirectoryPicker-CRY-rpnj.js} +1 -1
  11. package/dist/client/assets/{DocumentsView-CeQVRVdp.js → DocumentsView-DhC4dnXD.js} +1 -1
  12. package/dist/client/assets/{EvalsView-D250mVR5.js → EvalsView-DsnLOVZB.js} +1 -1
  13. package/dist/client/assets/{ExperimentalAgentOnboardingModal-B1EEY_bl.js → ExperimentalAgentOnboardingModal-B4iFX60E.js} +1 -1
  14. package/dist/client/assets/{GoalsView-CUh8JBnJ.css → GoalsView-4-eEOeqw.css} +1 -1
  15. package/dist/client/assets/GoalsView-D5bzq6W9.js +2 -0
  16. package/dist/client/assets/{InsightsView-CbWItYe8.js → InsightsView-Drpu72M4.js} +1 -1
  17. package/dist/client/assets/{MemoryView-Ct0nOTES.js → MemoryView-auLBP3UW.js} +1 -1
  18. package/dist/client/assets/{PiExtensionsManager-DSQwngX-.js → PiExtensionsManager-RlbkXf_t.js} +1 -1
  19. package/dist/client/assets/{PluginManager-DqLxCiNg.js → PluginManager-BJMUacpG.js} +1 -1
  20. package/dist/client/assets/PullRequestView-344B9WF-.js +6 -0
  21. package/dist/client/assets/PullRequestView-NkeImY1n.css +1 -0
  22. package/dist/client/assets/{ResearchView-CJQL9XKC.js → ResearchView-BNqt-f53.js} +1 -1
  23. package/dist/client/assets/{SecretsView-ChN9aTbi.js → SecretsView-Be8Tm8It.js} +1 -1
  24. package/dist/client/assets/SessionTerminal-CumHUelZ.js +2 -0
  25. package/dist/client/assets/SettingsModal-AJfer-ve.js +21 -0
  26. package/dist/client/assets/{SettingsModal-CIC5jhgo.js → SettingsModal-B28DuhaN.js} +1 -1
  27. package/dist/client/assets/SettingsModal-CaE4JYxi.css +1 -0
  28. package/dist/client/assets/{SetupWizardModal-C6EGjmbd.js → SetupWizardModal-y2j9aZoi.js} +2 -2
  29. package/dist/client/assets/ShadcnColorPicker-Cc72uPKJ.js +11 -0
  30. package/dist/client/assets/ShadcnColorPicker-CyeAnJUU.css +1 -0
  31. package/dist/client/assets/{SkillsView-Dz8dDwfP.js → SkillsView-HQp7UTdA.js} +1 -1
  32. package/dist/client/assets/{TodoView-DvJFzoOv.js → TodoView-DF7_qWGH.js} +1 -1
  33. package/dist/client/assets/WorkflowNodeEditor-BjpqTIYE.js +8 -0
  34. package/dist/client/assets/WorkflowNodeEditor-Df-_206_.css +1 -0
  35. package/dist/client/assets/{agentSkills-B2dD5Nm5.js → agentSkills-Cy_HrYHd.js} +1 -1
  36. package/dist/client/assets/{app-D27ewSC0.js → app-CGubyqAW.js} +3 -3
  37. package/dist/client/assets/{app-dATBczl3.js → app-CrQpHbIs.js} +2 -2
  38. package/dist/client/assets/{app-BYq4S7Cb.js → app-DboK-0Ty.js} +1 -1
  39. package/dist/client/assets/{app-OPrfgjjn.js → app-DjnYET2y.js} +3 -3
  40. package/dist/client/assets/{app-DFLDkeOE.js → app-MacS555z.js} +3 -3
  41. package/dist/client/assets/{app-k1K9zAjp.js → app-nvVayIeU.js} +3 -3
  42. package/dist/client/assets/{architectureDiagram-3BPJPVTR-ClO0MnzR.js → architectureDiagram-3BPJPVTR-4ur4sxlr.js} +1 -1
  43. package/dist/client/assets/{blockDiagram-GPEHLZMM-C4cyy4WE.js → blockDiagram-GPEHLZMM-BgZeqq_q.js} +1 -1
  44. package/dist/client/assets/{c4Diagram-AAUBKEIU-NHPC9TJo.js → c4Diagram-AAUBKEIU-BQtdOIrm.js} +1 -1
  45. package/dist/client/assets/channel-Dn5XowfJ.js +1 -0
  46. package/dist/client/assets/{chunk-2J33WTMH-CGYIKTVR.js → chunk-2J33WTMH-C1k1PBy1.js} +1 -1
  47. package/dist/client/assets/{chunk-4BX2VUAB-BkCCD0tE.js → chunk-4BX2VUAB-hNujwvSn.js} +1 -1
  48. package/dist/client/assets/{chunk-55IACEB6-Be3yOIDe.js → chunk-55IACEB6-CnXV9LyI.js} +1 -1
  49. package/dist/client/assets/{chunk-727SXJPM-DxjyMaQQ.js → chunk-727SXJPM-B-ocMdYN.js} +1 -1
  50. package/dist/client/assets/{chunk-AQP2D5EJ-BC0PjN0W.js → chunk-AQP2D5EJ-CWNRUL6C.js} +1 -1
  51. package/dist/client/assets/{chunk-FMBD7UC4-DoWxmM8k.js → chunk-FMBD7UC4-DerrCiYe.js} +1 -1
  52. package/dist/client/assets/{chunk-ND2GUHAM-EOpuc9pP.js → chunk-ND2GUHAM-BfcSPlX-.js} +1 -1
  53. package/dist/client/assets/{chunk-QZHKN3VN-DiRyx9QZ.js → chunk-QZHKN3VN-BaWScAds.js} +1 -1
  54. package/dist/client/assets/classDiagram-4FO5ZUOK-zSOW-KNk.js +1 -0
  55. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-zSOW-KNk.js +1 -0
  56. package/dist/client/assets/{cose-bilkent-S5V4N54A-CfVoUUxT.js → cose-bilkent-S5V4N54A-n0Oeinz2.js} +1 -1
  57. package/dist/client/assets/{dagre-BM42HDAG-BfILvxLb.js → dagre-BM42HDAG-CUtehSt2.js} +1 -1
  58. package/dist/client/assets/{dashboard-view-C9YIcx-O.js → dashboard-view-BW3GHqgb.js} +1633 -1633
  59. package/dist/client/assets/{dashboard-view-wFC1pe4d.js → dashboard-view-DWKCxtr5.js} +1 -1
  60. package/dist/client/assets/{diagram-2AECGRRQ-6mdmbH-5.js → diagram-2AECGRRQ-Bz4aOzhR.js} +1 -1
  61. package/dist/client/assets/{diagram-5GNKFQAL-CY7MMwO1.js → diagram-5GNKFQAL-UoxIMwPf.js} +1 -1
  62. package/dist/client/assets/{diagram-KO2AKTUF-D05XnQqd.js → diagram-KO2AKTUF-BYR7hloS.js} +1 -1
  63. package/dist/client/assets/{diagram-LMA3HP47-B18FTOJG.js → diagram-LMA3HP47-BR9MaP8U.js} +1 -1
  64. package/dist/client/assets/{diagram-OG6HWLK6-xmXlYf5m.js → diagram-OG6HWLK6-BOfldYHv.js} +1 -1
  65. package/dist/client/assets/{erDiagram-TEJ5UH35-4XlgVLCs.js → erDiagram-TEJ5UH35-B8x9mfOs.js} +1 -1
  66. package/dist/client/assets/{flowDiagram-I6XJVG4X-BYl3ps7f.js → flowDiagram-I6XJVG4X-DBnTroCV.js} +1 -1
  67. package/dist/client/assets/{folder-open-BH6FwmO7.js → folder-open-CFze34Eq.js} +1 -1
  68. package/dist/client/assets/{ganttDiagram-6RSMTGT7-4vxuH9Dx.js → ganttDiagram-6RSMTGT7-BfzFy7iz.js} +1 -1
  69. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-BESmFgXT.js → gitGraphDiagram-PVQCEYII-CNTFu6IY.js} +1 -1
  70. package/dist/client/assets/index-QnHUwSjw.css +1 -0
  71. package/dist/client/assets/index-Y-vyXPPN.js +1331 -0
  72. package/dist/client/assets/{infoDiagram-5YYISTIA-DvjdjtwB.js → infoDiagram-5YYISTIA-DJiBRaAl.js} +1 -1
  73. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-Cis5IoEm.js → ishikawaDiagram-YF4QCWOH-CIY9t4cc.js} +1 -1
  74. package/dist/client/assets/{journeyDiagram-JHISSGLW-C20pB1W8.js → journeyDiagram-JHISSGLW-HLMZmcjY.js} +1 -1
  75. package/dist/client/assets/{kanban-definition-UN3LZRKU-CiVfCeU3.js → kanban-definition-UN3LZRKU-x9nKoxCI.js} +1 -1
  76. package/dist/client/assets/{linear-dXivciGL.js → linear-CwI45w2t.js} +1 -1
  77. package/dist/client/assets/{mermaid.core-CW0vCXA6.js → mermaid.core-pHkdB6fb.js} +4 -4
  78. package/dist/client/assets/{mindmap-definition-RKZ34NQL-E5rPHUdw.js → mindmap-definition-RKZ34NQL-Bs_4Tofu.js} +1 -1
  79. package/dist/client/assets/{pieDiagram-4H26LBE5-DVIFbPjH.js → pieDiagram-4H26LBE5-BGHz9JGZ.js} +1 -1
  80. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-C8qPRe_x.js → quadrantDiagram-W4KKPZXB-xHSR7cAR.js} +1 -1
  81. package/dist/client/assets/{requirementDiagram-4Y6WPE33-DQ-pwXh3.js → requirementDiagram-4Y6WPE33-D7YMNM44.js} +1 -1
  82. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BnghLuUc.js → sankeyDiagram-5OEKKPKP-OAXuab3Y.js} +1 -1
  83. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-ChlGxGVk.js → sequenceDiagram-3UESZ5HK-BZCjKFVL.js} +1 -1
  84. package/dist/client/assets/{shield-alert-BfOnDO6O.js → shield-alert-BBK8Risa.js} +1 -1
  85. package/dist/client/assets/{stateDiagram-AJRCARHV-ByUvNEch.js → stateDiagram-AJRCARHV-COnJQqA4.js} +1 -1
  86. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-Df38ITSP.js → stateDiagram-v2-BHNVJYJU-Diml4Nhm.js} +1 -1
  87. package/dist/client/assets/{time-DoDTxsna.js → time-Ckmi30gH.js} +1 -1
  88. package/dist/client/assets/{timeline-definition-PNZ67QCA-bsAGc83D.js → timeline-definition-PNZ67QCA-DHIKvV9L.js} +1 -1
  89. package/dist/client/assets/{upload-BK1crTqn.js → upload-CqUJUdZW.js} +1 -1
  90. package/dist/client/assets/{users-DW8jC2Z9.js → users-CAE-FEzI.js} +1 -1
  91. package/dist/client/assets/{vendor-reactflow-Bg-Qjzh8.js → vendor-reactflow-CnI7NMXG.js} +1 -1
  92. package/dist/client/assets/{vennDiagram-CIIHVFJN-BBIj6LFN.js → vennDiagram-CIIHVFJN-o9AxLDoL.js} +1 -1
  93. package/dist/client/assets/{wardley-L42UT6IY-De6JFroy.js → wardley-L42UT6IY-B7MIazje.js} +1 -1
  94. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-P1LOLx0_.js → wardleyDiagram-YWT4CUSO-B6qUJx0N.js} +1 -1
  95. package/dist/client/assets/{xychartDiagram-2RQKCTM6-v1G4ki6U.js → xychartDiagram-2RQKCTM6-13mSXuCA.js} +1 -1
  96. package/dist/client/index.html +8 -8
  97. package/dist/client/theme-data.css +140 -0
  98. package/dist/client/version.json +1 -1
  99. package/dist/droid-cli/package.json +1 -1
  100. package/dist/extension.js +7658 -3691
  101. package/dist/pi-claude-cli/index.ts +13 -0
  102. package/dist/pi-claude-cli/package.json +1 -1
  103. package/dist/pi-claude-cli/src/__tests__/process-manager.test.ts +2 -2
  104. package/dist/pi-claude-cli/src/__tests__/provider.test.ts +27 -4
  105. package/dist/plugin-sdk/index.d.ts +38 -1
  106. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  107. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  108. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +1 -1
  109. package/dist/plugins/fusion-plugin-compound-engineering/manifest.json +1 -1
  110. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  111. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  112. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  113. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  114. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  115. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  116. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  117. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  118. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  119. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  120. package/package.json +1 -1
  121. package/skill/fusion/SKILL.md +1 -0
  122. package/skill/fusion/references/best-practices.md +3 -3
  123. package/skill/fusion/references/engine-tools.md +3 -3
  124. package/skill/fusion/references/extension-tools.md +82 -5
  125. package/skill/fusion/references/fusion-capabilities.md +9 -1
  126. package/skill/fusion/workflows/task-management.md +1 -1
  127. package/dist/client/assets/ChatView-DpgpxHva.js +0 -19
  128. package/dist/client/assets/ChatView-DwIIrJxb.css +0 -1
  129. package/dist/client/assets/CommandCenter-DzQhGq_J.js +0 -71
  130. package/dist/client/assets/GoalsView-MftVwE9g.js +0 -2
  131. package/dist/client/assets/PullRequestView-CpdE3Yo_.css +0 -1
  132. package/dist/client/assets/PullRequestView-D0WgwdAi.js +0 -6
  133. package/dist/client/assets/SessionTerminal-BVon9kbr.js +0 -2
  134. package/dist/client/assets/SettingsModal-B4WANQnu.js +0 -21
  135. package/dist/client/assets/SettingsModal-tUDR6nJ9.css +0 -1
  136. package/dist/client/assets/ShadcnColorPicker-4e_aXoGX.js +0 -11
  137. package/dist/client/assets/ShadcnColorPicker-CzZo9UOD.css +0 -1
  138. package/dist/client/assets/WorkflowNodeEditor-DrdTCstS.js +0 -8
  139. package/dist/client/assets/WorkflowNodeEditor-WYIxHTxY.css +0 -1
  140. package/dist/client/assets/channel-Q2WKocEP.js +0 -1
  141. package/dist/client/assets/classDiagram-4FO5ZUOK-CPFl2Aqd.js +0 -1
  142. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CPFl2Aqd.js +0 -1
  143. package/dist/client/assets/index-B9jtBwFy.css +0 -1
  144. package/dist/client/assets/index-DFeBJ3GM.js +0 -1302
@@ -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{W as ke,Y as U,$ as oe,a0 as Q,a1 as ae,a2 as ve,a3 as Ce,F as Te,a4 as V,a5 as ge,a6 as Ee,a7 as xe,_ as F,a8 as Ne}from"./index-Y-vyXPPN.js";import{r as i,j as t}from"./vendor-react-SZ_qB27O.js";import"./vendor-xterm-BNq00GSj.js";import{u as Re}from"./vendor-i18n-GF3RlKbq.js";import{S as je}from"./shield-alert-BBK8Risa.js";import"./vendor-reactflow-CnI7NMXG.js";import"./vendor-codemirror-jBKmHyH0.js";const Pe=32*1024,Me=100,De="\x1B",Ae=" ",Oe="",Le="\x1B[A",Fe="\x1B[B",ze="\x1B[C",Be="\x1B[D",z={ctrl:"Ctrl",escape:"Esc",tab:"Tab",ctrlC:"^C"};function le(u){if(u.length!==1)return null;const o=u.toUpperCase().charCodeAt(0);return o>=64&&o<=95?String.fromCharCode(o&31):null}function Ie(){const[u,f]=i.useState(()=>V());return i.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const o=window.matchMedia(ge),a=()=>f(V());return a(),typeof o.addEventListener=="function"?(o.addEventListener("change",a),()=>o.removeEventListener("change",a)):(o.addListener(a),()=>o.removeListener(a))},[]),u}function Ke(u,f){if(typeof window>"u")return"";const a=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/api/cli-sessions/ws?sessionId=${encodeURIComponent(u)}&ticket=${encodeURIComponent(f)}`;return Ne(a)}function We(){return/Mac|iPhone|iPad|iPod/i.test(navigator.platform)}function $e(u){if(typeof window<"u"&&typeof window.atob=="function"){const f=window.atob(u),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(u,"base64").toString("utf8")}function Xe({sessionId:u,readOnly:f=!1,posture:o,mode:a="live",projectId:B,onConfirmAdvance:k,showConfirmAdvance:I=!1,onOpenAdapterSettings:Y}){const{t:l}=Re("app"),v=i.useRef(null),C=i.useRef(null),R=i.useRef(null),_=i.useRef(null),[J,H]=i.useState(!1),[re,K]=i.useState(!1),[G,Z]=i.useState(!1),T=Ie(),{keyboardOpen:M,keyboardOverlap:ce}=ke({enabled:T}),de=i.useRef(null),[w,q]=i.useState(""),[g,D]=i.useState(!1),[X,ee]=i.useState(null),te=f||X===!0,j=!f&&X===!1&&a==="live",y=i.useCallback(e=>{if(!e||!j)return;const n=_.current;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify({type:"input",data:e}))},[j]),E=i.useCallback(e=>{if(g){const n=le(e);if(D(!1),n){y(n);return}}y(e)},[g,y]),c=i.useCallback(e=>{e.preventDefault()},[]),ue=i.useCallback(e=>{e?.preventDefault?.(),w&&y(w),y("\r"),q("")},[w,y]),me=i.useCallback(e=>{if(g&&e.length>w.length){const n=e.slice(w.length,w.length+1),d=le(n);if(D(!1),d){y(d);return}}q(e)},[g,w,y]);i.useEffect(()=>{I&&K(!1)},[I,u]);const P=i.useCallback((e,n)=>{const d=_.current;d?.readyState===WebSocket.OPEN&&d.send(JSON.stringify({type:"resize",cols:e,rows:n}))},[]),ne=i.useCallback(()=>{const e=C.current;if(!e)return;const n=U(),d=oe(n.fontFamily);e.options.fontFamily=d,v.current?.style.setProperty("--terminal-glyph-font-family",Q(n.fontFamily)),e.options.fontSize=n.fontSize,e.options.cursorStyle=n.cursorStyle,e.options.cursorBlink=n.cursorBlink&&j;try{R.current?.fit?.(),P(e.cols,e.rows)}catch{}ae(n.fontSize,d).then(x=>{if(!(!x||C.current!==e||e.options.fontSize!==n.fontSize||e.options.fontFamily!==d)){e.options.fontFamily=d,e.options.fontSize=n.fontSize;try{R.current?.fit?.(),P(e.cols,e.rows),e.refresh(0,Math.max(0,e.rows-1))}catch{}}},()=>{})},[j,P]);i.useEffect(()=>{if(typeof window>"u")return;const e=n=>{n.key===Ee&&ne()};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[ne]),i.useEffect(()=>{if(!u||typeof window>"u")return;let e=!1,n=null,d=null,x=0;ee(null);const W=P,be=p=>{if(x+=p,x<Pe)return;const b=_.current;b?.readyState===WebSocket.OPEN&&b.send(JSON.stringify({type:"ack",bytes:x})),x=0};return(async()=>{let p;try{p=await xe(`/cli-sessions/${encodeURIComponent(u)}/attach-ticket`,{method:"POST",body:JSON.stringify(B?{projectId:B}:{})})}catch{return}if(e)return;ee(p.readOnly);const b=!f&&!p.readOnly&&a==="live",[{Terminal:he},{FitAddon:we},{Unicode11Addon:_e}]=await Promise.all([F(()=>import("./vendor-xterm-BNq00GSj.js").then(r=>r.x),__vite__mapDeps([0,1,2])),F(()=>import("./addon-fit-C1WQXRvu.js").then(r=>r.a),__vite__mapDeps([3,1])),F(()=>import("./addon-unicode11-BVmNDUBM.js").then(r=>r.a),__vite__mapDeps([4,1]))]);if(e||!v.current)return;const h=U(),O=oe(h.fontFamily);v.current.style.setProperty("--terminal-glyph-font-family",Q(h.fontFamily));const s=new he({convertEol:!1,cursorBlink:h.cursorBlink&&b,cursorStyle:h.cursorStyle,disableStdin:!b,scrollback:1e4,fontFamily:O,fontSize:h.fontSize}),N=new we;s.loadAddon(N);const Se=new _e;if(s.loadAddon(Se),s.unicode.activeVersion="11",s.open(v.current),C.current=s,R.current=N,h.renderer==="auto"&&!V())try{const{WebglAddon:r}=await F(async()=>{const{WebglAddon:m}=await import("./addon-webgl-uLc0RKcC.js").then(S=>S.a);return{WebglAddon:m}},__vite__mapDeps([5,1]));if(!e){const m=new r;m.onContextLoss(()=>{try{m.dispose()}catch{}}),s.loadAddon(m)}}catch{}try{N.fit()}catch{}(async()=>{if(!(!await ae(h.fontSize,O)||e||C.current!==s||R.current!==N||s.options.fontSize!==h.fontSize||s.options.fontFamily!==O))try{s.options.fontFamily=O,s.options.fontSize=h.fontSize,N.fit(),W(s.cols,s.rows),s.refresh(0,Math.max(0,s.rows-1))}catch{}})(),b&&(s.onData(r=>{const m=_.current;m?.readyState===WebSocket.OPEN&&m.send(JSON.stringify({type:"input",data:r}))}),s.attachCustomKeyEventHandler(r=>{if(r.type!=="keydown"||!(We()?r.metaKey:r.ctrlKey)||r.altKey||r.shiftKey)return!0;const S=r.key.toLowerCase();if(S==="c"){const L=s.hasSelection()?s.getSelection():"";return L?(navigator.clipboard?.writeText(L).catch(()=>{}),!1):!0}return!0})),n=new ResizeObserver(()=>{d&&clearTimeout(d),d=setTimeout(()=>{try{N.fit(),W(s.cols,s.rows)}catch{}},Me)}),n.observe(v.current);const $=new WebSocket(Ke(u,p.ticket));_.current=$,$.onopen=()=>{W(s.cols,s.rows)},$.onmessage=r=>{let m;try{m=JSON.parse(typeof r.data=="string"?r.data:"")}catch{return}switch(m.type){case"scrollback":case"data":{if(typeof m.data!="string")return;const S=$e(m.data),L=S.length;s.write(S,()=>be(L));break}}}})(),()=>{e=!0,d&&clearTimeout(d),n&&n.disconnect();const p=_.current;if(p){p.onopen=null,p.onmessage=null,p.onclose=null,p.onerror=null;try{p.close()}catch{}_.current=null}const b=C.current;if(b){try{b.dispose()}catch{}C.current=null}R.current=null}},[u,f,a,B,P]);const ie=i.useMemo(()=>a==="idle"?l("cliTerminal.replayIdle","Session idle"):a==="ended"?l("cliTerminal.replayEnded","Session ended"):null,[a,l]),fe=i.useCallback(async()=>{if(k){Z(!0);try{await k("advance"),K(!0)}finally{Z(!1)}}},[k]),pe=i.useCallback(async()=>{k&&await k("not-yet"),K(!0)},[k]),A=!!o?.elevated,se=o?.elevatedFlags?.join(", "),ye={"--terminal-glyph-font-family":Q(U().fontFamily)};return t.jsxs("div",{className:`cli-session-terminal${T?" cli-session-terminal--mobile":""}${T&&M?" cli-session-terminal--keyboard-open":""}`,"data-mode":a,"data-read-only":te,"data-mobile":T,"data-keyboard-open":T&&M,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${A?" cli-posture-chip--elevated":""}`,"data-elevated":A,"aria-expanded":J,onClick:()=>H(e=>!e),children:[A?t.jsx(je,{size:13,"aria-hidden":"true"}):t.jsx(ve,{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}),A&&se&&t.jsx("span",{className:"cli-posture-chip__flag",children:se})]}),J&&t.jsxs("div",{className:"cli-posture-tooltip",role:"tooltip",children:[t.jsx("p",{className:"cli-posture-tooltip__title",children:l("cliTerminal.postureResolved","Resolved posture")}),t.jsxs("ul",{className:"cli-posture-tooltip__list",children:[(o.resolved??[]).map((e,n)=>t.jsx("li",{children:e},n)),(o.resolved??[]).length===0&&t.jsx("li",{children:o.mode??l("cliTerminal.postureBaseline","Baseline")})]}),Y&&t.jsxs("button",{type:"button",className:"cli-posture-tooltip__settings",onClick:()=>{H(!1),Y()},children:[t.jsx(Ce,{size:12,"aria-hidden":"true"}),l("cliTerminal.adapterSettings","Adapter settings")]})]})]}),te&&t.jsxs("span",{className:"cli-session-terminal__readonly-badge",children:[t.jsx(Te,{size:12,"aria-hidden":"true"}),l("cliTerminal.readOnly","Read-only")]}),ie&&t.jsx("span",{className:"cli-session-terminal__replay-badge","data-replay-mode":a,children:ie})]}),t.jsx("div",{className:"cli-session-terminal__viewport",ref:v,"data-testid":"cli-terminal-viewport",style:ye}),I&&!re&&t.jsxs("div",{className:"cli-session-terminal__advance-strip",role:"region",children:[t.jsx("span",{className:"cli-session-terminal__advance-copy",children:l("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:G,onClick:fe,children:l("cliTerminal.advance","Advance")}),t.jsx("button",{type:"button",className:"cli-session-terminal__advance-btn cli-session-terminal__advance-btn--secondary",disabled:G,onClick:pe,children:l("cliTerminal.notYet","Not yet")})]})]}),T&&j&&t.jsxs("div",{className:`cli-session-terminal__mobile-bar${M?" cli-session-terminal__mobile-bar--keyboard-open":""}`,"data-testid":"cli-terminal-mobile-bar",style:M?{bottom:`${ce}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${g?" cli-terminal-key--active":""}`,"data-testid":"cli-key-ctrl","aria-label":l("cliTerminal.mobileKeyCtrl","Sticky Ctrl modifier"),"aria-pressed":g,onPointerDown:c,onMouseDown:c,onClick:()=>D(e=>!e),children:z.ctrl}),t.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-esc","aria-label":l("cliTerminal.mobileKeyEsc","Send Escape"),onPointerDown:c,onMouseDown:c,onClick:()=>E(De),children:z.escape}),t.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-tab","aria-label":l("cliTerminal.mobileKeyTab","Send Tab"),onPointerDown:c,onMouseDown:c,onClick:()=>E(Ae),children:z.tab}),t.jsx("button",{type:"button",className:"cli-terminal-key cli-terminal-key--ctrlc","data-testid":"cli-key-ctrl-c","aria-label":l("cliTerminal.mobileKeyCtrlC","Send Ctrl-C"),onPointerDown:c,onMouseDown:c,onClick:()=>{D(!1),y(Oe)},children:z.ctrlC}),t.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-up","aria-label":l("cliTerminal.mobileKeyArrowUp","Cursor up"),onPointerDown:c,onMouseDown:c,onClick:()=>E(Le),children:"↑"}),t.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-down","aria-label":l("cliTerminal.mobileKeyArrowDown","Cursor down"),onPointerDown:c,onMouseDown:c,onClick:()=>E(Fe),children:"↓"}),t.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-left","aria-label":l("cliTerminal.mobileKeyArrowLeft","Cursor left"),onPointerDown:c,onMouseDown:c,onClick:()=>E(Be),children:"←"}),t.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-right","aria-label":l("cliTerminal.mobileKeyArrowRight","Cursor right"),onPointerDown:c,onMouseDown:c,onClick:()=>E(ze),children:"→"})]}),t.jsxs("form",{className:"cli-session-terminal__input-row",onSubmit:ue,children:[t.jsx("input",{ref:de,type:"text",className:"cli-session-terminal__mobile-input","data-testid":"cli-terminal-mobile-input",value:w,placeholder:l("cliTerminal.mobileInputPlaceholder","Type to send to the session…"),autoCapitalize:"off",autoCorrect:"off",autoComplete:"off",spellCheck:!1,onChange:e=>me(e.target.value)}),t.jsx("button",{type:"submit",className:"cli-session-terminal__mobile-send","data-testid":"cli-terminal-mobile-send","aria-label":l("cliTerminal.mobileSend","Send"),onPointerDown:c,onMouseDown:c,children:l("cliTerminal.mobileSend","Send")})]})]})]})}export{Xe as SessionTerminal};