@nextclaw/ui 0.19.2 → 0.19.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/dist/assets/{abnfDiagram-VRR7QNED-DvTjgVMf.js → abnfDiagram-VRR7QNED-DrbfiNNF.js} +1 -1
  3. package/dist/assets/{aiden0z-pptx-renderer.es-C1nfBAXR.js → aiden0z-pptx-renderer.es-DdLb2IVc.js} +1 -1
  4. package/dist/assets/{api-BH6Oslx4.js → api-CUSlBpt_.js} +3 -3
  5. package/dist/assets/{appearance-settings-page-zhgfcGgW.js → appearance-settings-page-cTuZdROP.js} +1 -1
  6. package/dist/assets/{arc-BvhODBXv.js → arc-BXlMc9B0.js} +1 -1
  7. package/dist/assets/architecture-TIHT7OUA-Bq0i9WiE.js +1 -0
  8. package/dist/assets/{architectureDiagram-ZJ3FMSHR-BKO9RgNS.js → architectureDiagram-ZJ3FMSHR-DXAJxxO0.js} +1 -1
  9. package/dist/assets/{blockDiagram-677ZJIJ3-DHpDXy7D.js → blockDiagram-677ZJIJ3-i4Kz7zU0.js} +1 -1
  10. package/dist/assets/{book-open-DGTS6oEO.js → book-open-BJ-xAIp9.js} +1 -1
  11. package/dist/assets/{c4Diagram-LMCZKHZV-BG_iQnDr.js → c4Diagram-LMCZKHZV-BDc0TkPd.js} +1 -1
  12. package/dist/assets/channel-iCaZQ87u.js +1 -0
  13. package/dist/assets/{channels-list-page-3D5lhZoT.js → channels-list-page-nRHOasWA.js} +2 -2
  14. package/dist/assets/chunk-2Q5K7J3B-DFQtlnJS.js +1 -0
  15. package/dist/assets/{chunk-32BRIVSS-DR9M0LLx.js → chunk-32BRIVSS-DuReei0Z.js} +1 -1
  16. package/dist/assets/{chunk-52WLFC77-698iC3BB.js → chunk-52WLFC77-D8APq0tm.js} +1 -1
  17. package/dist/assets/{chunk-5FCAYU7R-DikTj9Ey.js → chunk-5FCAYU7R-BsPrNXNS.js} +1 -1
  18. package/dist/assets/{chunk-5HE753X5-ko0o7_q0.js → chunk-5HE753X5-BRtkOPoJ.js} +1 -1
  19. package/dist/assets/{chunk-5JV3BV7I-CEHufhgo.js → chunk-5JV3BV7I-ChPc8e8U.js} +1 -1
  20. package/dist/assets/{chunk-5TONJI2A-CGgno1cu.js → chunk-5TONJI2A-CzTjlJGb.js} +1 -1
  21. package/dist/assets/{chunk-5VM5RSS4-DkiB4cUQ.js → chunk-5VM5RSS4-xsv_22jR.js} +1 -1
  22. package/dist/assets/{chunk-7BUUIJ7U-DzptcytQ.js → chunk-7BUUIJ7U-CwECujme.js} +1 -1
  23. package/dist/assets/{chunk-BIQX33UG-DMRSQJvT.js → chunk-BIQX33UG-DQAm173p.js} +1 -1
  24. package/dist/assets/{chunk-C7G6YPKG-Bw1BwwuY.js → chunk-C7G6YPKG-BkpajeQb.js} +1 -1
  25. package/dist/assets/{chunk-CQNSW5MT-C0z6eHBk.js → chunk-CQNSW5MT-ND65pWRA.js} +1 -1
  26. package/dist/assets/{chunk-CYSBUYHQ-ByPyAouO.js → chunk-CYSBUYHQ-vMu6ijxG.js} +1 -1
  27. package/dist/assets/{chunk-EMLP6XTP-CJlAXWZg.js → chunk-EMLP6XTP-CEaeW3gH.js} +1 -1
  28. package/dist/assets/{chunk-EX3LRPZG-Dqq4zKJu.js → chunk-EX3LRPZG-a4ER-HDr.js} +1 -1
  29. package/dist/assets/{chunk-FWX5IMBZ-B0SNoCmi.js → chunk-FWX5IMBZ-C_8fQssn.js} +2 -2
  30. package/dist/assets/{chunk-HOUHSVGY-DG_GJih_.js → chunk-HOUHSVGY-CEvw-PEd.js} +1 -1
  31. package/dist/assets/{chunk-ICXQ74PX-Drxk_6bE.js → chunk-ICXQ74PX-BEtF0fGY.js} +1 -1
  32. package/dist/assets/{chunk-JG7HCLWE-DdLFPpnd.js → chunk-JG7HCLWE-DGRrVp8-.js} +1 -1
  33. package/dist/assets/{chunk-JWPE2WC7-B8M4G76F.js → chunk-JWPE2WC7-DRqpp_nM.js} +1 -1
  34. package/dist/assets/{chunk-MOJQB5TN-XP6FJHY_.js → chunk-MOJQB5TN-BDEriOXs.js} +1 -1
  35. package/dist/assets/{chunk-MOZMSUNE-C_6x18Qw.js → chunk-MOZMSUNE-JWRNzdnw.js} +1 -1
  36. package/dist/assets/{chunk-OGEWGWER-N25BzCmG.js → chunk-OGEWGWER-DS2VTgCx.js} +1 -1
  37. package/dist/assets/{chunk-OSBZ3O6U-ASDEm7y0.js → chunk-OSBZ3O6U-3LiYTBUB.js} +1 -1
  38. package/dist/assets/{chunk-PUDLZKDR-CTlvAcn7.js → chunk-PUDLZKDR-o9M2s_SO.js} +1 -1
  39. package/dist/assets/{chunk-Q4XR5HBZ-Da9BWfB6.js → chunk-Q4XR5HBZ-DTB7Ma2N.js} +1 -1
  40. package/dist/assets/{chunk-QBLGF6JB-Bi6RpTJO.js → chunk-QBLGF6JB-DpkxZJL5.js} +1 -1
  41. package/dist/assets/{chunk-R7FJI6CG-DkMsSPvK.js → chunk-R7FJI6CG-CRejkHJU.js} +1 -1
  42. package/dist/assets/{chunk-RYQCIY6F-DZp0eU-j.js → chunk-RYQCIY6F-B1boBjLt.js} +1 -1
  43. package/dist/assets/{chunk-U6XO7XAA-vfinDSrj.js → chunk-U6XO7XAA-DgKa97bj.js} +1 -1
  44. package/dist/assets/{chunk-V7JOEXUC-C9Nksccs.js → chunk-V7JOEXUC-DE56eh0N.js} +1 -1
  45. package/dist/assets/chunk-VAUOI2AC-CF9A-TeE.js +1 -0
  46. package/dist/assets/{chunk-VR4S4FIN-Xv6zfwXs.js → chunk-VR4S4FIN-BzomPZq2.js} +1 -1
  47. package/dist/assets/{chunk-WYO6CB5R-mOJNzbWl.js → chunk-WYO6CB5R-C6gy8rSd.js} +2 -2
  48. package/dist/assets/chunk-XXDRQBXY-BRxdfVCU.js +1 -0
  49. package/dist/assets/{chunk-YOTPTUD7-1-aKSu4o.js → chunk-YOTPTUD7-BK98yfl9.js} +1 -1
  50. package/dist/assets/{chunk-ZGVPDNZ5-OJ8veMpK.js → chunk-ZGVPDNZ5-DFXAhwUT.js} +1 -1
  51. package/dist/assets/{chunk-ZIRB5QZD-SR_Nq_PP.js → chunk-ZIRB5QZD-Bbu6BiNC.js} +1 -1
  52. package/dist/assets/classDiagram-OUVF2IWQ-Bo28fPi-.js +1 -0
  53. package/dist/assets/classDiagram-v2-EOCWNBFH-BOVN9wUz.js +1 -0
  54. package/dist/assets/{config-split-page-B55XD_ZY.js → config-split-page-DO1Oyb-r.js} +1 -1
  55. package/dist/assets/{confirm-dialog-BCCreI_f.js → confirm-dialog-CCae9Fr4.js} +1 -1
  56. package/dist/assets/{cose-bilkent-JH36ORCC-NjVgz2Bw.js → cose-bilkent-JH36ORCC-BV8KR4uF.js} +1 -1
  57. package/dist/assets/cynefin-VYW2F7L2-B7rF3JRp.js +1 -0
  58. package/dist/assets/{cynefinDiagram-TSTJHNR4-B_17LDqD.js → cynefinDiagram-TSTJHNR4-Ckd6nU9t.js} +1 -1
  59. package/dist/assets/{dagre-CMe101gk.js → dagre-D_T-FW5i.js} +1 -1
  60. package/dist/assets/{dagre-VKFMJZFB-qo8nLb3B.js → dagre-VKFMJZFB-CyDaQpD4.js} +1 -1
  61. package/dist/assets/desktop-update-config-XSV-DjJW.js +1 -0
  62. package/dist/assets/{diagram-FQU43EPY-Ba3XIklC.js → diagram-FQU43EPY-CghnwS0H.js} +1 -1
  63. package/dist/assets/{diagram-G47NLZAW-CG45TcUx.js → diagram-G47NLZAW-DK4DJ3Kx.js} +1 -1
  64. package/dist/assets/{diagram-NH7WQ7WH-2F2HrwV-.js → diagram-NH7WQ7WH-CUgDkZCJ.js} +1 -1
  65. package/dist/assets/{diagram-OA4YK3LP-CXfWH9NZ.js → diagram-OA4YK3LP-vO2gyH6n.js} +1 -1
  66. package/dist/assets/{diagram-WEI45ONY-CH_4yepc.js → diagram-WEI45ONY-DbSBRDSr.js} +1 -1
  67. package/dist/assets/{dist-IRWcJpfm.js → dist-1N9UpL3c.js} +1 -1
  68. package/dist/assets/{dist-BYSUQaO2.js → dist-C-2H76Cv.js} +1 -1
  69. package/dist/assets/doc-browser-BHFCZIoL.js +1 -0
  70. package/dist/assets/{doc-browser-D8rNrWHk.js → doc-browser-CRlpqMwH.js} +1 -1
  71. package/dist/assets/{doc-browser-context-DjTbIbQc.js → doc-browser-context-C0Bns1J6.js} +1 -1
  72. package/dist/assets/{docx-preview-CoM4JK7_.js → docx-preview-DfxIm9IB.js} +1 -1
  73. package/dist/assets/{ebnfDiagram-CCIWWBDH-BwiG4Ea1.js → ebnfDiagram-CCIWWBDH-W7CAcK7r.js} +1 -1
  74. package/dist/assets/{erDiagram-Q63AITRT-BML3hpnQ.js → erDiagram-Q63AITRT-LA0JWL8-.js} +1 -1
  75. package/dist/assets/eventmodeling-45OFAUF4-DzQLXa3s.js +1 -0
  76. package/dist/assets/flowDiagram-23GEKE2U-C81eexJZ.js +1 -0
  77. package/dist/assets/{form-actions-C8hazgNP.js → form-actions-CMxhPact.js} +1 -1
  78. package/dist/assets/{ganttDiagram-NO4QXBWP-80enfWbD.js → ganttDiagram-NO4QXBWP-_PiTPavJ.js} +1 -1
  79. package/dist/assets/gitGraph-TEB2WS4Q-Dt3ZqpFD.js +1 -0
  80. package/dist/assets/{gitGraphDiagram-IHSO6WYX-CVLqXr-b.js → gitGraphDiagram-IHSO6WYX-DsRB1ZMU.js} +1 -1
  81. package/dist/assets/index-DdYOaKm7.js +109 -0
  82. package/dist/assets/index-DxCGKhAw.css +1 -0
  83. package/dist/assets/info-DKCQHKI2-CCCE7dXC.js +1 -0
  84. package/dist/assets/{infoDiagram-FWYZ7A6U-Dyvs2t0i.js → infoDiagram-FWYZ7A6U-wIRraYx5.js} +1 -1
  85. package/dist/assets/{ishikawaDiagram-FXEZZL3T-sSnxDKfh.js → ishikawaDiagram-FXEZZL3T-CNzsrcrh.js} +1 -1
  86. package/dist/assets/{journeyDiagram-5HDEW3XC-D22V71Mf.js → journeyDiagram-5HDEW3XC-Dy9huHxy.js} +1 -1
  87. package/dist/assets/{kanban-definition-HUTT4EX6-D3ds0p-g.js → kanban-definition-HUTT4EX6-BOCIN365.js} +1 -1
  88. package/dist/assets/{line-CbyFs065.js → line-BxsizOTs.js} +1 -1
  89. package/dist/assets/{linear-4DKtnZBS.js → linear-C_YHf92I.js} +1 -1
  90. package/dist/assets/loader-circle-B-UdXjl4.js +1 -0
  91. package/dist/assets/{map-CcZzEoz6.js → map-CobcjgZ8.js} +1 -1
  92. package/dist/assets/mcp-marketplace-page-BUIGtSda.js +1 -0
  93. package/dist/assets/mcp-marketplace-page-CStb8ml2.js +9 -0
  94. package/dist/assets/{mermaid-parser.core-DPmMOjXD.js → mermaid-parser.core-D7lu2RbA.js} +2 -2
  95. package/dist/assets/{mermaid.core-BSf-ddRa.js → mermaid.core-CbfW2Rk8.js} +3 -3
  96. package/dist/assets/{mindmap-definition-LN4V7U3C-BUTwWPyx.js → mindmap-definition-LN4V7U3C-DUjGXlIC.js} +1 -1
  97. package/dist/assets/model-config-page-BkfUYm95.js +1 -0
  98. package/dist/assets/{navigation-link-kGAcL2N2.js → navigation-link-v3FaWcIr.js} +1 -1
  99. package/dist/assets/{ordinal-BgLYtOZE.js → ordinal-CjoUCHto.js} +1 -1
  100. package/dist/assets/packet-7NZHBO7P-D19yoxFV.js +1 -0
  101. package/dist/assets/{pegDiagram-2B236MQR-BEu_ZBjc.js → pegDiagram-2B236MQR-BQY2DgiP.js} +1 -1
  102. package/dist/assets/pie-RZYD4A2V-hMaJbLrn.js +1 -0
  103. package/dist/assets/{pieDiagram-ENE6RG2P-CAwAwuBd.js → pieDiagram-ENE6RG2P-D18owe4D.js} +1 -1
  104. package/dist/assets/plus-Dw9QFnKr.js +1 -0
  105. package/dist/assets/{privacy-settings-page-v9LTFvJe.js → privacy-settings-page-CYM1Dxwo.js} +1 -1
  106. package/dist/assets/providers-config-page-fxL4I4bz.js +1 -0
  107. package/dist/assets/{quadrantDiagram-ABIIQ3AL-CwE6F-_2.js → quadrantDiagram-ABIIQ3AL-B8F7YoTA.js} +1 -1
  108. package/dist/assets/radar-I7S5WNFK-C8BkvScA.js +1 -0
  109. package/dist/assets/railroad-3IZDKUUU-CozZOitC.js +1 -0
  110. package/dist/assets/railroad-abnf-AHOZXSZD-BqIoFXFi.js +1 -0
  111. package/dist/assets/railroad-ebnf-EBAXGLYW-CD2e3dng.js +1 -0
  112. package/dist/assets/railroad-peg-LSFZ7HO6-DoKlRUOF.js +1 -0
  113. package/dist/assets/{railroadDiagram-RFXS5EU6-xgLekU3B.js → railroadDiagram-RFXS5EU6-RU8GpxN5.js} +1 -1
  114. package/dist/assets/{react-Dwvp5yeX.js → react-Dlz_IxoP.js} +1 -1
  115. package/dist/assets/{refresh-cw-C_oj_h_s.js → refresh-cw-CK4I5UFv.js} +1 -1
  116. package/dist/assets/remote-B0pPgtC6.js +1 -0
  117. package/dist/assets/{requirementDiagram-TGXJPOKE-CyVUzEX5.js → requirementDiagram-TGXJPOKE-ubPOmmNi.js} +1 -1
  118. package/dist/assets/rotate-cw-Z48dmh13.js +1 -0
  119. package/dist/assets/runtime-config-page-C7vksFVD.js +1 -0
  120. package/dist/assets/{sankeyDiagram-HTMAVEWB-JK6bFmYB.js → sankeyDiagram-HTMAVEWB-8L_hXJWW.js} +1 -1
  121. package/dist/assets/{save-BZE6H02N.js → save-Bo37cIFb.js} +1 -1
  122. package/dist/assets/{search-C7Tj40kC.js → search-CZiEm7YD.js} +1 -1
  123. package/dist/assets/search-config-page-DKdEf7m9.js +1 -0
  124. package/dist/assets/{secrets-config-page-B__VLAEQ.js → secrets-config-page-COlMqSfL.js} +2 -2
  125. package/dist/assets/security-config-CitLihXA.js +1 -0
  126. package/dist/assets/{select-fZ5tifar.js → select-BACzapV3.js} +1 -1
  127. package/dist/assets/{sequenceDiagram-DBY2YBRQ-BR5IokXV.js → sequenceDiagram-DBY2YBRQ-Dom6Qor5.js} +1 -1
  128. package/dist/assets/{sizeCapture-X5ZJPWSS-SxG_YnMA.js → sizeCapture-X5ZJPWSS-cZcFSpLJ.js} +1 -1
  129. package/dist/assets/skeleton-B2PCAZJG.js +1 -0
  130. package/dist/assets/{src-vgz8E_-O.js → src-BE9E1xcR.js} +1 -1
  131. package/dist/assets/{stateDiagram-2N3HPSRC-DD4OoYhn.js → stateDiagram-2N3HPSRC-CHrpxmGO.js} +1 -1
  132. package/dist/assets/stateDiagram-v2-6OUMAXLB-b1pZQlDD.js +1 -0
  133. package/dist/assets/{swimlanes-5IMT3BWC-BWkFeyCT.js → swimlanes-5IMT3BWC-D6nJS2xQ.js} +2 -2
  134. package/dist/assets/swimlanesDiagram-G3AALYLV-CowxgWVn.js +8 -0
  135. package/dist/assets/{tag-chip-CwYZcRoe.js → tag-chip-BnamTQVX.js} +1 -1
  136. package/dist/assets/{timeline-definition-FHXFAJF6-VTRPy6KA.js → timeline-definition-FHXFAJF6-DJNn-HQO.js} +1 -1
  137. package/dist/assets/treeView-QDETBFTQ-BQlYkJbz.js +1 -0
  138. package/dist/assets/treemap-6X3UGDF4-DzTOd1bd.js +1 -0
  139. package/dist/assets/{vennDiagram-L72KCM5P-Bvk42Pek.js → vennDiagram-L72KCM5P-CCEzHoXt.js} +1 -1
  140. package/dist/assets/wardley-OPB4EBWU-D80jQc0y.js +1 -0
  141. package/dist/assets/{wardleyDiagram-EHGQE667-DOFjx2s3.js → wardleyDiagram-EHGQE667-BhyVxVXt.js} +1 -1
  142. package/dist/assets/x-BzYEzkLA.js +1 -0
  143. package/dist/assets/{xychartDiagram-FW5EYKEG-DY5yRTUc.js → xychartDiagram-FW5EYKEG-CacW_246.js} +1 -1
  144. package/dist/index.html +70 -22
  145. package/index.html +49 -1
  146. package/package.json +8 -8
  147. package/src/app/index.tsx +1 -3
  148. package/src/app/managers/__tests__/viewport-layout.manager.test.ts +12 -0
  149. package/src/app/managers/viewport-layout.manager.ts +12 -0
  150. package/src/app/stores/viewport-layout.store.ts +23 -11
  151. package/src/features/apps/components/__tests__/app-marketplace-catalog.test.tsx +161 -0
  152. package/src/features/apps/components/app-marketplace-catalog.tsx +36 -7
  153. package/src/features/apps/components/app-marketplace-detail.tsx +29 -6
  154. package/src/features/apps/components/app-marketplace-dialog.tsx +71 -55
  155. package/src/features/apps/components/app-marketplace-operation.tsx +128 -16
  156. package/src/features/apps/components/app-packages-panel.tsx +1 -0
  157. package/src/features/apps/utils/app-marketplace-platform.utils.test.ts +59 -0
  158. package/src/features/apps/utils/app-marketplace-platform.utils.ts +33 -0
  159. package/src/features/chat/features/conversation/components/__tests__/session-conversation-area.test.tsx +6 -0
  160. package/src/features/chat/features/conversation/components/__tests__/session-conversation-input.streaming.test.tsx +6 -2
  161. package/src/features/chat/features/conversation/components/__tests__/session-queued-input-rows.test.tsx +46 -0
  162. package/src/features/chat/features/conversation/components/session-conversation-area.tsx +15 -2
  163. package/src/features/chat/features/conversation/components/session-conversation-input.tsx +5 -3
  164. package/src/features/chat/features/conversation/components/session-queued-input-rows.tsx +59 -5
  165. package/src/features/chat/features/conversation/hooks/__tests__/use-session-conversation-controller.test.tsx +35 -1
  166. package/src/features/chat/features/conversation/hooks/__tests__/use-session-run-queue.test.tsx +25 -19
  167. package/src/features/chat/features/conversation/hooks/use-session-conversation-controller.ts +148 -134
  168. package/src/features/chat/features/conversation/hooks/use-session-pending-input-actions.ts +135 -0
  169. package/src/features/chat/features/conversation/hooks/use-session-run-queue.ts +19 -4
  170. package/src/features/chat/features/conversation/utils/__tests__/session-queued-input.utils.test.ts +52 -2
  171. package/src/features/chat/features/conversation/utils/session-queued-input.utils.ts +46 -5
  172. package/src/features/chat/features/message/utils/chat-message-texts.utils.ts +1 -0
  173. package/src/features/chat/features/ncp/hooks/__tests__/use-hydrated-ncp-agent.test.tsx +102 -0
  174. package/src/features/chat/features/ncp/hooks/__tests__/use-ncp-session-conversation.test.tsx +117 -1
  175. package/src/features/chat/features/ncp/hooks/use-ncp-session-conversation.ts +2 -2
  176. package/src/features/chat/features/ncp/hooks/use-ncp-session-message-history.ts +31 -81
  177. package/src/features/chat/features/ncp/hooks/use-ncp-session-seed-loader.ts +134 -0
  178. package/src/features/chat/features/session/utils/ncp-session-adapter.utils.ts +1 -6
  179. package/src/features/panel-apps/components/__tests__/panel-app-list-item.test.tsx +8 -0
  180. package/src/features/panel-apps/components/__tests__/panel-app-main-sidebar-nav.test.tsx +99 -13
  181. package/src/features/panel-apps/components/panel-app-main-sidebar-menu-item.tsx +4 -0
  182. package/src/features/panel-apps/components/panel-app-main-sidebar-nav.tsx +166 -31
  183. package/src/shared/lib/api/utils/ncp-attachments.utils.ts +8 -1
  184. package/src/shared/lib/api/utils/ncp-session.utils.ts +1 -0
  185. package/src/shared/lib/i18n/locales/en-US/chat.json +3 -0
  186. package/src/shared/lib/i18n/locales/en-US/doc-browser.json +11 -1
  187. package/src/shared/lib/i18n/locales/zh-CN/chat.json +3 -0
  188. package/src/shared/lib/i18n/locales/zh-CN/doc-browser.json +11 -1
  189. package/src/vite-env.d.ts +9 -0
  190. package/dist/assets/architecture-TIHT7OUA-Bjp9jf0h.js +0 -1
  191. package/dist/assets/channel-5T3pdR-s.js +0 -1
  192. package/dist/assets/chat-page-BXu3hnOK.js +0 -1
  193. package/dist/assets/chunk-2Q5K7J3B-DTZ3tGfE.js +0 -1
  194. package/dist/assets/chunk-VAUOI2AC-HLGIHQ6k.js +0 -1
  195. package/dist/assets/chunk-XXDRQBXY-Dl0m6Ni-.js +0 -1
  196. package/dist/assets/classDiagram-OUVF2IWQ-DcDnzGNX.js +0 -1
  197. package/dist/assets/classDiagram-v2-EOCWNBFH-BKXKMzKM.js +0 -1
  198. package/dist/assets/cynefin-VYW2F7L2-BWg7U2UD.js +0 -1
  199. package/dist/assets/desktop-update-config-Blol-Umu.js +0 -1
  200. package/dist/assets/doc-browser-BExPq1Hk.js +0 -1
  201. package/dist/assets/eventmodeling-45OFAUF4-SB-J4tpq.js +0 -1
  202. package/dist/assets/flowDiagram-23GEKE2U-BQ_u-eLM.js +0 -1
  203. package/dist/assets/gitGraph-TEB2WS4Q-DPxNwsFd.js +0 -1
  204. package/dist/assets/index-Btj8yN4T.css +0 -1
  205. package/dist/assets/index-CHcGqqBe.js +0 -109
  206. package/dist/assets/info-DKCQHKI2-DNlNGH90.js +0 -1
  207. package/dist/assets/loader-circle-C75DUmmm.js +0 -1
  208. package/dist/assets/mcp-marketplace-page-CIMRYgOY.js +0 -9
  209. package/dist/assets/mcp-marketplace-page-D2NlhG1k.js +0 -1
  210. package/dist/assets/model-config-page-ChR-ENjp.js +0 -1
  211. package/dist/assets/packet-7NZHBO7P-BpeiqkBZ.js +0 -1
  212. package/dist/assets/pie-RZYD4A2V-Cy1yxsPd.js +0 -1
  213. package/dist/assets/plus-TzSIMKWW.js +0 -1
  214. package/dist/assets/provider-scoped-model-input-DiSpKSk0.js +0 -1
  215. package/dist/assets/providers-config-page-BvXa03cp.js +0 -1
  216. package/dist/assets/radar-I7S5WNFK-CEcPKCj8.js +0 -1
  217. package/dist/assets/railroad-3IZDKUUU-CW38eNDs.js +0 -1
  218. package/dist/assets/railroad-abnf-AHOZXSZD-ByrylcXf.js +0 -1
  219. package/dist/assets/railroad-ebnf-EBAXGLYW-CNB6GwP-.js +0 -1
  220. package/dist/assets/railroad-peg-LSFZ7HO6-x6hnqlBG.js +0 -1
  221. package/dist/assets/remote-BgYduCQR.js +0 -1
  222. package/dist/assets/rotate-cw-BT8HxlcB.js +0 -1
  223. package/dist/assets/runtime-config-page-BuYof2Ty.js +0 -1
  224. package/dist/assets/search-config-page-CQTJOsOf.js +0 -1
  225. package/dist/assets/security-config-CtJqaPVL.js +0 -1
  226. package/dist/assets/settings-2-BHGgNlOH.js +0 -1
  227. package/dist/assets/skeleton-CJLc1CWn.js +0 -1
  228. package/dist/assets/stateDiagram-v2-6OUMAXLB-ZC6dFORv.js +0 -1
  229. package/dist/assets/swimlanesDiagram-G3AALYLV-CRkh51Im.js +0 -8
  230. package/dist/assets/treeView-QDETBFTQ-Bw0DSCH7.js +0 -1
  231. package/dist/assets/treemap-6X3UGDF4-DFWBFcfh.js +0 -1
  232. package/dist/assets/wardley-OPB4EBWU-CoWturk0.js +0 -1
  233. package/dist/assets/x-BMl7cucN.js +0 -1
  234. /package/dist/assets/{array-NADKd9aU.js → array-COEOjKUv.js} +0 -0
  235. /package/dist/assets/{chunk-KEIR6QF5-BuyuzJJL.js → chunk-KEIR6QF5-D7oHAcry.js} +0 -0
  236. /package/dist/assets/{chunk-Y2CYZVJY-D_B2ZRNt.js → chunk-Y2CYZVJY-08IUpgTP.js} +0 -0
  237. /package/dist/assets/{config-hints-BcfVUMij.js → config-hints-BoE41XDI.js} +0 -0
  238. /package/dist/assets/{cytoscape.esm-BANTlgza.js → cytoscape.esm-HifWufkp.js} +0 -0
  239. /package/dist/assets/{defaultLocale-C4_L0aEs.js → defaultLocale-CA-_SsC1.js} +0 -0
  240. /package/dist/assets/{dist-DAPEIJbz.js → dist-C60rvfy8.js} +0 -0
  241. /package/dist/assets/{graphlib-ChqXg0dI.js → graphlib-CGYCNsoJ.js} +0 -0
  242. /package/dist/assets/{host-capabilities-D9C4CBK5.js → host-capabilities-DPNRAjIj.js} +0 -0
  243. /package/dist/assets/{init-D8wZg9xq.js → init-C3plFVsG.js} +0 -0
  244. /package/dist/assets/{jszip.min-CkbBfwAQ.js → jszip.min-CeYs17Gn.js} +0 -0
  245. /package/dist/assets/{katex-TZJFa0J_.js → katex-DRThweSG.js} +0 -0
  246. /package/dist/assets/{middleware-B3k-TSmZ.js → middleware-D05fK5Sb.js} +0 -0
  247. /package/dist/assets/{path-DodfxcX7.js → path-BKtKxQ6Y.js} +0 -0
  248. /package/dist/assets/{rough.esm-CUaa1Rbe.js → rough.esm-DurL7-u7.js} +0 -0
  249. /package/dist/assets/{xlsx-CxByi7bR.js → xlsx-Sg8fZ6nH.js} +0 -0
@@ -1,11 +1,30 @@
1
1
  import { useMemo, useState } from "react";
2
- import { MoreVertical } from "lucide-react";
2
+ import { ChevronDown, LayoutGrid, MoreVertical } from "lucide-react";
3
+ import { useLocation } from "react-router-dom";
4
+ import { viewportLayoutManager } from "@/app/managers/viewport-layout.manager";
5
+ import {
6
+ SIDEBAR_RAIL_ACTIVE_SURFACE_CLASS,
7
+ SIDEBAR_RAIL_CONTROL_CLASS,
8
+ SIDEBAR_RAIL_ICON_CLASS,
9
+ SIDEBAR_RAIL_SURFACE_CLASS,
10
+ } from "@/app/components/layout/sidebar-rail.styles";
3
11
  import { SidebarNavLinkItem } from "@/app/components/layout/sidebar-items";
4
- import { SIDEBAR_RAIL_STACK_CLASS } from "@/app/components/layout/sidebar-rail.styles";
12
+ import { useViewportLayoutStore } from "@/app/stores/viewport-layout.store";
5
13
  import { PanelAppIcon } from "@/features/panel-apps/components/panel-app-icon";
6
14
  import { PanelAppMainSidebarMenuItem } from "@/features/panel-apps/components/panel-app-main-sidebar-menu-item";
7
15
  import { usePanelApps } from "@/features/panel-apps/hooks/use-panel-apps";
8
- import { Popover, PopoverContent, PopoverTrigger } from "@/shared/components/ui/popover";
16
+ import { IconActionButton } from "@/shared/components/ui/actions/icon-action-button";
17
+ import {
18
+ Popover,
19
+ PopoverContent,
20
+ PopoverTrigger,
21
+ } from "@/shared/components/ui/popover";
22
+ import {
23
+ Tooltip,
24
+ TooltipContent,
25
+ TooltipProvider,
26
+ TooltipTrigger,
27
+ } from "@/shared/components/ui/tooltip";
9
28
  import type { PanelAppEntryView } from "@/shared/lib/api";
10
29
  import { t } from "@/shared/lib/i18n";
11
30
  import { cn } from "@/shared/lib/utils";
@@ -17,10 +36,11 @@ export function getMainSidebarPanelApps(
17
36
  ): PanelAppEntryView[] {
18
37
  return entries
19
38
  .filter((entry) => entry.mainSidebar)
20
- .sort((left, right) =>
21
- (left.mainSidebarOrder ?? MAIN_SIDEBAR_FALLBACK_ORDER) -
22
- (right.mainSidebarOrder ?? MAIN_SIDEBAR_FALLBACK_ORDER) ||
23
- left.title.localeCompare(right.title)
39
+ .sort(
40
+ (left, right) =>
41
+ (left.mainSidebarOrder ?? MAIN_SIDEBAR_FALLBACK_ORDER) -
42
+ (right.mainSidebarOrder ?? MAIN_SIDEBAR_FALLBACK_ORDER) ||
43
+ left.title.localeCompare(right.title),
24
44
  );
25
45
  }
26
46
 
@@ -34,62 +54,177 @@ export function PanelAppMainSidebarNav({
34
54
  () => getMainSidebarPanelApps(panelApps.data?.entries ?? []),
35
55
  [panelApps.data?.entries],
36
56
  );
57
+ const isGroupCollapsed = useViewportLayoutStore(
58
+ (state) => state.isMainSidebarAppGroupCollapsed,
59
+ );
37
60
 
38
61
  if (entries.length === 0) {
39
62
  return null;
40
63
  }
41
64
 
65
+ if (isCollapsed) {
66
+ return <PanelAppMainSidebarRailMenu entries={entries} />;
67
+ }
68
+
42
69
  return (
43
70
  <div
71
+ className="mt-1 border-t border-border/50 px-3 pt-1"
72
+ data-testid="panel-app-main-sidebar-nav"
73
+ >
74
+ <PanelAppMainSidebarGroupHeader
75
+ entries={entries}
76
+ isCollapsed={isGroupCollapsed}
77
+ />
78
+ {!isGroupCollapsed ? (
79
+ <ul className="mt-0.5 space-y-0.5">
80
+ {entries.map((entry) => (
81
+ <PanelAppMainSidebarNavItem key={entry.appId} entry={entry} />
82
+ ))}
83
+ </ul>
84
+ ) : null}
85
+ </div>
86
+ );
87
+ }
88
+
89
+ function getPanelAppTarget(appId: string): string {
90
+ return `/apps/panel/${encodeURIComponent(appId)}`;
91
+ }
92
+
93
+ function useHasActivePanelApp(entries: readonly PanelAppEntryView[]): boolean {
94
+ const { pathname } = useLocation();
95
+ return entries.some((entry) => pathname === getPanelAppTarget(entry.appId));
96
+ }
97
+
98
+ function PanelAppMainSidebarGroupHeader({
99
+ entries,
100
+ isCollapsed,
101
+ }: {
102
+ entries: readonly PanelAppEntryView[];
103
+ isCollapsed: boolean;
104
+ }) {
105
+ const isActive = useHasActivePanelApp(entries);
106
+ const actionLabel = isCollapsed
107
+ ? t("panelAppsMainSidebarGroupExpand")
108
+ : t("panelAppsMainSidebarGroupCollapse");
109
+ return (
110
+ <button
111
+ type="button"
112
+ aria-label={actionLabel}
113
+ aria-expanded={!isCollapsed}
44
114
  className={cn(
45
- "mt-1 border-t border-border/50 pt-1",
46
- isCollapsed ? "px-0" : "px-3",
115
+ "flex w-full items-center gap-2.5 rounded-lg px-2.5 py-1.5 text-left text-[13px] font-medium text-muted-foreground transition-colors hover:bg-gray-200/60 hover:text-gray-900 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border",
116
+ isCollapsed && isActive && "bg-gray-200/80 text-gray-900",
47
117
  )}
118
+ onClick={viewportLayoutManager.toggleMainSidebarAppGroupCollapsed}
119
+ >
120
+ <ChevronDown
121
+ aria-hidden="true"
122
+ className={cn(
123
+ "h-3.5 w-3.5 shrink-0 transition-transform",
124
+ isCollapsed && "-rotate-90",
125
+ )}
126
+ />
127
+ <span className="min-w-0 flex-1 truncate">
128
+ {t("panelAppsMainSidebarGroup")}
129
+ </span>
130
+ <span className="text-[11px] font-medium text-muted-foreground">
131
+ {entries.length}
132
+ </span>
133
+ </button>
134
+ );
135
+ }
136
+
137
+ function PanelAppMainSidebarRailMenu({
138
+ entries,
139
+ }: {
140
+ entries: PanelAppEntryView[];
141
+ }) {
142
+ const [isOpen, setIsOpen] = useState(false);
143
+ const isActive = useHasActivePanelApp(entries);
144
+ const label = t("panelAppsMainSidebarGroup");
145
+ return (
146
+ <div
147
+ className="mt-1 flex justify-center border-t border-border/50 pt-1"
48
148
  data-testid="panel-app-main-sidebar-nav"
49
149
  >
50
- <ul className={isCollapsed ? SIDEBAR_RAIL_STACK_CLASS : "space-y-0.5"}>
51
- {entries.map((entry) => (
52
- <PanelAppMainSidebarNavItem
53
- key={entry.appId}
54
- entry={entry}
55
- isCollapsed={isCollapsed}
56
- />
57
- ))}
58
- </ul>
150
+ <Popover open={isOpen} onOpenChange={setIsOpen}>
151
+ <TooltipProvider delayDuration={250}>
152
+ <Tooltip disableHoverableContent>
153
+ <TooltipTrigger asChild>
154
+ <PopoverTrigger asChild>
155
+ <IconActionButton
156
+ icon={<LayoutGrid className={SIDEBAR_RAIL_ICON_CLASS} />}
157
+ label={label}
158
+ tooltip={false}
159
+ className={cn(
160
+ SIDEBAR_RAIL_CONTROL_CLASS,
161
+ isActive
162
+ ? SIDEBAR_RAIL_ACTIVE_SURFACE_CLASS
163
+ : SIDEBAR_RAIL_SURFACE_CLASS,
164
+ )}
165
+ />
166
+ </PopoverTrigger>
167
+ </TooltipTrigger>
168
+ <TooltipContent side="right" className="text-xs">
169
+ {label}
170
+ </TooltipContent>
171
+ </Tooltip>
172
+ </TooltipProvider>
173
+ <PopoverContent
174
+ side="right"
175
+ align="start"
176
+ className="w-60 rounded-xl p-2"
177
+ >
178
+ <div className="flex items-center justify-between px-2 py-1 text-xs font-semibold text-muted-foreground">
179
+ <span>{label}</span>
180
+ <span className="font-medium text-muted-foreground/60">
181
+ {entries.length}
182
+ </span>
183
+ </div>
184
+ <ul className="mt-1 space-y-0.5">
185
+ {entries.map((entry) => (
186
+ <PanelAppMainSidebarNavItem
187
+ key={entry.appId}
188
+ entry={entry}
189
+ onNavigate={() => setIsOpen(false)}
190
+ />
191
+ ))}
192
+ </ul>
193
+ </PopoverContent>
194
+ </Popover>
59
195
  </div>
60
196
  );
61
197
  }
62
198
 
63
199
  function PanelAppMainSidebarNavItem({
64
200
  entry,
65
- isCollapsed,
201
+ onNavigate,
66
202
  }: {
67
203
  entry: PanelAppEntryView;
68
- isCollapsed: boolean;
204
+ onNavigate?: () => void;
69
205
  }) {
70
206
  const [isMenuOpen, setIsMenuOpen] = useState(false);
71
- const link = (
207
+ const linkItem = (
72
208
  <SidebarNavLinkItem
73
- to={`/apps/panel/${encodeURIComponent(entry.appId)}`}
209
+ to={getPanelAppTarget(entry.appId)}
74
210
  label={entry.title}
75
- iconNode={(
211
+ iconNode={
76
212
  <PanelAppIcon
77
213
  icon={entry.icon}
78
214
  title={entry.title}
79
215
  className="h-full w-full text-[13px]"
80
216
  imageClassName="rounded-[3px]"
81
217
  />
82
- )}
218
+ }
83
219
  density="compact"
84
- collapsed={isCollapsed}
85
- className={isCollapsed ? undefined : "rounded-lg py-1.5 pl-2.5 pr-9"}
220
+ className="rounded-lg py-1.5 pl-5 pr-9"
86
221
  />
87
222
  );
88
-
89
- if (isCollapsed) {
90
- return <li className="flex justify-center">{link}</li>;
91
- }
92
-
223
+ const link = onNavigate ? (
224
+ <div onClick={onNavigate}>{linkItem}</div>
225
+ ) : (
226
+ linkItem
227
+ );
93
228
  const menuLabel = `${t("panelAppsMoreActions")}: ${entry.title}`;
94
229
  return (
95
230
  <li>
@@ -1,5 +1,12 @@
1
1
  import type { NcpDraftAttachment } from "@nextclaw/ncp-react";
2
- import { nextclawClient } from "../managers/client.manager";
2
+
3
+ import { API_BASE } from "@/shared/lib/api/api-base";
4
+ import { nextclawClient } from "@/shared/lib/api/managers/client.manager";
5
+
6
+ export function buildNcpAssetContentUrl(assetUri: string): string {
7
+ const query = new URLSearchParams({ uri: assetUri });
8
+ return `${API_BASE}/api/ncp/assets/content?${query.toString()}`;
9
+ }
3
10
 
4
11
  export async function uploadNcpAssets(files: File[]): Promise<NcpDraftAttachment[]> {
5
12
  const payload = await nextclawClient.sessions.uploadAssets(files);
@@ -23,6 +23,7 @@ export async function fetchNcpSessionMessages(
23
23
  limit?: number;
24
24
  cursor?: string;
25
25
  toolPayload?: "summary";
26
+ initialPayload?: "compact";
26
27
  signal?: AbortSignal;
27
28
  } = {},
28
29
  ): Promise<NcpSessionMessagesView> {
@@ -417,6 +417,9 @@
417
417
  "chatQueuedSubmitting": "Adding to queue…",
418
418
  "chatQueuedEdit": "Edit queued input",
419
419
  "chatQueuedDelete": "Delete queued input",
420
+ "chatQueuedSteer": "Steer into the active run at its next step",
421
+ "chatQueuedEditComposerNotEmpty": "Send or clear the composer before editing this queued input",
422
+ "chatSteeringPending": "Waiting for the next step",
420
423
  "chatDeleteSession": "Delete Session",
421
424
  "chatDeleteSessionConfirm": "Delete the current session?",
422
425
  "chatSessionMoreActions": "More actions",
@@ -68,6 +68,14 @@
68
68
  "appPackagesIsolationLabel": "Runtime isolation",
69
69
  "appPackagesPlatformsLabel": "Supported platforms",
70
70
  "appPackagesAllPlatforms": "All platforms",
71
+ "appPackagesPlatformOnly": "{platforms} only",
72
+ "appPackagesUnavailableOnDevice": "Unavailable on this device",
73
+ "appPackagesUnavailable": "Unavailable",
74
+ "appPackagesTemporarilyUnavailable": "Temporarily unavailable",
75
+ "appPackagesCompatibilityUnknown": "Compatibility could not be confirmed",
76
+ "appPackagesCompatibilityUnknownReason": "NextClaw could not confirm whether this app supports this device. Refresh and try again.",
77
+ "appPackagesUnsupportedOsReason": "This app currently supports {platforms} only and cannot be installed on this device.",
78
+ "appPackagesUnsupportedTargetReason": "This app supports {platforms}, but no build is available for this device architecture.",
71
79
  "appPackagesIsolationPanel": "Isolated interface",
72
80
  "appPackagesIsolationMediated": "Host-mediated runtime",
73
81
  "appPackagesIsolationFullUser": "Runs with your user permissions",
@@ -112,7 +120,6 @@
112
120
  "appPackagesCompleted": "Completed",
113
121
  "appPackagesSwitchingVersion": "Switching version",
114
122
  "appPackagesUninstalling": "Uninstalling",
115
- "appPackagesRetry": "Retry",
116
123
  "appPackagesInstallCompleted": "App installed",
117
124
  "appPackagesUpdateCompleted": "App updated",
118
125
  "appPackagesAlreadyCurrent": "Already up to date",
@@ -165,6 +172,9 @@
165
172
  "panelAppsFavorite": "Favorite panel app",
166
173
  "panelAppsUnfavorite": "Unfavorite panel app",
167
174
  "panelAppsMoreActions": "More panel app actions",
175
+ "panelAppsMainSidebarGroup": "Apps",
176
+ "panelAppsMainSidebarGroupCollapse": "Collapse apps",
177
+ "panelAppsMainSidebarGroupExpand": "Expand apps",
168
178
  "panelAppsAddToMainSidebar": "Add to main sidebar",
169
179
  "panelAppsRemoveFromMainSidebar": "Remove from main sidebar",
170
180
  "panelAppsPreferenceUpdateFailed": "Could not update panel app preferences",
@@ -417,6 +417,9 @@
417
417
  "chatQueuedSubmitting": "正在加入队列…",
418
418
  "chatQueuedEdit": "编辑排队输入",
419
419
  "chatQueuedDelete": "删除排队输入",
420
+ "chatQueuedSteer": "插入当前运行的下一步",
421
+ "chatQueuedEditComposerNotEmpty": "请先发送或清空输入框,再编辑排队内容",
422
+ "chatSteeringPending": "等待进入下一步",
420
423
  "chatDeleteSession": "删除会话",
421
424
  "chatDeleteSessionConfirm": "确认删除当前会话?",
422
425
  "chatSessionMoreActions": "更多操作",
@@ -68,6 +68,14 @@
68
68
  "appPackagesIsolationLabel": "运行隔离",
69
69
  "appPackagesPlatformsLabel": "支持平台",
70
70
  "appPackagesAllPlatforms": "全部平台",
71
+ "appPackagesPlatformOnly": "仅支持 {platforms}",
72
+ "appPackagesUnavailableOnDevice": "这台设备无法安装",
73
+ "appPackagesUnavailable": "无法安装",
74
+ "appPackagesTemporarilyUnavailable": "暂无法安装",
75
+ "appPackagesCompatibilityUnknown": "暂时无法确认兼容性",
76
+ "appPackagesCompatibilityUnknownReason": "NextClaw 暂时无法确认这台设备是否支持此应用,请刷新后再试。",
77
+ "appPackagesUnsupportedOsReason": "此应用目前仅支持 {platforms},不能安装在这台设备上。",
78
+ "appPackagesUnsupportedTargetReason": "此应用支持 {platforms},但没有适配这台设备的系统架构。",
71
79
  "appPackagesIsolationPanel": "隔离界面",
72
80
  "appPackagesIsolationMediated": "受限运行",
73
81
  "appPackagesIsolationFullUser": "以当前用户权限运行",
@@ -112,7 +120,6 @@
112
120
  "appPackagesCompleted": "已完成",
113
121
  "appPackagesSwitchingVersion": "正在切换版本",
114
122
  "appPackagesUninstalling": "正在卸载",
115
- "appPackagesRetry": "重试",
116
123
  "appPackagesInstallCompleted": "应用已安装",
117
124
  "appPackagesUpdateCompleted": "应用已更新",
118
125
  "appPackagesAlreadyCurrent": "已经是最新版本",
@@ -165,6 +172,9 @@
165
172
  "panelAppsFavorite": "收藏面板应用",
166
173
  "panelAppsUnfavorite": "取消收藏面板应用",
167
174
  "panelAppsMoreActions": "更多面板应用操作",
175
+ "panelAppsMainSidebarGroup": "应用",
176
+ "panelAppsMainSidebarGroupCollapse": "收起应用",
177
+ "panelAppsMainSidebarGroupExpand": "展开应用",
168
178
  "panelAppsAddToMainSidebar": "添加到主侧栏",
169
179
  "panelAppsRemoveFromMainSidebar": "从主侧栏移除",
170
180
  "panelAppsPreferenceUpdateFailed": "无法更新面板应用设置",
package/src/vite-env.d.ts CHANGED
@@ -27,5 +27,14 @@ declare global {
27
27
 
28
28
  interface Window {
29
29
  nextclawDesktop?: NextClawDesktopBridge;
30
+ __NEXTCLAW_INITIAL_SESSION_MESSAGES_PREFETCH__?: {
31
+ consumed: boolean;
32
+ limit: number;
33
+ promise: Promise<{
34
+ responseOk: boolean;
35
+ payload: unknown;
36
+ } | null>;
37
+ sessionId: string;
38
+ };
30
39
  }
31
40
  }
@@ -1 +0,0 @@
1
- import"./chunk-KEIR6QF5-BuyuzJJL.js";import{n as e}from"./chunk-MOZMSUNE-C_6x18Qw.js";export{e as createArchitectureServices};
@@ -1 +0,0 @@
1
- import{at as e,ot as t}from"./chunk-WYO6CB5R-mOJNzbWl.js";var n=(n,r)=>t.lang.round(e.parse(n)[r]);export{n as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./chunk-DseTPa7n.js";import{B as t,F as n,H as r,L as i,a}from"./react-Dwvp5yeX.js";import{d as o,f as s,u as c}from"./navigation-link-kGAcL2N2.js";import{an as l,in as u,kt as d,nn as f,tn as p,un as m}from"./api-BH6Oslx4.js";import{g as h,h as g}from"./mcp-marketplace-page-CIMRYgOY.js";import{c as _}from"./dist-IRWcJpfm.js";import{C as v,a as y,i as b,n as x,r as S,t as C}from"./select-fZ5tifar.js";import{a as w,c as T,i as E,n as D,o as O,r as k,s as ee}from"./confirm-dialog-BCCreI_f.js";import{t as te}from"./provider-scoped-model-input-DiSpKSk0.js";import{t as A}from"./plus-TzSIMKWW.js";import{t as ne}from"./settings-2-BHGgNlOH.js";import{t as re}from"./tag-chip-CwYZcRoe.js";import{D as j,Ht as M,J as ie,Jt as ae,Kt as oe,Lt as se,O as N,Qt as P,Wt as ce,Y as le,Yt as ue,Zt as de,_ as F,_t as fe,a as pe,bt as I,ct as L,dt as me,et as he,ft as ge,g as _e,h as ve,ht as ye,i as be,it as xe,lt as Se,m as Ce,mt as R,nt as we,o as Te,pt as Ee,r as De,rt as Oe,s as ke,st as Ae,t as z,tt as je,u as Me,ut as B,vt as Ne,xt as V,z as Pe,zt as Fe}from"./index-CHcGqqBe.js";var Ie=_(`Gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),H=e(r(),1),U=t(),W=new Intl.NumberFormat;function Le({agent:e,defaults:t,runtimeOptions:n,defaultRuntime:r,defaultRuntimeLabel:i,onOpenChange:o,onEdit:s}){if(!e)return null;let c=G(e.model,t?.model),u=Re({agent:e,defaults:t,runtimeOptions:n,defaultRuntime:r,defaultRuntimeLabel:i}),d=K(e.contextTokens,t?.contextTokens??2e5),f=K(e.reservedContextTokens,t?.reservedContextTokens),p=K(e.maxToolIterations,t?.maxToolIterations??1e3),m=G(e.thinkingDefault,t?.thinkingDefault??`off`),h=J(e.runtimeConfig??e.engineConfig,t?.engineConfig),g=J(e.models,t?.models);return(0,U.jsx)(D,{open:e!==null,onOpenChange:o,children:(0,U.jsxs)(k,{className:`flex max-h-[calc(100vh-2rem)] flex-col overflow-hidden border-none bg-popover p-0 sm:max-h-[720px] sm:max-w-2xl`,children:[(0,U.jsx)(`div`,{className:`shrink-0 px-5 pb-3 pt-5`,children:(0,U.jsx)(O,{className:`text-left`,children:(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,U.jsx)(Oe,{agentId:e.id,displayName:e.displayName,avatarUrl:e.avatarUrl,className:`h-10 w-10 shrink-0`}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(ee,{className:`truncate text-base`,children:e.displayName?.trim()||e.id}),(0,U.jsxs)(E,{className:`truncate text-xs`,children:[`@`,e.id]})]})]})})}),(0,U.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-y-auto overscroll-contain px-5 py-3`,children:[(0,U.jsxs)(X,{icon:P,title:a(`agentsDetailsIdentitySection`),children:[(0,U.jsx)(Z,{label:a(`agentsDetailsFieldDisplayName`),value:e.displayName?.trim()||e.id}),(0,U.jsx)(Z,{label:a(`agentsDetailsFieldId`),value:e.id,mono:!0}),(0,U.jsx)(Z,{label:a(`agentsDetailsFieldDescription`),value:e.description?.trim()||a(`agentsDetailsEmptyValue`),wide:!0}),(0,U.jsx)(Z,{label:a(`agentsDetailsFieldWorkspace`),value:e.workspace??a(`agentsDetailsUnsetValue`),mono:!0,wide:!0})]}),(0,U.jsxs)(X,{icon:T,title:a(`agentsDetailsRuntimeSection`),children:[(0,U.jsx)(Z,{label:a(`agentsDetailsFieldModel`),value:c.value,source:c.source}),(0,U.jsx)(Z,{label:a(`agentsDetailsFieldRuntime`),value:u.value,source:u.source}),(0,U.jsx)(Z,{label:a(`agentsDetailsFieldRuntimeConfig`),value:h.value,source:h.source,mono:!0,prewrap:!0})]}),(0,U.jsxs)(X,{icon:Ie,title:a(`agentsDetailsContextSection`),children:[(0,U.jsx)(Z,{label:a(`agentsDetailsFieldContextTokens`),value:d.value,source:d.source}),(0,U.jsx)(Z,{label:a(`agentsDetailsFieldReservedContextTokens`),value:f.value,source:f.source}),(0,U.jsx)(Z,{label:a(`agentsDetailsFieldMaxToolIterations`),value:p.value,source:p.source})]}),(0,U.jsxs)(X,{icon:de,title:a(`agentsDetailsBehaviorSection`),children:[(0,U.jsx)(Z,{label:a(`agentsDetailsFieldThinkingDefault`),value:m.value,source:m.source}),(0,U.jsx)(Z,{label:a(`agentsDetailsFieldModelOverrides`),value:g.value,source:g.source,mono:!0,prewrap:!0}),(0,U.jsx)(Z,{label:a(`agentsDetailsFieldAvatar`),value:e.avatar??a(`agentsDetailsUnsetValue`),mono:!0})]})]}),(0,U.jsxs)(w,{className:`shrink-0 px-5 pb-4 pt-2`,children:[(0,U.jsx)(l,{type:`button`,variant:`ghost`,onClick:()=>o(!1),children:a(`cancel`)}),(0,U.jsxs)(l,{type:`button`,variant:`primary`,className:`px-4`,onClick:()=>s(e),children:[(0,U.jsx)(M,{className:`mr-2 h-4 w-4`}),a(`agentsDetailsEditAction`)]})]})]})})}function G(e,t){let n=e?.trim();return n?{value:n,source:`override`}:{value:t?.trim()||a(`agentsDetailsUnsetValue`),source:`default`}}function K(e,t){return typeof e==`number`?{value:W.format(e),source:`override`}:{value:typeof t==`number`?W.format(t):a(`agentsDetailsUnsetValue`),source:`default`}}function Re(e){let{agent:t,defaults:n,runtimeOptions:r,defaultRuntime:i,defaultRuntimeLabel:a}=e,o=t.runtime?.trim()||t.engine?.trim();if(o)return{value:q(o,r,a),source:`override`};let s=n?.engine?.trim()||i;return{value:s?q(s,r,a):a,source:`default`}}function q(e,t,n){let r=L(e);return r?t.find(e=>e.value===r)?.label??B(r):n}function J(e,t){return Y(e)?{value:JSON.stringify(e,null,2),source:`override`}:{value:Y(t)?JSON.stringify(t,null,2):a(`agentsDetailsUnsetValue`),source:`default`}}function Y(e){return!!(e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length>0)}function X(e){let{icon:t,title:n,children:r}=e;return(0,U.jsxs)(`section`,{className:`space-y-2 border-t border-border/60 pt-3 first:border-t-0 first:pt-0`,children:[(0,U.jsxs)(`h3`,{className:`flex items-center gap-1.5 text-xs font-semibold leading-5 text-foreground`,children:[(0,U.jsx)(t,{className:`h-3.5 w-3.5 text-muted-foreground`}),n]}),(0,U.jsx)(`dl`,{className:`grid min-w-0 gap-x-6 gap-y-2.5 pl-5 sm:grid-cols-2`,children:r})]})}function Z(e){let{label:t,value:n,source:r,mono:a=!1,prewrap:o=!1,wide:s=!1}=e,c=o&&n.trim().startsWith(`{`),l=a&&(!o||c);return(0,U.jsxs)(`div`,{className:i(`grid min-w-0 grid-cols-[10rem_minmax(0,1fr)] items-baseline gap-x-2`,(s||c)&&`sm:col-span-2`),children:[(0,U.jsx)(`dt`,{className:`flex min-w-0 items-baseline leading-5`,children:(0,U.jsx)(`span`,{className:`whitespace-nowrap text-xs font-medium text-muted-foreground`,children:t})}),(0,U.jsxs)(`dd`,{className:i(`min-w-0 break-words text-xs leading-5 text-foreground`,c?`max-h-28 overflow-auto whitespace-pre-wrap rounded bg-muted/50 px-2 py-1.5 text-left`:``),children:[(0,U.jsx)(`span`,{className:l?`font-mono`:void 0,children:n}),r?(0,U.jsx)(ze,{source:r}):null]})]})}function ze({source:e}){return(0,U.jsxs)(`span`,{className:i(`ml-1 whitespace-nowrap text-xs font-normal leading-5`,e===`override`?`text-blue-500`:`text-muted-foreground`),children:[`(`,a(e===`override`?`agentsDetailsAgentOverride`:`agentsDetailsInheritedDefault`),`)`]})}function Be({form:e,disabled:t=!1,onChange:n}){return(0,U.jsxs)(`details`,{className:`group rounded-2xl border border-border bg-card`,children:[(0,U.jsxs)(`summary`,{className:`flex cursor-pointer list-none items-center justify-between gap-3 px-4 py-3 text-sm font-semibold text-foreground [&::-webkit-details-marker]:hidden`,children:[(0,U.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(ne,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,U.jsx)(`span`,{className:`truncate`,children:a(`agentsAdvancedConfigToggle`)})]}),(0,U.jsx)(v,{className:`h-4 w-4 shrink-0 text-muted-foreground transition-transform group-open:rotate-180`})]}),(0,U.jsxs)(`div`,{className:`space-y-4 border-t border-border/60 px-4 py-4`,children:[(0,U.jsx)(`p`,{className:`text-xs leading-5 text-muted-foreground`,children:a(`agentsAdvancedConfigDescription`)}),(0,U.jsx)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:(0,U.jsx)(Ve,{label:a(`agentsAdvancedContextTokensLabel`),value:e.contextTokens,min:1e3,step:1e3,disabled:t,onChange:e=>n({contextTokens:e})})})]})]})}function Ve(e){let{label:t,value:n,min:r,step:i,disabled:o,onChange:s}=e;return(0,U.jsxs)(`label`,{className:`space-y-2 text-sm font-medium text-foreground`,children:[(0,U.jsx)(`span`,{children:t}),(0,U.jsx)(u,{type:`number`,min:r,step:i,value:n,disabled:o,placeholder:a(`agentsAdvancedInheritPlaceholder`),"aria-label":t,onChange:e=>s(e.target.value)})]})}function He(e){return{displayName:e.displayName??``,description:e.description??``,avatar:e.avatar??``,model:e.model??``,runtime:e.runtime??e.engine??``,contextTokens:Ue(e.contextTokens)}}function Ue(e){return typeof e==`number`?String(e):``}var We=H.forwardRef(({className:e,...t},n)=>(0,U.jsx)(`textarea`,{className:i(`flex min-h-28 w-full rounded-xl border border-border/75 bg-card px-3.5 py-2.5 text-sm text-foreground placeholder:text-muted-foreground/55 placeholder:font-normal transition-colors focus:outline-none focus:ring-0 disabled:cursor-not-allowed disabled:opacity-50`,e),ref:n,...t}));We.displayName=`Textarea`;function Ge(e){let{runtimeOptions:t,currentRuntime:n}=e,r=n.trim();if(!r)return t;let i=L(r);return t.some(e=>e.value===i)?t:[...t,{value:i,label:B(i),icon:null,ready:!1,reason:`unavailable`,reasonMessage:null,supportedModels:void 0,recommendedModel:null,cta:null}].sort((e,t)=>e.value===`native`?-1:t.value===`native`?1:e.value.localeCompare(t.value))}function Ke({value:e,disabled:t=!1,runtimeOptions:n,defaultRuntime:r,onChange:i}){let o=e.trim()?L(e):``,s=Ge({runtimeOptions:n,currentRuntime:e}),c=s.find(e=>e.value===o)??null,l=c?.reasonMessage?.trim()||(c?.ready===!1?a(`agentsRuntimeUnavailableHelp`):``);return(0,U.jsxs)(`div`,{className:`space-y-2`,children:[(0,U.jsxs)(C,{value:o||r,onValueChange:e=>i(e===r?``:e),disabled:t,children:[(0,U.jsx)(b,{"aria-label":a(`agentsCardRuntimeLabel`),className:`rounded-xl`,children:(0,U.jsx)(y,{placeholder:a(`agentsRuntimeSelectPlaceholder`)})}),(0,U.jsx)(x,{className:`rounded-xl`,children:s.map(e=>(0,U.jsx)(S,{value:e.value,disabled:e.ready===!1&&e.value!==o,className:`rounded-lg`,children:e.label},e.value))})]}),l?(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l}):null]})}function qe({agent:e,pending:t,providerCatalog:n,runtimeOptions:r,defaultRuntime:i,onOpenChange:a,onSubmit:o}){return(0,U.jsx)(D,{open:e!==null,onOpenChange:a,children:e?(0,U.jsx)(Je,{agent:e,pending:t,providerCatalog:n,runtimeOptions:r,defaultRuntime:i,onOpenChange:a,onSubmit:o},e.id):null})}function Je(e){let{agent:t,pending:n,providerCatalog:r,runtimeOptions:i,defaultRuntime:o,onOpenChange:s,onSubmit:c}=e,[d,f]=(0,H.useState)(He(t));return(0,U.jsxs)(k,{className:`flex max-h-[calc(100vh-2rem)] flex-col overflow-hidden border-none bg-popover p-0 sm:max-h-[760px] sm:max-w-xl`,children:[(0,U.jsx)(`div`,{className:`shrink-0 border-b border-border px-6 py-6`,children:(0,U.jsxs)(O,{className:`text-left`,children:[(0,U.jsx)(ee,{children:a(`agentsEditDialogTitle`)}),(0,U.jsx)(E,{children:a(`agentsEditDialogDescription`)})]})}),(0,U.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain px-6 py-6`,children:(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsx)(h,{tone:`warning`,title:a(`agentsEditHomeReadonly`),description:a(`agentsEditHomeReadonlyHint`),children:(0,U.jsx)(`div`,{className:`break-all text-sm text-amber-950`,children:t.workspace??`-`})}),(0,U.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[(0,U.jsx)(u,{value:d.displayName,onChange:e=>f(t=>({...t,displayName:e.target.value})),placeholder:a(`agentsFormNamePlaceholder`)}),(0,U.jsx)(We,{value:d.description,onChange:e=>f(t=>({...t,description:e.target.value})),placeholder:a(`agentsFormDescriptionPlaceholder`),rows:4,className:`md:col-span-2`}),(0,U.jsx)(u,{value:d.avatar,onChange:e=>f(t=>({...t,avatar:e.target.value})),placeholder:a(`agentsFormAvatarPlaceholder`)}),(0,U.jsx)(te,{value:d.model,onChange:e=>f(t=>({...t,model:e})),providerCatalog:r,disabled:n,className:`md:col-span-2`}),(0,U.jsx)(Ke,{value:d.runtime,onChange:e=>f(t=>({...t,runtime:e})),runtimeOptions:i,defaultRuntime:o,disabled:n})]}),(0,U.jsx)(Be,{form:d,disabled:n,onChange:e=>f(t=>({...t,...e}))})]})}),(0,U.jsxs)(w,{className:`shrink-0 border-t border-border px-6 py-5`,children:[(0,U.jsx)(l,{type:`button`,variant:`ghost`,onClick:()=>s(!1),disabled:n,children:a(`cancel`)}),(0,U.jsxs)(l,{type:`button`,variant:`primary`,className:`rounded-2xl px-5`,onClick:()=>c(t.id,d),disabled:n,children:[(0,U.jsx)(M,{className:`mr-2 h-4 w-4`}),a(`agentsEditSaveAction`)]})]})]})}var Ye=`请直接创建一个默认示例 Agent,不要问我问题。创建完成后,简单告诉我它能做什么。`;function Xe(e){let t=e.trim();if(!t)return null;let n=Number(t);if(!Number.isFinite(n))throw Error(a(`agentsAdvancedInvalidNumberError`));return Math.trunc(n)}function Ze(e){return{displayName:e.displayName,description:e.description,avatar:e.avatar,model:e.model,...e.runtime.trim()?{runtime:e.runtime.trim()}:{runtime:``},contextTokens:Xe(e.contextTokens)}}function Q(e){let{icon:t,label:n,disabled:r=!1,destructive:a=!1,onClick:o}=e;return(0,U.jsxs)(`button`,{type:`button`,className:i(`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-sm transition-colors disabled:cursor-not-allowed disabled:opacity-50`,a?`text-destructive hover:bg-destructive/10`:`text-foreground hover:bg-muted`),onClick:o,disabled:r,children:[(0,U.jsx)(t,{className:`h-4 w-4 shrink-0`}),(0,U.jsx)(`span`,{children:n})]})}function Qe(e){let{agent:t,runtimeOptions:n,defaultRuntimeLabel:r,updatePending:i,deletePending:o,onStartChat:s,onView:c,onEdit:u,onDelete:d}=e,f=t.runtime?.trim()||t.engine?.trim()||``,p=f?n.find(e=>e.value===L(f))?.label??B(f):r;return(0,U.jsx)(I,{className:`group overflow-hidden border border-border bg-card shadow-none transition-colors duration-200 hover:border-border/80`,children:(0,U.jsxs)(V,{className:`relative flex h-full flex-col gap-3 px-3.5 py-3.5`,children:[(0,U.jsxs)(`div`,{className:`flex items-start gap-2.5 pr-16`,children:[(0,U.jsx)(Oe,{agentId:t.id,displayName:t.displayName,avatarUrl:t.avatarUrl,className:`h-9 w-9 shrink-0`}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(`div`,{className:`truncate text-sm font-semibold text-foreground`,children:t.displayName?.trim()||t.id}),t.builtIn?(0,U.jsxs)(re,{tone:`warning`,className:`h-5 gap-1 border-amber-200 bg-amber-50 px-1.5 text-[10px] text-amber-700`,children:[(0,U.jsx)(Fe,{className:`h-3 w-3`}),a(`agentsCardBuiltInTag`)]}):null]}),(0,U.jsxs)(`div`,{className:`truncate text-xs text-muted-foreground`,children:[`@`,t.id]})]})]}),(0,U.jsxs)(`div`,{className:`absolute right-2.5 top-2.5 flex items-center gap-1 opacity-100 transition-opacity md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100`,children:[(0,U.jsx)(l,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-lg text-muted-foreground hover:text-foreground`,"aria-label":a(`agentsCardStartChat`),title:a(`agentsCardStartChat`),onClick:s,children:(0,U.jsx)(ce,{className:`h-4 w-4`})}),(0,U.jsxs)(ye,{children:[(0,U.jsx)(Ne,{asChild:!0,children:(0,U.jsx)(l,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-lg text-muted-foreground hover:text-foreground`,"aria-label":a(`chatSessionMoreActions`),title:a(`chatSessionMoreActions`),children:(0,U.jsx)(ue,{className:`h-4 w-4`})})}),(0,U.jsxs)(fe,{align:`end`,className:`w-44 p-1.5`,children:[(0,U.jsx)(Q,{icon:ae,label:a(`agentsViewDetailsAction`),onClick:c}),(0,U.jsx)(Q,{icon:M,label:a(`agentsEditAction`),onClick:u,disabled:i}),t.builtIn?null:(0,U.jsx)(Q,{icon:se,label:a(`agentsRemoveAction`),onClick:d,disabled:o,destructive:!0})]})]})]}),(0,U.jsx)(`p`,{className:`line-clamp-2 min-h-10 text-sm leading-5 text-muted-foreground`,children:t.description?.trim()||(t.builtIn?a(`agentsCardBuiltInSummary`):a(`agentsCardCustomSummary`))}),(0,U.jsxs)(`div`,{className:`mt-auto grid gap-2 border-t border-border/60 pt-2 text-xs text-muted-foreground`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(T,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground/60`}),(0,U.jsx)(`span`,{className:`truncate`,children:p})]}),(0,U.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,U.jsx)(oe,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground/60`}),(0,U.jsx)(`span`,{className:`truncate`,children:t.workspace??`-`})]})]})]})})}function $e(){let e=R(),t=he(),n=F(),r=N(),i=j(),o=De(),s=we(),c=je(),[u,d]=(0,H.useState)(null),[h,g]=(0,H.useState)(null),_=(0,H.useMemo)(()=>t.data?.agents??[],[t.data?.agents]),v=(0,H.useMemo)(()=>[..._].sort((e,t)=>Number(!!t.builtIn)-Number(!!e.builtIn)||e.id.localeCompare(t.id)),[_]),y=(0,H.useMemo)(()=>Pe({config:n.data,providersView:r.data,templatesView:i.data,onlyConfigured:!0}),[n.data,r.data,i.data]),b=(0,H.useMemo)(()=>Ae(o.data?.options??[]),[o.data?.options]),x=(0,H.useMemo)(()=>L(o.data?.defaultType??`native`),[o.data?.defaultType]),S=(0,H.useMemo)(()=>b.find(e=>e.value===x)?.label??B(x),[x,b]),C=n.data?.agents.defaults,w=e=>{d(e)},T=e=>{g(e)},E=async(e,t)=>{let n;try{n=Ze(t)}catch(e){m.error(e instanceof Error?e.message:a(`agentsAdvancedParseFailed`));return}await s.mutateAsync({agentId:e,data:n}),g(null)},D=t=>{e.chatSessionListManager.startAgentDraftChat(t.id,Se(t,x))},O=()=>{e.chatSessionListManager.startAgentDraftChat(`main`,x,Ye)};return(0,U.jsxs)(f,{className:`space-y-6`,children:[(0,U.jsx)(p,{headingLevel:1,title:a(`agentsHeroEyebrow`),description:a(`agentsHeroDescription`),actions:(0,U.jsxs)(l,{type:`button`,variant:`primary`,className:`h-9 shrink-0 rounded-xl px-4 text-sm font-semibold`,onClick:O,children:[(0,U.jsx)(A,{className:`mr-2 h-4 w-4`}),a(`agentsCreateButton`)]})}),(0,U.jsx)(`div`,{className:`grid gap-4 md:grid-cols-2 xl:grid-cols-3`,children:t.isLoading?(0,U.jsx)(I,{className:`md:col-span-2 xl:col-span-3 border-dashed border-border bg-card/70`,children:(0,U.jsx)(V,{className:`py-14 text-center text-sm text-muted-foreground`,children:a(`agentsLoading`)})}):v.length===0?(0,U.jsx)(I,{className:`md:col-span-2 xl:col-span-3 overflow-hidden border-dashed border-border bg-gradient-subtle`,children:(0,U.jsxs)(V,{className:`flex min-h-[240px] flex-col items-center justify-center px-6 py-14 text-center`,children:[(0,U.jsx)(`div`,{className:`mb-4 flex h-16 w-16 items-center justify-center rounded-full bg-card/80 shadow-[0_18px_44px_rgba(0,0,0,0.08)]`,children:(0,U.jsx)(P,{className:`h-8 w-8 text-warning`})}),(0,U.jsx)(`div`,{className:`text-lg font-semibold text-foreground`,children:a(`agentsEmpty`)}),(0,U.jsx)(`p`,{className:`mt-2 max-w-md text-sm leading-6 text-muted-foreground`,children:a(`agentsEmptyDescription`)}),(0,U.jsxs)(l,{type:`button`,variant:`primary`,className:`mt-5 rounded-2xl px-5`,onClick:O,children:[(0,U.jsx)(A,{className:`mr-2 h-4 w-4`}),a(`agentsCreateButton`)]})]})}):v.map(e=>(0,U.jsx)(Qe,{agent:e,runtimeOptions:b,defaultRuntimeLabel:S,updatePending:s.isPending,deletePending:c.isPending,onStartChat:()=>D(e),onView:()=>w(e),onEdit:()=>T(e),onDelete:()=>c.mutate({agentId:e.id})},e.id))}),(0,U.jsx)(Le,{agent:u,defaults:C,runtimeOptions:b,defaultRuntime:x,defaultRuntimeLabel:S,onOpenChange:e=>{e||d(null)},onEdit:e=>{d(null),g(e)}}),(0,U.jsx)(qe,{agent:h,pending:s.isPending,providerCatalog:y,runtimeOptions:b,defaultRuntime:x,onOpenChange:e=>{!e&&!s.isPending&&g(null)},onSubmit:E})]})}var $=`max-w-[min(1180px,100%)]`;function et(e){let{routeSessionKey:t,syncRouteSessionSelection:n}=e;(0,H.useLayoutEffect)(()=>{n(t)},[t,n])}function tt({view:e,confirmDialog:t}){let{isMobile:n}=_e();return(0,U.jsxs)(`div`,{className:`h-full flex`,children:[n?null:(0,U.jsx)(Te,{}),e===`chat`?n?(0,U.jsx)(ke,{}):(0,U.jsx)(Ce,{}):(0,U.jsx)(`section`,{className:`flex-1 min-h-0 overflow-hidden bg-background`,children:e===`inbox`?(0,U.jsx)(`div`,{className:`mx-auto flex h-full min-h-0 w-full flex-col py-4 sm:px-6 sm:py-5 ${$}`,children:(0,U.jsx)(Me,{})}):e===`panel-app`?(0,U.jsx)(ie,{}):e===`cron`?(0,U.jsx)(`div`,{className:`h-full overflow-auto custom-scrollbar`,children:(0,U.jsx)(`div`,{className:`mx-auto w-full px-4 py-4 sm:px-6 sm:py-5 ${$}`,children:(0,U.jsx)(ve,{})})}):e===`agents`?(0,U.jsx)(`div`,{className:`h-full overflow-auto custom-scrollbar`,children:(0,U.jsx)(`div`,{className:`mx-auto w-full px-4 py-4 sm:px-6 sm:py-5 ${$}`,children:(0,U.jsx)($e,{})})}):(0,U.jsx)(`div`,{className:`h-full overflow-hidden`,children:(0,U.jsx)(`div`,{className:`mx-auto flex h-full min-h-0 w-full flex-col px-4 py-4 sm:px-6 sm:py-5 ${$}`,children:(0,U.jsx)(le,{forcedType:`skills`})})})}),t]})}function nt(e){let t=R(),n=F(),r=N(),i=j(),a=ge({limit:200}),o=De(),s=e.sessionKey?.trim()||`draft-session`,c=me({sessionId:s});(0,H.useEffect)(()=>{t.chatQueryManager.syncSnapshot({configQuery:n,providersQuery:r,providerTemplatesQuery:i,sessionsQuery:a,sessionTypesQuery:o,sessionSkillsSessionId:s,sessionSkillsQuery:c})},[n,t.chatQueryManager,r,s,c,a,o,i])}function rt(){let e=R();(0,H.useEffect)(()=>d.eventBus.on(n.uiShowContent,t=>{e.chatThreadManager.handleUiShowContentEvent(t)}),[e])}function it(){let{sessionId:e}=s(),t=(0,H.useMemo)(()=>pe(e),[e]);return{routeSessionKey:t,sessionKey:t??void 0}}function at(){let e=R(),{confirm:t,ConfirmDialog:n}=g(),r=c(),i=o();return(0,H.useEffect)(()=>{e.chatUiManager.syncState({pathname:r.pathname}),e.chatUiManager.bindActions({navigate:i,confirm:t})},[t,r.pathname,i,e]),(0,U.jsx)(n,{})}function ot({view:e}){let t=z();return(0,U.jsx)(Ee,{presenter:(0,H.useMemo)(()=>new be(t),[t]),children:(0,U.jsx)(st,{view:e})})}function st({view:e}){let t=z(),n=R(),r=at(),{routeSessionKey:i,sessionKey:a}=it(),o=xe(e=>{let{snapshot:t}=e;return t.workspacePanelParentKey!==(a??null)||t.activeWorkspacePanelKind!==`child-session`?null:t.activeChildSessionKey?.trim()||null});return(0,H.useEffect)(()=>(t.chatCompletionNotificationManager.syncVisibleSessions([a,o]),()=>{t.chatCompletionNotificationManager.syncVisibleSessions([])}),[t.chatCompletionNotificationManager,a,o]),nt({sessionKey:a??null}),et({routeSessionKey:i,syncRouteSessionSelection:n.chatSessionListManager.syncRouteSessionSelection}),rt(),(0,U.jsx)(tt,{view:e,confirmDialog:r})}function ct({view:e}){return(0,U.jsx)(ot,{view:e})}export{ct as ChatPage};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-D_B2ZRNt.js";var t=class{constructor(e){this.init=e,this.records=this.init()}static{e(this,`ImperativeState`)}reset(){this.records=this.init()}};export{t};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-D_B2ZRNt.js";import{p as t}from"./src-vgz8E_-O.js";import{x as n}from"./chunk-WYO6CB5R-mOJNzbWl.js";var r=e(e=>{let{securityLevel:r}=n(),i=t(`body`);return r===`sandbox`&&(i=t((t(`#i${e}`).node()?.contentDocument??document).body)),i.select(`#${e}`)},`selectSvgElement`);export{r as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-D_B2ZRNt.js";import{p as t}from"./src-vgz8E_-O.js";var n=e((e,n)=>{let r;return n===`sandbox`&&(r=t(`#i`+e)),t(n===`sandbox`?r.nodes()[0].contentDocument.body:`body`).select(`[id="${e}"]`)},`getDiagramElement`);export{n as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-D_B2ZRNt.js";import"./src-vgz8E_-O.js";import"./chunk-WYO6CB5R-mOJNzbWl.js";import"./chunk-ICXQ74PX-Drxk_6bE.js";import"./chunk-HOUHSVGY-DG_GJih_.js";import"./chunk-Q4XR5HBZ-Da9BWfB6.js";import"./chunk-7BUUIJ7U-DzptcytQ.js";import"./chunk-OGEWGWER-N25BzCmG.js";import"./chunk-32BRIVSS-DR9M0LLx.js";import"./chunk-XXDRQBXY-Dl0m6Ni-.js";import"./chunk-VR4S4FIN-Xv6zfwXs.js";import"./chunk-C7G6YPKG-Bw1BwwuY.js";import"./chunk-ZGVPDNZ5-OJ8veMpK.js";import"./chunk-52WLFC77-698iC3BB.js";import"./chunk-FWX5IMBZ-B0SNoCmi.js";import{i as t,n,r,t as i}from"./chunk-V7JOEXUC-C9Nksccs.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import{n as e}from"./chunk-Y2CYZVJY-D_B2ZRNt.js";import"./src-vgz8E_-O.js";import"./chunk-WYO6CB5R-mOJNzbWl.js";import"./chunk-ICXQ74PX-Drxk_6bE.js";import"./chunk-HOUHSVGY-DG_GJih_.js";import"./chunk-Q4XR5HBZ-Da9BWfB6.js";import"./chunk-7BUUIJ7U-DzptcytQ.js";import"./chunk-OGEWGWER-N25BzCmG.js";import"./chunk-32BRIVSS-DR9M0LLx.js";import"./chunk-XXDRQBXY-Dl0m6Ni-.js";import"./chunk-VR4S4FIN-Xv6zfwXs.js";import"./chunk-C7G6YPKG-Bw1BwwuY.js";import"./chunk-ZGVPDNZ5-OJ8veMpK.js";import"./chunk-52WLFC77-698iC3BB.js";import"./chunk-FWX5IMBZ-B0SNoCmi.js";import{i as t,n,r,t as i}from"./chunk-V7JOEXUC-C9Nksccs.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
@@ -1 +0,0 @@
1
- import"./chunk-KEIR6QF5-BuyuzJJL.js";import{n as e}from"./chunk-OSBZ3O6U-ASDEm7y0.js";export{e as createCynefinServices};
@@ -1 +0,0 @@
1
- import{B as e,L as t,a as n,r,s as i}from"./react-Dwvp5yeX.js";import{t as a}from"./navigation-link-kGAcL2N2.js";import{$t as o,Ht as s,Lt as c,Qt as l,Rt as u,Vt as d,Zt as f,an as p,en as m,fn as h,zt as g}from"./api-BH6Oslx4.js";import{a as _,i as v,n as y,r as b,t as x}from"./select-fZ5tifar.js";import{t as S}from"./refresh-cw-C_oj_h_s.js";import{t as C}from"./rotate-cw-BT8HxlcB.js";import{Ct as w,St as T,bt as E,wt as D,xt as O}from"./index-CHcGqqBe.js";var k=e(),A={checking:`desktopUpdatesStatusChecking`,"update-available":`desktopUpdatesStatusAvailable`,downloading:`desktopUpdatesStatusDownloading`,downloaded:`desktopUpdatesStatusDownloaded`,applying:`desktopUpdatesStatusApplying`,"restart-required":`desktopUpdatesStatusRestartRequired`,"up-to-date":`desktopUpdatesStatusUpToDate`,blocked:`desktopUpdatesStatusBlocked`,failed:`desktopUpdatesStatusFailed`},j={feature:`desktopUpdatesReleaseNotesFeature`,enhancement:`desktopUpdatesReleaseNotesEnhancement`,fix:`desktopUpdatesReleaseNotesFix`,compatibility:`desktopUpdatesReleaseNotesCompatibility`};function M({snapshot:e}){return(0,k.jsx)(`span`,{className:t(`inline-flex rounded-full px-3 py-1 text-xs font-medium ring-1`,V(e.status)),children:B(e)})}function N({label:e,value:t}){return(0,k.jsxs)(`div`,{className:`rounded-lg bg-background/70 p-3`,children:[(0,k.jsx)(`p`,{className:`text-[11px] font-medium uppercase tracking-[0.08em] text-muted-foreground`,children:e}),(0,k.jsx)(`p`,{className:`mt-1 text-sm font-semibold text-foreground`,children:t})]})}function P({snapshot:e}){if(e.status!==`downloading`)return null;let t=e.progress?.percent,r=t==null?n(`desktopUpdatesDownloadProgressUnknown`):n(`desktopUpdatesDownloadProgressPercent`).replace(`{percent}`,String(t)),i=L(e.progress?.downloadedBytes??0,e.progress?.totalBytes??null);return(0,k.jsxs)(`div`,{className:`rounded-2xl border border-amber-200 bg-amber-50/70 p-4`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,k.jsx)(`p`,{className:`text-sm font-semibold text-amber-800`,children:r}),(0,k.jsx)(`p`,{className:`text-xs font-medium text-amber-700`,children:i})]}),(0,k.jsx)(`div`,{className:`mt-3 h-2 overflow-hidden rounded-full bg-amber-100`,children:(0,k.jsx)(`div`,{className:`h-full rounded-full bg-amber-500 transition-[width]`,style:{width:`${t??0}%`}})})]})}function F(e){return e?.trim()||`-`}function I(e){return e?r(e):`-`}function L(e,t){let n=R(e);return t&&t>0?`${n} / ${R(t)}`:n}function R(e){if(!Number.isFinite(e)||e<=0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n>=10||r===0?n.toFixed(0):n.toFixed(1)} ${t[r]}`}function z(e){return n(e===`beta`?`desktopUpdatesChannelBeta`:`desktopUpdatesChannelStable`)}function B(e){return e.status===`failed`&&e.failureStage?n(`desktopUpdatesFailureStage.${e.failureStage}`):n(A[e.status]??`desktopUpdatesStatusIdle`)}function V(e){return e===`downloaded`||e===`restart-required`?`bg-emerald-50 text-emerald-700 ring-emerald-100`:e===`update-available`||e===`downloading`||e===`checking`?`bg-amber-50 text-amber-700 ring-amber-100`:e===`failed`||e===`blocked`?`bg-red-50 text-red-700 ring-red-100`:`bg-gray-100 text-gray-700 ring-gray-200`}function H(){return i()===`zh`?`zh-CN`:`en-US`}function U(e,t){return u(e.title,t)??n(j[e.kind]??`desktopUpdatesReleaseNotesEnhancement`)}function W({snapshot:e}){let t=g(e),r=H(),i=h({queryKey:[`runtime-release-notes`,t],queryFn:async()=>await c(t??``),enabled:!!t,retry:!1,staleTime:300*1e3}),o=i.data,s=u(o?.title,r)??n(`desktopUpdatesReleaseNotesPreviewTitle`),l=u(o?.summary,r)??n(`desktopUpdatesReleaseNotesPreviewDescription`);return e.releaseNotesUrl?(0,k.jsxs)(E,{children:[(0,k.jsx)(w,{children:(0,k.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,k.jsxs)(`div`,{className:`space-y-1`,children:[(0,k.jsx)(D,{children:s}),(0,k.jsx)(T,{children:l})]}),(0,k.jsx)(a,{href:e.releaseNotesUrl,external:!0,children:n(`desktopUpdatesReleaseNotes`)})]})}),(0,k.jsxs)(O,{className:`space-y-4`,children:[i.isLoading?(0,k.jsx)(`p`,{className:`text-sm text-gray-500`,children:n(`desktopUpdatesReleaseNotesPreviewLoading`)}):null,!t||i.isError?(0,k.jsx)(`p`,{className:`text-sm text-gray-500`,children:n(`desktopUpdatesReleaseNotesPreviewUnavailable`)}):null,o?(0,k.jsx)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:o.sections.map(e=>(0,k.jsxs)(`div`,{className:`rounded-xl border border-gray-200 bg-gray-50/60 p-4`,children:[(0,k.jsx)(`p`,{className:`text-sm font-semibold text-gray-900`,children:U(e,r)}),(0,k.jsx)(`ul`,{className:`mt-3 space-y-3`,children:e.items.map((t,n)=>{let i=u(t.title,r),a=u(t.body,r);return(0,k.jsxs)(`li`,{className:`space-y-1`,children:[i?(0,k.jsx)(`p`,{className:`text-sm font-medium text-gray-800`,children:i}):null,a?(0,k.jsx)(`p`,{className:`text-sm leading-5 text-gray-600`,children:a}):null]},`${i??e.kind}-${n}`)})})]},e.kind))}):null]})]}):null}function G(){return(0,k.jsx)(m,{title:n(`runtimeUpdatesPageTitle`),description:n(`runtimeUpdatesPageDescription`),children:(0,k.jsx)(o,{title:n(`runtimeUpdatesUnavailableTitle`),description:n(`runtimeUpdatesUnavailableDescription`),children:(0,k.jsx)(l,{children:(0,k.jsx)(`p`,{className:`p-4 text-sm text-muted-foreground`,children:n(`runtimeUpdatesUnavailableHint`)})})})})}function K(){let{supported:e,initialized:r,busyAction:i,snapshot:a}=s();if(!r)return(0,k.jsx)(m,{title:n(`runtimeUpdatesPageTitle`),description:n(`runtimeUpdatesPageDescription`),children:(0,k.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:n(`loading`)})});if(!e||!a)return(0,k.jsx)(G,{});let c=i===`checking`,u=i===`downloading`,h=i===`applying`,g=i===`updating`,w=i===`switching-channel`,T=(a.status===`update-available`||a.status===`downloaded`)&&!u&&!h&&!g,E=[[n(`runtimeUpdatesHostVersion`),F(a.hostVersion)],[n(`desktopUpdatesCurrentBundleVersion`),F(a.currentVersion)],[n(`desktopUpdatesAvailableVersion`),F(a.availableVersion)],[n(`desktopUpdatesLastCheckedAt`),I(a.lastCheckedAt)],[n(`desktopUpdatesCurrentChannel`),z(a.channel)]];return(0,k.jsxs)(m,{title:n(`runtimeUpdatesPageTitle`),description:n(`runtimeUpdatesPageDescription`),actions:(0,k.jsxs)(p,{variant:`outline`,onClick:()=>void d.checkForUpdates(),disabled:c||u||h||g,children:[(0,k.jsx)(S,{className:t(`mr-2 h-4 w-4`,c&&`animate-spin`)}),n(`desktopUpdatesCheckNow`)]}),children:[(0,k.jsx)(o,{title:n(`desktopUpdatesOverviewTitle`),description:n(`desktopUpdatesOverviewDescription`),children:(0,k.jsx)(l,{children:(0,k.jsxs)(`div`,{className:`space-y-4 p-4`,children:[(0,k.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,k.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:n(`desktopUpdatesStatusLabel`)}),(0,k.jsx)(M,{snapshot:a})]}),(0,k.jsx)(`div`,{className:`grid gap-4 md:grid-cols-2 xl:grid-cols-5`,children:E.map(([e,t])=>(0,k.jsx)(N,{label:e,value:t},e))}),a.channel===`beta`?(0,k.jsxs)(`div`,{className:`rounded-2xl border border-amber-200 bg-amber-50/70 p-4`,children:[(0,k.jsx)(`p`,{className:`text-sm font-semibold text-amber-800`,children:n(`desktopUpdatesBetaBadgeTitle`)}),(0,k.jsx)(`p`,{className:`mt-1 text-sm text-amber-700`,children:n(`desktopUpdatesBetaBadgeDescription`)})]}):null,a.downloadedVersion?(0,k.jsxs)(`div`,{className:`rounded-2xl border border-emerald-200 bg-emerald-50/70 p-4`,children:[(0,k.jsx)(`p`,{className:`text-sm font-semibold text-emerald-800`,children:n(`desktopUpdatesDownloadedBannerTitle`)}),(0,k.jsx)(`p`,{className:`mt-1 text-sm text-emerald-700`,children:n(`runtimeUpdatesDownloadedBannerDescription`).replace(`{version}`,a.downloadedVersion)})]}):null,(0,k.jsx)(P,{snapshot:a}),a.status===`blocked`?(0,k.jsxs)(`div`,{className:`rounded-2xl border border-red-200 bg-red-50/70 p-4`,children:[(0,k.jsx)(`p`,{className:`text-sm font-semibold text-red-800`,children:n(`desktopUpdatesBlockedTitle`)}),(0,k.jsx)(`p`,{className:`mt-1 text-sm text-red-700`,children:a.errorMessage??n(`desktopUpdatesBlockedDescription`)}),a.recoveryCommand?(0,k.jsx)(`code`,{className:`mt-3 block rounded-lg bg-white/70 px-3 py-2 text-xs text-red-800`,children:a.recoveryCommand}):null]}):null,a.errorMessage&&a.status!==`blocked`?(0,k.jsx)(`div`,{className:`rounded-2xl border border-red-200 bg-red-50/70 p-4 text-sm text-red-700`,children:a.errorMessage}):null]})})}),(0,k.jsx)(W,{snapshot:a}),(0,k.jsx)(o,{title:n(`desktopUpdatesChannelSettingsTitle`),description:n(`desktopUpdatesChannelSettingsDescription`),children:(0,k.jsx)(l,{children:(0,k.jsx)(f,{title:n(`desktopUpdatesReleaseChannel`),description:n(`desktopUpdatesReleaseChannelHelp`),layout:`stacked`,children:(0,k.jsxs)(`div`,{className:`space-y-2`,children:[(0,k.jsxs)(x,{value:a.channel,disabled:w||c||u||h||g,onValueChange:e=>void d.updateChannel(e),children:[(0,k.jsx)(v,{className:`w-full max-w-sm`,children:(0,k.jsx)(_,{placeholder:n(`desktopUpdatesReleaseChannel`)})}),(0,k.jsxs)(y,{children:[(0,k.jsx)(b,{value:`stable`,children:n(`desktopUpdatesChannelStable`)}),(0,k.jsx)(b,{value:`beta`,children:n(`desktopUpdatesChannelBeta`)})]})]}),(0,k.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`desktopUpdatesReleaseChannelDowngradeHint`)})]})})})}),(0,k.jsx)(o,{title:n(`desktopUpdatesActionsTitle`),description:n(`runtimeUpdatesActionsDescription`),children:(0,k.jsx)(l,{children:(0,k.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 p-4`,children:[(0,k.jsxs)(p,{variant:`outline`,onClick:()=>void d.checkForUpdates(),disabled:c||u||h||g,children:[(0,k.jsx)(S,{className:t(`mr-2 h-4 w-4`,c&&`animate-spin`)}),n(`desktopUpdatesCheckNow`)]}),(0,k.jsxs)(p,{onClick:()=>void d.updateNow(),disabled:!T,children:[(0,k.jsx)(C,{className:t(`mr-2 h-4 w-4`,g&&`animate-spin`)}),n(`runtimeUpdatesApplyNow`)]})]})})})]})}export{K as DesktopUpdateConfig};
@@ -1 +0,0 @@
1
- import{t as e}from"./doc-browser-D8rNrWHk.js";export{e as DocBrowser};
@@ -1 +0,0 @@
1
- import"./chunk-KEIR6QF5-BuyuzJJL.js";import{n as e}from"./chunk-5JV3BV7I-CEHufhgo.js";export{e as createEventModelingServices};
@@ -1 +0,0 @@
1
- import"./src-vgz8E_-O.js";import"./chunk-WYO6CB5R-mOJNzbWl.js";import"./chunk-ICXQ74PX-Drxk_6bE.js";import"./chunk-HOUHSVGY-DG_GJih_.js";import"./chunk-Q4XR5HBZ-Da9BWfB6.js";import"./chunk-7BUUIJ7U-DzptcytQ.js";import"./chunk-OGEWGWER-N25BzCmG.js";import"./chunk-32BRIVSS-DR9M0LLx.js";import"./chunk-XXDRQBXY-Dl0m6Ni-.js";import"./chunk-VR4S4FIN-Xv6zfwXs.js";import"./chunk-C7G6YPKG-Bw1BwwuY.js";import"./chunk-ZGVPDNZ5-OJ8veMpK.js";import"./chunk-52WLFC77-698iC3BB.js";import"./chunk-FWX5IMBZ-B0SNoCmi.js";import"./chunk-ZIRB5QZD-SR_Nq_PP.js";import{n as e}from"./chunk-PUDLZKDR-CTlvAcn7.js";export{e as diagram};
@@ -1 +0,0 @@
1
- import"./chunk-KEIR6QF5-BuyuzJJL.js";import{n as e}from"./chunk-CYSBUYHQ-ByPyAouO.js";export{e as createGitGraphServices};