@runfusion/fusion 0.49.0 → 0.50.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 (121) hide show
  1. package/dist/bin.js +36386 -9279
  2. package/dist/client/.vite/manifest.json +241 -241
  3. package/dist/client/assets/{AgentDetailView-B8_IDafM.js → AgentDetailView-D2oYUApl.js} +5 -5
  4. package/dist/client/assets/{AgentPermissionPolicyEditor-D4U6puHs.js → AgentPermissionPolicyEditor-DGgx46f3.js} +1 -1
  5. package/dist/client/assets/AgentsView-Dhf5Vq_T.js +29 -0
  6. package/dist/client/assets/ChatView-DpgpxHva.js +19 -0
  7. package/dist/client/assets/CommandCenter-B9q-zM9p.css +1 -0
  8. package/dist/client/assets/CommandCenter-DzQhGq_J.js +71 -0
  9. package/dist/client/assets/{DevServerView-C1qppz4E.js → DevServerView-DjJYp6Jj.js} +1 -1
  10. package/dist/client/assets/{DirectoryPicker-CW_Q-Bup.js → DirectoryPicker-CYPYp9T4.js} +1 -1
  11. package/dist/client/assets/{DocumentsView-DGxrLknh.js → DocumentsView-CeQVRVdp.js} +1 -1
  12. package/dist/client/assets/{EvalsView-BMU01K7i.js → EvalsView-D250mVR5.js} +1 -1
  13. package/dist/client/assets/{ExperimentalAgentOnboardingModal-B5Mwwwbz.js → ExperimentalAgentOnboardingModal-B1EEY_bl.js} +1 -1
  14. package/dist/client/assets/{GoalsView-B9Vwqp8k.js → GoalsView-MftVwE9g.js} +1 -1
  15. package/dist/client/assets/{InsightsView-C9fVBn7l.js → InsightsView-CbWItYe8.js} +1 -1
  16. package/dist/client/assets/{MemoryView-Chm5uzjZ.js → MemoryView-Ct0nOTES.js} +1 -1
  17. package/dist/client/assets/{PiExtensionsManager-BhKzgNHh.js → PiExtensionsManager-DSQwngX-.js} +1 -1
  18. package/dist/client/assets/{PluginManager-pEIpbosd.js → PluginManager-DqLxCiNg.js} +1 -1
  19. package/dist/client/assets/{PullRequestView-DG1gPFRJ.js → PullRequestView-D0WgwdAi.js} +1 -1
  20. package/dist/client/assets/{ResearchView-wy7oLnPg.js → ResearchView-CJQL9XKC.js} +1 -1
  21. package/dist/client/assets/{SecretsView-Bid0TP7K.js → SecretsView-ChN9aTbi.js} +1 -1
  22. package/dist/client/assets/{SessionTerminal-B3XCQFRu.js → SessionTerminal-BVon9kbr.js} +1 -1
  23. package/dist/client/assets/SettingsModal-B4WANQnu.js +21 -0
  24. package/dist/client/assets/{SettingsModal-BMpP5CkL.js → SettingsModal-CIC5jhgo.js} +1 -1
  25. package/dist/client/assets/{SetupWizardModal-C_wMNV3H.js → SetupWizardModal-C6EGjmbd.js} +2 -2
  26. package/dist/client/assets/{ShadcnColorPicker-CXxr3ynz.js → ShadcnColorPicker-4e_aXoGX.js} +1 -1
  27. package/dist/client/assets/{SkillsView-DcNtAxQI.js → SkillsView-Dz8dDwfP.js} +1 -1
  28. package/dist/client/assets/{SkillsView-Cfs7HkwW.css → SkillsView-tAW7TTCz.css} +1 -1
  29. package/dist/client/assets/{TodoView-Bt5ZY51H.js → TodoView-DvJFzoOv.js} +1 -1
  30. package/dist/client/assets/WorkflowNodeEditor-DrdTCstS.js +8 -0
  31. package/dist/client/assets/{agentSkills-DlTZq-3b.js → agentSkills-B2dD5Nm5.js} +1 -1
  32. package/dist/client/assets/{app-DH6H4_Pi.js → app-BYq4S7Cb.js} +3 -3
  33. package/dist/client/assets/{app-B7XunYYI.js → app-D27ewSC0.js} +3 -3
  34. package/dist/client/assets/{app-BgStK3QE.js → app-DFLDkeOE.js} +3 -3
  35. package/dist/client/assets/{app-BV3tiBJo.js → app-OPrfgjjn.js} +3 -3
  36. package/dist/client/assets/{app-Cl4147h6.js → app-dATBczl3.js} +3 -3
  37. package/dist/client/assets/{app-ChEDGcMv.js → app-k1K9zAjp.js} +3 -3
  38. package/dist/client/assets/{architectureDiagram-3BPJPVTR-DPevXfXn.js → architectureDiagram-3BPJPVTR-ClO0MnzR.js} +1 -1
  39. package/dist/client/assets/{blockDiagram-GPEHLZMM-iREXBnwN.js → blockDiagram-GPEHLZMM-C4cyy4WE.js} +1 -1
  40. package/dist/client/assets/{c4Diagram-AAUBKEIU-Ds4gntrv.js → c4Diagram-AAUBKEIU-NHPC9TJo.js} +1 -1
  41. package/dist/client/assets/channel-Q2WKocEP.js +1 -0
  42. package/dist/client/assets/{chunk-2J33WTMH-DI8WjOJS.js → chunk-2J33WTMH-CGYIKTVR.js} +1 -1
  43. package/dist/client/assets/{chunk-4BX2VUAB-BSvj2r_a.js → chunk-4BX2VUAB-BkCCD0tE.js} +1 -1
  44. package/dist/client/assets/{chunk-55IACEB6-DXqk_68P.js → chunk-55IACEB6-Be3yOIDe.js} +1 -1
  45. package/dist/client/assets/{chunk-727SXJPM-CbVz6DAi.js → chunk-727SXJPM-DxjyMaQQ.js} +1 -1
  46. package/dist/client/assets/{chunk-AQP2D5EJ-O8p3lAmi.js → chunk-AQP2D5EJ-BC0PjN0W.js} +1 -1
  47. package/dist/client/assets/{chunk-FMBD7UC4-8KJJYFeG.js → chunk-FMBD7UC4-DoWxmM8k.js} +1 -1
  48. package/dist/client/assets/{chunk-ND2GUHAM-D_zeaF-K.js → chunk-ND2GUHAM-EOpuc9pP.js} +1 -1
  49. package/dist/client/assets/{chunk-QZHKN3VN-IzXnlcXm.js → chunk-QZHKN3VN-DiRyx9QZ.js} +1 -1
  50. package/dist/client/assets/classDiagram-4FO5ZUOK-CPFl2Aqd.js +1 -0
  51. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CPFl2Aqd.js +1 -0
  52. package/dist/client/assets/{cose-bilkent-S5V4N54A-DyB8nAG8.js → cose-bilkent-S5V4N54A-CfVoUUxT.js} +1 -1
  53. package/dist/client/assets/{dagre-BM42HDAG-BkFeh-yy.js → dagre-BM42HDAG-BfILvxLb.js} +1 -1
  54. package/dist/client/assets/{dashboard-view-zm0LyiGH.js → dashboard-view-C9YIcx-O.js} +2 -2
  55. package/dist/client/assets/{dashboard-view-Ddw7AZEw.js → dashboard-view-wFC1pe4d.js} +1 -1
  56. package/dist/client/assets/{diagram-2AECGRRQ-D6ccxFD_.js → diagram-2AECGRRQ-6mdmbH-5.js} +1 -1
  57. package/dist/client/assets/{diagram-5GNKFQAL-pYELzWoc.js → diagram-5GNKFQAL-CY7MMwO1.js} +1 -1
  58. package/dist/client/assets/{diagram-KO2AKTUF-DiX408pG.js → diagram-KO2AKTUF-D05XnQqd.js} +1 -1
  59. package/dist/client/assets/{diagram-LMA3HP47-CEZO6Pzz.js → diagram-LMA3HP47-B18FTOJG.js} +1 -1
  60. package/dist/client/assets/{diagram-OG6HWLK6-C4wPGJ9_.js → diagram-OG6HWLK6-xmXlYf5m.js} +1 -1
  61. package/dist/client/assets/{erDiagram-TEJ5UH35-UVoBlCdP.js → erDiagram-TEJ5UH35-4XlgVLCs.js} +1 -1
  62. package/dist/client/assets/{flowDiagram-I6XJVG4X-BHBVkZYH.js → flowDiagram-I6XJVG4X-BYl3ps7f.js} +1 -1
  63. package/dist/client/assets/{folder-open-BS746XqG.js → folder-open-BH6FwmO7.js} +1 -1
  64. package/dist/client/assets/{ganttDiagram-6RSMTGT7-JhbzzuUH.js → ganttDiagram-6RSMTGT7-4vxuH9Dx.js} +1 -1
  65. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-Bf9CFASb.js → gitGraphDiagram-PVQCEYII-BESmFgXT.js} +1 -1
  66. package/dist/client/assets/index-B9jtBwFy.css +1 -0
  67. package/dist/client/assets/index-DFeBJ3GM.js +1302 -0
  68. package/dist/client/assets/{infoDiagram-5YYISTIA-ODZX4ugg.js → infoDiagram-5YYISTIA-DvjdjtwB.js} +1 -1
  69. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-BZ4EmuqN.js → ishikawaDiagram-YF4QCWOH-Cis5IoEm.js} +1 -1
  70. package/dist/client/assets/{journeyDiagram-JHISSGLW-DjPguSQp.js → journeyDiagram-JHISSGLW-C20pB1W8.js} +1 -1
  71. package/dist/client/assets/{kanban-definition-UN3LZRKU-CDlWdfMu.js → kanban-definition-UN3LZRKU-CiVfCeU3.js} +1 -1
  72. package/dist/client/assets/{mermaid.core-rI3nyVx8.js → mermaid.core-CW0vCXA6.js} +4 -4
  73. package/dist/client/assets/{mindmap-definition-RKZ34NQL-BduuAfgW.js → mindmap-definition-RKZ34NQL-E5rPHUdw.js} +1 -1
  74. package/dist/client/assets/{pieDiagram-4H26LBE5-Df_vjilh.js → pieDiagram-4H26LBE5-DVIFbPjH.js} +1 -1
  75. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DXVZfmAq.js → quadrantDiagram-W4KKPZXB-C8qPRe_x.js} +1 -1
  76. package/dist/client/assets/{requirementDiagram-4Y6WPE33-UJTrQjTm.js → requirementDiagram-4Y6WPE33-DQ-pwXh3.js} +1 -1
  77. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-DDERoUXV.js → sankeyDiagram-5OEKKPKP-BnghLuUc.js} +1 -1
  78. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DaULWS9L.js → sequenceDiagram-3UESZ5HK-ChlGxGVk.js} +1 -1
  79. package/dist/client/assets/{shield-alert-BKmP809x.js → shield-alert-BfOnDO6O.js} +1 -1
  80. package/dist/client/assets/{stateDiagram-AJRCARHV-tbFQ1nvS.js → stateDiagram-AJRCARHV-ByUvNEch.js} +1 -1
  81. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-DQ0cOptx.js → stateDiagram-v2-BHNVJYJU-Df38ITSP.js} +1 -1
  82. package/dist/client/assets/{timeline-definition-PNZ67QCA-BE_RPHyh.js → timeline-definition-PNZ67QCA-bsAGc83D.js} +1 -1
  83. package/dist/client/assets/{upload-CKPEXc39.js → upload-BK1crTqn.js} +1 -1
  84. package/dist/client/assets/{users-BFmWR-bN.js → users-DW8jC2Z9.js} +1 -1
  85. package/dist/client/assets/{vennDiagram-CIIHVFJN-TwZvt3sz.js → vennDiagram-CIIHVFJN-BBIj6LFN.js} +1 -1
  86. package/dist/client/assets/{wardley-L42UT6IY-C6ZavOUS.js → wardley-L42UT6IY-De6JFroy.js} +1 -1
  87. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-B2i11Jb0.js → wardleyDiagram-YWT4CUSO-P1LOLx0_.js} +1 -1
  88. package/dist/client/assets/{xychartDiagram-2RQKCTM6-DbfolZx7.js → xychartDiagram-2RQKCTM6-v1G4ki6U.js} +1 -1
  89. package/dist/client/index.html +2 -2
  90. package/dist/client/version.json +1 -1
  91. package/dist/droid-cli/package.json +1 -1
  92. package/dist/extension.js +32507 -5725
  93. package/dist/pi-claude-cli/index.ts +12 -16
  94. package/dist/pi-claude-cli/package.json +1 -1
  95. package/dist/plugin-sdk/index.d.ts +26 -1
  96. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  97. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  98. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +250 -19
  99. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  100. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  101. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  102. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  103. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  104. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  105. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  106. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  107. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  108. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  109. package/package.json +1 -1
  110. package/skill/fusion/references/engine-tools.md +1 -1
  111. package/dist/client/assets/AgentsView-CafZRACA.js +0 -29
  112. package/dist/client/assets/ChatView-CZv_hIdK.js +0 -19
  113. package/dist/client/assets/CommandCenter-B1P49x__.css +0 -1
  114. package/dist/client/assets/CommandCenter-D9qV7yF_.js +0 -71
  115. package/dist/client/assets/SettingsModal-Dptq-qYL.js +0 -21
  116. package/dist/client/assets/WorkflowNodeEditor-AwHxfoz1.js +0 -8
  117. package/dist/client/assets/channel-FTiNgAnt.js +0 -1
  118. package/dist/client/assets/classDiagram-4FO5ZUOK-sIVsNnoj.js +0 -1
  119. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-sIVsNnoj.js +0 -1
  120. package/dist/client/assets/index-BNXyfteR.css +0 -1
  121. package/dist/client/assets/index-DZGZRdnt.js +0 -1302
@@ -1,2 +1,2 @@
1
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 fe,Y as K,$ as te,a0 as $,a1 as ye,a2 as be,F as he,a3 as U,a4 as we,a5 as _e,a6 as Se,_ as A,a7 as ke,a8 as ve}from"./index-DZGZRdnt.js";import{r as n,j as e}from"./vendor-react-SZ_qB27O.js";import"./vendor-xterm-BNq00GSj.js";import{u as Ee}from"./vendor-i18n-GF3RlKbq.js";import{S as Te}from"./shield-alert-BKmP809x.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-codemirror-jBKmHyH0.js";const Ce=32*1024,xe=100,ge="\x1B",Ne=" ",Re="",je="\x1B[A",De="\x1B[B",Pe="\x1B[C",Me="\x1B[D",L={ctrl:"Ctrl",escape:"Esc",tab:"Tab",ctrlC:"^C"};function ne(d){if(d.length!==1)return null;const i=d.toUpperCase().charCodeAt(0);return i>=64&&i<=95?String.fromCharCode(i&31):null}function Ae(){const[d,r]=n.useState(()=>U());return n.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const i=window.matchMedia(we),s=()=>r(U());return s(),typeof i.addEventListener=="function"?(i.addEventListener("change",s),()=>i.removeEventListener("change",s)):(i.addListener(s),()=>i.removeListener(s))},[]),d}function Le(d,r){if(typeof window>"u")return"";const s=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/api/cli-sessions/ws?sessionId=${encodeURIComponent(d)}&ticket=${encodeURIComponent(r)}`;return ve(s)}function Be(d){if(typeof window<"u"&&typeof window.atob=="function"){const r=window.atob(d),i=new Uint8Array(r.length);for(let s=0;s<r.length;s++)i[s]=r.charCodeAt(s);return new TextDecoder("utf-8").decode(i)}return Buffer.from(d,"base64").toString("utf8")}function Ve({sessionId:d,readOnly:r=!1,posture:i,mode:s="live",projectId:B,onConfirmAdvance:S,showConfirmAdvance:F=!1,onOpenAdapterSettings:Q}){const{t:a}=Ee("app"),k=n.useRef(null),x=n.useRef(null),g=n.useRef(null),_=n.useRef(null),[V,Y]=n.useState(!1),[ie,O]=n.useState(!1),[J,G]=n.useState(!1),v=Ae(),{keyboardOpen:N,keyboardOverlap:se}=fe({enabled:v}),oe=n.useRef(null),[b,H]=n.useState(""),[E,R]=n.useState(!1),f=n.useCallback(t=>{if(!t)return;const o=_.current;o?.readyState===WebSocket.OPEN&&o.send(JSON.stringify({type:"input",data:t}))},[]),T=n.useCallback(t=>{if(E){const o=ne(t);if(R(!1),o){f(o);return}}f(t)},[E,f]),c=n.useCallback(t=>{t.preventDefault()},[]),Z=n.useCallback(t=>{t?.preventDefault?.(),b&&f(b),f("\r"),H("")},[b,f]),ae=n.useCallback(t=>{if(E&&t.length>b.length){const o=t.slice(b.length,b.length+1),h=ne(o);if(R(!1),h){f(h);return}}H(t)},[E,b,f]);n.useEffect(()=>{F&&O(!1)},[F,d]);const q=n.useCallback(()=>{const t=x.current;if(!t)return;const o=K();t.options.fontFamily=te(o.fontFamily),k.current?.style.setProperty("--terminal-glyph-font-family",$(o.fontFamily)),t.options.fontSize=o.fontSize,t.options.cursorStyle=o.cursorStyle,t.options.cursorBlink=o.cursorBlink&&!r&&s==="live";try{g.current?.fit?.()}catch{}},[s,r]);n.useEffect(()=>{if(typeof window>"u")return;const t=o=>{o.key===_e&&q()};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[q]),n.useEffect(()=>{if(!d||typeof window>"u")return;let t=!1,o=null,h=null,D=0;const z=(u,y)=>{const P=_.current;P?.readyState===WebSocket.OPEN&&P.send(JSON.stringify({type:"resize",cols:u,rows:y}))},de=u=>{if(D+=u,D<Ce)return;const y=_.current;y?.readyState===WebSocket.OPEN&&y.send(JSON.stringify({type:"ack",bytes:D})),D=0};return(async()=>{let u;try{u=await Se(`/cli-sessions/${encodeURIComponent(d)}/attach-ticket`,{method:"POST",body:JSON.stringify(B?{projectId:B}:{})})}catch{return}if(t)return;const[{Terminal:y},{FitAddon:P},{Unicode11Addon:ue}]=await Promise.all([A(()=>import("./vendor-xterm-BNq00GSj.js").then(m=>m.x),__vite__mapDeps([0,1,2])),A(()=>import("./addon-fit-C1WQXRvu.js").then(m=>m.a),__vite__mapDeps([3,1])),A(()=>import("./addon-unicode11-BVmNDUBM.js").then(m=>m.a),__vite__mapDeps([4,1]))]);if(t||!k.current)return;const w=K(),I=te(w.fontFamily);k.current.style.setProperty("--terminal-glyph-font-family",$(w.fontFamily));const l=new y({convertEol:!1,cursorBlink:w.cursorBlink&&!r&&s==="live",cursorStyle:w.cursorStyle,disableStdin:r,scrollback:1e4,fontFamily:I,fontSize:w.fontSize}),C=new P;l.loadAddon(C);const me=new ue;if(l.loadAddon(me),l.unicode.activeVersion="11",l.open(k.current),x.current=l,g.current=C,w.renderer==="auto"&&!U())try{const{WebglAddon:m}=await A(async()=>{const{WebglAddon:p}=await import("./addon-webgl-uLc0RKcC.js").then(M=>M.a);return{WebglAddon:p}},__vite__mapDeps([5,1]));if(!t){const p=new m;p.onContextLoss(()=>{try{p.dispose()}catch{}}),l.loadAddon(p)}}catch{}try{C.fit()}catch{}(async()=>{if(!(!await ke(w.fontSize,I)||t||x.current!==l||g.current!==C))try{l.options.fontFamily=I,l.options.fontSize=w.fontSize,C.fit(),z(l.cols,l.rows),l.refresh(0,Math.max(0,l.rows-1))}catch{}})(),r||l.onData(m=>{const p=_.current;p?.readyState===WebSocket.OPEN&&p.send(JSON.stringify({type:"input",data:m}))}),o=new ResizeObserver(()=>{h&&clearTimeout(h),h=setTimeout(()=>{try{C.fit(),z(l.cols,l.rows)}catch{}},xe)}),o.observe(k.current);const W=new WebSocket(Le(d,u.ticket));_.current=W,W.onopen=()=>{z(l.cols,l.rows)},W.onmessage=m=>{let p;try{p=JSON.parse(typeof m.data=="string"?m.data:"")}catch{return}switch(p.type){case"scrollback":case"data":{if(typeof p.data!="string")return;const M=Be(p.data),pe=M.length;l.write(M,()=>de(pe));break}}}})(),()=>{t=!0,h&&clearTimeout(h),o&&o.disconnect();const u=_.current;if(u){u.onopen=null,u.onmessage=null,u.onclose=null,u.onerror=null;try{u.close()}catch{}_.current=null}const y=x.current;if(y){try{y.dispose()}catch{}x.current=null}g.current=null}},[d,r,s,B]);const X=n.useMemo(()=>s==="idle"?a("cliTerminal.replayIdle","Session idle"):s==="ended"?a("cliTerminal.replayEnded","Session ended"):null,[s,a]),le=n.useCallback(async()=>{if(S){G(!0);try{await S("advance"),O(!0)}finally{G(!1)}}},[S]),re=n.useCallback(async()=>{S&&await S("not-yet"),O(!0)},[S]),j=!!i?.elevated,ee=i?.elevatedFlags?.join(", "),ce={"--terminal-glyph-font-family":$(K().fontFamily)};return e.jsxs("div",{className:`cli-session-terminal${v?" cli-session-terminal--mobile":""}${v&&N?" cli-session-terminal--keyboard-open":""}`,"data-mode":s,"data-read-only":r,"data-mobile":v,"data-keyboard-open":v&&N,children:[e.jsxs("header",{className:"cli-session-terminal__header",children:[i&&e.jsxs("div",{className:"cli-session-terminal__posture-wrap",children:[e.jsxs("button",{type:"button",className:`cli-posture-chip${j?" cli-posture-chip--elevated":""}`,"data-elevated":j,"aria-expanded":V,onClick:()=>Y(t=>!t),children:[j?e.jsx(Te,{size:13,"aria-hidden":"true"}):e.jsx(ye,{size:13,"aria-hidden":"true"}),e.jsx("span",{className:"cli-posture-chip__name",children:i.adapterName}),i.mode&&e.jsx("span",{className:"cli-posture-chip__mode",children:i.mode}),j&&ee&&e.jsx("span",{className:"cli-posture-chip__flag",children:ee})]}),V&&e.jsxs("div",{className:"cli-posture-tooltip",role:"tooltip",children:[e.jsx("p",{className:"cli-posture-tooltip__title",children:a("cliTerminal.postureResolved","Resolved posture")}),e.jsxs("ul",{className:"cli-posture-tooltip__list",children:[(i.resolved??[]).map((t,o)=>e.jsx("li",{children:t},o)),(i.resolved??[]).length===0&&e.jsx("li",{children:i.mode??a("cliTerminal.postureBaseline","Baseline")})]}),Q&&e.jsxs("button",{type:"button",className:"cli-posture-tooltip__settings",onClick:()=>{Y(!1),Q()},children:[e.jsx(be,{size:12,"aria-hidden":"true"}),a("cliTerminal.adapterSettings","Adapter settings")]})]})]}),r&&e.jsxs("span",{className:"cli-session-terminal__readonly-badge",children:[e.jsx(he,{size:12,"aria-hidden":"true"}),a("cliTerminal.readOnly","Read-only")]}),X&&e.jsx("span",{className:"cli-session-terminal__replay-badge","data-replay-mode":s,children:X})]}),e.jsx("div",{className:"cli-session-terminal__viewport",ref:k,"data-testid":"cli-terminal-viewport",style:ce}),F&&!ie&&e.jsxs("div",{className:"cli-session-terminal__advance-strip",role:"region",children:[e.jsx("span",{className:"cli-session-terminal__advance-copy",children:a("cliTerminal.advancePrompt","This session looks idle — advance to review?")}),e.jsxs("div",{className:"cli-session-terminal__advance-actions",children:[e.jsx("button",{type:"button",className:"cli-session-terminal__advance-btn",disabled:J,onClick:le,children:a("cliTerminal.advance","Advance")}),e.jsx("button",{type:"button",className:"cli-session-terminal__advance-btn cli-session-terminal__advance-btn--secondary",disabled:J,onClick:re,children:a("cliTerminal.notYet","Not yet")})]})]}),v&&!r&&e.jsxs("div",{className:`cli-session-terminal__mobile-bar${N?" cli-session-terminal__mobile-bar--keyboard-open":""}`,"data-testid":"cli-terminal-mobile-bar",style:N?{bottom:`${se}px`}:void 0,children:[e.jsxs("div",{className:"cli-session-terminal__key-row","data-testid":"cli-terminal-key-bar",children:[e.jsx("button",{type:"button",className:`cli-terminal-key cli-terminal-key--ctrl${E?" cli-terminal-key--active":""}`,"data-testid":"cli-key-ctrl","aria-label":a("cliTerminal.mobileKeyCtrl","Sticky Ctrl modifier"),"aria-pressed":E,onPointerDown:c,onMouseDown:c,onClick:()=>R(t=>!t),children:L.ctrl}),e.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-esc","aria-label":a("cliTerminal.mobileKeyEsc","Send Escape"),onPointerDown:c,onMouseDown:c,onClick:()=>T(ge),children:L.escape}),e.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-tab","aria-label":a("cliTerminal.mobileKeyTab","Send Tab"),onPointerDown:c,onMouseDown:c,onClick:()=>T(Ne),children:L.tab}),e.jsx("button",{type:"button",className:"cli-terminal-key cli-terminal-key--ctrlc","data-testid":"cli-key-ctrl-c","aria-label":a("cliTerminal.mobileKeyCtrlC","Send Ctrl-C"),onPointerDown:c,onMouseDown:c,onClick:()=>{R(!1),f(Re)},children:L.ctrlC}),e.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-up","aria-label":a("cliTerminal.mobileKeyArrowUp","Cursor up"),onPointerDown:c,onMouseDown:c,onClick:()=>T(je),children:"↑"}),e.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-down","aria-label":a("cliTerminal.mobileKeyArrowDown","Cursor down"),onPointerDown:c,onMouseDown:c,onClick:()=>T(De),children:"↓"}),e.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-left","aria-label":a("cliTerminal.mobileKeyArrowLeft","Cursor left"),onPointerDown:c,onMouseDown:c,onClick:()=>T(Me),children:"←"}),e.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-right","aria-label":a("cliTerminal.mobileKeyArrowRight","Cursor right"),onPointerDown:c,onMouseDown:c,onClick:()=>T(Pe),children:"→"})]}),e.jsxs("form",{className:"cli-session-terminal__input-row",onSubmit:Z,children:[e.jsx("input",{ref:oe,type:"text",className:"cli-session-terminal__mobile-input","data-testid":"cli-terminal-mobile-input",value:b,placeholder:a("cliTerminal.mobileInputPlaceholder","Type to send to the session…"),autoCapitalize:"off",autoCorrect:"off",autoComplete:"off",spellCheck:!1,onChange:t=>ae(t.target.value)}),e.jsx("button",{type:"submit",className:"cli-session-terminal__mobile-send","data-testid":"cli-terminal-mobile-send","aria-label":a("cliTerminal.mobileSend","Send"),onPointerDown:c,onMouseDown:c,onClick:()=>Z(),children:a("cliTerminal.mobileSend","Send")})]})]})]})}export{Ve as SessionTerminal};
2
+ import{W as fe,Y as K,$ as te,a0 as $,a1 as ye,a2 as be,F as he,a3 as U,a4 as we,a5 as _e,a6 as Se,_ as A,a7 as ke,a8 as ve}from"./index-DFeBJ3GM.js";import{r as n,j as e}from"./vendor-react-SZ_qB27O.js";import"./vendor-xterm-BNq00GSj.js";import{u as Ee}from"./vendor-i18n-GF3RlKbq.js";import{S as Te}from"./shield-alert-BfOnDO6O.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-codemirror-jBKmHyH0.js";const Ce=32*1024,xe=100,ge="\x1B",Ne=" ",Re="",je="\x1B[A",De="\x1B[B",Pe="\x1B[C",Me="\x1B[D",L={ctrl:"Ctrl",escape:"Esc",tab:"Tab",ctrlC:"^C"};function ne(d){if(d.length!==1)return null;const i=d.toUpperCase().charCodeAt(0);return i>=64&&i<=95?String.fromCharCode(i&31):null}function Ae(){const[d,r]=n.useState(()=>U());return n.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const i=window.matchMedia(we),s=()=>r(U());return s(),typeof i.addEventListener=="function"?(i.addEventListener("change",s),()=>i.removeEventListener("change",s)):(i.addListener(s),()=>i.removeListener(s))},[]),d}function Le(d,r){if(typeof window>"u")return"";const s=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/api/cli-sessions/ws?sessionId=${encodeURIComponent(d)}&ticket=${encodeURIComponent(r)}`;return ve(s)}function Be(d){if(typeof window<"u"&&typeof window.atob=="function"){const r=window.atob(d),i=new Uint8Array(r.length);for(let s=0;s<r.length;s++)i[s]=r.charCodeAt(s);return new TextDecoder("utf-8").decode(i)}return Buffer.from(d,"base64").toString("utf8")}function Ve({sessionId:d,readOnly:r=!1,posture:i,mode:s="live",projectId:B,onConfirmAdvance:S,showConfirmAdvance:F=!1,onOpenAdapterSettings:Q}){const{t:a}=Ee("app"),k=n.useRef(null),x=n.useRef(null),g=n.useRef(null),_=n.useRef(null),[V,Y]=n.useState(!1),[ie,O]=n.useState(!1),[J,G]=n.useState(!1),v=Ae(),{keyboardOpen:N,keyboardOverlap:se}=fe({enabled:v}),oe=n.useRef(null),[b,H]=n.useState(""),[E,R]=n.useState(!1),f=n.useCallback(t=>{if(!t)return;const o=_.current;o?.readyState===WebSocket.OPEN&&o.send(JSON.stringify({type:"input",data:t}))},[]),T=n.useCallback(t=>{if(E){const o=ne(t);if(R(!1),o){f(o);return}}f(t)},[E,f]),c=n.useCallback(t=>{t.preventDefault()},[]),Z=n.useCallback(t=>{t?.preventDefault?.(),b&&f(b),f("\r"),H("")},[b,f]),ae=n.useCallback(t=>{if(E&&t.length>b.length){const o=t.slice(b.length,b.length+1),h=ne(o);if(R(!1),h){f(h);return}}H(t)},[E,b,f]);n.useEffect(()=>{F&&O(!1)},[F,d]);const q=n.useCallback(()=>{const t=x.current;if(!t)return;const o=K();t.options.fontFamily=te(o.fontFamily),k.current?.style.setProperty("--terminal-glyph-font-family",$(o.fontFamily)),t.options.fontSize=o.fontSize,t.options.cursorStyle=o.cursorStyle,t.options.cursorBlink=o.cursorBlink&&!r&&s==="live";try{g.current?.fit?.()}catch{}},[s,r]);n.useEffect(()=>{if(typeof window>"u")return;const t=o=>{o.key===_e&&q()};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[q]),n.useEffect(()=>{if(!d||typeof window>"u")return;let t=!1,o=null,h=null,D=0;const z=(u,y)=>{const P=_.current;P?.readyState===WebSocket.OPEN&&P.send(JSON.stringify({type:"resize",cols:u,rows:y}))},de=u=>{if(D+=u,D<Ce)return;const y=_.current;y?.readyState===WebSocket.OPEN&&y.send(JSON.stringify({type:"ack",bytes:D})),D=0};return(async()=>{let u;try{u=await Se(`/cli-sessions/${encodeURIComponent(d)}/attach-ticket`,{method:"POST",body:JSON.stringify(B?{projectId:B}:{})})}catch{return}if(t)return;const[{Terminal:y},{FitAddon:P},{Unicode11Addon:ue}]=await Promise.all([A(()=>import("./vendor-xterm-BNq00GSj.js").then(m=>m.x),__vite__mapDeps([0,1,2])),A(()=>import("./addon-fit-C1WQXRvu.js").then(m=>m.a),__vite__mapDeps([3,1])),A(()=>import("./addon-unicode11-BVmNDUBM.js").then(m=>m.a),__vite__mapDeps([4,1]))]);if(t||!k.current)return;const w=K(),I=te(w.fontFamily);k.current.style.setProperty("--terminal-glyph-font-family",$(w.fontFamily));const l=new y({convertEol:!1,cursorBlink:w.cursorBlink&&!r&&s==="live",cursorStyle:w.cursorStyle,disableStdin:r,scrollback:1e4,fontFamily:I,fontSize:w.fontSize}),C=new P;l.loadAddon(C);const me=new ue;if(l.loadAddon(me),l.unicode.activeVersion="11",l.open(k.current),x.current=l,g.current=C,w.renderer==="auto"&&!U())try{const{WebglAddon:m}=await A(async()=>{const{WebglAddon:p}=await import("./addon-webgl-uLc0RKcC.js").then(M=>M.a);return{WebglAddon:p}},__vite__mapDeps([5,1]));if(!t){const p=new m;p.onContextLoss(()=>{try{p.dispose()}catch{}}),l.loadAddon(p)}}catch{}try{C.fit()}catch{}(async()=>{if(!(!await ke(w.fontSize,I)||t||x.current!==l||g.current!==C))try{l.options.fontFamily=I,l.options.fontSize=w.fontSize,C.fit(),z(l.cols,l.rows),l.refresh(0,Math.max(0,l.rows-1))}catch{}})(),r||l.onData(m=>{const p=_.current;p?.readyState===WebSocket.OPEN&&p.send(JSON.stringify({type:"input",data:m}))}),o=new ResizeObserver(()=>{h&&clearTimeout(h),h=setTimeout(()=>{try{C.fit(),z(l.cols,l.rows)}catch{}},xe)}),o.observe(k.current);const W=new WebSocket(Le(d,u.ticket));_.current=W,W.onopen=()=>{z(l.cols,l.rows)},W.onmessage=m=>{let p;try{p=JSON.parse(typeof m.data=="string"?m.data:"")}catch{return}switch(p.type){case"scrollback":case"data":{if(typeof p.data!="string")return;const M=Be(p.data),pe=M.length;l.write(M,()=>de(pe));break}}}})(),()=>{t=!0,h&&clearTimeout(h),o&&o.disconnect();const u=_.current;if(u){u.onopen=null,u.onmessage=null,u.onclose=null,u.onerror=null;try{u.close()}catch{}_.current=null}const y=x.current;if(y){try{y.dispose()}catch{}x.current=null}g.current=null}},[d,r,s,B]);const X=n.useMemo(()=>s==="idle"?a("cliTerminal.replayIdle","Session idle"):s==="ended"?a("cliTerminal.replayEnded","Session ended"):null,[s,a]),le=n.useCallback(async()=>{if(S){G(!0);try{await S("advance"),O(!0)}finally{G(!1)}}},[S]),re=n.useCallback(async()=>{S&&await S("not-yet"),O(!0)},[S]),j=!!i?.elevated,ee=i?.elevatedFlags?.join(", "),ce={"--terminal-glyph-font-family":$(K().fontFamily)};return e.jsxs("div",{className:`cli-session-terminal${v?" cli-session-terminal--mobile":""}${v&&N?" cli-session-terminal--keyboard-open":""}`,"data-mode":s,"data-read-only":r,"data-mobile":v,"data-keyboard-open":v&&N,children:[e.jsxs("header",{className:"cli-session-terminal__header",children:[i&&e.jsxs("div",{className:"cli-session-terminal__posture-wrap",children:[e.jsxs("button",{type:"button",className:`cli-posture-chip${j?" cli-posture-chip--elevated":""}`,"data-elevated":j,"aria-expanded":V,onClick:()=>Y(t=>!t),children:[j?e.jsx(Te,{size:13,"aria-hidden":"true"}):e.jsx(ye,{size:13,"aria-hidden":"true"}),e.jsx("span",{className:"cli-posture-chip__name",children:i.adapterName}),i.mode&&e.jsx("span",{className:"cli-posture-chip__mode",children:i.mode}),j&&ee&&e.jsx("span",{className:"cli-posture-chip__flag",children:ee})]}),V&&e.jsxs("div",{className:"cli-posture-tooltip",role:"tooltip",children:[e.jsx("p",{className:"cli-posture-tooltip__title",children:a("cliTerminal.postureResolved","Resolved posture")}),e.jsxs("ul",{className:"cli-posture-tooltip__list",children:[(i.resolved??[]).map((t,o)=>e.jsx("li",{children:t},o)),(i.resolved??[]).length===0&&e.jsx("li",{children:i.mode??a("cliTerminal.postureBaseline","Baseline")})]}),Q&&e.jsxs("button",{type:"button",className:"cli-posture-tooltip__settings",onClick:()=>{Y(!1),Q()},children:[e.jsx(be,{size:12,"aria-hidden":"true"}),a("cliTerminal.adapterSettings","Adapter settings")]})]})]}),r&&e.jsxs("span",{className:"cli-session-terminal__readonly-badge",children:[e.jsx(he,{size:12,"aria-hidden":"true"}),a("cliTerminal.readOnly","Read-only")]}),X&&e.jsx("span",{className:"cli-session-terminal__replay-badge","data-replay-mode":s,children:X})]}),e.jsx("div",{className:"cli-session-terminal__viewport",ref:k,"data-testid":"cli-terminal-viewport",style:ce}),F&&!ie&&e.jsxs("div",{className:"cli-session-terminal__advance-strip",role:"region",children:[e.jsx("span",{className:"cli-session-terminal__advance-copy",children:a("cliTerminal.advancePrompt","This session looks idle — advance to review?")}),e.jsxs("div",{className:"cli-session-terminal__advance-actions",children:[e.jsx("button",{type:"button",className:"cli-session-terminal__advance-btn",disabled:J,onClick:le,children:a("cliTerminal.advance","Advance")}),e.jsx("button",{type:"button",className:"cli-session-terminal__advance-btn cli-session-terminal__advance-btn--secondary",disabled:J,onClick:re,children:a("cliTerminal.notYet","Not yet")})]})]}),v&&!r&&e.jsxs("div",{className:`cli-session-terminal__mobile-bar${N?" cli-session-terminal__mobile-bar--keyboard-open":""}`,"data-testid":"cli-terminal-mobile-bar",style:N?{bottom:`${se}px`}:void 0,children:[e.jsxs("div",{className:"cli-session-terminal__key-row","data-testid":"cli-terminal-key-bar",children:[e.jsx("button",{type:"button",className:`cli-terminal-key cli-terminal-key--ctrl${E?" cli-terminal-key--active":""}`,"data-testid":"cli-key-ctrl","aria-label":a("cliTerminal.mobileKeyCtrl","Sticky Ctrl modifier"),"aria-pressed":E,onPointerDown:c,onMouseDown:c,onClick:()=>R(t=>!t),children:L.ctrl}),e.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-esc","aria-label":a("cliTerminal.mobileKeyEsc","Send Escape"),onPointerDown:c,onMouseDown:c,onClick:()=>T(ge),children:L.escape}),e.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-tab","aria-label":a("cliTerminal.mobileKeyTab","Send Tab"),onPointerDown:c,onMouseDown:c,onClick:()=>T(Ne),children:L.tab}),e.jsx("button",{type:"button",className:"cli-terminal-key cli-terminal-key--ctrlc","data-testid":"cli-key-ctrl-c","aria-label":a("cliTerminal.mobileKeyCtrlC","Send Ctrl-C"),onPointerDown:c,onMouseDown:c,onClick:()=>{R(!1),f(Re)},children:L.ctrlC}),e.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-up","aria-label":a("cliTerminal.mobileKeyArrowUp","Cursor up"),onPointerDown:c,onMouseDown:c,onClick:()=>T(je),children:"↑"}),e.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-down","aria-label":a("cliTerminal.mobileKeyArrowDown","Cursor down"),onPointerDown:c,onMouseDown:c,onClick:()=>T(De),children:"↓"}),e.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-left","aria-label":a("cliTerminal.mobileKeyArrowLeft","Cursor left"),onPointerDown:c,onMouseDown:c,onClick:()=>T(Me),children:"←"}),e.jsx("button",{type:"button",className:"cli-terminal-key","data-testid":"cli-key-arrow-right","aria-label":a("cliTerminal.mobileKeyArrowRight","Cursor right"),onPointerDown:c,onMouseDown:c,onClick:()=>T(Pe),children:"→"})]}),e.jsxs("form",{className:"cli-session-terminal__input-row",onSubmit:Z,children:[e.jsx("input",{ref:oe,type:"text",className:"cli-session-terminal__mobile-input","data-testid":"cli-terminal-mobile-input",value:b,placeholder:a("cliTerminal.mobileInputPlaceholder","Type to send to the session…"),autoCapitalize:"off",autoCorrect:"off",autoComplete:"off",spellCheck:!1,onChange:t=>ae(t.target.value)}),e.jsx("button",{type:"submit",className:"cli-session-terminal__mobile-send","data-testid":"cli-terminal-mobile-send","aria-label":a("cliTerminal.mobileSend","Send"),onPointerDown:c,onMouseDown:c,onClick:()=>Z(),children:a("cliTerminal.mobileSend","Send")})]})]})]})}export{Ve as SessionTerminal};