@runfusion/fusion 0.51.0 → 0.53.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 (304) hide show
  1. package/dist/bin.js +9816 -4572
  2. package/dist/client/.vite/manifest.json +326 -326
  3. package/dist/client/assets/AgentDetailView-CHSaiBNh.js +18 -0
  4. package/dist/client/assets/AgentPermissionPolicyEditor-Bfy55DIO.js +6 -0
  5. package/dist/client/assets/AgentPermissionPolicyEditor-TpdlOWZW.css +1 -0
  6. package/dist/client/assets/{AgentsView-CTjNaKu-.js → AgentsView-CMB_7xly.js} +6 -11
  7. package/dist/client/assets/ChatView-D_2wBIIx.css +1 -0
  8. package/dist/client/assets/ChatView-IwWaNSeS.js +6 -0
  9. package/dist/client/assets/CommandCenter-B84TXfg6.js +71 -0
  10. package/dist/client/assets/{DevServerView-BE_o7v9j.js → DevServerView-B9QEJETp.js} +1 -1
  11. package/dist/client/assets/{DirectoryPicker-BpcPo65A.js → DirectoryPicker-BnaH1pb_.js} +1 -1
  12. package/dist/client/assets/DocumentsView-Cvm4OBRl.js +1 -0
  13. package/dist/client/assets/EvalsView-BpgA1nvW.js +1 -0
  14. package/dist/client/assets/ExperimentalAgentOnboardingModal-D4Z1IAW2.js +1 -0
  15. package/dist/client/assets/GoalsView-ui2CM549.js +2 -0
  16. package/dist/client/assets/InsightsView-qdJ5GhE_.js +11 -0
  17. package/dist/client/assets/MemoryView-Csc-90G0.js +2 -0
  18. package/dist/client/assets/PiExtensionsManager-Dbm3IpQW.js +11 -0
  19. package/dist/client/assets/PluginManager-B_zgRoI8.js +1 -0
  20. package/dist/client/assets/{PullRequestView-B7k8ogy4.js → PullRequestView-CB6L4vJw.js} +1 -1
  21. package/dist/client/assets/ResearchView-CRtoNtCn.js +1 -0
  22. package/dist/client/assets/SecretsView-JB0lfuzZ.js +1 -0
  23. package/dist/client/assets/SessionTerminal-CnxWsHxS.js +2 -0
  24. package/dist/client/assets/{SettingsModal-DAH7LuLw.js → SettingsModal-CS1-kUSO.js} +1 -1
  25. package/dist/client/assets/SettingsModal-CaE4JYxi.css +1 -0
  26. package/dist/client/assets/SettingsModal-D7ArHi7z.js +21 -0
  27. package/dist/client/assets/{SetupWizardModal-Bm6bG31V.js → SetupWizardModal-PYaS5VB9.js} +2 -2
  28. package/dist/client/assets/ShadcnColorPicker-3OgfenMo.css +1 -0
  29. package/dist/client/assets/ShadcnColorPicker-Tl1Xu-G4.js +11 -0
  30. package/dist/client/assets/{SkillsView-D_UEJY_f.js → SkillsView-CWVVQ3y_.js} +1 -1
  31. package/dist/client/assets/TodoView-CCloQhKG.js +6 -0
  32. package/dist/client/assets/WorkflowNodeEditor-Df-_206_.css +1 -0
  33. package/dist/client/assets/WorkflowNodeEditor-Dz8TU3is.js +8 -0
  34. package/dist/client/assets/{agentSkills-BiipFw1z.js → agentSkills-CFiw3LtX.js} +1 -1
  35. package/dist/client/assets/app-5S4z84u5.js +13 -0
  36. package/dist/client/assets/app-B1VYocx2.js +13 -0
  37. package/dist/client/assets/app-BhtYYxin.js +13 -0
  38. package/dist/client/assets/app-Cts0__Vx.js +13 -0
  39. package/dist/client/assets/app-DczBmsP4.js +13 -0
  40. package/dist/client/assets/app-_GFUqcMK.js +13 -0
  41. package/dist/client/assets/{architectureDiagram-3BPJPVTR-glwWkaDt.js → architectureDiagram-3BPJPVTR-DGp4hfr1.js} +1 -1
  42. package/dist/client/assets/blockDiagram-GPEHLZMM-CRyxRdCJ.js +132 -0
  43. package/dist/client/assets/{c4Diagram-AAUBKEIU-CQXf6PzI.js → c4Diagram-AAUBKEIU-CFjMzS7o.js} +1 -1
  44. package/dist/client/assets/channel-C9LQN4ee.js +1 -0
  45. package/dist/client/assets/{chunk-2J33WTMH-kak65s83.js → chunk-2J33WTMH-BMvR_yYt.js} +1 -1
  46. package/dist/client/assets/{chunk-4BX2VUAB-B_yEpoxU.js → chunk-4BX2VUAB-BUPHOpQy.js} +1 -1
  47. package/dist/client/assets/chunk-55IACEB6-C1paNu5q.js +1 -0
  48. package/dist/client/assets/chunk-727SXJPM-CG4hnjZD.js +206 -0
  49. package/dist/client/assets/{chunk-AQP2D5EJ-DBHuj4BH.js → chunk-AQP2D5EJ-Dm2nZ5Sz.js} +1 -1
  50. package/dist/client/assets/{chunk-FMBD7UC4-BJ3ghjau.js → chunk-FMBD7UC4-CY6d36wo.js} +1 -1
  51. package/dist/client/assets/chunk-ND2GUHAM-cbKdnrGz.js +1 -0
  52. package/dist/client/assets/{chunk-QZHKN3VN-DmVw_cEu.js → chunk-QZHKN3VN-BPenWytO.js} +1 -1
  53. package/dist/client/assets/classDiagram-4FO5ZUOK-C5TeEr7c.js +1 -0
  54. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-C5TeEr7c.js +1 -0
  55. package/dist/client/assets/cose-bilkent-S5V4N54A-BCFGTolm.js +1 -0
  56. package/dist/client/assets/dagre-BM42HDAG-yVhB-t2h.js +4 -0
  57. package/dist/client/assets/dashboard-view-C9dPtr0u.js +1 -0
  58. package/dist/client/assets/{dashboard-view-r4NTTh_X.js → dashboard-view-DHb5D1Hc.js} +218 -218
  59. package/dist/client/assets/diagram-2AECGRRQ-DtV2x39G.js +43 -0
  60. package/dist/client/assets/diagram-5GNKFQAL-DwwRRghJ.js +10 -0
  61. package/dist/client/assets/{diagram-KO2AKTUF-D7zY4Nlm.js → diagram-KO2AKTUF-JLrDx8k8.js} +1 -1
  62. package/dist/client/assets/diagram-LMA3HP47-C_AszN6R.js +24 -0
  63. package/dist/client/assets/diagram-OG6HWLK6-C-n05SOC.js +24 -0
  64. package/dist/client/assets/{erDiagram-TEJ5UH35-DfHtnaNg.js → erDiagram-TEJ5UH35-B-9edACX.js} +1 -1
  65. package/dist/client/assets/{flowDiagram-I6XJVG4X-Brbb_Jlh.js → flowDiagram-I6XJVG4X-D5ThlzTR.js} +1 -1
  66. package/dist/client/assets/{folder-open-BLwukrE0.js → folder-open-DLACu19m.js} +1 -1
  67. package/dist/client/assets/ganttDiagram-6RSMTGT7-DaqvxM8Q.js +292 -0
  68. package/dist/client/assets/gitGraphDiagram-PVQCEYII-CfWhxq7Y.js +106 -0
  69. package/dist/client/assets/index-D1IHwGhg.css +1 -0
  70. package/dist/client/assets/index-JlBzf2ck.js +1336 -0
  71. package/dist/client/assets/infoDiagram-5YYISTIA-BjDZFy9D.js +2 -0
  72. package/dist/client/assets/ishikawaDiagram-YF4QCWOH-BoMTizU1.js +70 -0
  73. package/dist/client/assets/journeyDiagram-JHISSGLW-BozwtvCa.js +139 -0
  74. package/dist/client/assets/kanban-definition-UN3LZRKU-CvrpmIXn.js +89 -0
  75. package/dist/client/assets/linear-CwI45w2t.js +1 -0
  76. package/dist/client/assets/{mermaid.core-0hUjZF5S.js → mermaid.core-KeGuTimD.js} +4 -4
  77. package/dist/client/assets/mindmap-definition-RKZ34NQL-DMjY04EF.js +96 -0
  78. package/dist/client/assets/pieDiagram-4H26LBE5-r_9L-pQr.js +30 -0
  79. package/dist/client/assets/quadrantDiagram-W4KKPZXB-CcZKANsw.js +7 -0
  80. package/dist/client/assets/requirementDiagram-4Y6WPE33-kqu_zuS5.js +84 -0
  81. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Btl4NRo-.js → sankeyDiagram-5OEKKPKP-BLbamdKk.js} +1 -1
  82. package/dist/client/assets/sequenceDiagram-3UESZ5HK-DAKxqBlR.js +162 -0
  83. package/dist/client/assets/{shield-alert-yWvC7t2v.js → shield-alert-BdoEg9Yo.js} +1 -1
  84. package/dist/client/assets/stateDiagram-AJRCARHV-RJ2xY2-p.js +1 -0
  85. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-DYJRRNh-.js → stateDiagram-v2-BHNVJYJU-BzhgwjfG.js} +1 -1
  86. package/dist/client/assets/time-Ckmi30gH.js +1 -0
  87. package/dist/client/assets/{timeline-definition-PNZ67QCA-DZga7lqO.js → timeline-definition-PNZ67QCA-CT9ZQc6n.js} +1 -1
  88. package/dist/client/assets/{upload-BsYRkl_8.js → upload-B4v89B2G.js} +1 -1
  89. package/dist/client/assets/{users-dyoJEvrM.js → users-vuVXnTg0.js} +1 -1
  90. package/dist/client/assets/vendor-reactflow-CnI7NMXG.js +15 -0
  91. package/dist/client/assets/{vennDiagram-CIIHVFJN-C2P26V71.js → vennDiagram-CIIHVFJN-DCcEEtaE.js} +1 -1
  92. package/dist/client/assets/{wardley-L42UT6IY-ckctH9bL.js → wardley-L42UT6IY-_KOTjC_D.js} +1 -1
  93. package/dist/client/assets/wardleyDiagram-YWT4CUSO-D16g9VQZ.js +78 -0
  94. package/dist/client/assets/xychartDiagram-2RQKCTM6-CMIdike8.js +7 -0
  95. package/dist/client/index.html +8 -8
  96. package/dist/client/theme-data.css +296 -0
  97. package/dist/client/version.json +1 -1
  98. package/dist/desktop/client/.vite/manifest.json +1650 -0
  99. package/dist/{client/assets/AgentDetailView-CjwOlcMI.js → desktop/client/assets/AgentDetailView-CVv4BoTE.js} +5 -5
  100. package/dist/desktop/client/assets/AgentDetailView-CgbB51Iw.css +1 -0
  101. package/dist/{client/assets/AgentPermissionPolicyEditor-CD8znNHS.js → desktop/client/assets/AgentPermissionPolicyEditor-CQLNC_-O.js} +1 -1
  102. package/dist/desktop/client/assets/AgentsView-CzMa5Olf.css +1 -0
  103. package/dist/desktop/client/assets/AgentsView-DybRxzuI.js +29 -0
  104. package/dist/desktop/client/assets/ChatView-BtjkE0V7.css +1 -0
  105. package/dist/desktop/client/assets/ChatView-D_byETJX.js +19 -0
  106. package/dist/desktop/client/assets/CommandCenter-DDjpYkPe.css +1 -0
  107. package/dist/desktop/client/assets/CommandCenter-DEXoC2F7.js +71 -0
  108. package/dist/desktop/client/assets/DevServerView-CnEZI8Ax.js +1 -0
  109. package/dist/desktop/client/assets/DevServerView-iBondC7z.css +1 -0
  110. package/dist/desktop/client/assets/DirectoryPicker-0rspvcMz.css +1 -0
  111. package/dist/desktop/client/assets/DirectoryPicker-BUIZKLgl.js +1 -0
  112. package/dist/{client/assets/DocumentsView-Cpma23hu.js → desktop/client/assets/DocumentsView-BFq47DE7.js} +1 -1
  113. package/dist/{client/assets/EvalsView-DYSobhb7.js → desktop/client/assets/EvalsView-BEiGrFFa.js} +1 -1
  114. package/dist/desktop/client/assets/EvalsView-CTbgPUne.css +1 -0
  115. package/dist/desktop/client/assets/ExperimentalAgentOnboardingModal-3ZEFv8sr.css +1 -0
  116. package/dist/{client/assets/ExperimentalAgentOnboardingModal-D_iQqD-n.js → desktop/client/assets/ExperimentalAgentOnboardingModal-WzGxsxku.js} +1 -1
  117. package/dist/{client/assets/GoalsView-B6Wfxk59.js → desktop/client/assets/GoalsView-C6Qsc-VS.js} +1 -1
  118. package/dist/desktop/client/assets/GoalsView-CUh8JBnJ.css +1 -0
  119. package/dist/{client/assets/InsightsView-DZyMvYQ8.js → desktop/client/assets/InsightsView-C14VGuty.js} +1 -1
  120. package/dist/desktop/client/assets/InsightsView-C7yRTMPn.css +1 -0
  121. package/dist/{client/assets/MemoryView-B9Z6cRma.js → desktop/client/assets/MemoryView--XlaBNzQ.js} +1 -1
  122. package/dist/desktop/client/assets/MemoryView-CBDUr2Jy.css +1 -0
  123. package/dist/{client/assets/PiExtensionsManager-BQt3JU60.js → desktop/client/assets/PiExtensionsManager-BaQnu6IY.js} +1 -1
  124. package/dist/desktop/client/assets/PiExtensionsManager-kgTOHPE9.css +1 -0
  125. package/dist/desktop/client/assets/PluginManager-DSiHizRD.css +1 -0
  126. package/dist/{client/assets/PluginManager-DEsUstVo.js → desktop/client/assets/PluginManager-DqnMI_Zm.js} +1 -1
  127. package/dist/desktop/client/assets/PullRequestView-C8kBQljB.js +6 -0
  128. package/dist/desktop/client/assets/PullRequestView-CpdE3Yo_.css +1 -0
  129. package/dist/desktop/client/assets/ResearchView-DIVNQF4_.css +1 -0
  130. package/dist/{client/assets/ResearchView-BseF58_R.js → desktop/client/assets/ResearchView-OlGNDmqI.js} +1 -1
  131. package/dist/desktop/client/assets/SecretsView-CvFioX7R.css +1 -0
  132. package/dist/{client/assets/SecretsView-bkNS5VBC.js → desktop/client/assets/SecretsView-vHezddkt.js} +1 -1
  133. package/dist/desktop/client/assets/SessionTerminal-CPbzm5Oi.css +1 -0
  134. package/dist/{client/assets/SessionTerminal-BSllyqgF.js → desktop/client/assets/SessionTerminal-ClbvT_Fb.js} +2 -2
  135. package/dist/desktop/client/assets/SettingsModal-CL4GS1q-.js +21 -0
  136. package/dist/desktop/client/assets/SettingsModal-CvbiSIHS.css +1 -0
  137. package/dist/desktop/client/assets/SettingsModal-EWTm15Fk.js +1 -0
  138. package/dist/desktop/client/assets/SettingsModal-ino68pI2.css +1 -0
  139. package/dist/desktop/client/assets/SetupWizardModal-DsBTXY7k.js +2 -0
  140. package/dist/{client/assets/ShadcnColorPicker-CLiOvo7W.js → desktop/client/assets/ShadcnColorPicker-BciIe8Ls.js} +1 -1
  141. package/dist/{client/assets/ShadcnColorPicker-CzZo9UOD.css → desktop/client/assets/ShadcnColorPicker-pqVWCC5-.css} +1 -1
  142. package/dist/desktop/client/assets/SkillsView-CJ8snrma.css +1 -0
  143. package/dist/desktop/client/assets/SkillsView-UyhBA4_r.js +1 -0
  144. package/dist/desktop/client/assets/TodoView-CIsL_uvQ.css +1 -0
  145. package/dist/{client/assets/TodoView-CMCoPep1.js → desktop/client/assets/TodoView-CV7ma8AL.js} +1 -1
  146. package/dist/desktop/client/assets/WorkflowNodeEditor-BOouksjw.css +1 -0
  147. package/dist/desktop/client/assets/WorkflowNodeEditor-ThUL4msx.js +8 -0
  148. package/dist/desktop/client/assets/addon-fit-C1WQXRvu.js +1 -0
  149. package/dist/desktop/client/assets/addon-unicode11-BVmNDUBM.js +1 -0
  150. package/dist/desktop/client/assets/addon-web-links-CkVew5xs.js +1 -0
  151. package/dist/desktop/client/assets/addon-webgl-uLc0RKcC.js +58 -0
  152. package/dist/desktop/client/assets/agentSkills-BQzMaofj.js +1 -0
  153. package/dist/desktop/client/assets/agentSkills-bQJ4X1gH.css +1 -0
  154. package/dist/desktop/client/assets/agentsOrgChartLayout-BMvyuaLA.js +1 -0
  155. package/dist/desktop/client/assets/app-BJGkp7Tt.js +13 -0
  156. package/dist/desktop/client/assets/app-BKLUvvm8.js +13 -0
  157. package/dist/desktop/client/assets/app-BaoNC9zg.js +13 -0
  158. package/dist/desktop/client/assets/app-CZQ_fFNf.js +13 -0
  159. package/dist/desktop/client/assets/app-DAu3AzsS.js +13 -0
  160. package/dist/desktop/client/assets/app-DgezOJub.js +13 -0
  161. package/dist/desktop/client/assets/arc-cxkkNsnK.js +1 -0
  162. package/dist/desktop/client/assets/architectureDiagram-3BPJPVTR-MtAzQYUn.js +36 -0
  163. package/dist/desktop/client/assets/band-CquvqAHh.js +1 -0
  164. package/dist/{client/assets/blockDiagram-GPEHLZMM-C8DhxwG4.js → desktop/client/assets/blockDiagram-GPEHLZMM-zelYfqn3.js} +1 -1
  165. package/dist/desktop/client/assets/c4Diagram-AAUBKEIU-D3hNx0Hv.js +10 -0
  166. package/dist/desktop/client/assets/channel-Dj1-27Yg.js +1 -0
  167. package/dist/desktop/client/assets/chunk-2J33WTMH-B9IKEZ0p.js +1 -0
  168. package/dist/desktop/client/assets/chunk-4BX2VUAB-Dd7FeAwm.js +1 -0
  169. package/dist/{client/assets/chunk-55IACEB6-C9lQVeH5.js → desktop/client/assets/chunk-55IACEB6-DbzB46sJ.js} +1 -1
  170. package/dist/{client/assets/chunk-727SXJPM-D4SVzqNs.js → desktop/client/assets/chunk-727SXJPM-CDmlBZKV.js} +1 -1
  171. package/dist/desktop/client/assets/chunk-AQP2D5EJ-whMl1uk-.js +231 -0
  172. package/dist/desktop/client/assets/chunk-FMBD7UC4-E1WzORFR.js +15 -0
  173. package/dist/{client/assets/chunk-ND2GUHAM-CE4tkh6e.js → desktop/client/assets/chunk-ND2GUHAM-e0FuVXk6.js} +1 -1
  174. package/dist/desktop/client/assets/chunk-QZHKN3VN-B6q2GrbB.js +1 -0
  175. package/dist/desktop/client/assets/classDiagram-4FO5ZUOK-36LCOV5F.js +1 -0
  176. package/dist/desktop/client/assets/classDiagram-v2-Q7XG4LA2-36LCOV5F.js +1 -0
  177. package/dist/desktop/client/assets/common-BDp2y6CF.js +1 -0
  178. package/dist/desktop/client/assets/common-BnEo5fLN.js +1 -0
  179. package/dist/desktop/client/assets/common-Bzr_Y8h4.js +1 -0
  180. package/dist/desktop/client/assets/common-CvwyFzfv.js +1 -0
  181. package/dist/desktop/client/assets/common-CztCXRkz.js +1 -0
  182. package/dist/desktop/client/assets/common-DPe2mbb7.js +1 -0
  183. package/dist/{client/assets/cose-bilkent-S5V4N54A-DI_-BOYE.js → desktop/client/assets/cose-bilkent-S5V4N54A-BjSZ5UKD.js} +1 -1
  184. package/dist/desktop/client/assets/cytoscape.esm-OyMbaexL.js +331 -0
  185. package/dist/{client/assets/dagre-BM42HDAG-ywUbHZxt.js → desktop/client/assets/dagre-BM42HDAG-DxMH6moD.js} +1 -1
  186. package/dist/{client/assets/dashboard-view-DJvdban3.js → desktop/client/assets/dashboard-view-BW8tRppT.js} +1 -1
  187. package/dist/desktop/client/assets/dashboard-view-CuUPQZzi.css +1 -0
  188. package/dist/desktop/client/assets/dashboard-view-D_zsA-kz.css +1 -0
  189. package/dist/desktop/client/assets/dashboard-view-L_H47lEp.js +8161 -0
  190. package/dist/desktop/client/assets/defaultLocale-DX6XiGOO.js +1 -0
  191. package/dist/{client/assets/diagram-2AECGRRQ-CAGucHCe.js → desktop/client/assets/diagram-2AECGRRQ-DDUjym9F.js} +1 -1
  192. package/dist/{client/assets/diagram-5GNKFQAL-D_1uzVtW.js → desktop/client/assets/diagram-5GNKFQAL-nEqF7CSb.js} +1 -1
  193. package/dist/desktop/client/assets/diagram-KO2AKTUF-CFABtl0k.js +3 -0
  194. package/dist/{client/assets/diagram-LMA3HP47-C1T9eOzA.js → desktop/client/assets/diagram-LMA3HP47-ButXw1gy.js} +1 -1
  195. package/dist/{client/assets/diagram-OG6HWLK6-sWxhPvzU.js → desktop/client/assets/diagram-OG6HWLK6-CA17ZRZI.js} +1 -1
  196. package/dist/desktop/client/assets/erDiagram-TEJ5UH35-DmROZaa0.js +85 -0
  197. package/dist/desktop/client/assets/errors-07IrmOYM.js +1 -0
  198. package/dist/desktop/client/assets/errors-BPsCufin.js +1 -0
  199. package/dist/desktop/client/assets/errors-CcVDgqlA.js +1 -0
  200. package/dist/desktop/client/assets/errors-D-i_Bxc6.js +1 -0
  201. package/dist/desktop/client/assets/errors-DDdWAK-U.js +1 -0
  202. package/dist/desktop/client/assets/errors-DOF5Td3F.js +1 -0
  203. package/dist/desktop/client/assets/flowDiagram-I6XJVG4X-BCa7HuJ3.js +162 -0
  204. package/dist/desktop/client/assets/folder-open-G_6UGFyI.js +6 -0
  205. package/dist/{client/assets/ganttDiagram-6RSMTGT7-CLvZ7891.js → desktop/client/assets/ganttDiagram-6RSMTGT7-BeAYpPxh.js} +1 -1
  206. package/dist/{client/assets/gitGraphDiagram-PVQCEYII-DD56Jsa3.js → desktop/client/assets/gitGraphDiagram-PVQCEYII-BLwp2lCj.js} +1 -1
  207. package/dist/desktop/client/assets/graph--OzhPTMs.js +1 -0
  208. package/dist/desktop/client/assets/index-CSVe-MIA.css +1 -0
  209. package/dist/desktop/client/assets/index-DIURDjTF.js +1301 -0
  210. package/dist/{client/assets/infoDiagram-5YYISTIA-uXai801q.js → desktop/client/assets/infoDiagram-5YYISTIA-DF-q3NMx.js} +1 -1
  211. package/dist/desktop/client/assets/init-Dmth1JHB.js +1 -0
  212. package/dist/{client/assets/ishikawaDiagram-YF4QCWOH-C_bWlUP_.js → desktop/client/assets/ishikawaDiagram-YF4QCWOH-CKYDbUiH.js} +1 -1
  213. package/dist/{client/assets/journeyDiagram-JHISSGLW-B2kB9niE.js → desktop/client/assets/journeyDiagram-JHISSGLW-BgkdCr6Q.js} +1 -1
  214. package/dist/{client/assets/kanban-definition-UN3LZRKU-BJwlpR9z.js → desktop/client/assets/kanban-definition-UN3LZRKU-B9V97j0D.js} +1 -1
  215. package/dist/desktop/client/assets/katex-HP8lGamR.js +257 -0
  216. package/dist/desktop/client/assets/layout-SsrduOYp.js +1 -0
  217. package/dist/desktop/client/assets/mermaid.core-BBN7poU5.js +309 -0
  218. package/dist/{client/assets/mindmap-definition-RKZ34NQL-DsTgTpX-.js → desktop/client/assets/mindmap-definition-RKZ34NQL-C2_Jhjnr.js} +1 -1
  219. package/dist/desktop/client/assets/ordinal-DILIJJjt.js +1 -0
  220. package/dist/{client/assets/pieDiagram-4H26LBE5-BUQsNWHN.js → desktop/client/assets/pieDiagram-4H26LBE5-DOrO8u2b.js} +1 -1
  221. package/dist/desktop/client/assets/projectDetection-G3XuxD2X.js +1 -0
  222. package/dist/{client/assets/quadrantDiagram-W4KKPZXB-DOYWgfAz.js → desktop/client/assets/quadrantDiagram-W4KKPZXB-D4xxkMPR.js} +1 -1
  223. package/dist/{client/assets/requirementDiagram-4Y6WPE33-DUnPKaMd.js → desktop/client/assets/requirementDiagram-4Y6WPE33-BuyUaAlW.js} +1 -1
  224. package/dist/desktop/client/assets/sankeyDiagram-5OEKKPKP-DLGaZ5Gy.js +40 -0
  225. package/dist/{client/assets/sequenceDiagram-3UESZ5HK-b0hyJ_Wr.js → desktop/client/assets/sequenceDiagram-3UESZ5HK-B3xhIZnf.js} +1 -1
  226. package/dist/desktop/client/assets/shield-alert-D-Fxd0Va.js +6 -0
  227. package/dist/{client/assets/stateDiagram-AJRCARHV-orREjkd9.js → desktop/client/assets/stateDiagram-AJRCARHV-3C2cVTwx.js} +1 -1
  228. package/dist/desktop/client/assets/stateDiagram-v2-BHNVJYJU-uyCHbCJn.js +1 -0
  229. package/dist/desktop/client/assets/step-yuy0qJer.js +1 -0
  230. package/dist/desktop/client/assets/timeline-definition-PNZ67QCA-DHzoutyf.js +120 -0
  231. package/dist/desktop/client/assets/upload-Cv9kGgTr.js +6 -0
  232. package/dist/desktop/client/assets/users-DuxdQK9U.js +6 -0
  233. package/dist/desktop/client/assets/vendor-codemirror-jBKmHyH0.js +27 -0
  234. package/dist/desktop/client/assets/vendor-i18n-GF3RlKbq.js +9 -0
  235. package/dist/desktop/client/assets/vendor-react-SZ_qB27O.js +49 -0
  236. package/dist/desktop/client/assets/vendor-reactflow-C5ap-Sga.css +1 -0
  237. package/dist/desktop/client/assets/vendor-xterm-BNq00GSj.js +9 -0
  238. package/dist/desktop/client/assets/vendor-xterm-LZoznX6r.css +32 -0
  239. package/dist/desktop/client/assets/vennDiagram-CIIHVFJN-CKB5IBNU.js +34 -0
  240. package/dist/desktop/client/assets/wardley-L42UT6IY-DUw_nnW7.js +173 -0
  241. package/dist/{client/assets/wardleyDiagram-YWT4CUSO-9It3QAYs.js → desktop/client/assets/wardleyDiagram-YWT4CUSO-CgWLugtp.js} +1 -1
  242. package/dist/{client/assets/xychartDiagram-2RQKCTM6-Dj3sSBqg.js → desktop/client/assets/xychartDiagram-2RQKCTM6-BWpeCtlX.js} +1 -1
  243. package/dist/desktop/client/assets/zoom-out-NWbVkreR.js +41 -0
  244. package/dist/desktop/client/brands/hermes-logo.svg +1 -0
  245. package/dist/desktop/client/fonts/SymbolsNerdFontMono-Regular.ttf +0 -0
  246. package/dist/desktop/client/icons/icon-192.png +0 -0
  247. package/dist/desktop/client/icons/icon-512.png +0 -0
  248. package/dist/desktop/client/index.html +244 -0
  249. package/dist/desktop/client/logo.svg +6 -0
  250. package/dist/desktop/client/manifest.json +23 -0
  251. package/dist/desktop/client/sw.js +175 -0
  252. package/dist/desktop/client/theme-data.css +6858 -0
  253. package/dist/desktop/client/version.json +1 -0
  254. package/dist/desktop/main.js +17159 -0
  255. package/dist/desktop/main.js.map +7 -0
  256. package/dist/desktop/preload.js +110 -0
  257. package/dist/desktop/preload.js.map +7 -0
  258. package/dist/droid-cli/package.json +1 -1
  259. package/dist/extension.js +7200 -3247
  260. package/dist/pi-claude-cli/index.ts +51 -6
  261. package/dist/pi-claude-cli/package.json +5 -3
  262. package/dist/pi-claude-cli/src/__tests__/process-manager.test.ts +1 -1
  263. package/dist/pi-claude-cli/src/__tests__/provider.test.ts +48 -9
  264. package/dist/plugin-sdk/index.d.ts +40 -2
  265. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  266. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  267. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +15 -3
  268. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  269. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  270. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  271. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  272. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  273. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  274. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  275. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  276. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  277. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  278. package/package.json +4 -3
  279. package/skill/fusion/SKILL.md +1 -0
  280. package/skill/fusion/references/engine-tools.md +3 -3
  281. package/skill/fusion/references/extension-tools.md +81 -4
  282. package/skill/fusion/references/fusion-capabilities.md +8 -0
  283. package/dist/client/assets/ChatView-DCWypaw3.js +0 -19
  284. package/dist/client/assets/ChatView-DwIIrJxb.css +0 -1
  285. package/dist/client/assets/CommandCenter-C4v0FMxx.js +0 -71
  286. package/dist/client/assets/SettingsModal-Dso0K76J.js +0 -21
  287. package/dist/client/assets/SettingsModal-tUDR6nJ9.css +0 -1
  288. package/dist/client/assets/WorkflowNodeEditor-BeQcn0Wa.js +0 -8
  289. package/dist/client/assets/WorkflowNodeEditor-WYIxHTxY.css +0 -1
  290. package/dist/client/assets/app-A1yCJR4Q.js +0 -13
  291. package/dist/client/assets/app-Bfiafek7.js +0 -13
  292. package/dist/client/assets/app-Bh-Xj32t.js +0 -13
  293. package/dist/client/assets/app-DxJHfzxz.js +0 -13
  294. package/dist/client/assets/app-T5iMjZpX.js +0 -13
  295. package/dist/client/assets/app-zR_n4GL2.js +0 -13
  296. package/dist/client/assets/channel-BY6zFSV1.js +0 -1
  297. package/dist/client/assets/classDiagram-4FO5ZUOK-CeX_WCiC.js +0 -1
  298. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CeX_WCiC.js +0 -1
  299. package/dist/client/assets/index-DAv17W73.js +0 -1317
  300. package/dist/client/assets/index-DhBnj8YN.css +0 -1
  301. /package/dist/{client → desktop/client}/assets/AgentPermissionPolicyEditor-CGxjOr6G.css +0 -0
  302. /package/dist/{client → desktop/client}/assets/linear-dXivciGL.js +0 -0
  303. /package/dist/{client → desktop/client}/assets/time-DoDTxsna.js +0 -0
  304. /package/dist/{client → desktop/client}/assets/vendor-reactflow-Bg-Qjzh8.js +0 -0
@@ -1 +1 @@
1
- import{r as c,j as e}from"./vendor-react-SZ_qB27O.js";import{V as ue,B as he,R as q,P as me,D as G,F as Y,G as ye,H as xe,I as ve,J as be,o as je,C as fe}from"./index-DAv17W73.js";import{u as Se}from"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";const ge="__sync_passphrase__",L={key:"",value:"",description:"",scope:"project",accessPolicy:"prompt",envExportable:!1,envExportKey:""},n={className:"secrets-action-icon","aria-hidden":!0,style:{width:"1em",height:"1em"}},Ne={...n,className:"secrets-action-icon spin"},Re=({addToast:d})=>{const{t:a}=Se("app"),[R,z]=c.useState([]),[T,M]=c.useState(!0),[A,D]=c.useState(null),[K,b]=c.useState(null),[p,O]=c.useState(null),[U,y]=c.useState(!1),[Q,g]=c.useState(null),[t,l]=c.useState(L),[N,C]=c.useState(!1),[V,j]=c.useState({}),[W,B]=c.useState(null),[u,X]=c.useState(!1),[Z,_]=c.useState(!1),[f,F]=c.useState(""),[P,H]=c.useState(""),[ee,I]=c.useState(!1),[E,se]=c.useState(!1),m=c.useRef(new Map),w=c.useRef(new Map),o=c.useCallback(async(s,r)=>{const i=await fetch(s,{...r,headers:{"Content-Type":"application/json",...r?.headers??{}}});if(!i.ok){const h=await i.json().catch(()=>({error:"Request failed"}));throw new Error(String(h?.error??"Request failed"))}if(i.status!==204)return i.json()},[]),x=c.useCallback(async()=>{M(!0),D(null);try{const s=await o("/api/secrets");z(s.secrets)}catch(s){D(s instanceof Error?s.message:String(s))}finally{M(!1)}},[o]),S=c.useCallback(async()=>{try{const s=await o("/api/secrets/sync-passphrase");X(!!s.configured)}catch(s){d?.(a("secrets.errorLoadSyncStatus","Failed to load sync passphrase status: {{error}}",{error:s instanceof Error?s.message:String(s)}),"error")}},[d,o]);c.useEffect(()=>(x(),S(),()=>{m.current.forEach(s=>clearTimeout(s)),w.current.forEach(s=>clearTimeout(s))}),[x,S]);const k=()=>{_(!1),F(""),H("")},ae=async s=>{await o("/api/secrets/sync-passphrase",{method:"PUT",body:JSON.stringify({passphrase:s})})},re=async()=>{I(!0);try{await ae(f),d?.(u?a("secrets.syncPassphraseRotated","Sync passphrase rotated"):a("secrets.syncPassphraseSet","Sync passphrase set"),"success"),k(),await S()}catch(s){d?.(a("secrets.errorSaveSyncPassphrase","Failed to save sync passphrase: {{error}}",{error:s instanceof Error?s.message:String(s)}),"error")}finally{I(!1)}},te=async()=>{if(window.confirm(a("secrets.confirmClearSyncPassphrase","Clear the cross-node sync passphrase? Existing sync pairs will stop working until you set a new passphrase.")))try{await o("/api/secrets/sync-passphrase",{method:"DELETE"}),d?.(a("secrets.syncPassphraseCleared","Sync passphrase cleared"),"success"),await S()}catch(r){d?.(a("secrets.errorClearSyncPassphrase","Failed to clear sync passphrase: {{error}}",{error:r instanceof Error?r.message:String(r)}),"error")}},ce=()=>{O(null),l(L),y(!0),C(!1),b(null)},le=s=>{O(s),l({key:s.key,value:"",description:s.description??"",scope:s.scope,accessPolicy:s.accessPolicy,envExportable:s.envExportable,envExportKey:s.envExportKey??""}),y(!0),C(!1),b(null)},ne=async()=>{b(null);try{if(p){const s={key:t.key,description:t.description||null,accessPolicy:t.accessPolicy,envExportable:t.envExportable,envExportKey:t.envExportable&&t.envExportKey||null};t.value&&(s.value=t.value),await o(`/api/secrets/${p.scope}/${p.id}`,{method:"PATCH",body:JSON.stringify(s)})}else await o("/api/secrets",{method:"POST",body:JSON.stringify({scope:t.scope,key:t.key,value:t.value,description:t.description||null,accessPolicy:t.accessPolicy,envExportable:t.envExportable,envExportKey:t.envExportable&&t.envExportKey||null})});y(!1),l(L),await x()}catch(s){b(s instanceof Error?s.message:String(s))}},oe=s=>{const r=m.current.get(s.id);r&&(clearTimeout(r),m.current.delete(s.id)),j(i=>({...i,[s.id]:null}))},ie=async s=>{const r=await o(`/api/secrets/${s.scope}/${s.id}/reveal`,{method:"POST"});j(v=>({...v,[s.id]:r.value})),d?.(a("secrets.revealed","Revealed"),"success");const i=setTimeout(()=>{j(v=>({...v,[s.id]:null})),m.current.delete(s.id)},3e4),h=m.current.get(s.id);h&&clearTimeout(h),m.current.set(s.id,i)},de=async s=>{const r=V[s.id];if(!r)return;await navigator.clipboard.writeText(r),B(s.id),d?.(a("secrets.copied","Copied"),"success");const i=setTimeout(()=>{B(null),j(v=>({...v,[s.id]:null}))},1500),h=w.current.get(s.id);h&&clearTimeout(h),w.current.set(s.id,i)},pe=async s=>{await o(`/api/secrets/${s.scope}/${s.id}`,{method:"DELETE"}),g(null),await x()},$=c.useMemo(()=>[...R].filter(s=>!(s.scope==="global"&&s.key===ge)).sort((s,r)=>s.key.localeCompare(r.key)),[R]),J=f.length>0&&f===P;return e.jsxs("section",{className:"secrets-view",children:[e.jsx(ue,{icon:he,title:a("secrets.title","Secrets"),actions:e.jsxs(e.Fragment,{children:[e.jsxs("button",{className:"btn btn-sm",onClick:()=>void x(),children:[e.jsx(q,{...n})," ",a("secrets.refresh","Refresh")]}),e.jsxs("button",{className:"btn btn-primary btn-sm",onClick:ce,children:[e.jsx(me,{...n})," ",a("secrets.addSecret","Add Secret")]})]})}),A?e.jsx("div",{className:"form-error",children:A}):null,T?e.jsxs("div",{className:"secrets-loading",children:[e.jsx(q,{...Ne})," ",a("secrets.loading","Loading…")]}):null,!T&&$.length===0?e.jsx("div",{className:"secrets-empty",children:a("secrets.empty","No secrets found.")}):null,e.jsx("div",{className:"secrets-list",children:$.map(s=>{const r=V[s.id];return e.jsxs("article",{className:"card secrets-row",children:[e.jsxs("div",{className:"secrets-row-main",children:[e.jsx("div",{className:"secrets-row-key",children:s.key}),e.jsxs("div",{className:"secrets-row-meta",children:[e.jsx("span",{className:"secrets-chip",children:s.scope}),e.jsx("span",{className:"secrets-chip",children:s.accessPolicy}),s.envExportable?e.jsx("span",{className:"secrets-chip",children:a("secrets.envExportableChip","env exportable")}):null]}),r?e.jsx("pre",{className:"secrets-revealed",children:r}):null]}),e.jsxs("div",{className:"secrets-row-side",children:[e.jsx("span",{className:"secrets-row-read",children:s.lastReadAt?new Date(s.lastReadAt).toLocaleString():a("secrets.neverRead","Never read")}),e.jsxs("div",{className:"secrets-row-actions",children:[e.jsx("button",{type:"button",className:"btn btn-icon secrets-visibility-toggle",onClick:()=>{if(r){oe(s);return}ie(s)},"aria-label":r?a("secrets.hideAriaLabel","Hide"):a("secrets.revealAriaLabel","Reveal"),children:r?e.jsx(G,{...n}):e.jsx(Y,{...n})}),e.jsx("button",{className:"btn btn-icon",onClick:()=>void de(s),"aria-label":a("secrets.copyAriaLabel","Copy"),disabled:!r,children:W===s.id?e.jsx(ye,{...n}):e.jsx(xe,{...n})}),e.jsx("button",{className:"btn btn-icon",onClick:()=>le(s),"aria-label":a("secrets.editAriaLabel","Edit"),children:e.jsx(ve,{...n})}),e.jsx("button",{className:"btn btn-icon btn-danger",onClick:()=>g(s.id),"aria-label":a("secrets.deleteAriaLabel","Delete"),children:e.jsx(be,{...n})})]}),Q===s.id?e.jsxs("div",{className:"secrets-confirm",children:[e.jsx("button",{className:"btn btn-sm btn-danger",onClick:()=>void pe(s),children:a("secrets.confirmDelete","Confirm")}),e.jsx("button",{className:"btn btn-sm",onClick:()=>g(null),children:a("secrets.cancelDelete","Cancel")})]}):null]})]},s.id)})}),e.jsxs("article",{className:"card secrets-sync-card secrets-sync-disclosure",children:[e.jsxs("button",{type:"button",className:"secrets-sync-disclosure-toggle","data-testid":"secrets-passphrase-disclosure","aria-expanded":E,"aria-controls":"secrets-sync-disclosure-panel",onClick:()=>se(s=>!s),children:[E?e.jsx(je,{size:16,"aria-hidden":"true"}):e.jsx(fe,{size:16,"aria-hidden":"true"}),e.jsx("span",{children:a("secrets.syncPassphraseTitle","Cross-Node Sync Passphrase")})]}),E?e.jsxs("div",{id:"secrets-sync-disclosure-panel",className:"secrets-sync-disclosure-panel",children:[e.jsxs("div",{className:"secrets-sync-header",children:[e.jsxs("p",{className:"secrets-sync-status",children:[e.jsx("span",{className:`status-dot ${u?"status-dot--online":"status-dot--pending"}`,"aria-hidden":"true"})," ",u?a("secrets.syncConfigured","Configured"):a("secrets.syncNotConfigured","Not configured")]}),e.jsxs("div",{className:"secrets-sync-actions",children:[e.jsx("button",{className:"btn",onClick:()=>_(!0),children:u?a("secrets.rotateSyncPassphrase","Rotate"):a("secrets.setPassphrase","Set passphrase")}),u?e.jsx("button",{className:"btn btn-danger",onClick:()=>void te(),children:a("secrets.clearSyncPassphrase","Clear")}):null]})]}),e.jsx("p",{className:"secrets-sync-copy",children:a("secrets.syncPassphraseDescription","Shared passphrase used to wrap cross-node secret bundles. Both nodes in a sync pair must share the same value. Stored locally only; never transmitted.")})]}):null]}),Z?e.jsx("div",{className:"modal-overlay open",role:"presentation",children:e.jsxs("div",{className:"modal",role:"dialog","aria-modal":"true","aria-label":u?a("secrets.rotateSyncPassphraseModalTitle","Rotate sync passphrase"):a("secrets.setSyncPassphraseModalTitle","Set sync passphrase"),children:[e.jsxs("div",{className:"modal-header",children:[e.jsx("h3",{children:u?a("secrets.rotateSyncPassphraseModalTitle","Rotate sync passphrase"):a("secrets.setSyncPassphraseModalTitle","Set sync passphrase")}),e.jsx("button",{className:"modal-close",onClick:k,"aria-label":a("secrets.closeAriaLabel","Close"),children:"×"})]}),e.jsxs("div",{className:"secrets-modal-body",children:[e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.passphraseLabel","Passphrase")}),e.jsx("input",{"aria-label":a("secrets.passphraseLabel","Passphrase"),className:"input",type:"password",autoComplete:"new-password",value:f,onChange:s=>F(s.target.value)})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.confirmPassphraseLabel","Confirm passphrase")}),e.jsx("input",{"aria-label":a("secrets.confirmPassphraseLabel","Confirm passphrase"),className:"input",type:"password",autoComplete:"new-password",value:P,onChange:s=>H(s.target.value)})]}),!J&&P.length>0?e.jsx("div",{className:"form-error",children:a("secrets.passphraseMustMatch","Passphrases must match.")}):null]}),e.jsx("div",{className:"modal-actions",children:e.jsxs("div",{className:"modal-actions-right",children:[e.jsx("button",{className:"btn",onClick:k,children:a("secrets.cancelBtn","Cancel")}),e.jsx("button",{className:"btn btn-primary",onClick:()=>void re(),disabled:!J||ee,children:u?a("secrets.rotateSyncPassphrase","Rotate"):a("secrets.setPassphrase","Set passphrase")})]})})]})}):null,U?e.jsx("div",{className:"modal-overlay open",role:"presentation",children:e.jsxs("div",{className:"modal",role:"dialog","aria-modal":"true","aria-label":p?a("secrets.editSecretModalTitle","Edit secret"):a("secrets.addSecretModalTitle","Add secret"),children:[e.jsxs("div",{className:"modal-header",children:[e.jsx("h3",{children:p?a("secrets.editSecretModalTitle","Edit secret"):a("secrets.addSecretModalTitle","Add secret")}),e.jsx("button",{className:"modal-close",onClick:()=>y(!1),"aria-label":a("secrets.closeAriaLabel","Close"),children:"×"})]}),e.jsxs("div",{className:"secrets-modal-body",children:[e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.keyLabel","Key")}),e.jsx("input",{className:"input",value:t.key,onChange:s=>l(r=>({...r,key:s.target.value}))})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.valueLabel","Value")}),e.jsxs("div",{className:"secrets-value-row",children:[e.jsx("input",{className:"input",type:N?"text":"password",autoComplete:"off",spellCheck:!1,value:t.value,onChange:s=>l(r=>({...r,value:s.target.value}))}),e.jsx("button",{type:"button",className:"btn btn-icon secrets-visibility-toggle",onClick:()=>C(s=>!s),"aria-label":N?a("secrets.hideValueAriaLabel","Hide value"):a("secrets.showValueAriaLabel","Show value"),children:N?e.jsx(G,{...n}):e.jsx(Y,{...n})})]})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.descriptionLabel","Description")}),e.jsx("textarea",{className:"input",value:t.description,onChange:s=>l(r=>({...r,description:s.target.value}))})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.scopeLabel","Scope")}),e.jsxs("div",{className:"secrets-radio-row",children:[e.jsxs("label",{children:[e.jsx("input",{type:"radio",checked:t.scope==="project",onChange:()=>l(s=>({...s,scope:"project"})),disabled:!!p})," ",a("secrets.scopeProject","Project")]}),e.jsxs("label",{children:[e.jsx("input",{type:"radio",checked:t.scope==="global",onChange:()=>l(s=>({...s,scope:"global"})),disabled:!!p})," ",a("secrets.scopeGlobal","Global")]})]})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.accessPolicyLabel","Access policy")}),e.jsxs("select",{className:"select",value:t.accessPolicy,onChange:s=>l(r=>({...r,accessPolicy:s.target.value})),children:[e.jsx("option",{value:"auto",children:a("secrets.accessPolicyAuto","auto")}),e.jsx("option",{value:"prompt",children:a("secrets.accessPolicyPrompt","prompt")}),e.jsx("option",{value:"deny",children:a("secrets.accessPolicyDeny","deny")})]})]}),e.jsx("div",{className:"form-group",children:e.jsxs("label",{className:"checkbox-label",children:[e.jsx("input",{type:"checkbox",checked:t.envExportable,onChange:s=>l(r=>({...r,envExportable:s.target.checked}))})," ",a("secrets.exportToEnvLabel","Export to env")]})}),t.envExportable?e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.envKeyLabel","Env key")}),e.jsx("input",{className:"input",value:t.envExportKey,onChange:s=>l(r=>({...r,envExportKey:s.target.value}))})]}):null,K?e.jsx("div",{className:"form-error",children:K}):null]}),e.jsx("div",{className:"modal-actions",children:e.jsxs("div",{className:"modal-actions-right",children:[e.jsx("button",{className:"btn",onClick:()=>y(!1),children:a("secrets.cancelBtn","Cancel")}),e.jsx("button",{className:"btn btn-primary",onClick:()=>void ne(),children:p?a("secrets.saveBtn","Save"):a("secrets.createBtn","Create")})]})})]})}):null]})};export{Re as SecretsView};
1
+ import{r as c,j as e}from"./vendor-react-SZ_qB27O.js";import{V as ue,B as he,R as q,P as me,D as G,F as Y,G as ye,H as xe,I as ve,J as be,o as je,C as fe}from"./index-DIURDjTF.js";import{u as Se}from"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";const ge="__sync_passphrase__",L={key:"",value:"",description:"",scope:"project",accessPolicy:"prompt",envExportable:!1,envExportKey:""},n={className:"secrets-action-icon","aria-hidden":!0,style:{width:"1em",height:"1em"}},Ne={...n,className:"secrets-action-icon spin"},Re=({addToast:d})=>{const{t:a}=Se("app"),[R,z]=c.useState([]),[T,M]=c.useState(!0),[A,D]=c.useState(null),[K,b]=c.useState(null),[p,O]=c.useState(null),[U,y]=c.useState(!1),[Q,g]=c.useState(null),[t,l]=c.useState(L),[N,C]=c.useState(!1),[V,j]=c.useState({}),[W,B]=c.useState(null),[u,X]=c.useState(!1),[Z,_]=c.useState(!1),[f,F]=c.useState(""),[P,H]=c.useState(""),[ee,I]=c.useState(!1),[E,se]=c.useState(!1),m=c.useRef(new Map),w=c.useRef(new Map),o=c.useCallback(async(s,r)=>{const i=await fetch(s,{...r,headers:{"Content-Type":"application/json",...r?.headers??{}}});if(!i.ok){const h=await i.json().catch(()=>({error:"Request failed"}));throw new Error(String(h?.error??"Request failed"))}if(i.status!==204)return i.json()},[]),x=c.useCallback(async()=>{M(!0),D(null);try{const s=await o("/api/secrets");z(s.secrets)}catch(s){D(s instanceof Error?s.message:String(s))}finally{M(!1)}},[o]),S=c.useCallback(async()=>{try{const s=await o("/api/secrets/sync-passphrase");X(!!s.configured)}catch(s){d?.(a("secrets.errorLoadSyncStatus","Failed to load sync passphrase status: {{error}}",{error:s instanceof Error?s.message:String(s)}),"error")}},[d,o]);c.useEffect(()=>(x(),S(),()=>{m.current.forEach(s=>clearTimeout(s)),w.current.forEach(s=>clearTimeout(s))}),[x,S]);const k=()=>{_(!1),F(""),H("")},ae=async s=>{await o("/api/secrets/sync-passphrase",{method:"PUT",body:JSON.stringify({passphrase:s})})},re=async()=>{I(!0);try{await ae(f),d?.(u?a("secrets.syncPassphraseRotated","Sync passphrase rotated"):a("secrets.syncPassphraseSet","Sync passphrase set"),"success"),k(),await S()}catch(s){d?.(a("secrets.errorSaveSyncPassphrase","Failed to save sync passphrase: {{error}}",{error:s instanceof Error?s.message:String(s)}),"error")}finally{I(!1)}},te=async()=>{if(window.confirm(a("secrets.confirmClearSyncPassphrase","Clear the cross-node sync passphrase? Existing sync pairs will stop working until you set a new passphrase.")))try{await o("/api/secrets/sync-passphrase",{method:"DELETE"}),d?.(a("secrets.syncPassphraseCleared","Sync passphrase cleared"),"success"),await S()}catch(r){d?.(a("secrets.errorClearSyncPassphrase","Failed to clear sync passphrase: {{error}}",{error:r instanceof Error?r.message:String(r)}),"error")}},ce=()=>{O(null),l(L),y(!0),C(!1),b(null)},le=s=>{O(s),l({key:s.key,value:"",description:s.description??"",scope:s.scope,accessPolicy:s.accessPolicy,envExportable:s.envExportable,envExportKey:s.envExportKey??""}),y(!0),C(!1),b(null)},ne=async()=>{b(null);try{if(p){const s={key:t.key,description:t.description||null,accessPolicy:t.accessPolicy,envExportable:t.envExportable,envExportKey:t.envExportable&&t.envExportKey||null};t.value&&(s.value=t.value),await o(`/api/secrets/${p.scope}/${p.id}`,{method:"PATCH",body:JSON.stringify(s)})}else await o("/api/secrets",{method:"POST",body:JSON.stringify({scope:t.scope,key:t.key,value:t.value,description:t.description||null,accessPolicy:t.accessPolicy,envExportable:t.envExportable,envExportKey:t.envExportable&&t.envExportKey||null})});y(!1),l(L),await x()}catch(s){b(s instanceof Error?s.message:String(s))}},oe=s=>{const r=m.current.get(s.id);r&&(clearTimeout(r),m.current.delete(s.id)),j(i=>({...i,[s.id]:null}))},ie=async s=>{const r=await o(`/api/secrets/${s.scope}/${s.id}/reveal`,{method:"POST"});j(v=>({...v,[s.id]:r.value})),d?.(a("secrets.revealed","Revealed"),"success");const i=setTimeout(()=>{j(v=>({...v,[s.id]:null})),m.current.delete(s.id)},3e4),h=m.current.get(s.id);h&&clearTimeout(h),m.current.set(s.id,i)},de=async s=>{const r=V[s.id];if(!r)return;await navigator.clipboard.writeText(r),B(s.id),d?.(a("secrets.copied","Copied"),"success");const i=setTimeout(()=>{B(null),j(v=>({...v,[s.id]:null}))},1500),h=w.current.get(s.id);h&&clearTimeout(h),w.current.set(s.id,i)},pe=async s=>{await o(`/api/secrets/${s.scope}/${s.id}`,{method:"DELETE"}),g(null),await x()},$=c.useMemo(()=>[...R].filter(s=>!(s.scope==="global"&&s.key===ge)).sort((s,r)=>s.key.localeCompare(r.key)),[R]),J=f.length>0&&f===P;return e.jsxs("section",{className:"secrets-view",children:[e.jsx(ue,{icon:he,title:a("secrets.title","Secrets"),actions:e.jsxs(e.Fragment,{children:[e.jsxs("button",{className:"btn btn-sm",onClick:()=>void x(),children:[e.jsx(q,{...n})," ",a("secrets.refresh","Refresh")]}),e.jsxs("button",{className:"btn btn-primary btn-sm",onClick:ce,children:[e.jsx(me,{...n})," ",a("secrets.addSecret","Add Secret")]})]})}),A?e.jsx("div",{className:"form-error",children:A}):null,T?e.jsxs("div",{className:"secrets-loading",children:[e.jsx(q,{...Ne})," ",a("secrets.loading","Loading…")]}):null,!T&&$.length===0?e.jsx("div",{className:"secrets-empty",children:a("secrets.empty","No secrets found.")}):null,e.jsx("div",{className:"secrets-list",children:$.map(s=>{const r=V[s.id];return e.jsxs("article",{className:"card secrets-row",children:[e.jsxs("div",{className:"secrets-row-main",children:[e.jsx("div",{className:"secrets-row-key",children:s.key}),e.jsxs("div",{className:"secrets-row-meta",children:[e.jsx("span",{className:"secrets-chip",children:s.scope}),e.jsx("span",{className:"secrets-chip",children:s.accessPolicy}),s.envExportable?e.jsx("span",{className:"secrets-chip",children:a("secrets.envExportableChip","env exportable")}):null]}),r?e.jsx("pre",{className:"secrets-revealed",children:r}):null]}),e.jsxs("div",{className:"secrets-row-side",children:[e.jsx("span",{className:"secrets-row-read",children:s.lastReadAt?new Date(s.lastReadAt).toLocaleString():a("secrets.neverRead","Never read")}),e.jsxs("div",{className:"secrets-row-actions",children:[e.jsx("button",{type:"button",className:"btn btn-icon secrets-visibility-toggle",onClick:()=>{if(r){oe(s);return}ie(s)},"aria-label":r?a("secrets.hideAriaLabel","Hide"):a("secrets.revealAriaLabel","Reveal"),children:r?e.jsx(G,{...n}):e.jsx(Y,{...n})}),e.jsx("button",{className:"btn btn-icon",onClick:()=>void de(s),"aria-label":a("secrets.copyAriaLabel","Copy"),disabled:!r,children:W===s.id?e.jsx(ye,{...n}):e.jsx(xe,{...n})}),e.jsx("button",{className:"btn btn-icon",onClick:()=>le(s),"aria-label":a("secrets.editAriaLabel","Edit"),children:e.jsx(ve,{...n})}),e.jsx("button",{className:"btn btn-icon btn-danger",onClick:()=>g(s.id),"aria-label":a("secrets.deleteAriaLabel","Delete"),children:e.jsx(be,{...n})})]}),Q===s.id?e.jsxs("div",{className:"secrets-confirm",children:[e.jsx("button",{className:"btn btn-sm btn-danger",onClick:()=>void pe(s),children:a("secrets.confirmDelete","Confirm")}),e.jsx("button",{className:"btn btn-sm",onClick:()=>g(null),children:a("secrets.cancelDelete","Cancel")})]}):null]})]},s.id)})}),e.jsxs("article",{className:"card secrets-sync-card secrets-sync-disclosure",children:[e.jsxs("button",{type:"button",className:"secrets-sync-disclosure-toggle","data-testid":"secrets-passphrase-disclosure","aria-expanded":E,"aria-controls":"secrets-sync-disclosure-panel",onClick:()=>se(s=>!s),children:[E?e.jsx(je,{size:16,"aria-hidden":"true"}):e.jsx(fe,{size:16,"aria-hidden":"true"}),e.jsx("span",{children:a("secrets.syncPassphraseTitle","Cross-Node Sync Passphrase")})]}),E?e.jsxs("div",{id:"secrets-sync-disclosure-panel",className:"secrets-sync-disclosure-panel",children:[e.jsxs("div",{className:"secrets-sync-header",children:[e.jsxs("p",{className:"secrets-sync-status",children:[e.jsx("span",{className:`status-dot ${u?"status-dot--online":"status-dot--pending"}`,"aria-hidden":"true"})," ",u?a("secrets.syncConfigured","Configured"):a("secrets.syncNotConfigured","Not configured")]}),e.jsxs("div",{className:"secrets-sync-actions",children:[e.jsx("button",{className:"btn",onClick:()=>_(!0),children:u?a("secrets.rotateSyncPassphrase","Rotate"):a("secrets.setPassphrase","Set passphrase")}),u?e.jsx("button",{className:"btn btn-danger",onClick:()=>void te(),children:a("secrets.clearSyncPassphrase","Clear")}):null]})]}),e.jsx("p",{className:"secrets-sync-copy",children:a("secrets.syncPassphraseDescription","Shared passphrase used to wrap cross-node secret bundles. Both nodes in a sync pair must share the same value. Stored locally only; never transmitted.")})]}):null]}),Z?e.jsx("div",{className:"modal-overlay open",role:"presentation",children:e.jsxs("div",{className:"modal",role:"dialog","aria-modal":"true","aria-label":u?a("secrets.rotateSyncPassphraseModalTitle","Rotate sync passphrase"):a("secrets.setSyncPassphraseModalTitle","Set sync passphrase"),children:[e.jsxs("div",{className:"modal-header",children:[e.jsx("h3",{children:u?a("secrets.rotateSyncPassphraseModalTitle","Rotate sync passphrase"):a("secrets.setSyncPassphraseModalTitle","Set sync passphrase")}),e.jsx("button",{className:"modal-close",onClick:k,"aria-label":a("secrets.closeAriaLabel","Close"),children:"×"})]}),e.jsxs("div",{className:"secrets-modal-body",children:[e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.passphraseLabel","Passphrase")}),e.jsx("input",{"aria-label":a("secrets.passphraseLabel","Passphrase"),className:"input",type:"password",autoComplete:"new-password",value:f,onChange:s=>F(s.target.value)})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.confirmPassphraseLabel","Confirm passphrase")}),e.jsx("input",{"aria-label":a("secrets.confirmPassphraseLabel","Confirm passphrase"),className:"input",type:"password",autoComplete:"new-password",value:P,onChange:s=>H(s.target.value)})]}),!J&&P.length>0?e.jsx("div",{className:"form-error",children:a("secrets.passphraseMustMatch","Passphrases must match.")}):null]}),e.jsx("div",{className:"modal-actions",children:e.jsxs("div",{className:"modal-actions-right",children:[e.jsx("button",{className:"btn",onClick:k,children:a("secrets.cancelBtn","Cancel")}),e.jsx("button",{className:"btn btn-primary",onClick:()=>void re(),disabled:!J||ee,children:u?a("secrets.rotateSyncPassphrase","Rotate"):a("secrets.setPassphrase","Set passphrase")})]})})]})}):null,U?e.jsx("div",{className:"modal-overlay open",role:"presentation",children:e.jsxs("div",{className:"modal",role:"dialog","aria-modal":"true","aria-label":p?a("secrets.editSecretModalTitle","Edit secret"):a("secrets.addSecretModalTitle","Add secret"),children:[e.jsxs("div",{className:"modal-header",children:[e.jsx("h3",{children:p?a("secrets.editSecretModalTitle","Edit secret"):a("secrets.addSecretModalTitle","Add secret")}),e.jsx("button",{className:"modal-close",onClick:()=>y(!1),"aria-label":a("secrets.closeAriaLabel","Close"),children:"×"})]}),e.jsxs("div",{className:"secrets-modal-body",children:[e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.keyLabel","Key")}),e.jsx("input",{className:"input",value:t.key,onChange:s=>l(r=>({...r,key:s.target.value}))})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.valueLabel","Value")}),e.jsxs("div",{className:"secrets-value-row",children:[e.jsx("input",{className:"input",type:N?"text":"password",autoComplete:"off",spellCheck:!1,value:t.value,onChange:s=>l(r=>({...r,value:s.target.value}))}),e.jsx("button",{type:"button",className:"btn btn-icon secrets-visibility-toggle",onClick:()=>C(s=>!s),"aria-label":N?a("secrets.hideValueAriaLabel","Hide value"):a("secrets.showValueAriaLabel","Show value"),children:N?e.jsx(G,{...n}):e.jsx(Y,{...n})})]})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.descriptionLabel","Description")}),e.jsx("textarea",{className:"input",value:t.description,onChange:s=>l(r=>({...r,description:s.target.value}))})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.scopeLabel","Scope")}),e.jsxs("div",{className:"secrets-radio-row",children:[e.jsxs("label",{children:[e.jsx("input",{type:"radio",checked:t.scope==="project",onChange:()=>l(s=>({...s,scope:"project"})),disabled:!!p})," ",a("secrets.scopeProject","Project")]}),e.jsxs("label",{children:[e.jsx("input",{type:"radio",checked:t.scope==="global",onChange:()=>l(s=>({...s,scope:"global"})),disabled:!!p})," ",a("secrets.scopeGlobal","Global")]})]})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.accessPolicyLabel","Access policy")}),e.jsxs("select",{className:"select",value:t.accessPolicy,onChange:s=>l(r=>({...r,accessPolicy:s.target.value})),children:[e.jsx("option",{value:"auto",children:a("secrets.accessPolicyAuto","auto")}),e.jsx("option",{value:"prompt",children:a("secrets.accessPolicyPrompt","prompt")}),e.jsx("option",{value:"deny",children:a("secrets.accessPolicyDeny","deny")})]})]}),e.jsx("div",{className:"form-group",children:e.jsxs("label",{className:"checkbox-label",children:[e.jsx("input",{type:"checkbox",checked:t.envExportable,onChange:s=>l(r=>({...r,envExportable:s.target.checked}))})," ",a("secrets.exportToEnvLabel","Export to env")]})}),t.envExportable?e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("secrets.envKeyLabel","Env key")}),e.jsx("input",{className:"input",value:t.envExportKey,onChange:s=>l(r=>({...r,envExportKey:s.target.value}))})]}):null,K?e.jsx("div",{className:"form-error",children:K}):null]}),e.jsx("div",{className:"modal-actions",children:e.jsxs("div",{className:"modal-actions-right",children:[e.jsx("button",{className:"btn",onClick:()=>y(!1),children:a("secrets.cancelBtn","Cancel")}),e.jsx("button",{className:"btn btn-primary",onClick:()=>void ne(),children:p?a("secrets.saveBtn","Save"):a("secrets.createBtn","Create")})]})})]})}):null]})};export{Re as SecretsView};
@@ -0,0 +1 @@
1
+ @font-face{font-family:Fusion Terminal Nerd Font Symbols;src:url(../fonts/SymbolsNerdFontMono-Regular.ttf) format("truetype");font-display:swap;unicode-range:U+23FB-23FE,U+2665,U+26A1,U+2B58,U+E000-E00A,U+E0A0-E0D7,U+E200-E2A9,U+E300-E3E3,U+E5FA-E6B7,U+E700-E8EF,U+EA60-EC1E,U+ED00-F2FF,U+F300-F533,U+F0001-F1AF0}.cli-session-terminal{display:flex;flex-direction:column;min-height:0;height:100%;background:var(--terminal-bg, var(--bg));border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.cli-session-terminal__header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.cli-session-terminal__posture-wrap{position:relative}.cli-posture-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:2px var(--space-sm);font-size:.75rem;line-height:1.4;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast, .12s) ease}.cli-posture-chip:hover{background:var(--card-hover)}.cli-posture-chip--elevated{color:var(--color-warning);border-color:var(--color-warning)}.cli-posture-chip__mode{color:var(--text-muted)}.cli-posture-chip__flag{font-weight:600}.cli-posture-tooltip{position:absolute;top:calc(100% + var(--space-xs));left:0;z-index:10;min-width:220px;padding:var(--space-sm);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.cli-posture-tooltip__title{margin:0 0 var(--space-xs);font-size:.75rem;font-weight:600;color:var(--text)}.cli-posture-tooltip__list{margin:0;padding-left:var(--space-md);font-size:.75rem;color:var(--text-muted)}.cli-posture-tooltip__settings{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);padding:2px var(--space-sm);font-size:.75rem;color:var(--accent);background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.cli-session-terminal__readonly-badge,.cli-session-terminal__replay-badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:2px var(--space-sm);font-size:.7rem;color:var(--text-muted);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm)}.cli-session-terminal__replay-badge[data-replay-mode=ended]{color:var(--text-muted)}.cli-session-terminal__viewport{flex:1 1 auto;min-height:0;padding:var(--space-xs);background:var(--terminal-bg, var(--bg))}.cli-session-terminal__viewport,.cli-session-terminal__viewport *{-webkit-text-size-adjust:100%;text-size-adjust:100%}.cli-session-terminal__viewport .xterm-rows span{font-family:var(--terminal-glyph-font-family, inherit)!important}.cli-session-terminal__advance-strip{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm);background:var(--surface);border-top:1px solid var(--border);flex-wrap:wrap}.cli-session-terminal__advance-copy{font-size:.8125rem;color:var(--text)}.cli-session-terminal__advance-actions{display:flex;gap:var(--space-xs)}.cli-session-terminal__advance-btn{padding:4px var(--space-md);font-size:.8125rem;color:var(--accent-text);background:var(--accent);border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer}.cli-session-terminal__advance-btn:disabled{opacity:.6;cursor:default}.cli-session-terminal__advance-btn--secondary{color:var(--text);background:var(--card);border-color:var(--border)}.cli-session-terminal__mobile-bar{position:sticky;bottom:0;z-index:5;display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm) calc(var(--space-sm) + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--border)}.cli-session-terminal__mobile-bar--keyboard-open{position:fixed;left:0;right:0;padding-bottom:var(--space-sm)}.cli-session-terminal__key-row{display:flex;gap:var(--space-xs);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.cli-session-terminal__key-row::-webkit-scrollbar{display:none}.cli-terminal-key{flex:0 0 auto;min-width:40px;min-height:36px;padding:var(--space-xs) var(--space-sm);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:.8125rem;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;touch-action:manipulation}.cli-terminal-key:active{background:var(--card-hover)}.cli-terminal-key--ctrl.cli-terminal-key--active{color:var(--accent-text);background:var(--accent);border-color:var(--accent)}.cli-terminal-key--ctrlc{color:var(--color-warning);border-color:var(--color-warning)}.cli-session-terminal__input-row{display:flex;gap:var(--space-xs)}.cli-session-terminal__mobile-input{flex:1 1 auto;min-width:0;min-height:38px;padding:var(--space-xs) var(--space-sm);font-size:16px;color:var(--text);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-sm)}.cli-session-terminal__mobile-input:focus{outline:none;border-color:var(--accent)}.cli-session-terminal__mobile-send{flex:0 0 auto;min-height:38px;padding:var(--space-xs) var(--space-md);font-size:.8125rem;color:var(--accent-text);background:var(--accent);border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;touch-action:manipulation}@media(max-width:768px),(max-height:480px){.cli-session-terminal__viewport{-webkit-overflow-scrolling:touch}}
@@ -1,2 +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 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-DAv17W73.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-yWvC7t2v.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};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./vendor-xterm-BNq00GSj.js","./vendor-react-SZ_qB27O.js","./vendor-xterm-LZoznX6r.css","./addon-fit-C1WQXRvu.js","./addon-unicode11-BVmNDUBM.js","./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-DIURDjTF.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-D-Fxd0Va.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]),import.meta.url),A(()=>import("./addon-fit-C1WQXRvu.js").then(m=>m.a),__vite__mapDeps([3,1]),import.meta.url),A(()=>import("./addon-unicode11-BVmNDUBM.js").then(m=>m.a),__vite__mapDeps([4,1]),import.meta.url)]);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]),import.meta.url);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};