@xopcai/xopc 0.0.421 → 0.0.422

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 (279) hide show
  1. package/dist/browser-ext/dist/background.js +184 -2
  2. package/dist/browser-ext/dist/sidepanel.js +9 -0
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/telegram/xopc.extension.json +1 -1
  5. package/dist/gateway/static/root/assets/{activity-store-CKrylgib.js → activity-store-CvJ9rdwP.js} +1 -1
  6. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Dv5Rda4y.js → agent-avatar-dicebear-CFP6g4w7.js} +1 -1
  7. package/dist/gateway/static/root/assets/{agent-avatar-display-B1ycycx2.js → agent-avatar-display-BHBe88Gu.js} +2 -2
  8. package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-D285zy0S.js → agent-defaults-settings-panel-DlGRuKMv.js} +1 -1
  9. package/dist/gateway/static/root/assets/{agent-plugin-dialog-D3yCqVan.js → agent-plugin-dialog-C_Dm-u6_.js} +1 -1
  10. package/dist/gateway/static/root/assets/{agents-DyAuR3rG.js → agents-BdVJHOiK.js} +3 -3
  11. package/dist/gateway/static/root/assets/{agents-admin-api-CASGzvkW.js → agents-admin-api-Do1Pza0R.js} +1 -1
  12. package/dist/gateway/static/root/assets/{api-Uk05lF9i.js → api-BQv5dLcH.js} +1 -1
  13. package/dist/gateway/static/root/assets/{api-C4LxuNzq.js → api-ONg37_fH.js} +1 -1
  14. package/dist/gateway/static/root/assets/app-link-1j40sJ-z.js +1 -0
  15. package/dist/gateway/static/root/assets/{app-management-settings-panel-CDnZNKHt.js → app-management-settings-panel-B4Wqhf4J.js} +1 -1
  16. package/dist/gateway/static/root/assets/{appearance-settings-CmCF7PZ5.js → appearance-settings-Dm1kRzKL.js} +1 -1
  17. package/dist/gateway/static/root/assets/{apps-page-BR9qoA2P.js → apps-page-D1MMk1P7.js} +1 -1
  18. package/dist/gateway/static/root/assets/{archive-plugin-nuHYYVty.js → archive-plugin-p_yLkyaC.js} +1 -1
  19. package/dist/gateway/static/root/assets/{automation-api-DtJfd1QM.js → automation-api-DQaWBR03.js} +1 -1
  20. package/dist/gateway/static/root/assets/automation-result-state-CO_243JM.js +1 -0
  21. package/dist/gateway/static/root/assets/automation-task-card-D2p9qlYE.js +3 -0
  22. package/dist/gateway/static/root/assets/{automations-page-DM4IdUJh.js → automations-page-Ba64H37d.js} +1 -1
  23. package/dist/gateway/static/root/assets/automations-workspace-BkzC3oIM.js +9 -0
  24. package/dist/gateway/static/root/assets/{binary-plugins-CHCAr8jt.js → binary-plugins-B-6kyqtt.js} +1 -1
  25. package/dist/gateway/static/root/assets/{block-editor-B0v8KxsO.js → block-editor-B5ysJ96n.js} +1 -1
  26. package/dist/gateway/static/root/assets/{browser-automation-inputs-DjUW7PEB.js → browser-automation-inputs-C2A3NIt3.js} +1 -1
  27. package/dist/gateway/static/root/assets/{browser-automations-page-Cf8AoQz1.js → browser-automations-page-CnbXFw1_.js} +1 -1
  28. package/dist/gateway/static/root/assets/{browser-control-api-C6NZgaA1.js → browser-control-api-Aj_seKE9.js} +1 -1
  29. package/dist/gateway/static/root/assets/{browser-settings-page-DV2FNEDf.js → browser-settings-page-C7fxPq_z.js} +1 -1
  30. package/dist/gateway/static/root/assets/{capabilities-CwdjWz2r.js → capabilities-BgtCwC_E.js} +1 -1
  31. package/dist/gateway/static/root/assets/{capabilities-D0-HCZ5J.js → capabilities-DOTgaSgA.js} +1 -1
  32. package/dist/gateway/static/root/assets/{capabilities-page-DwDkritH.js → capabilities-page-m3b9sLFG.js} +2 -2
  33. package/dist/gateway/static/root/assets/{capabilities-settings-panel-mme16Fbp.js → capabilities-settings-panel-pYWZtPeU.js} +3 -3
  34. package/dist/gateway/static/root/assets/{channels-lKFLu8p-.js → channels-DGpRM6pj.js} +1 -1
  35. package/dist/gateway/static/root/assets/{chat-agents-api-l80cvSac.js → chat-agents-api-EvJ_Wvuc.js} +1 -1
  36. package/dist/gateway/static/root/assets/{chat-chart-block-BwP5QXEk.js → chat-chart-block-BQDbHLcw.js} +1 -1
  37. package/dist/gateway/static/root/assets/chat-page-GF9NIuZN.js +72 -0
  38. package/dist/gateway/static/root/assets/{chat-terminal-dock-D2bV9YUL.js → chat-terminal-dock-DHFTGoEp.js} +2 -2
  39. package/dist/gateway/static/root/assets/{command-palette-api-CtapG8ck.js → command-palette-api-DPA_yEuy.js} +1 -1
  40. package/dist/gateway/static/root/assets/{composer-payload-handoff-DYuhKZRC.js → composer-payload-handoff-BTjauSNp.js} +1 -1
  41. package/dist/gateway/static/root/assets/{computer-settings-page-DZtMuihL.js → computer-settings-page-BFSSQfcx.js} +1 -1
  42. package/dist/gateway/static/root/assets/{connected-providers-grid-BQH5k3iC.js → connected-providers-grid-DM2glQN3.js} +1 -1
  43. package/dist/gateway/static/root/assets/{connector-service-page-DrvFdP3G.js → connector-service-page-CFvg58qa.js} +1 -1
  44. package/dist/gateway/static/root/assets/{connectors-api-BzkgVBYC.js → connectors-api-CbC6Yht5.js} +1 -1
  45. package/dist/gateway/static/root/assets/{connectors-page-BtRNVCFy.js → connectors-page-D7pipFHA.js} +1 -1
  46. package/dist/gateway/static/root/assets/date-picker-Dd3MbG0x.js +1 -0
  47. package/dist/gateway/static/root/assets/{dependency-picker-Dh8hPmsT.js → dependency-picker-DcsHg2ml.js} +1 -1
  48. package/dist/gateway/static/root/assets/{desktop-pet-CFz8bqyI.js → desktop-pet-DldzQT2h.js} +1 -1
  49. package/dist/gateway/static/root/assets/{desktop-pet-settings-COaboNn1.js → desktop-pet-settings-CYdI4KxB.js} +1 -1
  50. package/dist/gateway/static/root/assets/{dev-view-store-D8XYHVqG.js → dev-view-store-JiJv585f.js} +1 -1
  51. package/dist/gateway/static/root/assets/device-pairing-wizard-D8cLc41G.js +1 -0
  52. package/dist/gateway/static/root/assets/{directory-picker-path-field-Cjv7rdo3.js → directory-picker-path-field-8WOXv8zw.js} +1 -1
  53. package/dist/gateway/static/root/assets/{discussion-annotation-sync-YvlVw17j.js → discussion-annotation-sync-B-grSe0w.js} +1 -1
  54. package/dist/gateway/static/root/assets/{extension-debug-page-CXx3m5-B.js → extension-debug-page-EEQkTNEu.js} +1 -1
  55. package/dist/gateway/static/root/assets/{extension-iframe-host-CnOdNwbo.js → extension-iframe-host-vlZVeMCY.js} +1 -1
  56. package/dist/gateway/static/root/assets/{extension-marketplace-api-BABmUY2s.js → extension-marketplace-api-_o2In_al.js} +1 -1
  57. package/dist/gateway/static/root/assets/{extension-page-C1nGr4DD.js → extension-page-CPrT111s.js} +1 -1
  58. package/dist/gateway/static/root/assets/{extension-provider-BA0Y2Rvs.js → extension-provider-B2Mf3FBu.js} +1 -1
  59. package/dist/gateway/static/root/assets/{extension-settings-page-QIPI8e7k.js → extension-settings-page-CznJEgWV.js} +1 -1
  60. package/dist/gateway/static/root/assets/{file-preview-surface-BsB7bnFH.js → file-preview-surface-7h8_fZul.js} +1 -1
  61. package/dist/gateway/static/root/assets/{gateway-config-swr-Bt8w0Iio.js → gateway-config-swr-DbbNEOKj.js} +1 -1
  62. package/dist/gateway/static/root/assets/{gateway-realtime-CyCCNUxm.js → gateway-realtime-D20ZrAuM.js} +1 -1
  63. package/dist/gateway/static/root/assets/gateway-realtime-store-C6sMzYDT.js +1 -0
  64. package/dist/gateway/static/root/assets/{gateway-restart-Ty4AzDxa.js → gateway-restart-5ut-lhJm.js} +1 -1
  65. package/dist/gateway/static/root/assets/{gateway-settings-BvKq7vuz.js → gateway-settings-BCf_cibp.js} +1 -1
  66. package/dist/gateway/static/root/assets/{gateway-startup-retry-N3k-C7c2.js → gateway-startup-retry-DlHL0DpH.js} +1 -1
  67. package/dist/gateway/static/root/assets/{global-defaults-api-D8EB2vfY.js → global-defaults-api-CmODomcV.js} +1 -1
  68. package/dist/gateway/static/root/assets/{home-page-eRuAzi58.js → home-page-uz22TRB-.js} +2 -2
  69. package/dist/gateway/static/root/assets/{image-generation-api-C99Fsofm.js → image-generation-api-dzPnpUFu.js} +1 -1
  70. package/dist/gateway/static/root/assets/{imports-page-Cp9RquVb.js → imports-page-ChBoNMyE.js} +1 -1
  71. package/dist/gateway/static/root/assets/index-CSIg7V1A.js +11 -0
  72. package/dist/gateway/static/root/assets/index-Dv8mUlNN.css +1 -0
  73. package/dist/gateway/static/root/assets/{install-connector-dialog-CsoAidXp.js → install-connector-dialog-CNcdQDX0.js} +1 -1
  74. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DFhOP2aD.js → keyboard-shortcuts-settings-CRbYq2_g.js} +1 -1
  75. package/dist/gateway/static/root/assets/{local-app-workbench-page-DbtU_A-l.js → local-app-workbench-page-04cX5TJu.js} +1 -1
  76. package/dist/gateway/static/root/assets/{local-apps-page-rjhHfLpe.js → local-apps-page-fWM0FEhN.js} +1 -1
  77. package/dist/gateway/static/root/assets/{local-session-drafts-DHM4vWDO.js → local-session-drafts-ClrSe5mH.js} +1 -1
  78. package/dist/gateway/static/root/assets/{locale-store-5Hf8J8-_.js → locale-store-VNjH18Dj.js} +1 -1
  79. package/dist/gateway/static/root/assets/{logs-page-Dx_JIOpF.js → logs-page-6GanGLrm.js} +1 -1
  80. package/dist/gateway/static/root/assets/management-settings-BxD_lc4E.js +1 -0
  81. package/dist/gateway/static/root/assets/{markdown-view-pzSRu7av.js → markdown-view-DLCBYWtx.js} +2 -2
  82. package/dist/gateway/static/root/assets/{media-plugins-3cJuHbO7.js → media-plugins-BvtNwKFb.js} +1 -1
  83. package/dist/gateway/static/root/assets/{messages-uXxg5p54.js → messages-Btr7C0hF.js} +2 -2
  84. package/dist/gateway/static/root/assets/{model-selector-ksLo-5B_.js → model-selector-DYUnp917.js} +1 -1
  85. package/dist/gateway/static/root/assets/{models-hub-cache-DhZng2nF.js → models-hub-cache-_qE7L-_H.js} +1 -1
  86. package/dist/gateway/static/root/assets/{note-detail-panel-B6RbjwJq.js → note-detail-panel-bjRZesmS.js} +3 -3
  87. package/dist/gateway/static/root/assets/note-image-lightbox-D7Jqb75C.js +1 -0
  88. package/dist/gateway/static/root/assets/{notes-api-DocbsBbT.js → notes-api-Bxa11X3a.js} +1 -1
  89. package/dist/gateway/static/root/assets/{notes-page-B7889s6-.js → notes-page-D2QpJ3WZ.js} +1 -1
  90. package/dist/gateway/static/root/assets/{oauth-api-CCFIPbA0.js → oauth-api-DIE4UpP7.js} +1 -1
  91. package/dist/gateway/static/root/assets/{oauth-provider-connect-GxkF0vWJ.js → oauth-provider-connect-B95tiddN.js} +1 -1
  92. package/dist/gateway/static/root/assets/{page-context-capture-button-CvWLVeRA.js → page-context-capture-button-C-QbbwmN.js} +1 -1
  93. package/dist/gateway/static/root/assets/{page-context-draft-CMRDNv4d.js → page-context-draft-BHmOfksL.js} +1 -1
  94. package/dist/gateway/static/root/assets/page-header-store-bPV8_tKL.js +1 -0
  95. package/dist/gateway/static/root/assets/{personal-avatar-CqNJ48Ge.js → personal-avatar-nXrmMfrV.js} +1 -1
  96. package/dist/gateway/static/root/assets/personal-page-BCwlYT3F.js +1 -0
  97. package/dist/gateway/static/root/assets/{personal-settings-panel-DAcl8DU4.js → personal-settings-panel-vkYmXK8h.js} +1 -1
  98. package/dist/gateway/static/root/assets/{phone-dependencies-card-DLWblGj7.js → phone-dependencies-card-CZDAxTWv.js} +1 -1
  99. package/dist/gateway/static/root/assets/{phone-model-picker-ugrT9GJu.js → phone-model-picker-4Snfs8Hq.js} +1 -1
  100. package/dist/gateway/static/root/assets/{phone-settings-page-DIIt7JOE.js → phone-settings-page-D8HperfA.js} +1 -1
  101. package/dist/gateway/static/root/assets/{phone-workspace-store-mawKT5kV.js → phone-workspace-store-Di9R9Ux5.js} +1 -1
  102. package/dist/gateway/static/root/assets/{plugin-details-dialog-BdueMT3q.js → plugin-details-dialog-DJsDu-_8.js} +1 -1
  103. package/dist/gateway/static/root/assets/{preference-select-fields-CmLZNwbm.js → preference-select-fields-C6abaM3k.js} +1 -1
  104. package/dist/gateway/static/root/assets/{product-automation-feedback-DYwhL37Y.js → product-automation-feedback-C74s9Mjz.js} +1 -1
  105. package/dist/gateway/static/root/assets/product-delivery-DRyD9_Xq.js +1 -0
  106. package/dist/gateway/static/root/assets/{product-open-page-B5G4X71t.js → product-open-page-AbDP5w1c.js} +1 -1
  107. package/dist/gateway/static/root/assets/product-preview-content-CktjvFbc.js +1 -0
  108. package/dist/gateway/static/root/assets/product-preview-modal-CzsqLwB4.js +2 -0
  109. package/dist/gateway/static/root/assets/{project-detail-page-CRJb69vP.js → project-detail-page-Cf3tggGP.js} +2 -2
  110. package/dist/gateway/static/root/assets/{project-understanding-D3w8cZEm.js → project-understanding-jmhFbHch.js} +1 -1
  111. package/dist/gateway/static/root/assets/{projects-page-CkifzKjz.js → projects-page-jMgZiFnO.js} +1 -1
  112. package/dist/gateway/static/root/assets/{providers-api-CKFg2PZQ.js → providers-api-CJBYFKAK.js} +1 -1
  113. package/dist/gateway/static/root/assets/{recording-upload-ZkmRf0GR.js → recording-upload-Dl9a5yOV.js} +1 -1
  114. package/dist/gateway/static/root/assets/{registry-api-B1Mh3bNo.js → registry-api-BwkbPUYu.js} +1 -1
  115. package/dist/gateway/static/root/assets/{remote-access-hub-Dw5rG-aA.js → remote-access-hub-CBQ_bOy9.js} +1 -1
  116. package/dist/gateway/static/root/assets/{resource-unavailable-BUWsH3fp.js → resource-unavailable-35wBZxmz.js} +1 -1
  117. package/dist/gateway/static/root/assets/route-preload-BcA6SPeC.js +2 -0
  118. package/dist/gateway/static/root/assets/{runtime-tools-api-BXvn5ImA.js → runtime-tools-api-BF28JDAO.js} +1 -1
  119. package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-BALcypHp.js → runtime-tools-settings-panel-Bq2xQ2qd.js} +1 -1
  120. package/dist/gateway/static/root/assets/{service-recommendation-list-CpVUnz89.js → service-recommendation-list-CdaS4MPF.js} +1 -1
  121. package/dist/gateway/static/root/assets/{session-api-VquhIBHI.js → session-api-zJXYlRPt.js} +1 -1
  122. package/dist/gateway/static/root/assets/session-manager-wWxpzSo0.js +23 -0
  123. package/dist/gateway/static/root/assets/{sessions-page-DlvPkE5Y.js → sessions-page-BkjD_dUD.js} +1 -1
  124. package/dist/gateway/static/root/assets/settings-advanced-gate-BUMCEtA_.js +1 -0
  125. package/dist/gateway/static/root/assets/{settings-advanced-section-c9_iZ-46.js → settings-advanced-section-C84IghdL.js} +1 -1
  126. package/dist/gateway/static/root/assets/{settings-mode-store-Dem6-TBe.js → settings-mode-store-CtQBJvbO.js} +1 -1
  127. package/dist/gateway/static/root/assets/{settings-page-B_wNfFQe.js → settings-page-eEIz9InP.js} +1 -1
  128. package/dist/gateway/static/root/assets/{settings-page-header-C8a_oOyw.js → settings-page-header-CsPAYlqV.js} +1 -1
  129. package/dist/gateway/static/root/assets/{settings-page-layout-CTSRWljG.js → settings-page-layout-lPLeJQoV.js} +1 -1
  130. package/dist/gateway/static/root/assets/{setup-status-panel-BNZoqF40.js → setup-status-panel-BSU5WpaE.js} +1 -1
  131. package/dist/gateway/static/root/assets/{share-link-dialog-C5JTTxsy.js → share-link-dialog-NaM6jvIz.js} +1 -1
  132. package/dist/gateway/static/root/assets/{share-preview-page-D-KxzXgm.js → share-preview-page-CHjZn27s.js} +1 -1
  133. package/dist/gateway/static/root/assets/{shares-api-CztKbxdd.js → shares-api-B9rVcV1y.js} +1 -1
  134. package/dist/gateway/static/root/assets/{shares-settings-CzR21j6e.js → shares-settings-5sB15V5v.js} +1 -1
  135. package/dist/gateway/static/root/assets/{skill-api-B7kWl6LK.js → skill-api-D6zVfEuK.js} +1 -1
  136. package/dist/gateway/static/root/assets/{skill-list-api-Cn07P6qZ.js → skill-list-api-SLmTBYF5.js} +1 -1
  137. package/dist/gateway/static/root/assets/{skill-reload-api-Bhl0u16_.js → skill-reload-api-UQkq2orI.js} +1 -1
  138. package/dist/gateway/static/root/assets/{skills-page-BmkuxHZe.js → skills-page-Ca0pYZ4i.js} +1 -1
  139. package/dist/gateway/static/root/assets/{system-settings-panel-Ce6zIcki.js → system-settings-panel-BARWbjRN.js} +1 -1
  140. package/dist/gateway/static/root/assets/{task-detail-page-CysJhG3B.js → task-detail-page-roqAsGue.js} +2 -2
  141. package/dist/gateway/static/root/assets/{task-result-evidence-CGZKMnNo.js → task-result-evidence-Bb1F7nAM.js} +1 -1
  142. package/dist/gateway/static/root/assets/{terminal-panel-store-YwLUkuyV.js → terminal-panel-store-DYDeXXAg.js} +1 -1
  143. package/dist/gateway/static/root/assets/{theme-store-DOJ9tu-j.js → theme-store-DbStcH89.js} +1 -1
  144. package/dist/gateway/static/root/assets/{tracing-settings-page-BplBpTdL.js → tracing-settings-page-YfkNCxbP.js} +1 -1
  145. package/dist/gateway/static/root/assets/{tunnel-api-B5-Ypvqa.js → tunnel-api-BK_ivyIb.js} +1 -1
  146. package/dist/gateway/static/root/assets/{understanding-activity-store-CmwtE8Kd.js → understanding-activity-store-p7Z7oq8z.js} +1 -1
  147. package/dist/gateway/static/root/assets/{understanding-refresh-store-9apSmAVL.js → understanding-refresh-store-D-U6rcwZ.js} +1 -1
  148. package/dist/gateway/static/root/assets/{usage-page-cPbirpXX.js → usage-page-URFSiswS.js} +1 -1
  149. package/dist/gateway/static/root/assets/{use-autosave-B3p2QWaF.js → use-autosave-B7cbumro.js} +1 -1
  150. package/dist/gateway/static/root/assets/{use-composer-attachments-D-AEYC85.js → use-composer-attachments-DAtiwLsE.js} +1 -1
  151. package/dist/gateway/static/root/assets/{use-file-preview-expanded-CO4SC-LX.js → use-file-preview-expanded-B8erpWsX.js} +2 -2
  152. package/dist/gateway/static/root/assets/{use-personal-profile-DocmhC9I.js → use-personal-profile-DDW29nm-.js} +1 -1
  153. package/dist/gateway/static/root/assets/{use-workspace-tree-VraTGKx-.js → use-workspace-tree-DCoTf22f.js} +1 -1
  154. package/dist/gateway/static/root/assets/{user-model-page-DuRALzhe.js → user-model-page-DSV5NkNj.js} +1 -1
  155. package/dist/gateway/static/root/assets/{voice-api-key-field-DbSQHZZW.js → voice-api-key-field-DzYdJZN4.js} +1 -1
  156. package/dist/gateway/static/root/assets/{voice-config-api-D9iNJSvm.js → voice-config-api-wotvT6Hw.js} +1 -1
  157. package/dist/gateway/static/root/assets/{voice-input-shortcut-events-hso9_VvT.js → voice-input-shortcut-events-BI6PuiIB.js} +1 -1
  158. package/dist/gateway/static/root/assets/voice-transcribe-api-DAK9eLRr.js +1 -0
  159. package/dist/gateway/static/root/assets/{work-discovery-overlay-fsL9RJqB.js → work-discovery-overlay-BzmB9Rub.js} +1 -1
  160. package/dist/gateway/static/root/assets/{work-discovery-page-DAQPKVDs.js → work-discovery-page-CmGjxUIT.js} +1 -1
  161. package/dist/gateway/static/root/assets/{working-directory-picker-modal-Ta73QrNw.js → working-directory-picker-modal-B-EHm52-.js} +1 -1
  162. package/dist/gateway/static/root/assets/{workspace-api-CgrcNyBc.js → workspace-api-uhiEMPpK.js} +2 -2
  163. package/dist/gateway/static/root/assets/workspace-editor-agent-store-DrPVyikA.js +1 -0
  164. package/dist/gateway/static/root/assets/{workspace-file-preview-dialog-B7uBuPtA.js → workspace-file-preview-dialog-BDm06MZm.js} +1 -1
  165. package/dist/gateway/static/root/assets/{workspace-open-location-menu-Bi2vRvaQ.js → workspace-open-location-menu-Bv83uoqu.js} +1 -1
  166. package/dist/gateway/static/root/assets/{xopc-cloud-account-card-CCOOBG-7.js → xopc-cloud-account-card-Cd5GdpGL.js} +1 -1
  167. package/dist/gateway/static/root/index.html +84 -84
  168. package/dist/gateway/static/root/notification-sw.js +21 -7
  169. package/dist/package.js +1 -1
  170. package/dist/packages/endpoint-tools-protocol/src/context.js +115 -0
  171. package/dist/packages/endpoint-tools-protocol/src/index.js +4 -0
  172. package/dist/packages/endpoint-tools-protocol/src/location-sharing.js +51 -0
  173. package/dist/packages/gateway-contract/src/gateway-scopes.js +5 -1
  174. package/dist/packages/gateway-contract/src/index.js +2 -0
  175. package/dist/packages/gateway-contract/src/phone-workspace.js +6 -0
  176. package/dist/packages/gateway-contract/src/product-delivery.js +9 -3
  177. package/dist/src/agent/embedded/external-tool-discovery.js +1 -1
  178. package/dist/src/agent/embedded/run-for-session.js +2 -2
  179. package/dist/src/agent/embedded/run-turn.js +72 -9
  180. package/dist/src/agent/embedded/session-runner.js +2 -1
  181. package/dist/src/agent/embedded/types.d.ts +1 -1
  182. package/dist/src/agent/prompt/system-prompt.js +1 -0
  183. package/dist/src/agent/service/direct-turn-helpers.d.ts +0 -7
  184. package/dist/src/agent/service/direct-turn-helpers.js +3 -2
  185. package/dist/src/agent/service/process-direct-streaming.js +2 -1
  186. package/dist/src/agent/source-context/device-environment.d.ts +3 -0
  187. package/dist/src/agent/source-context/device-environment.js +38 -0
  188. package/dist/src/agent/source-context/injector.js +2 -1
  189. package/dist/src/agent/tool-manuals/phone.d.ts +1 -1
  190. package/dist/src/agent/tool-manuals/phone.js +1 -1
  191. package/dist/src/agent/tools/automation-tool.js +3 -2
  192. package/dist/src/agent/tools/factory.js +1 -1
  193. package/dist/src/agent/tools/personal-read-tool.js +1 -1
  194. package/dist/src/agent/tools/phone-use-tool.js +46 -2
  195. package/dist/src/agent/tools/xopc-use-tool.js +1 -0
  196. package/dist/src/computer/runtime.d.ts +1 -1
  197. package/dist/src/config/schema.d.ts +1 -0
  198. package/dist/src/endpoint-tools/context-store.d.ts +29 -0
  199. package/dist/src/endpoint-tools/context-store.js +138 -0
  200. package/dist/src/endpoint-tools/location-sharing.d.ts +42 -0
  201. package/dist/src/endpoint-tools/location-sharing.js +203 -0
  202. package/dist/src/endpoint-tools/runtime.d.ts +4 -0
  203. package/dist/src/endpoint-tools/runtime.js +8 -0
  204. package/dist/src/endpoint-tools/turn-context.d.ts +2 -1
  205. package/dist/src/endpoint-tools/turn-context.js +4 -2
  206. package/dist/src/gateway/hono/middleware/auth.js +1 -1
  207. package/dist/src/gateway/hono/routes/devices.js +1 -0
  208. package/dist/src/gateway/hono/routes/endpoint-compatibility.js +4 -0
  209. package/dist/src/gateway/hono/routes/endpoint-environment.d.ts +3 -0
  210. package/dist/src/gateway/hono/routes/endpoint-environment.js +98 -0
  211. package/dist/src/gateway/hono/routes/endpoint-tools.js +1 -0
  212. package/dist/src/gateway/hono/routes/lazy-bundles.js +16 -0
  213. package/dist/src/gateway/hono/routes/location-sharing.d.ts +3 -0
  214. package/dist/src/gateway/hono/routes/location-sharing.js +164 -0
  215. package/dist/src/gateway/hono/routes/phone.js +246 -34
  216. package/dist/src/gateway/hono/routes/session-command-handler.js +1 -1
  217. package/dist/src/gateway/hono/routes/session-input-handler.js +2 -1
  218. package/dist/src/gateway/hono/routes/tunnel.js +10 -0
  219. package/dist/src/gateway/security/gateway-scopes.js +6 -0
  220. package/dist/src/gateway/security/phone-access.d.ts +4 -0
  221. package/dist/src/gateway/security/phone-access.js +20 -0
  222. package/dist/src/gateway/service/agent-runner.js +3 -1
  223. package/dist/src/gateway/service/config-coordinator.d.ts +1 -0
  224. package/dist/src/gateway/service/run-gateway-agent.js +2 -1
  225. package/dist/src/gateway/service/session-input-coordinator.d.ts +3 -0
  226. package/dist/src/gateway/service/session-input-coordinator.js +50 -2
  227. package/dist/src/gateway/service.d.ts +1 -0
  228. package/dist/src/gateway/service.js +8 -0
  229. package/dist/src/gateway/session-reset-service.js +4 -0
  230. package/dist/src/notifications/planner.js +6 -6
  231. package/dist/src/phone/assistance-service.d.ts +6 -0
  232. package/dist/src/phone/assistance-service.js +32 -0
  233. package/dist/src/phone/assistance.d.ts +40 -0
  234. package/dist/src/phone/assistance.js +273 -0
  235. package/dist/src/phone/cloud-phones.d.ts +5 -0
  236. package/dist/src/phone/cloud-phones.js +14 -0
  237. package/dist/src/phone/contracts.d.ts +7 -1
  238. package/dist/src/phone/contracts.js +5 -0
  239. package/dist/src/phone/environment-adapter.d.ts +3 -0
  240. package/dist/src/phone/environment-adapter.js +11 -0
  241. package/dist/src/phone/location-baseline-store.d.ts +9 -0
  242. package/dist/src/phone/location-baseline-store.js +61 -0
  243. package/dist/src/phone/location-environment.d.ts +61 -0
  244. package/dist/src/phone/location-environment.js +157 -0
  245. package/dist/src/phone/model-adapter.js +16 -5
  246. package/dist/src/phone/runtime.d.ts +17 -2
  247. package/dist/src/phone/runtime.js +203 -20
  248. package/dist/src/phone/stream-gateway.d.ts +5 -0
  249. package/dist/src/phone/stream-gateway.js +85 -51
  250. package/dist/src/phone/wuying-location.d.ts +18 -0
  251. package/dist/src/phone/wuying-location.js +86 -0
  252. package/dist/src/storage/sqlite/device-access-repository.d.ts +4 -0
  253. package/dist/src/storage/sqlite/device-access-repository.js +18 -1
  254. package/dist/src/tunnel/broker-client.d.ts +8 -0
  255. package/dist/src/tunnel/broker-client.js +18 -1
  256. package/dist/src/voice/realtime/runtime.js +1 -1
  257. package/package.json +4 -3
  258. package/dist/gateway/static/root/assets/app-link-CytZ5zkp.js +0 -1
  259. package/dist/gateway/static/root/assets/automation-display-BlGt8MAC.js +0 -2
  260. package/dist/gateway/static/root/assets/automation-task-card-Cp3RIw5d.js +0 -2
  261. package/dist/gateway/static/root/assets/automations-workspace-CXLu04I-.js +0 -9
  262. package/dist/gateway/static/root/assets/chat-page-CT3K7lFT.js +0 -71
  263. package/dist/gateway/static/root/assets/date-picker-ByTasrfl.js +0 -1
  264. package/dist/gateway/static/root/assets/device-pairing-wizard-BKMpLdIA.js +0 -1
  265. package/dist/gateway/static/root/assets/gateway-realtime-store-0gmDfPeP.js +0 -1
  266. package/dist/gateway/static/root/assets/index-6vVrWfwM.js +0 -11
  267. package/dist/gateway/static/root/assets/index-DDGK6klk.css +0 -1
  268. package/dist/gateway/static/root/assets/management-settings-CuSzixOw.js +0 -1
  269. package/dist/gateway/static/root/assets/note-image-lightbox-BCjvBqwy.js +0 -1
  270. package/dist/gateway/static/root/assets/page-header-store-reh1es-3.js +0 -1
  271. package/dist/gateway/static/root/assets/personal-page-D95FHaw9.js +0 -1
  272. package/dist/gateway/static/root/assets/product-delivery-BU_H84jL.js +0 -1
  273. package/dist/gateway/static/root/assets/product-preview-content-BUheyLqt.js +0 -1
  274. package/dist/gateway/static/root/assets/product-preview-modal-Cj_Zxu4G.js +0 -2
  275. package/dist/gateway/static/root/assets/route-preload-CRKbVwQ1.js +0 -2
  276. package/dist/gateway/static/root/assets/session-manager-DNMosCtW.js +0 -23
  277. package/dist/gateway/static/root/assets/settings-advanced-gate-Ckc1aCLG.js +0 -1
  278. package/dist/gateway/static/root/assets/voice-transcribe-api-BqIs0jgv.js +0 -1
  279. package/dist/gateway/static/root/assets/workspace-editor-agent-store-Dw6wtadX.js +0 -1
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{m as i}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{a,i as o,n as s}from"./locale-store-5Hf8J8-_.js";import{t as c}from"./messages-uXxg5p54.js";import{t as l}from"./activity-YogQEteU.js";import{t as u}from"./chevron-left-DqFhpbvK.js";import{t as d}from"./chevron-right-BweFrslA.js";import{t as f}from"./popover-select-DD8fmrxH.js";import{t as p}from"./laptop-CI3hBVrl.js";import{n as m,t as h}from"./shield-off-2jsucUds.js";import{t as g}from"./plus-Q2yW6OE7.js";import{t as _}from"./search-DA7gz22f.js";import{t as v}from"./smartphone-DSSsQFqA.js";import{t as y}from"./x-B_N4OPjy.js";import{t as b}from"./cn-0WouolD0.js";import{i as x}from"./vendor-swr-CdRzEUwF.js";import{t as S}from"./button-CnRSIP6m.js";import{t as C}from"./skeleton-BI5TyibZ.js";import{a as w,n as T,o as ee,r as E,s as te,t as ne}from"./dist-DfWfZ9iu.js";import{i as D,o as re}from"./settings-shell-dialog-layer-BU3UuiJr.js";import{s as O}from"./session-api-VquhIBHI.js";import{t as ie}from"./page-tabs-oeTY7z3_.js";import{n as k}from"./index.module-Cd9ENXfk.js";import{t as A}from"./confirm-dialog-XGclfBqe.js";import{t as j}from"./refresh-button-bU_0NarN.js";import{n as M}from"./settings-loading-skeleton-BTqvr_Fw.js";import{n as N,t as P}from"./settings-page-header-C8a_oOyw.js";import{t as F}from"./settings-page-layout-CTSRWljG.js";import{t as I}from"./device-pairing-wizard-BKMpLdIA.js";var L=n(),R=e(t(),1),z=r();async function B(e=`GET`,t,n){let r=await a(o(`/api/endpoint-tools/target-authorizations`+(n?`/`+encodeURIComponent(n):``)),{method:e,...t?{body:JSON.stringify(t)}:{}});if(!r.ok)throw Error(r.status===403?`owner`:`unavailable`);return(await r.json()).payload}function ae({devices:e,zh:t}){let n=x(`device-single-call-grants`,()=>B(),{refreshInterval:5e3,shouldRetryOnError:!1}),r=x(n.error?null:`device-grant-conversations`,()=>O({limit:100}),{shouldRetryOnError:!1}),[i,a]=(0,R.useState)(``),[o,s]=(0,R.useState)(``),[c,l]=(0,R.useState)(``),[u,d]=(0,R.useState)(`weather`),[p,m]=(0,R.useState)(`approximate`),[h,g]=(0,R.useState)(`restaurant`),[_,v]=(0,R.useState)(!1),[y,b]=(0,R.useState)(!1);if(n.error)return null;let w=e.flatMap(e=>e.endpoints.map(t=>({...t,label:e.displayName+` · `+e.platform+` · `+e.id.slice(-8)}))),T=w.find(e=>e.endpointId===c)?.tools.find(e=>e.descriptor.name.endsWith(`.device.get_location`))?.descriptor.name,ee=async()=>{if(!(!T||!i||!o)){v(!0),b(!1);try{await B(`POST`,{conversationId:i,requestorPrincipalId:o,targetEndpointId:c,toolName:T,arguments:{purpose:u,precision:p,...u===`nearby`?{category:h}:{}}}),await n.mutate()}catch{b(!0)}finally{v(!1)}}};return(0,z.jsxs)(`section`,{className:`mb-5 rounded-xl border border-edge bg-surface-base p-4`,children:[(0,z.jsx)(`h3`,{className:`font-semibold text-fg`,children:t?`跨设备单次授权`:`Single-call device authorization`}),(0,z.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:t?`为指定会话和来源设备授权一次定位查询,60 秒后失效。目标设备仍需确认;授权后请在来源设备继续请求。`:`Authorize one location query for a conversation and source device. Expires in 60 seconds; target-device consent is still required. Continue the request from the source device.`}),n.isLoading||r.isLoading?(0,z.jsx)(C,{className:`mt-3 h-28`}):(0,z.jsxs)(`div`,{className:`mt-3 grid gap-3 sm:grid-cols-2`,children:[(0,z.jsx)(f,{value:i,onChange:a,placeholder:t?`选择会话`:`Conversation`,ariaLabel:t?`会话`:`Conversation`,options:(r.data?.items??[]).map(e=>({value:e.key,label:e.name||e.key}))}),(0,z.jsx)(f,{value:o,onChange:s,placeholder:t?`消息来源设备`:`Source device`,ariaLabel:t?`消息来源设备`:`Source device`,options:e.filter(e=>e.endpoints.length>0).map(e=>({value:e.id,label:e.displayName+` · `+e.platform+` · `+e.id.slice(-8)}))}),(0,z.jsx)(f,{value:c,onChange:l,placeholder:t?`使用哪台设备的位置`:`Location device`,ariaLabel:t?`目标设备`:`Target device`,options:w.filter(e=>e.tools.some(e=>e.descriptor.name.endsWith(`.device.get_location`))).map(e=>({value:e.endpointId,label:e.label}))}),(0,z.jsx)(f,{placeholder:t?`用途`:`Purpose`,value:u,onChange:e=>d(e),ariaLabel:t?`用途`:`Purpose`,options:[{value:`weather`,label:t?`查询天气`:`Weather`},{value:`nearby`,label:t?`附近地点`:`Nearby places`}],allowEmpty:!1}),(0,z.jsx)(f,{placeholder:t?`精度`:`Precision`,value:p,onChange:e=>m(e),ariaLabel:t?`精度`:`Precision`,options:[{value:`approximate`,label:t?`大致位置`:`Approximate`},{value:`precise`,label:t?`精确位置`:`Precise`}],allowEmpty:!1}),u===`nearby`?(0,z.jsx)(f,{placeholder:t?`地点类型`:`Category`,value:h,onChange:g,ariaLabel:t?`附近地点类型`:`Place category`,options:[`restaurant`,`cafe`,`pharmacy`,`park`].map((e,n)=>({value:e,label:t?[`餐厅`,`咖啡馆`,`药店`,`公园`][n]:e})),allowEmpty:!1}):null,(0,z.jsx)(S,{variant:`primary`,disabled:_||!i||!o||!T,onClick:()=>void ee(),children:t?`允许一次`:`Allow once`})]}),y?(0,z.jsx)(`p`,{role:`alert`,className:`mt-2 text-sm text-fg-muted`,children:t?`授权失败,请检查设备连接后重试。`:`Authorization failed. Check the device connection.`}):null,(0,z.jsx)(`div`,{className:`mt-3 space-y-2`,children:n.data?.map(r=>(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-sm text-fg-muted`,children:[(0,z.jsxs)(`span`,{children:[e.find(e=>e.endpoints.some(e=>e.endpointId===r.targetEndpointId))?.displayName??(t?`设备`:`Device`),` · `,r.state===`running`?t?`执行中`:`Running`:t?`等待本次调用`:`Awaiting one call`]}),(0,z.jsx)(S,{disabled:_,onClick:()=>{v(!0),B(`DELETE`,void 0,r.id).then(()=>n.mutate()).catch(()=>b(!0)).finally(()=>v(!1))},children:t?`撤销`:`Revoke`})]},r.id))})]})}var V=720*60*60*1e3;function H(e){let t=[e.access,e.principal].filter(e=>e!==null);return t.length>0&&t.every(e=>e.revokedAt!==void 0)}function U(e){return H(e)?`revoked`:e.endpoints.length>0?`online`:`offline`}function oe(e){return new Set(e.endpoints.flatMap(e=>e.tools.map(({descriptor:e})=>e.name))).size}function se(e,t=Date.now()){return U(e)===`offline`&&(e.lastSeenAt??e.createdAt)<t-V}function ce(e,t,n=Date.now()){let r=t.query.trim().toLocaleLowerCase();return e.filter(e=>{let i=U(e),a=t.status===`all`||(t.status===`active`?i!==`revoked`:t.status===`stale`?se(e,n):i===t.status),o=!t.platform||e.platform===t.platform,s=!r||[e.displayName,e.id,e.kind,e.platform].some(e=>e.toLocaleLowerCase().includes(r));return a&&o&&s})}function le(e){return e.length>8?e.slice(-8):e}function ue(e){let t=(0,L.c)(61),{device:n,busy:r,onClose:i,onRevoke:a,onRename:o}=e,l=s(de),u;t[0]===l?u=t[1]:(u=c(l),t[0]=l,t[1]=u);let d=u.endpointToolsSettings,f=l===`zh`?`zh-CN`:`en`,p;t[2]===f?p=t[3]:(p=new Intl.DateTimeFormat(f,{dateStyle:`medium`,timeStyle:`short`}),t[2]=f,t[3]=p);let m=p,g;t[4]===n?g=t[5]:(g=n?U(n):`offline`,t[4]=n,t[5]=g);let _=g,v=n!==null,x;t[6]===i?x=t[7]:(x=e=>!e&&i(),t[6]=i,t[7]=x);let C;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,z.jsx)(w,{className:b(`xopc-dialog-overlay fixed inset-0 bg-scrim`,re)}),t[8]=C):C=t[8];let O;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(O=b(`xopc-drawer-right fixed right-0 top-0 flex size-full max-w-lg flex-col border-l border-edge bg-surface-overlay shadow-popover outline-none`,D),t[9]=O):O=t[9];let ie=n?.displayName??d.deviceDetails,k;t[10]===ie?k=t[11]:(k=(0,z.jsx)(te,{className:`truncate text-base font-semibold text-fg`,children:ie}),t[10]=ie,t[11]=k);let A;t[12]===n?A=t[13]:(A=n?(0,z.jsxs)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:[n.kind,` · `,n.platform,` · `,le(n.id)]}):null,t[12]=n,t[13]=A);let j;t[14]!==k||t[15]!==A?(j=(0,z.jsxs)(`div`,{className:`min-w-0`,children:[k,A]}),t[14]=k,t[15]=A,t[16]=j):j=t[16];let M;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,z.jsx)(y,{className:`size-5`,"aria-hidden":!0}),t[17]=M):M=t[17];let N;t[18]===d.close?N=t[19]:(N=(0,z.jsx)(T,{asChild:!0,children:(0,z.jsx)(S,{variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":d.close,children:M})}),t[18]=d.close,t[19]=N);let P;t[20]!==j||t[21]!==N?(P=(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[j,N]}),t[20]=j,t[21]=N,t[22]=P):P=t[22];let F;t[23]!==d.accessActive||t[24]!==d.accessRevoked||t[25]!==d.accessTitle||t[26]!==d.createdAt||t[27]!==d.endpointCount||t[28]!==d.endpointsTitle||t[29]!==d.identityId||t[30]!==d.identityTitle||t[31]!==d.lastSeen||t[32]!==d.never||t[33]!==d.noAccessIdentity||t[34]!==d.noOnlineEndpoints||t[35]!==d.noPermissions||t[36]!==d.permissions||t[37]!==d.status||t[38]!==d.statusLabel||t[39]!==d.toolCount||t[40]!==n||t[41]!==m||t[42]!==l||t[43]!==o||t[44]!==_?(F=n?(0,z.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-5 overflow-y-auto p-4`,children:[n.principal&&_!==`revoked`&&o?(0,z.jsx)(fe,{device:n,zh:l===`zh`,onRename:o},`${n.id}:${n.settingsRevision??0}`):null,(0,z.jsxs)(`dl`,{className:`grid grid-cols-2 gap-3 rounded-xl bg-surface-hover/40 p-4`,children:[(0,z.jsx)(W,{label:d.statusLabel,value:d.status[_]}),(0,z.jsx)(W,{label:d.lastSeen,value:n.lastSeenAt?m.format(n.lastSeenAt):d.never}),(0,z.jsx)(W,{label:d.endpointCount,value:String(n.endpoints.length)}),(0,z.jsx)(W,{label:d.toolCount,value:String(oe(n))})]}),(0,z.jsxs)(`section`,{children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:d.accessTitle}),(0,z.jsx)(`div`,{className:`mt-2 rounded-xl border border-edge-subtle bg-surface-base p-3 text-xs text-fg-muted`,children:n.access?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`p`,{children:n.access.revokedAt?d.accessRevoked:d.accessActive}),(0,z.jsx)(`p`,{className:`mt-1`,children:n.access.requestProofVersion===1?l===`zh`?`设备请求签名已启用`:`Device request signing enabled`:l===`zh`?`请求签名未启用,设备不可用`:`Request signing is missing; device unavailable`}),(0,z.jsxs)(`p`,{className:`mt-1 break-words`,children:[d.permissions,`: `,n.access.scopes.join(`, `)||d.noPermissions]})]}):(0,z.jsx)(`p`,{children:d.noAccessIdentity})})]}),(0,z.jsxs)(`section`,{children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:d.endpointsTitle}),(0,z.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[n.endpoints.length===0?(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:d.noOnlineEndpoints}):null,n.endpoints.map(e=>(0,z.jsxs)(`article`,{className:`rounded-xl border border-edge-subtle bg-surface-base p-3`,children:[(0,z.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,z.jsx)(`p`,{className:`min-w-0 break-all text-xs font-medium text-fg`,children:e.endpointId}),(0,z.jsxs)(`span`,{className:`text-xs text-fg-muted`,children:[d.status[e.availability],` · v`,e.appVersion]})]}),(0,z.jsx)(`div`,{className:`mt-3 space-y-2`,children:e.tools.map(e=>{let{descriptor:t}=e;return(0,z.jsxs)(`div`,{className:`rounded-lg bg-surface-hover/50 px-3 py-2`,children:[(0,z.jsx)(`p`,{className:`break-all text-xs font-medium text-fg`,children:t.title}),(0,z.jsxs)(`p`,{className:`mt-0.5 break-words text-xs text-fg-subtle`,children:[t.requiresForeground?l===`zh`?`需要设备在前台 · `:`Requires foreground · `:``,t.confirmation===`always`?l===`zh`?`每次确认`:`Confirm each time`:l===`zh`?`按已授权范围调用`:`Uses the authorized scope`]})]},t.name)})})]},e.connectionId))]})]}),(0,z.jsxs)(`section`,{children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:d.identityTitle}),n.principal&&_!==`revoked`&&o?(0,z.jsx)(fe,{device:n,zh:l===`zh`,onRename:o},`${n.id}:${n.settingsRevision??0}`):null,(0,z.jsxs)(`dl`,{className:`mt-2 rounded-xl border border-edge-subtle bg-surface-base p-3 text-xs`,children:[(0,z.jsx)(W,{label:d.identityId,value:n.id,breakAll:!0}),(0,z.jsx)(`div`,{className:`mt-3`,children:(0,z.jsx)(W,{label:d.createdAt,value:m.format(n.createdAt)})})]})]})]}):null,t[23]=d.accessActive,t[24]=d.accessRevoked,t[25]=d.accessTitle,t[26]=d.createdAt,t[27]=d.endpointCount,t[28]=d.endpointsTitle,t[29]=d.identityId,t[30]=d.identityTitle,t[31]=d.lastSeen,t[32]=d.never,t[33]=d.noAccessIdentity,t[34]=d.noOnlineEndpoints,t[35]=d.noPermissions,t[36]=d.permissions,t[37]=d.status,t[38]=d.statusLabel,t[39]=d.toolCount,t[40]=n,t[41]=m,t[42]=l,t[43]=o,t[44]=_,t[45]=F):F=t[45];let I;t[46]!==r||t[47]!==d.removeDevice||t[48]!==d.revoking||t[49]!==n||t[50]!==a||t[51]!==_?(I=n&&_!==`revoked`?(0,z.jsx)(`div`,{className:`shrink-0 border-t border-edge px-4 py-3`,children:(0,z.jsxs)(S,{variant:`secondary`,className:`w-full text-danger`,disabled:r,onClick:()=>a(n),children:[(0,z.jsx)(h,{className:`size-4`,"aria-hidden":!0}),r?d.revoking:d.removeDevice]})}):null,t[46]=r,t[47]=d.removeDevice,t[48]=d.revoking,t[49]=n,t[50]=a,t[51]=_,t[52]=I):I=t[52];let R;t[53]!==P||t[54]!==F||t[55]!==I?(R=(0,z.jsxs)(ee,{children:[C,(0,z.jsxs)(E,{className:O,"aria-describedby":void 0,children:[P,F,I]})]}),t[53]=P,t[54]=F,t[55]=I,t[56]=R):R=t[56];let B;return t[57]!==R||t[58]!==v||t[59]!==x?(B=(0,z.jsx)(ne,{open:v,onOpenChange:x,children:R}),t[57]=R,t[58]=v,t[59]=x,t[60]=B):B=t[60],B}function de(e){return e.language}function W(e){let t=(0,L.c)(10),{label:n,value:r,breakAll:i}=e,a=i!==void 0&&i,o;t[0]===n?o=t[1]:(o=(0,z.jsx)(`dt`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=o);let s=a&&`break-all font-mono text-xs`,c;t[2]===s?c=t[3]:(c=b(`mt-1 text-sm text-fg`,s),t[2]=s,t[3]=c);let l;t[4]!==c||t[5]!==r?(l=(0,z.jsx)(`dd`,{className:c,children:r}),t[4]=c,t[5]=r,t[6]=l):l=t[6];let u;return t[7]!==o||t[8]!==l?(u=(0,z.jsxs)(`div`,{className:`min-w-0`,children:[o,l]}),t[7]=o,t[8]=l,t[9]=u):u=t[9],u}function fe({device:e,zh:t,onRename:n}){let[r,i]=(0,R.useState)(e.displayName),[a,o]=(0,R.useState)(!1),[s,c]=(0,R.useState)(!1);return(0,z.jsxs)(`form`,{className:`space-y-2`,onSubmit:async t=>{if(t.preventDefault(),!(a||!r.trim())){o(!0),c(!1);try{await n(e,r.trim())}catch{c(!0)}finally{o(!1)}}},children:[(0,z.jsxs)(`label`,{className:`block text-sm text-fg`,children:[t?`设备名称`:`Device name`,(0,z.jsx)(`input`,{value:r,maxLength:80,onChange:e=>i(e.target.value),className:`mt-2 h-10 w-full rounded-lg border border-edge bg-surface-inset px-3 text-fg`})]}),(0,z.jsx)(S,{type:`submit`,variant:`secondary`,disabled:a||!r.trim()||r.trim()===e.displayName,children:a?t?`保存中…`:`Saving…`:t?`保存名称`:`Save name`}),s?(0,z.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:t?`保存失败,请刷新设备信息后重试。`:`Unable to save. Refresh device information and retry.`}):null]})}function pe(e){let t=(0,L.c)(19),{onPaired:n}=e,[r,a]=i(),o=s(he),l;t[0]===o?l=t[1]:(l=c(o),t[0]=o,t[1]=l);let u=l.endpointToolsSettings.deviceAccess,d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d={open:!1},t[2]=d):d=t[2];let[f,p]=(0,R.useState)(d),m,h;t[3]!==r||t[4]!==a?(m=()=>{let e=r.get(`startDevicePairing`);e!==`mobile`&&e!==`browser`||(p({open:!0,target:e}),a(me,{replace:!0}))},h=[r,a],t[3]=r,t[4]=a,t[5]=m,t[6]=h):(m=t[5],h=t[6]),(0,R.useEffect)(m,h);let _,v;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(_=()=>p({open:!0}),v=(0,z.jsx)(g,{className:`size-4`,"aria-hidden":!0}),t[7]=_,t[8]=v):(_=t[7],v=t[8]);let y;t[9]===u.addDevice?y=t[10]:(y=(0,z.jsxs)(S,{variant:`primary`,onClick:_,children:[v,u.addDevice]}),t[9]=u.addDevice,t[10]=y);let b;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>p(t=>({...t,open:e})),t[11]=b):b=t[11];let x;t[12]!==f.open||t[13]!==f.target||t[14]!==n?(x=(0,z.jsx)(I,{open:f.open,onOpenChange:b,onPaired:n,targetKind:f.target}),t[12]=f.open,t[13]=f.target,t[14]=n,t[15]=x):x=t[15];let C;return t[16]!==y||t[17]!==x?(C=(0,z.jsxs)(z.Fragment,{children:[y,x]}),t[16]=y,t[17]=x,t[18]=C):C=t[18],C}function me(e){let t=new URLSearchParams(e);return t.delete(`startDevicePairing`),t}function he(e){return e.language}async function G(e){let t=await e.json().catch(()=>null);if(!e.ok||t?.payload===void 0)throw Error(t?.error?.message??`Endpoint management request failed: ${e.status}`);return t.payload}function ge(){return o(`/api/endpoint-tools/devices`)}function _e(e){let t=new URLSearchParams({page:String(e.page),pageSize:String(e.pageSize)});return e.query.trim()&&t.set(`query`,e.query.trim()),e.principalId&&t.set(`principalId`,e.principalId),e.status&&t.set(`status`,e.status),e.effect&&t.set(`effect`,e.effect),o(`/api/endpoint-tools/invocations?${t}`)}async function ve(){return G(await a(ge()))}async function ye(e){let t=Array.from({length:Math.ceil(e.length/100)},(t,n)=>e.slice(n*100,(n+1)*100));await Promise.all(t.map(async e=>{await G(await a(o(`/api/endpoint-tools/devices/revoke`),{method:`POST`,body:JSON.stringify({ids:e})}))}))}async function be(e){return G(await a(_e(e)))}async function xe(e,t,n){await G(await a(o(`/api/endpoint-tools/devices/${encodeURIComponent(e)}`),{method:`PATCH`,body:JSON.stringify({nickname:t,expectedRevision:n})}))}var Se=5e3,K=20,Ce=20;function we(e){return e===`online`||e===`succeeded`?`bg-success-soft text-success`:e===`running`?`bg-accent-soft text-accent-fg`:e===`failed`||e===`revoked`?`bg-danger-soft text-danger`:`bg-surface-hover text-fg-muted`}function Te(e){let t=(0,L.c)(5),{status:n,label:r}=e,i;t[0]===n?i=t[1]:(i=b(`rounded-full px-2 py-0.5 text-xs font-medium`,we(n)),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i?(a=(0,z.jsx)(`span`,{className:i,children:r}),t[2]=r,t[3]=i,t[4]=a):a=t[4],a}function Ee(){let e=s(e=>e.language),t=c(e).endpointToolsSettings,[n,r]=i(),a=n.get(`view`)===`activity`?`activity`:`devices`,[o,g]=(0,R.useState)(null),[y,C]=(0,R.useState)([]),[w,T]=(0,R.useState)(!1),[ee,E]=(0,R.useState)(!1),[te,ne]=(0,R.useState)(``),[D,re]=(0,R.useState)(`active`),[O,I]=(0,R.useState)(``),[L,B]=(0,R.useState)(1),[V,H]=(0,R.useState)(()=>new Set),[de,W]=(0,R.useState)(``),[fe]=k(de,250),[me,he]=(0,R.useState)(``),[G,we]=(0,R.useState)(``),[Ee,De]=(0,R.useState)(``),[Oe,q]=(0,R.useState)(1),ke={page:Oe,pageSize:Ce,query:fe,principalId:me,status:G,effect:Ee},J=x(ge(),ve,{refreshInterval:Se}),Y=x(a===`activity`?_e(ke):null,()=>be(ke),{refreshInterval:Se,keepPreviousData:!0}),Ae=(0,R.useMemo)(()=>new Intl.DateTimeFormat(e===`zh`?`zh-CN`:`en`,{dateStyle:`medium`,timeStyle:`short`}),[e]);if(J.isLoading&&!J.data)return(0,z.jsx)(N,{children:(0,z.jsx)(M,{sections:2})});let X=J.data??[],je=Y.data?.items??[],Me=X.filter(e=>U(e)===`online`).length,Ne=X.filter(e=>U(e)!==`revoked`).length,Pe=X.filter(e=>se(e)).length,Fe=[...new Set(X.map(e=>e.platform))].toSorted(),Z=ce(X,{query:te,status:D,platform:O}),Ie=Math.max(1,Math.ceil(Z.length/K)),Q=Math.min(L,Ie),Le=Z.slice((Q-1)*K,Q*K),$=Le.reduce((e,t)=>(U(t)!==`revoked`&&e.push(t.id),e),[]),Re=$.length>0&&$.every(e=>V.has(e)),ze=e=>{r(t=>{let n=new URLSearchParams(t);return e===`devices`?n.delete(`view`):n.set(`view`,e),n},{replace:!0})},Be=async()=>{await Promise.all([J.mutate(),a===`activity`?Y.mutate():Promise.resolve()])},Ve=async()=>{if(!(y.length===0||w)){T(!0),E(!1);try{await ye(y.map(e=>e.id)),C([]),H(new Set),await J.mutate()}catch{E(!0)}finally{T(!1)}}},He=e=>{e(),B(1),H(new Set)};return(0,z.jsxs)(N,{children:[(0,z.jsx)(P,{title:t.title,subtitle:t.subtitle,actions:(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(j,{className:`size-9 shrink-0 p-0`,label:t.refresh,onClick:Be}),(0,z.jsx)(pe,{onPaired:()=>void J.mutate()})]})}),J.error||Y.error?(0,z.jsx)(`div`,{className:`rounded-xl bg-danger-soft px-4 py-3 text-sm text-danger`,children:t.loadError}):null,(0,z.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-3`,children:[{label:t.activeDevices,value:Ne,filter:`active`},{label:t.onlineDevices,value:Me,filter:`online`},{label:t.staleDevices,value:Pe,filter:`stale`}].map(({label:e,value:t,filter:n})=>(0,z.jsxs)(`button`,{type:`button`,className:b(`touch-target rounded-xl px-4 py-3 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,D===n?`bg-surface-active`:`bg-surface-hover/20 hover:bg-surface-hover/50`),"aria-pressed":D===n,onClick:()=>{He(()=>re(n)),ze(`devices`)},children:[(0,z.jsx)(`span`,{className:`text-xs text-fg-muted`,children:e}),(0,z.jsx)(`span`,{className:`mt-1 block text-2xl font-semibold text-fg`,children:t})]},n))}),(0,z.jsx)(ie,{items:[{id:`devices`,label:t.devicesTab,icon:m,count:Ne},{id:`activity`,label:t.activityTab,icon:l,count:Y.data?.total}],activeTab:a,onChange:ze,ariaLabel:t.viewsAria,tabIdPrefix:`endpoint-management-tab`,panelIdPrefix:`endpoint-management-panel`}),(0,z.jsxs)(F,{id:`devices`,activeTab:a,tabIdPrefix:`endpoint-management-tab`,panelIdPrefix:`endpoint-management-panel`,title:t.devicesTitle,hint:t.devicesHint,children:[(0,z.jsx)(ae,{devices:X,zh:e===`zh`}),(0,z.jsxs)(`div`,{className:`mb-4 grid gap-2 sm:grid-cols-[minmax(0,1fr)_11rem_11rem]`,children:[(0,z.jsxs)(`label`,{className:`relative block`,children:[(0,z.jsx)(`span`,{className:`sr-only`,children:t.searchDevices}),(0,z.jsx)(_,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,z.jsx)(`input`,{type:`search`,"aria-label":t.searchDevices,value:te,placeholder:t.searchDevices,className:`h-10 w-full rounded-lg border border-edge bg-surface-inset pl-9 pr-3 text-base text-fg placeholder:text-fg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent sm:text-sm`,onChange:e=>He(()=>ne(e.target.value))})]}),(0,z.jsx)(f,{value:D,options:[{value:`active`,label:t.filterActive},{value:`online`,label:t.status.online},{value:`offline`,label:t.status.offline},{value:`stale`,label:t.filterStale},{value:`revoked`,label:t.status.revoked},{value:`all`,label:t.filterAll}],placeholder:t.statusLabel,allowEmpty:!1,ariaLabel:t.statusLabel,onChange:e=>He(()=>re(e))}),(0,z.jsx)(f,{value:O,options:Fe.map(e=>({value:e,label:e})),placeholder:t.allPlatforms,emptyLabel:t.allPlatforms,ariaLabel:t.platformLabel,onChange:e=>He(()=>I(e))})]}),V.size>0?(0,z.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center justify-between gap-3 rounded-xl bg-accent-soft px-3 py-2`,children:[(0,z.jsx)(`p`,{className:`text-sm font-medium text-accent-fg`,children:t.selectedCount.replace(`{{count}}`,String(V.size))}),(0,z.jsxs)(S,{variant:`secondary`,className:`text-danger`,onClick:()=>{E(!1),C(X.filter(e=>V.has(e.id)))},children:[(0,z.jsx)(h,{className:`size-4`,"aria-hidden":!0}),t.removeSelected]})]}):null,X.length===0?(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.noDevices}):Z.length===0?(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.noMatchingDevices}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:`flex min-h-10 items-center gap-3 border-b border-edge-subtle px-1`,children:(0,z.jsxs)(`label`,{className:b(`touch-target flex items-center gap-2 text-xs text-fg-muted`,$.length>0?`cursor-pointer`:`cursor-not-allowed opacity-50`),children:[(0,z.jsx)(`input`,{type:`checkbox`,"aria-label":t.selectPage,checked:Re,disabled:$.length===0,className:`size-4 accent-accent`,onChange:e=>{H(t=>{let n=new Set(t);for(let t of $)e.target.checked?n.add(t):n.delete(t);return n})}}),t.selectPage]})}),(0,z.jsx)(`ul`,{className:`divide-y divide-edge-subtle`,children:Le.map(e=>{let n=U(e),r=e.kind===`mobile`?v:p;return(0,z.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,z.jsx)(`label`,{className:b(`touch-target flex size-10 shrink-0 items-center justify-center`,n===`revoked`?`cursor-not-allowed opacity-40`:`cursor-pointer`),children:(0,z.jsx)(`input`,{type:`checkbox`,checked:V.has(e.id),disabled:n===`revoked`,"aria-label":t.selectDevice.replace(`{{name}}`,e.displayName),className:`size-4 accent-accent`,onChange:t=>{H(n=>{let r=new Set(n);return t.target.checked?r.add(e.id):r.delete(e.id),r})}})}),(0,z.jsxs)(`button`,{type:`button`,className:`touch-target flex min-w-0 flex-1 items-center gap-3 py-3 text-left hover:bg-surface-hover/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,onClick:()=>g(e),children:[(0,z.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-lg bg-surface-inset text-fg-muted`,children:(0,z.jsx)(r,{className:`size-4`,"aria-hidden":!0})}),(0,z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,z.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,z.jsx)(`span`,{className:`truncate text-sm font-medium text-fg`,children:e.displayName}),(0,z.jsx)(Te,{status:n,label:t.status[n]})]}),(0,z.jsxs)(`span`,{className:`mt-1 block text-xs text-fg-muted`,children:[e.platform,` · `,le(e.id),` · `,t.lastSeen,`: `,e.lastSeenAt?Ae.format(e.lastSeenAt):t.never]})]}),(0,z.jsx)(`span`,{className:`hidden shrink-0 text-right text-xs text-fg-muted sm:block`,children:t.endpointSummary.replace(`{{endpoints}}`,String(e.endpoints.length)).replace(`{{tools}}`,String(oe(e)))}),(0,z.jsx)(d,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":!0})]})]},e.id)})}),(0,z.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center justify-between gap-3 border-t border-edge-subtle pt-3`,children:[(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:t.paginationSummary.replace(`{{from}}`,String((Q-1)*K+1)).replace(`{{to}}`,String(Math.min(Q*K,Z.length))).replace(`{{total}}`,String(Z.length))}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsx)(S,{variant:`ghost`,className:`size-9 p-0`,"aria-label":t.previousPage,disabled:Q<=1,onClick:()=>B(e=>Math.max(1,e-1)),children:(0,z.jsx)(u,{className:`size-4`,"aria-hidden":!0})}),(0,z.jsx)(S,{variant:`ghost`,className:`size-9 p-0`,"aria-label":t.nextPage,disabled:Q>=Ie,onClick:()=>B(e=>Math.min(Ie,e+1)),children:(0,z.jsx)(d,{className:`size-4`,"aria-hidden":!0})})]})]})]})]}),(0,z.jsxs)(F,{id:`activity`,activeTab:a,tabIdPrefix:`endpoint-management-tab`,panelIdPrefix:`endpoint-management-panel`,title:t.callsTitle,hint:t.callsHint,children:[(0,z.jsxs)(`div`,{className:`mb-4 grid gap-2 sm:grid-cols-2 lg:grid-cols-4`,children:[(0,z.jsxs)(`label`,{className:`relative block sm:col-span-2 lg:col-span-1`,children:[(0,z.jsx)(`span`,{className:`sr-only`,children:t.searchActivity}),(0,z.jsx)(_,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,z.jsx)(`input`,{type:`search`,"aria-label":t.searchActivity,value:de,placeholder:t.searchActivity,className:`h-10 w-full rounded-lg border border-edge bg-surface-inset pl-9 pr-3 text-base text-fg placeholder:text-fg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent sm:text-sm`,onChange:e=>{W(e.target.value),q(1)}})]}),(0,z.jsx)(f,{value:me,options:X.map(e=>({value:e.id,label:`${e.displayName} · ${le(e.id)}`})),placeholder:t.allDevices,emptyLabel:t.allDevices,ariaLabel:t.deviceLabel,onChange:e=>{he(e),q(1)}}),(0,z.jsx)(f,{value:G,options:[{value:`running`,label:t.status.running},{value:`succeeded`,label:t.status.succeeded},{value:`failed`,label:t.status.failed}],placeholder:t.allStatuses,emptyLabel:t.allStatuses,ariaLabel:t.statusLabel,onChange:e=>{we(e),q(1)}}),(0,z.jsx)(f,{value:Ee,options:[{value:`read`,label:t.effects.read},{value:`write`,label:t.effects.write},{value:`destructive`,label:t.effects.destructive}],placeholder:t.allEffects,emptyLabel:t.allEffects,ariaLabel:t.effectLabel,onChange:e=>{De(e),q(1)}})]}),Y.isLoading&&!Y.data?(0,z.jsx)(M,{sections:1}):null,je.length===0&&!Y.isLoading?(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.noMatchingCalls}):null,(0,z.jsx)(`div`,{className:`space-y-2`,children:je.map(e=>(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-lg bg-surface-base/55 px-3 py-2.5`,children:[(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`p`,{className:`break-all text-sm font-medium text-fg`,children:e.toolName}),(0,z.jsxs)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:[Ae.format(e.startedAt),` · `,t.effects[e.effect],` · `,e.endpointId]}),e.errorMessage?(0,z.jsx)(`p`,{className:`mt-1 text-xs text-danger`,children:e.errorMessage}):null]}),(0,z.jsx)(Te,{status:e.status,label:t.status[e.status]})]},e.id))}),Y.data&&Y.data.total>0?(0,z.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center justify-between gap-3 border-t border-edge-subtle pt-3`,children:[(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:t.paginationSummary.replace(`{{from}}`,String((Y.data.page-1)*Y.data.pageSize+1)).replace(`{{to}}`,String(Math.min(Y.data.page*Y.data.pageSize,Y.data.total))).replace(`{{total}}`,String(Y.data.total))}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsx)(S,{variant:`ghost`,className:`size-9 p-0`,"aria-label":t.previousPage,disabled:Y.data.page<=1,onClick:()=>q(e=>Math.max(1,e-1)),children:(0,z.jsx)(u,{className:`size-4`,"aria-hidden":!0})}),(0,z.jsx)(S,{variant:`ghost`,className:`size-9 p-0`,"aria-label":t.nextPage,disabled:Y.data.page>=Y.data.totalPages,onClick:()=>q(e=>Math.min(Y.data.totalPages,e+1)),children:(0,z.jsx)(d,{className:`size-4`,"aria-hidden":!0})})]})]}):null]}),(0,z.jsx)(ue,{device:o,busy:w,onRename:async(e,t)=>{await xe(e.id,t,e.settingsRevision??0);let n=await J.mutate();g(n?.find(t=>t.id===e.id)??null)},onClose:()=>g(null),onRevoke:e=>{g(null),E(!1),C([e])}}),(0,z.jsx)(A,{open:y.length>0,title:y.length>1?t.removeManyTitle:t.removeTitle,description:`${y.length>1?t.removeManyDescription.replace(`{{count}}`,String(y.length)):t.removeDescription.replace(`{{name}}`,y[0]?.displayName??``)}${ee?`\n\n${t.revokeError}`:``}`,confirmLabel:w?t.revoking:t.removeDevice,cancelLabel:t.cancel,destructive:!0,onConfirm:()=>void Ve(),onCancel:()=>{w||C([])}})]})}export{Ee as EndpointToolsManagementSettings};
@@ -1 +0,0 @@
1
- import"./notes-api-DocbsBbT.js";
@@ -1 +0,0 @@
1
- import{p as e}from"./locale-store-5Hf8J8-_.js";var t={startExtra:null,main:null,end:null},n=e(e=>({...t,setPageHeader:t=>e(t),clearPageHeader:()=>e(t)}));export{n as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{i as a,n as o,o as s}from"./locale-store-5Hf8J8-_.js";import{t as c}from"./messages-uXxg5p54.js";import{t as l,v as u}from"./chat-page-CT3K7lFT.js";import{t as d}from"./arrow-left-D880xG-P.js";import{t as f}from"./arrow-right-DSSvoX71.js";import{t as p}from"./arrow-up-right-T72JbQ1Q.js";import{t as m}from"./check-DUBLcKHA.js";import{t as h}from"./popover-select-DD8fmrxH.js";import{t as g}from"./list-todo-CTVRto8O.js";import{F as _}from"./markdown-view-pzSRu7av.js";import{n as v,s as y,t as b}from"./install-connector-dialog-CsoAidXp.js";import{n as x,t as S}from"./personal-avatar-CqNJ48Ge.js";import{t as C}from"./play-kxZvpBg8.js";import{t as w}from"./settings-2-D-csvaET.js";import{t as ee}from"./square-DMK_fB-3.js";import{t as T}from"./upload-rrb46c3c.js";import{t as E}from"./x-B_N4OPjy.js";import{t as D}from"./skeleton-BI5TyibZ.js";import{a as O,i as te,o as k,r as A,s as j,t as M}from"./dist-CaUuvp8-.js";import{l as ne}from"./voice-transcribe-api-BqIs0jgv.js";import{T as N,d as P,t as F}from"./session-manager-DNMosCtW.js";import{a as re,r as ie}from"./connectors-api-BzkgVBYC.js";import{n as ae}from"./voice-call-context-BM2A4bLz.js";import{t as oe}from"./page-header-store-reh1es-3.js";import{s as I}from"./agent-avatar-display-B1ycycx2.js";import{l as L,n as se,t as ce}from"./voice-config-api-D9iNJSvm.js";import{t as R}from"./date-formatters-DukWSVwc.js";var z=n(),B=e(t(),1),V=r(),H=[`intro`,`identity`,`voice`,`connections`],le=[{id:`loopi`,zh:`Loopi`,en:`Loopi`},{id:`loopi-curious`,zh:`好奇`,en:`Curious`},{id:`loopi-care`,zh:`温和`,en:`Gentle`}];function U(e){return!!(e?.enabled&&(e.status===`connected`||e.connectionStatus===`connected`||e.authStatus===`connected`))}async function W(e,t){let n=await new Promise((e,n)=>{let r=new FileReader;r.onload=()=>e(String(r.result)),r.onerror=()=>n(r.error),r.readAsDataURL(t)});await s(a(`/api/agents/${encodeURIComponent(e)}/avatar`),{method:`PUT`,body:JSON.stringify({base64:n.slice(n.indexOf(`,`)+1),mimeType:t.type})}),I(e)}function ue({modelsAvailable:e,onCreated:t}){let n=o(e=>e.language)===`zh`,r=o(e=>e.language),[l,u]=(0,B.useState)(`intro`),[p,h]=(0,B.useState)({displayName:`Ada`,appearance:`loopi`,voice:null}),[g,_]=(0,B.useState)(!1),[x,w]=(0,B.useState)(!1),[ee,E]=(0,B.useState)(null),[O,te]=(0,B.useState)(null),[k,A]=(0,B.useState)(null),[j,M]=(0,B.useState)(null),[N,P]=(0,B.useState)(!0),[F,ae]=(0,B.useState)([]),[oe,I]=(0,B.useState)(null),R=(0,B.useRef)(null),z=(0,B.useRef)(null),[ue,de]=(0,B.useState)([]),[G,fe]=(0,B.useState)(!0),[pe,K]=(0,B.useState)([]),[q,J]=(0,B.useState)(null);(0,B.useEffect)(()=>{let e=!1;return s(a(`/api/personal-agent/onboarding`)).then(t=>{e||(u(t.payload.step),h(t.payload.draft))}).catch(t=>{e||E(t instanceof Error?t.message:String(t))}).finally(()=>{e||_(!0)}),()=>{e=!0}},[]),(0,B.useEffect)(()=>{if(!g)return;let e=window.setTimeout(()=>{s(a(`/api/personal-agent/onboarding`),{method:`PUT`,body:JSON.stringify({step:l,draft:p})}).catch(()=>{})},350);return()=>window.clearTimeout(e)},[p,g,l]),(0,B.useEffect)(()=>{let e=!1;return ce().then(t=>{e||(t.tts&&t.enabled?M({provider:t.tts.provider,model:t.tts.model,enabled:!0}):P(!1))}).catch(()=>{e||P(!1)}),()=>{e=!0}},[]),(0,B.useEffect)(()=>{if(!j?.enabled)return;let e=!1;return se(j.provider,j.model,`realtime`).then(t=>{e||ae(t.slice(0,12))}).catch(()=>{}).finally(()=>{e||P(!1)}),()=>{e=!0}},[j]),(0,B.useEffect)(()=>{if(l!==`connections`)return;let e=!1;return fe(!0),Promise.allSettled([ie({page:1,pageSize:24,verification:`verified`}),re()]).then(([t,n])=>{if(!e){if(t.status===`fulfilled`){let e=[`gmail`,`googlecalendar`,`googledrive`,`github`,`linear`];de(t.value.connectors.filter(t=>t.runtime.type===`composio`&&e.includes(t.runtime.toolkit)).sort((t,n)=>e.indexOf(t.runtime.type===`composio`?t.runtime.toolkit:``)-e.indexOf(n.runtime.type===`composio`?n.runtime.toolkit:``)))}n.status===`fulfilled`&&K(n.value),fe(!1)}}),()=>{e=!0}},[l]),(0,B.useEffect)(()=>()=>{z.current?.abort(),R.current?.close()},[]),(0,B.useEffect)(()=>()=>{k&&URL.revokeObjectURL(k)},[k]);let me=async(e,t=p)=>{await s(a(`/api/personal-agent/onboarding`),{method:`PUT`,body:JSON.stringify({step:e,draft:t})}),u(e)},Y=async e=>{E(null);let t=H[Math.max(0,Math.min(H.length-1,H.indexOf(l)+e))];try{await me(t)}catch(e){E(e instanceof Error?e.message:String(e))}},he=async(n=!1)=>{if(!(!e||x)){w(!0),E(null);try{let e=n?{displayName:`Ada`,appearance:`loopi`,voice:null}:p,r=e.voice&&j?.enabled&&F.some(t=>t.id===e.voice)?{provider:j.provider,model:j.model,voice:e.voice}:void 0,i=(await s(a(`/api/personal-agent`),{method:`POST`,body:JSON.stringify({displayName:e.displayName.trim()||`Ada`,appearance:e.appearance,...r?{voicePreference:r}:{}})})).payload,o=!1;if(!n&&O)try{await W(i.agentId,O),i=(await s(a(`/api/personal-agent/profile`),{method:`PATCH`,body:JSON.stringify({revision:i.revision,displayName:i.displayName,appearance:`custom`})})).payload}catch{o=!0}t(i,o)}catch(e){E(e instanceof Error?e.message:String(e))}finally{w(!1)}}},X=(0,B.useCallback)(async e=>{z.current?.abort(),R.current?.close();let t=new AbortController;z.current=t,I(e),E(null);try{let n=new ne;R.current=n,await n.start();let r=await L(t.signal,e);if(t.signal.aborted)return;n.enqueue(r,()=>I(null))}catch(e){t.signal.aborted||E(e instanceof Error?e.message:String(e)),I(null)}},[]);if(!g)return(0,V.jsxs)(`div`,{className:`mx-auto w-full max-w-xl space-y-4 px-6 py-14`,children:[(0,V.jsx)(D,{className:`h-10 w-2/3`}),(0,V.jsx)(D,{className:`h-64 w-full rounded-2xl`}),(0,V.jsx)(D,{className:`h-12 w-full rounded-xl`})]});let Z=H.indexOf(l),ge={intro:n?`创建一个和你一起做事的助手`:`Create an assistant to work with you`,identity:n?`先给它一个形象和名字`:`Choose a look and a name`,voice:n?`想让我用什么声音回应?`:`How should your assistant sound?`,connections:n?`要让我了解哪些信息?`:`What information can your assistant use?`}[l];return(0,V.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-surface-base`,children:[(0,V.jsx)(`header`,{className:`shrink-0 px-5 pt-5 sm:px-8 sm:pt-7`,children:(0,V.jsxs)(`div`,{className:`mx-auto w-full max-w-2xl`,children:[(0,V.jsxs)(`div`,{className:`flex min-h-10 items-center justify-between gap-4`,children:[Z>0?(0,V.jsxs)(`button`,{type:`button`,disabled:x,onClick:()=>void Y(-1),className:`-ml-2 inline-flex min-h-10 items-center gap-1.5 rounded-lg px-2 text-sm text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-40`,children:[(0,V.jsx)(d,{className:`size-4`}),n?`上一步`:`Back`]}):(0,V.jsx)(`span`,{className:`text-sm font-medium text-fg-muted`,children:n?`设置我的助手`:`Set up my assistant`}),(0,V.jsx)(i,{to:`/chat`,className:`-mr-2 inline-flex min-h-10 items-center rounded-lg px-2 text-sm text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:n?`稍后继续`:`Finish later`})]}),(0,V.jsx)(`div`,{className:`mt-4 grid grid-cols-4 gap-1.5`,role:`progressbar`,"aria-label":n?`设置进度`:`Setup progress`,"aria-valuenow":Z+1,"aria-valuemin":1,"aria-valuemax":H.length,children:H.map((e,t)=>(0,V.jsx)(`span`,{className:`h-1 rounded-full transition-colors duration-200 ${t<=Z?`bg-accent`:`bg-surface-active`}`},e))})]})}),(0,V.jsx)(`main`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto px-5 py-8 sm:px-8`,children:(0,V.jsxs)(`div`,{className:`mx-auto my-auto w-full max-w-2xl py-6 motion-safe:animate-[page-enter_220ms_ease-out]`,children:[(0,V.jsxs)(`div`,{className:`mb-8 flex items-center gap-4`,children:[(0,V.jsx)(`span`,{className:`flex size-16 shrink-0 items-center justify-center rounded-2xl bg-surface-hover`,children:k?(0,V.jsx)(`img`,{src:k,alt:``,className:`size-14 rounded-xl object-cover`}):(0,V.jsx)(S,{appearance:p.appearance,className:`size-14`})}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n?`我的助手`:`My assistant`}),(0,V.jsx)(`p`,{className:`mt-1 text-lg font-semibold text-fg`,children:p.displayName||`Ada`})]})]}),(0,V.jsx)(`p`,{className:`mb-3 text-xs font-medium tracking-wide text-fg-subtle`,children:n?`第 ${Z+1} 步 · 共 ${H.length} 步`:`Step ${Z+1} of ${H.length}`}),(0,V.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight text-fg sm:text-3xl`,children:ge}),l===`intro`&&(0,V.jsxs)(`div`,{className:`mt-6 max-w-xl space-y-3 text-base leading-8 text-fg-muted`,children:[(0,V.jsx)(`p`,{children:n?`你可以找它讨论问题,也可以交给它一件要推进的事。`:`Talk through a question or give it something to move forward.`}),(0,V.jsx)(`p`,{children:n?`需要深入处理时,它会找合适的 Agent,并把进展带回对话。`:`It can ask a suitable Agent for deeper work and bring the progress back.`}),(0,V.jsx)(`p`,{children:n?`它能使用哪些数据和设备,由你决定。`:`You choose which data and devices it can use.`})]}),l===`identity`&&(0,V.jsxs)(`div`,{className:`mt-7 space-y-7`,children:[(0,V.jsxs)(`label`,{className:`block text-sm font-medium text-fg`,children:[n?`助手名字`:`Assistant name`,(0,V.jsx)(`input`,{value:p.displayName,maxLength:60,onChange:e=>h(t=>({...t,displayName:e.target.value})),onBlur:()=>h(e=>({...e,displayName:e.displayName.trim()||`Ada`})),className:`mt-2 block w-full rounded-xl border border-edge bg-surface-panel px-4 py-3 text-fg outline-none focus-visible:ring-2 focus-visible:ring-accent`})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:`mb-3 text-sm font-medium text-fg`,children:n?`选择头像`:`Choose an avatar`}),(0,V.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-4`,children:[le.map(e=>(0,V.jsxs)(`button`,{type:`button`,"aria-pressed":!O&&p.appearance===e.id,onClick:()=>{te(null),A(null),h(t=>({...t,appearance:e.id}))},className:`flex min-h-28 flex-col items-center justify-center gap-2 rounded-2xl p-3 text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${!O&&p.appearance===e.id?`bg-accent/10 text-fg ring-1 ring-accent/40`:`bg-surface-panel text-fg-muted hover:bg-surface-hover`}`,children:[(0,V.jsx)(S,{appearance:e.id,className:`size-14`}),n?e.zh:e.en]},e.id)),(0,V.jsxs)(`label`,{className:`flex min-h-28 cursor-pointer flex-col items-center justify-center gap-2 rounded-2xl p-3 text-sm transition-colors focus-within:ring-2 focus-within:ring-accent ${O?`bg-accent/10 text-fg ring-1 ring-accent/40`:`bg-surface-panel text-fg-muted hover:bg-surface-hover`}`,children:[(0,V.jsx)(T,{className:`size-6`}),n?`上传图片`:`Upload image`,(0,V.jsx)(`input`,{className:`sr-only`,type:`file`,accept:`image/png,image/jpeg,image/webp`,onChange:e=>{let t=e.target.files?.[0];if(t){if(t.size>512*1024||![`image/png`,`image/jpeg`,`image/webp`].includes(t.type)){E(n?`请选择不超过 512 KB 的 PNG、JPEG 或 WebP 图片。`:`Choose a PNG, JPEG, or WebP image under 512 KB.`);return}te(t),A(URL.createObjectURL(t))}}})]})]}),(0,V.jsx)(`p`,{className:`mt-2 text-xs text-fg-subtle`,children:n?`自定义图片在创建助手时上传;刷新后需要重新选择。`:`Custom images upload when you create the assistant; select again after a refresh.`})]})]}),l===`voice`&&(0,V.jsxs)(`div`,{className:`mt-5`,children:[(0,V.jsx)(`p`,{className:`text-sm leading-6 text-fg-muted`,children:n?`用于这个助手的语音通话;文字回答不受影响。试听不会使用麦克风。`:`This affects calls with this assistant. Text stays the same. Preview does not use your microphone.`}),N?(0,V.jsxs)(`div`,{className:`mt-5 grid gap-3 sm:grid-cols-2`,children:[(0,V.jsx)(D,{className:`h-20 rounded-xl`}),(0,V.jsx)(D,{className:`h-20 rounded-xl`})]}):j?.enabled&&F.length>0?(0,V.jsxs)(`div`,{className:`mt-5 grid gap-3 sm:grid-cols-2`,children:[(0,V.jsx)(`button`,{type:`button`,"aria-pressed":!p.voice,onClick:()=>h(e=>({...e,voice:null})),className:`rounded-xl p-4 text-left text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${p.voice?`bg-surface-panel text-fg-muted hover:bg-surface-hover`:`bg-accent/10 text-fg ring-1 ring-accent/40`}`,children:n?`使用默认声音`:`Use the default voice`}),F.map(e=>(0,V.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl p-3 transition-colors ${p.voice===e.id?`bg-accent/10 ring-1 ring-accent/40`:`bg-surface-panel hover:bg-surface-hover`}`,children:[(0,V.jsxs)(`button`,{type:`button`,className:`min-w-0 flex-1 rounded-lg text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-pressed":p.voice===e.id,onClick:()=>h(t=>({...t,voice:e.id})),children:[(0,V.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:e.name}),(0,V.jsx)(`span`,{className:`mt-1 block text-xs text-fg-muted`,children:e.description||e.style||(n?`点击选择`:`Select this voice`)})]}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>void X(e.id),className:`flex size-9 shrink-0 items-center justify-center rounded-full bg-surface-hover text-fg hover:bg-surface-active focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":n?`试听${e.name}`:`Preview ${e.name}`,children:(0,V.jsx)(C,{className:`size-4 ${oe===e.id?`text-accent`:``}`})})]},e.id))]}):(0,V.jsxs)(`div`,{className:`mt-5 rounded-xl bg-surface-panel p-5 text-sm text-fg-muted`,children:[(0,V.jsx)(`p`,{children:n?`当前没有可试听的语音。你可以先用文字对话,稍后再设置。`:`No voice is ready to preview. You can start with text and set it up later.`}),(0,V.jsx)(i,{to:`/settings/capabilities/models?configure=speech&returnTo=%2Fpersonal`,className:`mt-3 inline-block text-accent hover:underline`,children:n?`设置语音服务`:`Set up voice`})]})]}),l===`connections`&&(0,V.jsxs)(`div`,{className:`mt-5`,children:[(0,V.jsx)(`p`,{className:`text-sm leading-6 text-fg-muted`,children:n?`现在连接,或进入对话后再添加。连接不会自动读取历史数据或创建持续关注。`:`Connect now or add sources later. Connecting does not automatically scan history or create ongoing monitoring.`}),G?(0,V.jsxs)(`div`,{className:`mt-5 space-y-2`,children:[(0,V.jsx)(D,{className:`h-18 rounded-xl`}),(0,V.jsx)(D,{className:`h-18 rounded-xl`})]}):(0,V.jsx)(`div`,{className:`mt-5 space-y-2`,children:ue.length?ue.map(e=>{let t=U(pe.find(t=>t.connectorId===e.id));return(0,V.jsxs)(`div`,{className:`flex items-center gap-3 rounded-xl bg-surface-panel p-4`,children:[(0,V.jsx)(v,{connector:e,size:`sm`}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,V.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:e.displayName}),(0,V.jsx)(`p`,{className:`line-clamp-2 text-xs text-fg-muted`,children:e.description})]}),t?(0,V.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-success`,children:[(0,V.jsx)(m,{className:`size-4`}),n?`已连接`:`Connected`]}):(0,V.jsx)(`button`,{type:`button`,onClick:()=>J(y(e)),className:`rounded-lg bg-surface-hover px-3 py-2 text-xs text-fg transition-colors hover:bg-surface-active focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:n?`连接`:`Connect`})]},e.id)}):(0,V.jsx)(`p`,{className:`rounded-xl bg-surface-panel p-5 text-sm text-fg-muted`,children:n?`暂无可用的推荐服务;你仍可直接进入对话。`:`No suggested services are available. You can continue to chat.`})})]}),!e&&(0,V.jsxs)(`p`,{className:`mt-5 rounded-xl bg-warning/5 p-4 text-sm text-fg-muted`,children:[n?`开始前需要一个可用模型。`:`A compatible model is required before you start.`,` `,(0,V.jsx)(i,{to:`/settings/capabilities/models`,className:`text-accent underline`,children:n?`配置模型`:`Set up a model`})]}),ee&&(0,V.jsx)(`p`,{role:`alert`,className:`mt-5 text-sm text-danger`,children:ee})]},l)}),(0,V.jsx)(`footer`,{className:`shrink-0 px-5 pb-6 pt-3 sm:px-8 sm:pb-9`,children:(0,V.jsxs)(`div`,{className:`mx-auto flex w-full max-w-2xl flex-col-reverse gap-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,V.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:n?`这些选择以后都能调整`:`You can change these choices later`}),(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[l===`intro`&&(0,V.jsx)(`button`,{type:`button`,disabled:!e||x,onClick:()=>void he(!0),className:`min-h-11 rounded-lg px-3 text-sm text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-40`,children:n?`用默认设置开始`:`Use defaults`}),l===`voice`&&(0,V.jsx)(`button`,{type:`button`,onClick:()=>{let e={...p,voice:null};h(e),E(null),me(`connections`,e).catch(e=>E(e instanceof Error?e.message:String(e)))},className:`min-h-11 rounded-lg px-3 text-sm text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:n?`跳过`:`Skip`}),(0,V.jsxs)(`button`,{type:`button`,disabled:x||l===`connections`&&!e,onClick:()=>l===`connections`?void he():void Y(1),className:`flex min-h-11 items-center gap-2 rounded-xl bg-accent px-5 text-sm font-medium text-on-accent transition-colors hover:bg-accent-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:opacity-40`,children:[x?n?`正在创建…`:`Creating…`:l===`connections`?n?`进入对话`:`Start chatting`:n?`继续`:`Continue`,` `,!x&&(0,V.jsx)(f,{className:`size-4`})]})]})]})}),q&&(0,V.jsx)(b,{draft:q,onChange:J,onClose:()=>J(null),t:c(r).connectorsSettings,onInstalled:async()=>{K(await re()),J(null)}})]})}function de({record:e,zh:t,onSelectVoice:n,onGreetingChange:r}){let[a,o]=(0,B.useState)(!1),[s,c]=(0,B.useState)(!0),[l,u]=(0,B.useState)(``),[d,f]=(0,B.useState)(null),[p,m]=(0,B.useState)([]),[g,_]=(0,B.useState)(e.voicePreference?.voice??``),[v,y]=(0,B.useState)(!1),[b,x]=(0,B.useState)(null),[S,w]=(0,B.useState)(null),T=(0,B.useRef)(null),E=(0,B.useRef)(null);(0,B.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await ce();if(e||(o(t.openingGreeting===!0),!t.enabled||!t.tts))return;let n={provider:t.tts.provider,model:t.tts.model};f(n);let r=await se(n.provider,n.model,`realtime`);e||m(r)}catch(t){e||x(t instanceof Error?t.message:String(t))}finally{e||c(!1)}})(),()=>{e=!0}},[]),(0,B.useEffect)(()=>()=>{E.current?.abort(),T.current?.close()},[]);let O=()=>{E.current?.abort(),E.current=null,T.current?.close(),T.current=null,w(null)},te=async e=>{if(S!==null){O();return}O(),x(null);let n=new AbortController;E.current=n,w(e);try{let t=new ne;T.current=t,await t.start();let r=await L(n.signal,e);n.signal.aborted||t.enqueue(r,()=>{E.current===n&&(w(null),E.current=null,T.current=null,t.close())})}catch(e){if(!n.signal.aborted){let n=e?.body?.error?.code;x(t&&n===`unsupported_voice`?`当前音色暂不可用,请刷新语音目录或选择其他音色。`:e instanceof Error?e.message:String(e))}E.current===n&&O()}},k=async e=>{if(v||e===g)return;O();let t=g;_(e),u(``),y(!0),x(null);try{await n(e&&d?{provider:d.provider,model:d.model,voice:e}:null)||_(t)}catch(e){_(t),x(e instanceof Error?e.message:String(e))}finally{y(!1)}},A=p.find(e=>e.id===g),j=t?`默认声音`:`Default voice`,M=A?.name||(g?t?`当前音色不可用`:`Current voice unavailable`:j),N=l.trim().toLocaleLowerCase(),P=p.filter(e=>!N||`${e.name} ${e.description??``} ${e.style??``}`.toLocaleLowerCase().includes(N)).map(e=>({value:e.id,label:e.name}));return(0,V.jsxs)(`section`,{className:`border-t border-edge pt-5`,children:[(0,V.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:t?`通话声音`:`Call voice`}),s?(0,V.jsx)(`div`,{className:`mt-3`,"aria-busy":`true`,children:(0,V.jsx)(D,{className:`h-10 w-full`})}):d&&p.length?(0,V.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,V.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,V.jsx)(h,{value:g,selectedLabel:M,options:P,placeholder:j,emptyLabel:j,ariaLabel:t?`选择通话音色`:`Choose call voice`,disabled:v,onChange:e=>void k(e),searchPlaceholder:p.length>8?t?`搜索音色`:`Search voices`:void 0,searchValue:l,onSearchChange:u,statusMessage:N&&!P.length?t?`没有匹配的音色`:`No matching voices`:void 0})}),(0,V.jsxs)(`button`,{type:`button`,disabled:v||!!(g&&!A),onClick:()=>void te(g),className:`touch-target flex h-10 shrink-0 items-center justify-center gap-1.5 rounded-lg border border-edge px-3 text-sm text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-50`,title:S===null?t?`试听${M}`:`Preview ${M}`:t?`停止试听`:`Stop preview`,"aria-label":S===null?t?`试听${M}`:`Preview ${M}`:t?`停止试听`:`Stop preview`,children:[S===null?(0,V.jsx)(C,{className:`size-4`,"aria-hidden":!0}):(0,V.jsx)(ee,{className:`size-4 text-accent`,"aria-hidden":!0}),S===null?t?`试听`:`Preview`:t?`停止`:`Stop`]})]}),(0,V.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-muted`,children:A?.description||A?.style||(g?t?`选择后自动保存,用于之后的语音通话。`:`Saved automatically for future voice calls.`:t?`跟随语音服务的默认音色。`:`Uses the voice service’s default voice.`)})]}):(0,V.jsxs)(`p`,{className:`mt-3 text-sm text-fg-muted`,children:[t?`当前没有可用音色。`:`No voice is ready.`,` `,(0,V.jsx)(i,{to:`/settings/capabilities/models?configure=speech&returnTo=%2Fpersonal`,className:`text-accent underline`,children:t?`设置语音服务`:`Set up voice`})]}),r&&a&&(0,V.jsxs)(`label`,{className:`mt-4 flex items-center justify-between gap-3 text-sm text-fg`,children:[t?`连接时打招呼`:`Greet me when connected`,(0,V.jsx)(`input`,{type:`checkbox`,checked:e.voiceCallPreferences?.openingGreetingEnabled??!0,disabled:v,onChange:e=>{let t=e.target.checked;y(!0),r(t).catch(e=>x(String(e))).finally(()=>y(!1))}})]}),b&&(0,V.jsx)(`p`,{role:`alert`,className:`mt-3 text-xs text-danger`,children:b})]})}var G=new F;function fe({conversationId:e,zh:t,onSaved:n}){let r=N(t=>t.sessions[e]),[i,a]=(0,B.useState)(!0),[o,s]=(0,B.useState)(``);(0,B.useEffect)(()=>{let t=!0;return G.loadSessionAgentConfig(e).then(n=>{t&&P(e,n)}).catch(e=>{t&&s(String(e))}).finally(()=>{t&&a(!1)}),()=>{t=!1}},[e]);let l=!!r?.modelConfigSaving;async function d(t,i){N.getState().patchSessionMeta(e,{modelConfigSaving:!0});try{P(e,await G.patchSessionAgentConfig(e,{model:t,thinkingLevel:i,configVersion:r?.configVersion})),await n()}catch(t){let n=await G.loadSessionAgentConfig(e).catch(()=>null);throw n&&P(e,n),t}finally{N.getState().patchSessionMeta(e,{modelConfigSaving:!1})}}return(0,V.jsxs)(`section`,{children:[(0,V.jsx)(`h3`,{className:`mb-3 text-sm font-medium text-fg`,children:t?`对话模型与思考强度`:`Conversation model and thinking`}),i?(0,V.jsx)(D,{className:`h-9 w-full`}):(0,V.jsx)(u,{chat:c(t?`zh`:`en`).chat,sessionModel:r?.model??``,thinkingLevel:r?.thinkingLevel??`off`,modelDisabled:l,thinkingDisabled:l,onModelChange:d,onThinkingChange:e=>d(r?.model??``,e)}),o&&(0,V.jsx)(`p`,{role:`alert`,className:`mt-2 text-sm text-danger`,children:o})]})}var pe=5;function K(e){let t=e.replace(/\s+/g,` `).trim();if(t.length<=58)return t;let n=t.replace(/([^)]{1,80})|\([^)]{1,80}\)/g,``).replace(/([A-Za-z0-9])(?=[\u4e00-\u9fff])/g,`$1 `).replace(/\s+/g,` `).trim(),r=n.split(/[。!?;;,]/,1)[0]?.trim()||n;return r.length>58?`${r.slice(0,57).trimEnd()}…`:r}function q(e,t){if(e.phase===`closed`)return{label:t?`已结束`:`Finished`,tone:`bg-fg-subtle`};let n=e.operationalState??e.runStatus;return n===`running`?{label:t?`正在执行`:`Working`,tone:`bg-accent`}:n===`queued`?{label:t?`等待开始`:`Queued`,tone:`bg-fg-subtle`}:n===`failed`?{label:t?`执行失败`:`Failed`,tone:`bg-danger`}:n===`waiting`?{label:t?`等待继续`:`Waiting`,tone:`bg-warning`}:n===`blocked`?{label:t?`已阻塞`:`Blocked`,tone:`bg-warning`}:n===`verifying`?{label:t?`正在验证`:`Verifying`,tone:`bg-accent`}:n===`cancelled`?{label:t?`执行已取消`:`Cancelled`,tone:`bg-fg-subtle`}:e.phase===`review`?{label:t?`等待验收`:`In review`,tone:`bg-warning`}:e.phase===`active`?{label:t?`正在推进`:`In progress`,tone:`bg-accent`}:e.phase===`ready`?{label:t?`准备开始`:`Ready`,tone:`bg-fg-subtle`}:{label:t?`待处理`:`Planned`,tone:`bg-fg-subtle`}}function J(e){let t=(0,z.c)(30),{item:n,zh:r}=e,a;t[0]!==n||t[1]!==r?(a=q(n,r),t[0]=n,t[1]=r,t[2]=a):a=t[2];let o=a,s;t[3]===n.id?s=t[4]:(s=_(`/personal`,n.id),t[3]=n.id,t[4]=s);let c=`mt-2 size-1.5 shrink-0 rounded-full ${o.tone}`,l;t[5]===c?l=t[6]:(l=(0,V.jsx)(`span`,{className:c,"aria-hidden":!0}),t[5]=c,t[6]=l);let u;t[7]===n.title?u=t[8]:(u=K(n.title),t[7]=n.title,t[8]=u);let d;t[9]===u?d=t[10]:(d=(0,V.jsx)(`span`,{className:`line-clamp-2 break-words text-sm font-medium leading-5 text-fg`,children:u}),t[9]=u,t[10]=d);let f;t[11]===o.label?f=t[12]:(f=(0,V.jsx)(`span`,{children:o.label}),t[11]=o.label,t[12]=f);let m;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,V.jsx)(`span`,{className:`text-fg-subtle`,"aria-hidden":!0,children:`·`}),t[13]=m):m=t[13];let h=r?`zh`:`en`,g;t[14]!==n.updatedAt||t[15]!==h?(g=R(n.updatedAt,h),t[14]=n.updatedAt,t[15]=h,t[16]=g):g=t[16];let v;t[17]===g?v=t[18]:(v=(0,V.jsx)(`span`,{children:g}),t[17]=g,t[18]=v);let y;t[19]!==v||t[20]!==f?(y=(0,V.jsxs)(`span`,{className:`mt-1.5 flex items-center gap-2 text-xs text-fg-muted`,children:[f,m,v]}),t[19]=v,t[20]=f,t[21]=y):y=t[21];let b;t[22]!==y||t[23]!==d?(b=(0,V.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[d,y]}),t[22]=y,t[23]=d,t[24]=b):b=t[24];let x;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,V.jsx)(p,{className:`mt-0.5 size-4 shrink-0 text-fg-subtle opacity-0 transition-opacity duration-150 group-hover:opacity-100 group-focus-visible:opacity-100`,"aria-hidden":!0}),t[25]=x):x=t[25];let S;return t[26]!==b||t[27]!==s||t[28]!==l?(S=(0,V.jsxs)(i,{to:s,className:`group flex min-w-0 items-start gap-3 rounded-2xl bg-surface-panel px-4 py-4 transition-colors duration-150 hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[l,b,x]}),t[26]=b,t[27]=s,t[28]=l,t[29]=S):S=t[29],S}var me=[{id:`loopi`,zh:`Loopi`,en:`Loopi`,color:`bg-slate-100/50 dark:bg-slate-400/10`},{id:`loopi-curious`,zh:`好奇`,en:`Curious`,color:`bg-blue-100/50 dark:bg-blue-400/10`},{id:`loopi-care`,zh:`温和`,en:`Gentle`,color:`bg-violet-100/50 dark:bg-violet-400/10`}];function Y(){let e=ae(),t=(0,B.useRef)(e);t.current=e;let n=o(e=>e.language)===`zh`,r=oe(e=>e.setPageHeader),i=oe(e=>e.clearPageHeader),[c,u]=(0,B.useState)(null),d=(0,B.useRef)(null),f=(0,B.useRef)(Promise.resolve()),[p,m]=(0,B.useState)([]),[h,_]=(0,B.useState)(!0),[v,y]=(0,B.useState)(0),[b,C]=(0,B.useState)(null),[ee,ne]=(0,B.useState)(!1),[N,P]=(0,B.useState)(`loopi`),[F,re]=(0,B.useState)(!1),ie=(0,B.useRef)(null),L=(0,B.useRef)(null),se=(0,B.useRef)(null),[ce,R]=(0,B.useState)(``),[z,H]=(0,B.useState)(!1),[le,U]=(0,B.useState)(!1),[W,G]=(0,B.useState)(!1),[K,q]=(0,B.useState)(null),[Y,he]=(0,B.useState)(!1),[X,Z]=(0,B.useState)(!1),[ge,_e]=(0,B.useState)(!1),[Q,ve]=(0,B.useState)(0),$=(0,B.useRef)(0),ye=(0,B.useCallback)(()=>{G(!1),U(!1),H(!0)},[]),be=(0,B.useCallback)(()=>{G(!1),U(!1),H(e=>!e)},[]),xe=(0,B.useCallback)(async()=>{try{let[e,t]=await Promise.all([s(a(`/api/personal-agent`)),s(a(`/api/personal-agent/models`))]);d.current=e.payload,u(e.payload),window.dispatchEvent(new CustomEvent(`personal-agent-updated`,{detail:e.payload})),e.payload&&window.dispatchEvent(new Event(`session-updated`)),m(t.payload),e.payload&&(R(e.payload.displayName),P(e.payload.appearance))}catch(e){C(e instanceof Error?e.message:String(e))}finally{_(!1)}},[]);(0,B.useEffect)(()=>{xe()},[xe]);let Se=(0,B.useCallback)(e=>{y(e=>e+1),C(null);let t=f.current.then(async()=>{let t=d.current;if(!t)return!1;let n=e.displayName?.trim()||t.displayName,r=e.appearance??t.appearance,i=e.voicePreference===void 0?t.voicePreference:e.voicePreference;if(n===t.displayName&&r===t.appearance&&JSON.stringify(i)===JSON.stringify(t.voicePreference)&&(!e.voiceCallPreferences||JSON.stringify(e.voiceCallPreferences)===JSON.stringify(t.voiceCallPreferences)))return!0;try{let o=await s(a(`/api/personal-agent/profile`),{method:`PATCH`,body:JSON.stringify({revision:t.revision,displayName:n,appearance:r,...e.voicePreference===void 0?{}:{voicePreference:i},...e.voiceCallPreferences?{voiceCallPreferences:e.voiceCallPreferences}:{}})});return d.current=o.payload,u(o.payload),window.dispatchEvent(new CustomEvent(`personal-agent-updated`,{detail:o.payload})),!0}catch(e){return C(e instanceof Error?e.message:String(e)),!1}}).finally(()=>y(e=>e-1));return f.current=t,t},[]),Ce=(0,B.useCallback)(async()=>{let e=++$.current;G(!0),q(null),he(!1),Z(!1),_e(!1),ve(0);try{let t=await s(a(`/api/personal-agent/activity?limit=${pe}&offset=0`));if(e!==$.current)return;q(t.payload),ve(t.payload.items.length)}catch{e===$.current&&he(!0)}},[]),we=(0,B.useCallback)(async()=>{if(!K||X||Q>=K.total)return;let e=$.current;Z(!0),_e(!1);try{let t=await s(a(`/api/personal-agent/activity?limit=${pe}&offset=${Q}`));if(e!==$.current)return;q(e=>e?{total:t.payload.total,items:[...e.items,...t.payload.items.filter(t=>!e.items.some(e=>e.id===t.id))]}:t.payload),ve(e=>e+t.payload.items.length)}catch{e===$.current&&_e(!0)}finally{e===$.current&&Z(!1)}},[K,Q,X]);(0,B.useEffect)(()=>{if(!W||!K||X)return;let e,t=()=>{window.clearTimeout(e),e=window.setTimeout(async()=>{let e=$.current;try{let t=await s(a(`/api/personal-agent/activity?limit=${Math.max(pe,Math.min(100,Q))}&offset=0`));if(e!==$.current)return;q(t.payload),ve(t.payload.items.length)}catch{}},120)},n=window.setInterval(t,5e3);return window.addEventListener(`task-changed-v2`,t),window.addEventListener(`gateway-realtime-connected`,t),()=>{window.clearTimeout(e),window.clearInterval(n),window.removeEventListener(`task-changed-v2`,t),window.removeEventListener(`gateway-realtime-connected`,t)}},[K,Q,X,W]);let Te=async e=>{if(!c||![`image/png`,`image/jpeg`,`image/webp`].includes(e.type)){C(n?`请选择 PNG、JPEG 或 WebP 图片。`:`Choose a PNG, JPEG, or WebP image.`);return}if(e.size===0||e.size>512*1024){C(n?`图片大小不能超过 512 KB。`:`Image must be 512 KB or smaller.`);return}re(!0),C(null);try{let t=await new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result)),r.onerror=()=>n(r.error),r.readAsDataURL(e)});await s(a(`/api/agents/${encodeURIComponent(c.agentId)}/avatar`),{method:`PUT`,body:JSON.stringify({base64:t.slice(t.indexOf(`,`)+1),mimeType:e.type})}),I(c.agentId),P(`custom`),U(!1),await Se({appearance:`custom`})}catch(e){C(e instanceof Error?e.message:String(e))}finally{re(!1)}};(0,B.useLayoutEffect)(()=>{let a=c?.state===`ready`,o=a?c.appearance:N,s=a?c.displayName:`Ada`;return r({startExtra:null,main:(0,V.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2.5`,children:[a?(0,V.jsx)(`button`,{ref:se,type:`button`,onClick:be,"aria-expanded":z,className:`touch-target -m-1 shrink-0 rounded-full p-1 transition-opacity hover:opacity-80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":n?`编辑${s}的资料`:`Edit ${s}'s profile`,title:n?`资料`:`Profile`,children:(0,V.jsx)(`span`,{className:`flex size-8 items-center justify-center`,children:(0,V.jsx)(S,{appearance:o,agentId:c?.agentId,className:`size-8`})})}):(0,V.jsx)(`span`,{className:`flex size-8 shrink-0 items-center justify-center`,children:(0,V.jsx)(S,{appearance:o,agentId:c?.agentId,className:`size-8`})}),(0,V.jsx)(`h1`,{className:`min-w-0 truncate text-sm font-semibold text-fg sm:text-base`,children:s})]}),end:a?(0,V.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,V.jsx)(`button`,{type:`button`,disabled:e.active,onClick:()=>{c?.state===`ready`&&t.current.open({conversationId:c.conversationId,name:c.displayName,mode:`assistant`})},className:`touch-target rounded-lg p-2 text-fg-muted hover:bg-surface-hover hover:text-fg disabled:opacity-50`,"aria-label":n?`语音通话`:`Voice call`,title:n?`语音通话`:`Voice call`,children:(0,V.jsx)(x,{className:`size-5`})}),(0,V.jsxs)(k,{open:W,onOpenChange:e=>{e?Ce():G(!1)},children:[(0,V.jsx)(j,{asChild:!0,children:(0,V.jsx)(`button`,{type:`button`,"aria-pressed":W,className:`touch-target rounded-lg p-2 text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":n?`正在做的事`:`Activity`,children:(0,V.jsx)(g,{className:`size-5`})})}),(0,V.jsx)(O,{children:(0,V.jsxs)(te,{side:`bottom`,align:`end`,sideOffset:8,collisionPadding:8,"aria-label":n?`派发的任务`:`Delegated tasks`,className:`z-50 flex h-[min(34rem,calc(100dvh-6rem))] w-[min(22rem,calc(100vw-1rem))] min-h-0 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay shadow-xl focus:outline-none`,children:[(0,V.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-3 px-6 pb-3 pt-6`,children:[(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsx)(`h2`,{className:`text-base font-semibold tracking-tight text-fg`,children:n?`交给我推进的事`:`Delegated work`}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:K?n?`最近更新 · 共 ${K.total} 项`:`Recently updated · ${K.total} total`:n?`查看任务进展与结果`:`Follow progress and results`})]}),(0,V.jsx)(A,{className:`touch-target -mr-2 -mt-1 rounded-lg p-2 text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":n?`关闭活动`:`Close activity`,children:(0,V.jsx)(E,{className:`size-4`})})]}),(0,V.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-3 pb-5 pt-3`,children:[!K&&!Y&&(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(D,{className:`h-18 rounded-2xl`}),(0,V.jsx)(D,{className:`h-18 rounded-2xl`}),(0,V.jsx)(D,{className:`h-18 rounded-2xl`})]}),Y&&(0,V.jsxs)(`div`,{className:`px-5 py-12 text-center`,children:[(0,V.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n?`暂时无法读取任务`:`Could not load tasks`}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>void Ce(),className:`mt-3 rounded-lg px-3 py-2 text-sm text-accent hover:bg-surface-hover`,children:n?`重试`:`Try again`})]}),K?.items.length===0&&(0,V.jsxs)(`div`,{className:`px-5 py-16 text-center`,children:[(0,V.jsx)(g,{className:`mx-auto size-7 text-fg-subtle`,"aria-hidden":!0}),(0,V.jsx)(`p`,{className:`mt-4 text-sm font-medium text-fg`,children:n?`还没有派发的任务`:`No delegated work yet`}),(0,V.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:n?`你可以在对话里直接告诉我想推进的事。`:`Tell me what you would like to move forward in chat.`})]}),K&&K.items.length>0&&(0,V.jsx)(`div`,{className:`space-y-2`,children:K.items.map(e=>(0,V.jsx)(J,{item:e,zh:n},e.id))}),K&&Q<K.total&&(0,V.jsxs)(`div`,{className:`pt-4 text-center`,children:[(0,V.jsx)(`button`,{type:`button`,onClick:()=>void we(),disabled:X,className:`min-h-10 rounded-xl bg-surface-panel px-5 text-sm font-medium text-fg-muted transition-colors hover:bg-surface-hover hover:text-fg disabled:opacity-50`,children:X?n?`正在加载…`:`Loading…`:n?`加载更多`:`Load more`}),ge&&(0,V.jsx)(`p`,{role:`alert`,className:`mt-2 text-xs text-danger`,children:n?`加载失败,请重试`:`Could not load more. Try again.`})]})]})]})})]}),(0,V.jsx)(`button`,{ref:L,type:`button`,onClick:be,"aria-expanded":z,className:`touch-target rounded-lg p-2 text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":n?`编辑资料`:`Edit profile`,children:(0,V.jsx)(w,{className:`size-5`})})]}):null}),()=>i()},[K,Y,Q,X,ge,N,i,we,Ce,c,r,W,z,be,e.active,n]);function Ee(){return c?(0,V.jsxs)(k,{open:z,onOpenChange:e=>{H(e),e||U(!1)},children:[(0,V.jsx)(M,{virtualRef:L}),(0,V.jsx)(O,{children:(0,V.jsxs)(te,{side:`bottom`,align:`end`,sideOffset:8,collisionPadding:8,"aria-label":n?`编辑 Personal AI`:`Edit Personal AI`,onInteractOutside:e=>{e.target instanceof Node&&(L.current?.contains(e.target)||se.current?.contains(e.target))&&e.preventDefault()},className:`z-50 flex w-[min(22rem,calc(100vw-1rem))] flex-col rounded-2xl border border-edge bg-surface-overlay shadow-xl outline-none`,children:[(0,V.jsxs)(`div`,{className:`relative flex shrink-0 flex-col items-center px-4 pt-4 text-center`,children:[(0,V.jsx)(`button`,{type:`button`,disabled:F,onClick:()=>U(e=>!e),"aria-expanded":le,"aria-controls":`personal-appearance-options`,"aria-label":n?`选择头像`:`Choose avatar`,className:`rounded-full transition-opacity hover:opacity-80 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-50`,children:(0,V.jsx)(S,{appearance:N,agentId:c.agentId,className:`size-16`})}),(0,V.jsx)(`input`,{id:`personal-name`,"aria-label":n?`助手名称`:`Assistant name`,value:ce,onChange:e=>R(e.target.value),onBlur:e=>{let t=e.currentTarget.value.trim();t?(R(t),Se({displayName:t})):R(d.current?.displayName??``)},onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur(),e.key===`Escape`&&(e.currentTarget.value=d.current?.displayName??``,R(e.currentTarget.value),e.currentTarget.blur())},maxLength:60,placeholder:`Ada`,className:`mt-2 w-full min-w-0 rounded-lg border border-transparent bg-transparent px-2 py-1 text-center text-lg font-semibold text-fg outline-none transition-colors hover:border-edge focus:border-edge focus:bg-surface-base focus-visible:ring-2 focus-visible:ring-accent`}),v>0&&(0,V.jsx)(`span`,{className:`absolute right-4 top-4 text-xs text-fg-muted`,children:n?`正在保存…`:`Saving…`})]}),(0,V.jsxs)(`div`,{className:`space-y-4 px-4 py-4`,children:[b&&(0,V.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:b}),le&&(0,V.jsxs)(`section`,{id:`personal-appearance-options`,children:[(0,V.jsx)(`h3`,{className:`mb-3 text-sm font-medium text-fg`,children:n?`形象`:`Appearance`}),(0,V.jsxs)(`div`,{className:`grid grid-cols-4 gap-2`,children:[me.map(e=>(0,V.jsxs)(`button`,{type:`button`,onClick:()=>{P(e.id),U(!1),Se({appearance:e.id})},"aria-pressed":N===e.id,className:`flex min-w-0 flex-col items-center gap-1.5 rounded-xl px-1 py-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${N===e.id?`bg-accent/10 ring-1 ring-accent/40`:`bg-surface-panel hover:bg-surface-hover`}`,children:[(0,V.jsx)(`span`,{className:`flex size-8 items-center justify-center rounded-full ${e.color}`,children:(0,V.jsx)(S,{appearance:e.id,className:`size-8`})}),(0,V.jsx)(`span`,{className:`truncate text-xs text-fg-muted`,children:n?e.zh:e.en})]},e.id)),(0,V.jsx)(`input`,{ref:ie,type:`file`,accept:`image/png,image/jpeg,image/webp`,className:`sr-only`,"aria-label":n?`上传头像`:`Upload avatar`,onChange:e=>{let t=e.currentTarget.files?.[0];t&&Te(t),e.currentTarget.value=``}}),(0,V.jsxs)(`button`,{type:`button`,disabled:F,onClick:()=>ie.current?.click(),"aria-pressed":N===`custom`,className:`flex min-w-0 flex-col items-center gap-1.5 rounded-xl px-1 py-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent disabled:opacity-50 ${N===`custom`?`bg-accent/10 ring-1 ring-accent/40`:`bg-surface-panel hover:bg-surface-hover`}`,children:[(0,V.jsx)(`span`,{className:`flex size-8 items-center justify-center rounded-full bg-surface-panel`,children:N===`custom`?(0,V.jsx)(S,{appearance:`custom`,agentId:c.agentId,className:`size-8`}):(0,V.jsx)(T,{className:`size-4 text-fg-muted`,"aria-hidden":!0})}),(0,V.jsx)(`span`,{className:`truncate text-xs text-fg-muted`,children:F?n?`上传中…`:`Uploading…`:n?`上传`:`Upload`})]})]})]}),(0,V.jsx)(de,{onGreetingChange:e=>Se({voiceCallPreferences:{openingGreetingEnabled:e}}),record:c,zh:n,onSelectVoice:e=>Se({voicePreference:e})}),(0,V.jsx)(`div`,{className:`border-t border-edge pt-4`,children:(0,V.jsx)(fe,{conversationId:c.conversationId,zh:n,onSaved:async()=>{let e=await s(a(`/api/personal-agent`));e.ok&&e.payload&&(d.current=e.payload,u(e.payload))}})})]})]})})]}):null}return h?(0,V.jsxs)(`div`,{className:`mx-auto w-full max-w-2xl space-y-5 px-6 py-12`,children:[(0,V.jsx)(D,{className:`h-20 w-20 rounded-full`}),(0,V.jsx)(D,{className:`h-9 w-72`}),(0,V.jsx)(D,{className:`h-44 w-full rounded-2xl`})]}):c?.state===`ready`?(0,V.jsxs)(`div`,{className:`flex h-full min-h-0 flex-1 flex-col bg-surface-panel`,children:[ee&&(0,V.jsxs)(`div`,{role:`alert`,className:`flex shrink-0 items-center justify-between gap-3 border-b border-warning/30 bg-warning/5 px-5 py-3 text-sm text-fg-muted`,children:[(0,V.jsx)(`span`,{children:n?`助手已创建,头像上传未完成。可在资料设置中重新上传。`:`Your assistant is ready. Upload the avatar again in profile settings.`}),(0,V.jsx)(`button`,{type:`button`,onClick:()=>{ne(!1),ye()},className:`shrink-0 text-accent hover:underline`,children:n?`打开设置`:`Open settings`})]}),(0,V.jsx)(`div`,{className:`flex min-h-0 flex-1`,children:(0,V.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,V.jsx)(l,{embedded:!0,personal:!0,personalWelcome:{name:c.displayName,addressAs:c.userCallName??void 0,avatar:(0,V.jsx)(S,{appearance:c.appearance,agentId:c.agentId,className:`size-14`}),opening:n?`有什么想讨论或推进的事?直接告诉我就好。`:`What would you like to discuss or move forward? Just tell me what is on your mind.`},conversationId:c.conversationId})})}),Ee()]}):(0,V.jsx)(ue,{modelsAvailable:p.length>0,onCreated:(e,t)=>{d.current=e,u(e),R(e.displayName),ne(t),window.dispatchEvent(new CustomEvent(`personal-agent-updated`,{detail:e})),window.dispatchEvent(new Event(`session-updated`))}})}export{Y as PersonalPage};
@@ -1 +0,0 @@
1
- import{a as e,c as t,d as n,i as r,m as i,n as a,o,p as s,u as c}from"./schemas-CCWMleym.js";import{r as l}from"./local-apps-Ck6kACsY.js";var u=256*1024,d=`xopc-chat-preview`,f=i().regex(/^[a-f0-9]{64}$/),p=s({markup:i().max(128*1024),styles:i().max(128*1024).default(``),script:i().max(128*1024).default(``)}).refine(e=>e.markup.length+e.styles.length+e.script.length<=u,`Preview source exceeds the 256 KiB limit`).refine(e=>!/<\/?(?:html|head|body|script|style)\b/i.test(e.markup),`Preview markup must be an HTML fragment; put CSS and JavaScript in their dedicated fields`);s({id:i().uuid(),conversationId:i().uuid(),title:i().trim().min(1).max(120),preferredHeight:c().int().min(240).max(720),latestRevision:f,createdAt:c().int().nonnegative(),updatedAt:c().int().nonnegative()}),p.extend({previewId:i().uuid(),sourceHash:f,createdAt:c().int().nonnegative()}),p.extend({title:i().trim().min(1).max(120),preferredHeight:c().int().min(240).max(720).default(480)}),p.extend({baseRevision:f,title:i().trim().min(1).max(120).optional(),preferredHeight:c().int().min(240).max(720).optional()});var m=s({kind:a([`script_error`,`unhandled_rejection`]),message:i().trim().min(1).max(500),filename:i().max(500).optional(),line:c().int().nonnegative().optional(),column:c().int().nonnegative().optional()});s({sourceHash:f,diagnostics:r(m).min(1).max(20),locale:a([`en`,`zh`]).default(`en`)}),s({previewId:i().uuid(),sourceHash:f,prompt:i().min(1)});var h=s({source:t(d),version:t(1),channel:i().uuid()}),g=o(`type`,[h.extend({type:t(`ready`)}),h.extend({type:t(`resize`),height:c().finite().min(120).max(2e3)}),h.extend({type:t(`error`),diagnostic:m})]),_=a([`task`,`project`,`note`,`automation`,`local_app`,`chat_preview`,`file`,`session`,`settings`]),v=a([`open`,`preview`,`edit`,`continue_in_chat`,`fix`,`run`,`pause`,`resume`,`share`,`reveal`,`configure`]),y=n({kind:_,id:i().min(1),title:i().min(1),summary:i().optional(),status:i().optional(),revision:i().optional(),projectId:i().optional(),capabilities:r(v).default([])}),b=a([`created`,`updated`,`opened`,`started`,`completed`,`failed`]),x=o(`kind`,[n({kind:t(`table`),items:r(y).max(50),truncated:e()}),n({kind:t(`diff`),title:i().max(2e3),truncated:e(),edits:r(n({from:c().int().nonnegative(),to:c().int().nonnegative(),text:i().max(16e3)}).refine(e=>e.to>=e.from,`Invalid replacement range`)).max(20).refine(e=>e.reduce((e,t)=>e+t.text.length,0)<=16e3,`Replacement text exceeds preview limit`)}),n({kind:t(`inline_app`),reference:y.refine(e=>e.kind===`local_app`,`Inline app must reference a local app`),snapshot:s({sourceHash:l}),preferredHeight:c().int().min(240).max(720).default(480)}).refine(e=>!e.reference.revision||e.reference.revision===e.snapshot.sourceHash,{message:`Inline app reference revision must match its snapshot`,path:[`reference`,`revision`]}),n({kind:t(`inline_preview`),reference:y.refine(e=>e.kind===`chat_preview`,`Inline preview must reference a chat preview`),sourceHash:f,preferredHeight:c().int().min(240).max(720).default(480)}).refine(e=>!e.reference.revision||e.reference.revision===e.sourceHash,{message:`Inline preview reference revision must match its source`,path:[`reference`,`revision`]})]),S=n({version:t(2),operation:b,primary:y.optional(),related:r(y).optional(),presentation:x.optional()});function C(e){let t=S.safeParse(e);return t.success?t.data:null}var w=`xopc-product-delivery:`;function T(e){let t=e.split(/\s+/).find(e=>e.startsWith(w));if(!t)return null;try{return C(JSON.parse(decodeURIComponent(t.slice(22))))}catch{return null}}function E(e){let t=encodeURIComponent(e.id);switch(e.kind){case`task`:return`/tasks/${t}`;case`project`:return`/projects/${t}`;case`note`:return`/notes/${t}`;case`automation`:return`/automations?automation=${t}`;case`local_app`:return`/local-apps/${t}`;case`chat_preview`:return null;case`session`:return`/chat/${t}`;case`settings`:return`/settings/${e.id.replace(/^\/+/,``).split(`/`).map(encodeURIComponent).join(`/`)}`;case`file`:return null}}function D(e){return e.kind===`local_app`?`/open?${new URLSearchParams({kind:e.kind,id:e.id}).toString()}`:E(e)}function O(e){try{let t=new URL(e);if(t.protocol!==`xopc:`||t.hostname!==`open`)return null;let n=_.safeParse(t.searchParams.get(`kind`)),r=t.searchParams.get(`id`)?.trim()||(n.success&&n.data===`session`?t.searchParams.get(`key`)?.trim():void 0);return n.success&&r?{kind:n.data,id:r}:null}catch{return null}}export{E as a,D as i,T as n,d as o,O as r,g as s,C as t};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{i as r,l as i,n as a}from"./locale-store-5Hf8J8-_.js";import{t as o}from"./messages-uXxg5p54.js";import{t as s}from"./markdown-view-pzSRu7av.js";import{i as c}from"./vendor-swr-CdRzEUwF.js";import{a as l}from"./api-Uk05lF9i.js";import{t as u}from"./automation-api-DtJfd1QM.js";import{i as d}from"./automation-display-BlGt8MAC.js";import{i as f,n as p}from"./api-C4LxuNzq.js";import{n as m}from"./product-preview-modal-Cj_Zxu4G.js";import{t as h}from"./open-route-MyZ2sB9C.js";var g=e(),_=t();async function v(e){switch(e.kind){case`project`:return{kind:e.kind,value:await l(e.id)};case`automation`:{let[t,n]=await Promise.all([u.list(),u.runs(5,e.id)]);return{kind:e.kind,value:t.automations.find(t=>t.id===e.id),runs:n.runs}}case`local_app`:{let t=await p(e.id),n=e.sourceHash?await f(e.id,e.sourceHash):void 0;return{kind:e.kind,value:t,previewUrl:n?.previewUrl||t.draftPreviewUrl}}}}var y={pending:[`等待中`,`Pending`],planned:[`计划中`,`Planned`],active:[`进行中`,`Active`],paused:[`已暂停`,`Paused`],completed:[`已完成`,`Completed`],cancelled:[`已取消`,`Cancelled`],archived:[`已归档`,`Archived`],queued:[`排队中`,`Queued`],running:[`运行中`,`Running`],succeeded:[`成功`,`Succeeded`],failed:[`失败`,`Failed`],timeout:[`超时`,`Timed out`],cancelling:[`取消中`,`Cancelling`],unknown:[`尚未评估`,`Not assessed`],on_track:[`进展正常`,`On track`],at_risk:[`存在风险`,`At risk`],off_track:[`偏离计划`,`Off track`]};function b(e){let t=(0,g.c)(95),{target:s}=e,l=i(T),u=a(w),f=u===`zh`,p=o(u),b;t[0]===f?b=t[1]:(b=e=>y[e]?.[+!f]||e,t[0]=f,t[1]=b);let E=b,D;t[2]!==s.href||t[3]!==l?(D=[`chat-product-preview`,s.href,l],t[2]=s.href,t[3]=l,t[4]=D):D=t[4];let O;t[5]===s?O=t[6]:(O=()=>v(s),t[5]=s,t[6]=O);let k;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(k={shouldRetryOnError:!1,refreshInterval:C},t[7]=k):k=t[7];let{data:A,error:j,isLoading:M}=c(D,O,k);if(M){let e;return t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,_.jsx)(m,{}),t[8]=e):e=t[8],e}if(j){let e=f?`无法加载内容,它可能已删除或暂时不可用。`:`Unable to load this content. It may have been deleted or be temporarily unavailable.`,n;return t[9]===e?n=t[10]:(n=(0,_.jsx)(`p`,{role:`alert`,className:`text-sm text-fg-muted`,children:e}),t[9]=e,t[10]=n),n}if(!A?.value){let e=f?`内容不存在或已删除。`:`This content is unavailable or has been deleted.`,n;return t[11]===e?n=t[12]:(n=(0,_.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e}),t[11]=e,t[12]=n),n}let N=S;if(A.kind===`project`){let e=A.value,n;t[13]===e.name?n=t[14]:(n=(0,_.jsx)(`h2`,{className:`break-words text-lg font-semibold text-fg`,children:e.name}),t[13]=e.name,t[14]=n);let r;t[15]!==e.status||t[16]!==E?(r=E(e.status),t[15]=e.status,t[16]=E,t[17]=r):r=t[17];let i;t[18]!==e.health||t[19]!==E?(i=E(e.health),t[18]=e.health,t[19]=E,t[20]=i):i=t[20];let a;t[21]!==r||t[22]!==i?(a=(0,_.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[r,` · `,i]}),t[21]=r,t[22]=i,t[23]=a):a=t[23];let o;t[24]!==N||t[25]!==e.description?(o=N(e.description),t[24]=N,t[25]=e.description,t[26]=o):o=t[26];let s;t[27]!==N||t[28]!==e.brief?(s=N(e.brief),t[27]=N,t[28]=e.brief,t[29]=s):s=t[29];let c;t[30]!==N||t[31]!==e.outcome?(c=N(e.outcome),t[30]=N,t[31]=e.outcome,t[32]=c):c=t[32];let l;t[33]!==s||t[34]!==c||t[35]!==n||t[36]!==a||t[37]!==o?(l=(0,_.jsxs)(`div`,{className:`space-y-3`,children:[n,a,o,s,c]}),t[33]=s,t[34]=c,t[35]=n,t[36]=a,t[37]=o,t[38]=l):l=t[38];let u;t[39]!==e.successCriteria||t[40]!==f?(u=e.successCriteria?.length>0&&(0,_.jsxs)(`section`,{className:`space-y-3`,children:[(0,_.jsx)(`h3`,{className:`font-medium text-fg`,children:f?`完成标准`:`Success criteria`}),(0,_.jsx)(`ul`,{className:`list-disc space-y-2 pl-5 text-sm text-fg`,children:e.successCriteria.map(x)})]}),t[39]=e.successCriteria,t[40]=f,t[41]=u):u=t[41];let d;t[42]!==e.milestones||t[43]!==E||t[44]!==f?(d=e.milestones?.length>0&&(0,_.jsxs)(`section`,{className:`space-y-3`,children:[(0,_.jsx)(`h3`,{className:`font-medium text-fg`,children:f?`里程碑`:`Milestones`}),e.milestones.slice(0,8).map(e=>(0,_.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[e.title,` · `,E(e.status)]},e.id))]}),t[42]=e.milestones,t[43]=E,t[44]=f,t[45]=d):d=t[45];let p;t[46]!==N||t[47]!==e.recentUpdates||t[48]!==f?(p=e.recentUpdates?.[0]&&(0,_.jsxs)(`section`,{className:`space-y-3`,children:[(0,_.jsx)(`h3`,{className:`font-medium text-fg`,children:f?`最近进展`:`Latest update`}),N(e.recentUpdates[0].summary)]}),t[46]=N,t[47]=e.recentUpdates,t[48]=f,t[49]=p):p=t[49];let m;return t[50]!==l||t[51]!==u||t[52]!==d||t[53]!==p?(m=(0,_.jsxs)(`div`,{className:`space-y-6`,children:[l,u,d,p]}),t[50]=l,t[51]=u,t[52]=d,t[53]=p,t[54]=m):m=t[54],m}if(A.kind===`automation`){let e=A.value,n=e.action.kind===`agent`?e.action.instruction:void 0,r;t[55]===e.name?r=t[56]:(r=(0,_.jsx)(`h2`,{className:`break-words text-lg font-semibold text-fg`,children:e.name}),t[55]=e.name,t[56]=r);let i;t[57]!==e.description||t[58]!==N?(i=N(e.description),t[57]=e.description,t[58]=N,t[59]=i):i=t[59];let a;t[60]!==n||t[61]!==N?(a=N(n),t[60]=n,t[61]=N,t[62]=a):a=t[62];let o;t[63]!==e.state.nextRunAtMs||t[64]!==f?(o=e.state.nextRunAtMs&&(0,_.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[f?`下次运行`:`Next run`,` · `,new Date(e.state.nextRunAtMs).toLocaleString(f?`zh-CN`:`en-US`)]}),t[63]=e.state.nextRunAtMs,t[64]=f,t[65]=o):o=t[65];let s;t[66]===e.state.lastError?s=t[67]:(s=e.state.lastError&&(0,_.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:e.state.lastError}),t[66]=e.state.lastError,t[67]=s);let c=f?`最近运行`:`Recent runs`,l;t[68]===c?l=t[69]:(l=(0,_.jsx)(`h3`,{className:`font-medium text-fg`,children:c}),t[68]=c,t[69]=l);let m;t[70]!==A.runs||t[71]!==N||t[72]!==E||t[73]!==f?(m=A.runs.length?A.runs.map(e=>(0,_.jsxs)(`div`,{className:`space-y-2 rounded-lg border border-edge p-3`,children:[(0,_.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[E(e.status),` · `,new Date(e.createdAtMs).toLocaleString(f?`zh-CN`:`en-US`)]}),N(e.summary),e.error&&(0,_.jsx)(`p`,{className:`text-sm text-danger`,children:e.error})]},e.id)):(0,_.jsx)(`p`,{className:`text-sm text-fg-muted`,children:f?`暂无运行记录。`:`No runs yet.`}),t[70]=A.runs,t[71]=N,t[72]=E,t[73]=f,t[74]=m):m=t[74];let h;return t[75]!==l||t[76]!==m?(h=(0,_.jsxs)(`section`,{className:`space-y-3`,children:[l,m]}),t[75]=l,t[76]=m,t[77]=h):h=t[77],(0,_.jsxs)(`div`,{className:`space-y-6`,children:[(0,_.jsxs)(`div`,{className:`space-y-3`,children:[r,(0,_.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[e.enabled?f?`已启用`:`Enabled`:f?`已停用`:`Disabled`,` · `,d(e.trigger,p.automations,p.cron,u)]}),i,a,o,s]}),h]})}let P=A.value,F;t[78]===P.name?F=t[79]:(F=(0,_.jsx)(`h2`,{className:`break-words text-lg font-semibold text-fg`,children:P.name}),t[78]=P.name,t[79]=F);let I=P.description||P.idea,L;t[80]!==N||t[81]!==I?(L=N(I),t[80]=N,t[81]=I,t[82]=L):L=t[82];let R;t[83]!==P.name||t[84]!==A.previewUrl||t[85]!==f?(R=A.previewUrl&&(0,_.jsx)(`iframe`,{title:f?`${P.name} 交互预览`:`${P.name} interactive preview`,src:r(A.previewUrl),sandbox:`allow-scripts allow-forms`,className:`h-[min(30rem,55dvh)] w-full rounded-lg border border-edge bg-white`}),t[83]=P.name,t[84]=A.previewUrl,t[85]=f,t[86]=R):R=t[86];let z;t[87]!==P||t[88]!==f?(z=P.installationState===`installed`&&P.enabled&&P.status===`installed`&&(0,_.jsx)(n,{to:h(P),className:`inline-flex rounded-lg bg-accent px-3 py-2 text-sm text-white focus-visible:ring-2 focus-visible:ring-accent`,children:f?`使用应用`:`Use app`}),t[87]=P,t[88]=f,t[89]=z):z=t[89];let B;return t[90]!==F||t[91]!==L||t[92]!==R||t[93]!==z?(B=(0,_.jsxs)(`div`,{className:`space-y-5`,children:[F,L,R,z]}),t[90]=F,t[91]=L,t[92]=R,t[93]=z,t[94]=B):B=t[94],B}function x(e,t){return(0,_.jsx)(`li`,{children:e},t)}function S(e){return e?.trim()?(0,_.jsx)(s,{content:e,mermaidActions:!1}):null}function C(e){return e?.kind===`automation`&&e.value?.state.runningRunId?3e3:0}function w(e){return e.language}function T(e){return e.conversationId}export{b as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/product-preview-content-BUheyLqt.js","assets/vendor-react-BOUWij0V.js","assets/rolldown-runtime-aKtaBQYM.js","assets/chunk-KS7C4IRE-CiwuuyV8.js","assets/preload-helper-Czpn1I53.js","assets/locale-store-5Hf8J8-_.js","assets/messages-uXxg5p54.js","assets/markdown-view-pzSRu7av.js","assets/createLucideIcon-DPHK1VkS.js","assets/download-Dk-ZjtO6.js","assets/file-image-CDUPkZvG.js","assets/plus-Q2yW6OE7.js","assets/x-B_N4OPjy.js","assets/cn-0WouolD0.js","assets/bundle-mjs-rHxsej31.js","assets/dist-DfWfZ9iu.js","assets/dist-CxGUk8J-.js","assets/es2015-DBLcMg5B.js","assets/app-link-CytZ5zkp.js","assets/product-delivery-BU_H84jL.js","assets/schemas-CCWMleym.js","assets/local-apps-Ck6kACsY.js","assets/copy-to-clipboard-HOJ79TWv.js","assets/xml-_d7dTN2Q.js","assets/mermaid-render-oOellPHt.js","assets/markdown-view-C-DHb3Io.css","assets/vendor-swr-CdRzEUwF.js","assets/api-Uk05lF9i.js","assets/tasks-DRmd6sWt.js","assets/specialists-xbB3xL9e.js","assets/files-BNL4kkSB.js","assets/automation-api-DtJfd1QM.js","assets/automation-display-BlGt8MAC.js","assets/api-C4LxuNzq.js","assets/open-route-MyZ2sB9C.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./preload-helper-Czpn1I53.js";import{t as a}from"./chunk-KS7C4IRE-CiwuuyV8.js";import{n as o}from"./locale-store-5Hf8J8-_.js";import{t as s}from"./external-link-DjqjBmc3.js";import{V as c}from"./markdown-view-pzSRu7av.js";import{t as l}from"./x-B_N4OPjy.js";import{t as u}from"./skeleton-BI5TyibZ.js";import{a as d,i as f,n as p,o as m,r as h,s as g,t as _}from"./dist-DfWfZ9iu.js";var v=n(),y=e(t(),1),b=r(),x=(0,y.lazy)(()=>i(()=>import(`./product-preview-content-BUheyLqt.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]))),S={project:[`项目预览`,`Project preview`],automation:[`自动化详情`,`Automation details`],local_app:[`应用预览`,`App preview`]};function C(){let e=(0,v.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,b.jsxs)(`div`,{className:`space-y-4`,"aria-busy":`true`,children:[(0,b.jsx)(u,{className:`h-7 w-2/3`}),(0,b.jsx)(u,{className:`h-4 w-full`}),(0,b.jsx)(u,{className:`h-4 w-4/5`}),(0,b.jsx)(u,{className:`h-32 w-full`})]}),e[0]=t):t=e[0],t}function w(e){let t=(0,v.c)(32),{target:n,backgroundPath:r,onClose:i}=e,u=o(T)===`zh`,w=S[n.kind][+!u],E;t[0]===i?E=t[1]:(E=e=>{e||i()},t[0]=i,t[1]=E);let D;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,b.jsx)(d,{className:`fixed inset-0 z-[80] bg-black/45 backdrop-blur-[1px]`}),t[2]=D):D=t[2];let O;t[3]===w?O=t[4]:(O=(0,b.jsx)(g,{className:`min-w-0 flex-1 truncate font-medium text-fg`,children:w}),t[3]=w,t[4]=O);let k=u?`查看关联内容,或打开独立页面。`:`Preview related content or open its full page.`,A;t[5]===k?A=t[6]:(A=(0,b.jsx)(f,{className:`sr-only`,children:k}),t[5]=k,t[6]=A);let j;t[7]!==r||t[8]!==n.href?(j=c(n.href,r),t[7]=r,t[8]=n.href,t[9]=j):j=t[9];let M;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,b.jsx)(s,{className:`size-4`,"aria-hidden":!0}),t[10]=M):M=t[10];let N=u?`打开独立页面`:`Open full page`,P;t[11]!==j||t[12]!==N?(P=(0,b.jsxs)(a,{to:j,className:`flex shrink-0 items-center gap-1.5 rounded-lg px-2 py-1.5 text-sm text-accent hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,children:[M,N]}),t[11]=j,t[12]=N,t[13]=P):P=t[13];let F=u?`关闭预览`:`Close preview`,I=u?`关闭预览`:`Close preview`,L;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,b.jsx)(l,{className:`size-4`,"aria-hidden":!0}),t[14]=L):L=t[14];let R;t[15]!==F||t[16]!==I?(R=(0,b.jsx)(p,{title:F,"aria-label":I,className:`flex size-8 shrink-0 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover focus-visible:ring-2 focus-visible:ring-accent`,children:L}),t[15]=F,t[16]=I,t[17]=R):R=t[17];let z;t[18]!==R||t[19]!==O||t[20]!==A||t[21]!==P?(z=(0,b.jsxs)(`header`,{className:`flex shrink-0 items-center gap-3 border-b border-edge bg-surface-panel px-5 py-3.5`,children:[O,A,P,R]}),t[18]=R,t[19]=O,t[20]=A,t[21]=P,t[22]=z):z=t[22];let B;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,b.jsx)(C,{}),t[23]=B):B=t[23];let V;t[24]===n?V=t[25]:(V=(0,b.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain p-5 sm:p-8`,children:(0,b.jsx)(y.Suspense,{fallback:B,children:(0,b.jsx)(x,{target:n},n.href)})}),t[24]=n,t[25]=V);let H;t[26]!==z||t[27]!==V?(H=(0,b.jsxs)(m,{children:[D,(0,b.jsxs)(h,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] flex h-[min(48rem,calc(100dvh-2rem))] w-[min(52rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay focus:outline-none`,children:[z,V]})]}),t[26]=z,t[27]=V,t[28]=H):H=t[28];let U;return t[29]!==E||t[30]!==H?(U=(0,b.jsx)(_,{open:!0,onOpenChange:E,children:H}),t[29]=E,t[30]=H,t[31]=U):U=t[31],U}function T(e){return e.language}export{C as n,w as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/sessions-page-DlvPkE5Y.js","assets/rolldown-runtime-aKtaBQYM.js","assets/vendor-react-BOUWij0V.js","assets/chunk-KS7C4IRE-CiwuuyV8.js","assets/preload-helper-Czpn1I53.js","assets/locale-store-5Hf8J8-_.js","assets/messages-uXxg5p54.js","assets/session-identity-label-B7sgG1PE.js","assets/createLucideIcon-DPHK1VkS.js","assets/session-channel-icon-SsY70Z6t.js","assets/clock-3-DnrAnuyZ.js","assets/git-branch-Dh9uxTot.js","assets/message-circle-Badhj-4D.js","assets/message-square-fVE7Ghj1.js","assets/plug-DKYPEgkR.js","assets/settings-2-D-csvaET.js","assets/terminal-oKqqZdiG.js","assets/cn-0WouolD0.js","assets/bundle-mjs-rHxsej31.js","assets/schemas-CCWMleym.js","assets/archive-Dz0hferG.js","assets/popover-select-DD8fmrxH.js","assets/check-DUBLcKHA.js","assets/skeleton-BI5TyibZ.js","assets/dist-CaUuvp8-.js","assets/dist-CxGUk8J-.js","assets/es2015-DBLcMg5B.js","assets/dist-DusecO_p.js","assets/floating-ui.dom-seOukHzT.js","assets/settings-shell-dialog-layer-BU3UuiJr.js","assets/circle-BoO4YvTx.js","assets/coins-DjP27vUx.js","assets/database-CjjeZfRG.js","assets/download-Dk-ZjtO6.js","assets/folder-open-CyzJ19I9.js","assets/layers-mJW7JJKm.js","assets/layout-grid-CEVZdVFU.js","assets/minimize-2-DtOGrlpo.js","assets/pin-off-BMRv-Kxr.js","assets/plus-Q2yW6OE7.js","assets/search-DA7gz22f.js","assets/settings-uiTATseT.js","assets/trash-2-DusmjVPV.js","assets/x-B_N4OPjy.js","assets/vendor-swr-CdRzEUwF.js","assets/button-CnRSIP6m.js","assets/dist-DfWfZ9iu.js","assets/session-api-VquhIBHI.js","assets/gateway-startup-retry-N3k-C7c2.js","assets/interaction-BdhHBbYa.js","assets/gateway-config-swr-Bt8w0Iio.js","assets/registry-api-B1Mh3bNo.js","assets/form-field-width-DJw_jULe.js","assets/page-tabs-oeTY7z3_.js","assets/sliding-indicator-hwz0sx3h.js","assets/agent-avatar-display-B1ycycx2.js","assets/loopi-CNtmi9FU.js","assets/loopi-C09I2mNj.css","assets/sliding-tab-list-DuQyViqe.js","assets/chat-agents-api-l80cvSac.js","assets/settings-form-draft-Dy10ldo8.js","assets/model-selector-ksLo-5B_.js","assets/open-capability-settings-Cvb65hQB.js","assets/segmented-styles-Cqb91xsn.js","assets/settings-advanced-section-c9_iZ-46.js","assets/settings-mode-store-Dem6-TBe.js","assets/middleware-Pd0e8Igk.js","assets/number-input-El7Szeln.js","assets/settings-page-header-C8a_oOyw.js","assets/external-link-DjqjBmc3.js","assets/sparkles-DHlfQFAF.js","assets/settings-page-layout-CTSRWljG.js","assets/settings-form-section-num14vSv.js","assets/pencil-DmIY3Oa-.js","assets/use-autosave-B3p2QWaF.js","assets/circle-alert-BEjgurr2.js","assets/loader-circle-CifKLtgG.js","assets/settings-advanced-gate-Ckc1aCLG.js","assets/usage-page-cPbirpXX.js","assets/bot-DjLkhyZL.js","assets/gauge-C78eD2BA.js","assets/refresh-cw-BRlGaq2w.js","assets/timer-rCwGHjuO.js","assets/xopc-cloud-account-card-CCOOBG-7.js","assets/cloud-C4-yfnnk.js","assets/triangle-alert-2JXFNNKU.js","assets/cloud-credits-B-nbtkqv.js","assets/automations-page-DM4IdUJh.js","assets/automations-workspace-CXLu04I-.js","assets/activity-YogQEteU.js","assets/calendar-clock-D-quYVPe.js","assets/chevron-down-ccbiQQz_.js","assets/chevron-right-BweFrslA.js","assets/circle-check-C23XjkUj.js","assets/copy-Dv6d4Dvw.js","assets/ellipsis-0k4rZLoy.js","assets/eye-CABVeTq0.js","assets/list-filter-CIPvpfLA.js","assets/list-tree-B0OMswgM.js","assets/markdown-view-pzSRu7av.js","assets/file-image-CDUPkZvG.js","assets/app-link-CytZ5zkp.js","assets/product-delivery-BU_H84jL.js","assets/local-apps-Ck6kACsY.js","assets/copy-to-clipboard-HOJ79TWv.js","assets/xml-_d7dTN2Q.js","assets/mermaid-render-oOellPHt.js","assets/markdown-view-C-DHb3Io.css","assets/pause-DuPxgSxk.js","assets/play-kxZvpBg8.js","assets/shield-check-BU58siTV.js","assets/square-pen-B8FsvqNu.js","assets/zap-dximCGjy.js","assets/api-Uk05lF9i.js","assets/tasks-DRmd6sWt.js","assets/specialists-xbB3xL9e.js","assets/files-BNL4kkSB.js","assets/session-manager-DNMosCtW.js","assets/constants-DBtMsXdW.js","assets/local-session-drafts-DHM4vWDO.js","assets/tool-activity-BtJkgjFf.js","assets/personal-proactivity-DaRnbB1f.js","assets/attachment-utils-core-BIOUBrpT.js","assets/gateway-realtime-CyCCNUxm.js","assets/gateway-realtime-store-0gmDfPeP.js","assets/agents-admin-api-CASGzvkW.js","assets/page-header-store-reh1es-3.js","assets/refresh-button-bU_0NarN.js","assets/dist-D3lWNSe7.js","assets/automation-task-card-Cp3RIw5d.js","assets/automation-api-DtJfd1QM.js","assets/automation-display-BlGt8MAC.js","assets/agent-display-names-Bje7vfSn.js","assets/browser-automation-inputs-DjUW7PEB.js","assets/browser-automations-page-Cf8AoQz1.js","assets/circle-pause-CN9jYH2s.js","assets/video-B6V0GFss.js","assets/earth-BMhZtzcj.js","assets/puzzle-BptcPjKI.js","assets/square-DMK_fB-3.js","assets/browser-control-api-C6NZgaA1.js","assets/home-page-eRuAzi58.js","assets/history-DXH_9jsE.js","assets/paperclip-f1HujQY1.js","assets/composer-payload-handoff-DYuhKZRC.js","assets/use-file-preview-expanded-CO4SC-LX.js","assets/app-window-DXFNqt_0.js","assets/message-square-plus-XP0tGdlV.js","assets/rotate-cw-LIg3Am9S.js","assets/save-DRDABU--.js","assets/activity-store-CKrylgib.js","assets/app-chrome-BeB4KgOf.js","assets/electron-env-DHOGevH3.js","assets/use-async-resource-BHFGZCY2.js","assets/index.module-Cd9ENXfk.js","assets/workspace-api-CgrcNyBc.js","assets/mic-CuUb7zc-.js","assets/rotate-ccw-JM1TBLpp.js","assets/file-preview-surface-BsB7bnFH.js","assets/phone-workspace-store-mawKT5kV.js","assets/shares-api-CztKbxdd.js","assets/voice-transcribe-api-BqIs0jgv.js","assets/workspace-editor-agent-store-Dw6wtadX.js","assets/voice-input-shortcut-events-hso9_VvT.js","assets/use-composer-attachments-D-AEYC85.js","assets/chevron-left-DqFhpbvK.js","assets/file-BqMS_3DT.js","assets/share-link-dialog-C5JTTxsy.js","assets/globe-DSSGFWFn.js","assets/copy-text-row-CYIv7RfP.js","assets/capabilities-D0-HCZ5J.js","assets/capabilities-CwdjWz2r.js","assets/skill-wire-pattern-BPpeIcCi.js","assets/date-formatters-DukWSVwc.js","assets/tab-completion-input-CxtEp0aP.js","assets/task-result-evidence-CGZKMnNo.js","assets/file-text-D12HbeVy.js","assets/task-detail-page-CysJhG3B.js","assets/chat-page-CT3K7lFT.js","assets/arrow-left-D880xG-P.js","assets/arrow-up-D5ZtR1QT.js","assets/product-automation-feedback-DYwhL37Y.js","assets/notes-api-DocbsBbT.js","assets/chat-chart-block-BwP5QXEk.js","assets/volume-2-BSJhAY97.js","assets/book-open-CCGtrT3R.js","assets/working-directory-picker-modal-Ta73QrNw.js","assets/file-archive-DanfQJNe.js","assets/send-1f1Ntw6E.js","assets/circle-x-DFsCKeya.js","assets/file-tree-utils-DJs1faGv.js","assets/folder-kanban-CpLlFI1o.js","assets/folder-CN-pC3XL.js","assets/key-round-DWbpyU2U.js","assets/laptop-CI3hBVrl.js","assets/list-checks-BbsExAoq.js","assets/list-todo-CTVRto8O.js","assets/messages-square-BckAJrEW.js","assets/monitor-Af5eAvF7.js","assets/install-connector-dialog-CsoAidXp.js","assets/secret-input-BQvFXqzz.js","assets/is-masked-secret-DOkL5b_X.js","assets/connectors-api-BzkgVBYC.js","assets/oauth-provider-connect-GxkF0vWJ.js","assets/models-hub-cache-DhZng2nF.js","assets/oauth-api-CCFIPbA0.js","assets/smartphone-DSSsQFqA.js","assets/wrench-DFb4r8bH.js","assets/new-session-preferences-gb411vZP.js","assets/extension-provider-BA0Y2Rvs.js","assets/theme-store-DOJ9tu-j.js","assets/chunk-D32TOXHM-DQIy-Baq.js","assets/tool-friendly-title-DGmi7rCQ.js","assets/voice-call-context-BM2A4bLz.js","assets/use-directory-picker-C4p7AgWY.js","assets/confirm-dialog-XGclfBqe.js","assets/command-palette-api-CtapG8ck.js","assets/skill-list-api-Cn07P6qZ.js","assets/skill-api-utils-C7V4JVXM.js","assets/dev-view-store-D8XYHVqG.js","assets/extension-iframe-host-CnOdNwbo.js","assets/api-C4LxuNzq.js","assets/runtime-health-D2TDFLLq.js","assets/terminal-panel-store-YwLUkuyV.js","assets/agents-app-path-ciChvpCS.js","assets/use-media-query-ady-FgjK.js","assets/oauth-authorization-window-o6URRos4.js","assets/page-context-draft-CMRDNv4d.js","assets/side-chat-shortcut-BIw-1TTD.js","assets/chat-page-zQeUaawJ.css","assets/date-picker-ByTasrfl.js","assets/calendar-days-hw_Y-g-s.js","assets/page-context-capture-button-CvWLVeRA.js","assets/dependency-picker-Dh8hPmsT.js","assets/projects-page-CkifzKjz.js","assets/arrow-right-DSSvoX71.js","assets/project-understanding-D3w8cZEm.js","assets/project-detail-page-CRJb69vP.js","assets/resource-unavailable-BUWsH3fp.js","assets/discussion-annotation-sync-YvlVw17j.js","assets/workspace-open-location-menu-Bi2vRvaQ.js","assets/file-tree-CFlZnV3Y.js","assets/image-Cwyalflz.js","assets/lock-keyhole-DEK5kH0u.js","assets/panel-left-C8MqSXRZ.js","assets/sticky-note-fzP7NAJq.js","assets/store-SzD1Jvgm.js","assets/upload-rrb46c3c.js","assets/user-round-C9jxPhMR.js","assets/workspace-file-preview-dialog-B7uBuPtA.js","assets/with-selector-xonYxPoM.js","assets/directory-picker-path-field-Cjv7rdo3.js","assets/skill-api-B7kWl6LK.js","assets/skill-reload-api-Bhl0u16_.js","assets/note-detail-panel-B6RbjwJq.js","assets/code-xml-DJtYhZUF.js","assets/note-image-lightbox-BCjvBqwy.js","assets/project-detail-page-DLioOiRN.css","assets/notes-page-B7889s6-.js","assets/recording-upload-ZkmRf0GR.js","assets/star-BUWJqJ5c.js","assets/capabilities-page-DwDkritH.js","assets/product-navigation-Co8pLbDP.js","assets/capability-links-DzQWK1Fh.js","assets/capability-header-actions-CTUCuBlW.js","assets/user-model-page-DuRALzhe.js","assets/understanding-refresh-store-9apSmAVL.js","assets/briefcase-business-BsoCaI_t.js","assets/understanding-activity-store-CmwtE8Kd.js","assets/sliders-horizontal-DqsYor6I.js","assets/logs-page-Dx_JIOpF.js","assets/clipboard-copy-DuJk5WD6.js","assets/settings-page-B_wNfFQe.js","assets/browser-settings-page-DV2FNEDf.js","assets/cpu-B247669f.js","assets/info-CDrmIZhb.js","assets/plug-zap-L8NMe3Sv.js","assets/settings-loading-skeleton-BTqvr_Fw.js","assets/phone-settings-page-DIIt7JOE.js","assets/beta-badge-BnzdzIEl.js","assets/global-defaults-api-D8EB2vfY.js","assets/providers-api-CKFg2PZQ.js","assets/mobile-pair-qr-CuIbmw5x.js","assets/browser-BLJWD7WI.js","assets/phone-model-picker-ugrT9GJu.js","assets/phone-dependencies-card-DLWblGj7.js","assets/runtime-tools-api-BXvn5ImA.js","assets/computer-settings-page-DZtMuihL.js","assets/mouse-pointer-2-DZ51Onvj.js","assets/extension-page-C1nGr4DD.js","assets/extension-settings-page-QIPI8e7k.js","assets/voice-config-api-D9iNJSvm.js","assets/voice-api-key-field-DbSQHZZW.js","assets/schema-form-BKeP5G7b.js","assets/secret-input-labels-B5Jl5HqK.js","assets/extension-debug-page-CXx3m5-B.js","assets/share-preview-page-D-KxzXgm.js","assets/local-apps-page-rjhHfLpe.js","assets/box-DvYoGszj.js","assets/local-app-workbench-page-DbtU_A-l.js","assets/power-off-CwwQ7Gp7.js","assets/power-ZI-pBczI.js","assets/product-open-page-B5G4X71t.js","assets/open-route-MyZ2sB9C.js","assets/work-discovery-page-DAQPKVDs.js","assets/service-recommendation-list-CpVUnz89.js","assets/package-wATCyihJ.js","assets/agent-plugin-dialog-D3yCqVan.js","assets/capability-icon-DVoZxEgW.js","assets/extension-marketplace-api-BABmUY2s.js","assets/work-discovery-overlay-fsL9RJqB.js","assets/brand-logo-CgT9zQfr.js","assets/setup-status-panel-BNZoqF40.js","assets/stethoscope-DRqTAtjD.js","assets/runtime-impact-DbySfhdp.js","assets/appearance-settings-CmCF7PZ5.js","assets/preference-select-fields-CmLZNwbm.js","assets/keyboard-shortcuts-settings-DFhOP2aD.js","assets/personal-settings-panel-DAcl8DU4.js","assets/use-personal-profile-DocmhC9I.js","assets/system-settings-panel-Ce6zIcki.js","assets/browser-notification-delivery-DmE2FgGc.js","assets/shield-B1sI_cxl.js","assets/desktop-pet-settings-COaboNn1.js","assets/wand-sparkles-CkSL-3Fy.js","assets/desktop-pet-sprite-D5YYq2zC.js","assets/desktop-pet-sprite-BuB0g8zv.css","assets/app-management-settings-panel-CDnZNKHt.js","assets/capabilities-settings-panel-mme16Fbp.js","assets/arrow-up-right-T72JbQ1Q.js","assets/connected-providers-grid-BQH5k3iC.js","assets/navigation-D62kPsA9.js","assets/image-generation-api-C99Fsofm.js","assets/gateway-settings-BvKq7vuz.js","assets/network-BUQLY1BV.js","assets/gateway-restart-Ty4AzDxa.js","assets/runtime-tools-settings-panel-BALcypHp.js","assets/remote-access-hub-Dw5rG-aA.js","assets/server-BlHCBjiE.js","assets/tunnel-api-B5-Ypvqa.js","assets/shares-settings-CzR21j6e.js","assets/use-workspace-tree-VraTGKx-.js","assets/agent-defaults-settings-panel-D285zy0S.js","assets/management-settings-CuSzixOw.js","assets/shield-off-2jsucUds.js","assets/device-pairing-wizard-BKMpLdIA.js","assets/panel-right-CFGrHTsD.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-Czpn1I53.js";var t=()=>e(()=>import(`./sessions-page-DlvPkE5Y.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77])),n=()=>e(()=>import(`./usage-page-cPbirpXX.js`),__vite__mapDeps([78,1,2,3,4,5,6,79,8,21,22,17,18,23,24,25,26,27,28,29,75,31,32,80,81,82,44,45,58,54,68,69,70,71,83,84,85,86,19])),r=()=>e(()=>import(`./automations-page-DM4IdUJh.js`),__vite__mapDeps([87,2,1,88,4,3,5,6,89,8,90,22,91,92,21,17,18,23,24,25,26,27,28,29,75,93,94,95,96,11,97,98,99,33,100,39,43,46,101,102,19,103,104,105,106,107,12,108,73,109,81,40,110,70,111,42,112,44,45,113,114,115,116,117,118,47,48,119,120,121,122,123,124,51,125,50,126,58,54,59,127,128,61,15,62,49,52,129,10,130,131,132,133])),i=()=>e(()=>import(`./browser-automations-page-Cf8AoQz1.js`),__vite__mapDeps([134,1,2,3,4,5,6,79,8,21,22,17,18,23,24,25,26,27,28,29,135,136,10,137,76,73,109,138,139,42,43,45,126,140,133])),a=()=>e(()=>import(`./home-page-eRuAzi58.js`),__vite__mapDeps([141,1,2,4,3,5,6,90,8,91,92,75,93,10,69,142,99,33,100,39,43,17,18,46,25,26,101,102,19,103,104,105,106,107,12,143,81,15,70,45,23,24,27,28,114,115,144,22,145,146,94,95,96,34,76,147,37,73,148,149,40,118,47,48,49,150,122,151,152,153,58,54,154,155,116,128,156,157,158,159,160,62,161,117,119,120,121,123,124,51,125,50,44,66,162,163,164,165,166,167,21,29,168,169,170,171,172,126,173,174,175,176])),o=()=>e(()=>import(`./task-detail-page-CysJhG3B.js`),__vite__mapDeps([177,1,2,3,4,5,6,178,8,146,20,179,180,181,89,79,93,135,10,69,182,99,33,100,39,43,17,18,46,25,26,101,102,19,103,104,105,106,107,183,22,94,23,76,13,108,109,157,148,70,85,184,112,44,45,130,185,91,92,186,187,49,52,60,21,24,27,28,29,75,188,189,30,190,32,137,95,166,176,191,34,192,145,96,147,37,143,73,81,149,40,118,47,48,150,122,151,152,153,58,54,154,155,116,128,11,168,142,193,194,195,196,197,156,198,199,200,201,202,50,203,84,204,51,205,15,41,110,206,139,42,167,169,207,158,159,160,114,115,113,117,119,120,121,123,124,125,208,209,170,210,66,144,62,161,162,163,164,165,171,172,211,212,213,126,56,57,55,59,214,215,216,217,218,61,219,220,129,90,12,131,221,222,223,224,132,225,226,227,228,229,173,230,231,175,232,233])),s=()=>e(()=>import(`./projects-page-CkifzKjz.js`),__vite__mapDeps([234,1,2,3,4,5,6,20,8,235,186,187,76,17,18,45,25,46,26,49,52,60,21,22,23,24,27,28,29,191,34,38,39,157,40,43,113,19,114,115,116,126,236,44,214,173])),c=()=>e(()=>import(`./project-detail-page-CRJb69vP.js`),__vite__mapDeps([237,1,2,3,4,5,6,238,20,8,239,91,45,17,18,25,179,235,181,89,79,93,135,10,69,182,99,33,100,39,43,46,26,101,102,19,103,104,105,106,107,183,22,94,23,76,13,108,109,157,148,70,85,184,112,44,130,90,165,92,186,187,49,52,60,21,24,27,28,29,75,188,30,190,240,34,145,146,95,96,147,37,143,73,81,149,40,118,47,48,150,122,151,152,153,58,54,154,155,116,128,241,166,176,192,11,142,242,36,195,243,156,244,38,41,110,139,245,246,42,247,248,114,115,113,164,167,168,169,158,159,160,170,119,171,172,125,50,53,126,236,215,127,249,210,66,216,217,218,132,250,74,173,251,214,252,253,230,231,88,97,98,12,111,117,120,121,123,124,51,59,61,15,62,129,131,133,232,227,254,255,203,84,204,205,256,233,257])),l=()=>e(()=>import(`./notes-page-B7889s6-.js`),__vite__mapDeps([258,1,2,3,4,5,6,20,8,239,91,45,17,18,25,179,235,180,181,89,79,93,135,10,69,182,99,33,100,39,43,46,26,101,102,19,103,104,105,106,107,183,22,94,23,76,13,108,109,157,148,70,85,184,112,44,130,231,21,24,27,28,29,95,176,192,259,156,143,40,260,42,247,151,126,58,54,154,215,128,254,255,96,142,12,73,81,111,139,117,118,47,48,119,120,121,122,123,124,51,125,50,210,66,160,203,84,152,204,205,227,256,232,171,170,114,115])),u=()=>e(()=>import(`./capabilities-page-DwDkritH.js`),__vite__mapDeps([261,1,2,4,3,5,6,262,23,17,18,126,263,264,40,8,45,25,24,26,27,28,225])),d=()=>e(()=>import(`./user-model-page-DuRALzhe.js`),__vite__mapDeps([265,1,2,3,4,5,6,185,8,79,266,44,267,231,22,91,92,21,17,18,23,24,25,26,27,28,29,75,93,10,32,33,137,95,268,34,11,196,76,243,12,73,39,81,40,110,269,70,245,42,247,248,43,45,46,151,53,49,54,126,56,57,58,128,230,165])),f=()=>e(()=>import(`./logs-page-Dx_JIOpF.js`),__vite__mapDeps([270,1,2,3,4,5,6,91,8,21,22,17,18,23,24,25,26,27,28,29,271,33,176,192,80,97,81,40,16,43,45,46,47,19,48,104,123,124,52,54,127,63,68,69,70,71])),p=()=>e(()=>import(`./settings-page-B_wNfFQe.js`),__vite__mapDeps([272,1,2,3,4,5,6])),m=()=>e(()=>import(`./browser-settings-page-DV2FNEDf.js`),__vite__mapDeps([273,1,2,3,4,5,6,91,8,21,22,17,18,23,24,25,26,27,28,29,93,274,33,69,96,34,80,168,275,76,243,276,81,15,85,44,45,50,60,277,67,68,70,71,74,75,140])),h=()=>e(()=>import(`./phone-settings-page-DIIt7JOE.js`),__vite__mapDeps([278,1,2,3,4,5,6,146,8,179,91,21,22,17,18,23,24,25,26,27,28,29,279,109,39,81,40,110,206,43,44,45,159,46,62,128,280,50,281,51,48,201,204,68,69,70,282,283,284,285,93,33,207,286])),g=()=>e(()=>import(`./computer-settings-page-DZtMuihL.js`),__vite__mapDeps([287,1,2,3,4,5,6,22,8,168,198,288,39,110,139,44,45,17,18,25,23,50,51,48,152,61,21,24,26,27,28,29,15,62,49,52,280,68,69,70,71])),_=()=>e(()=>import(`./extension-page-C1nGr4DD.js`),__vite__mapDeps([289,1,2,3,4,238,5,6,209,44,19,117,118,47,48,119,120,121,122,123,124,51,125,50,170,114,115,103,150,210,66,126,220,46,25,26,60])),v=()=>e(()=>import(`./extension-settings-page-QIPI8e7k.js`),__vite__mapDeps([290,1,2,3,4,5,6,238,21,8,22,17,18,23,24,25,26,27,28,29,44,45,209,19,117,118,47,48,119,120,121,122,123,124,51,125,50,170,114,115,103,150,210,66,52,220,46,60,277,68,69,70,71,74,75,76,291,292,200,93,94,96,104,49,201,293,294,67])),y=()=>e(()=>import(`./extension-debug-page-CXx3m5-B.js`),__vite__mapDeps([295,1,2,5,6,209,44,19,117,118,47,48,119,120,121,122,123,124,51,4,125,50,170,114,115,103,150,210,66,68,3,69,8,70,17,18,45,25,71])),b=()=>e(()=>import(`./share-preview-page-D-KxzXgm.js`),__vite__mapDeps([296,1,2,4,3,5,6,145,8,146,22,91,94,33,95,69,96,34,76,99,100,39,43,17,18,46,25,26,101,102,19,103,104,105,106,107,147,37,143,73,81,148,149,40,23,118,47,48,49,150,122,151,152,153,58,54,154,155,116,128,27,28,45,183])),x=()=>e(()=>import(`./local-apps-page-rjhHfLpe.js`),__vite__mapDeps([297,1,2,3,4,5,6,235,8,298,39,44,45,17,18,25,23,126,221])),S=()=>e(()=>import(`./local-app-workbench-page-DbtU_A-l.js`),__vite__mapDeps([299,1,2,3,4,5,6,238,179,8,22,93,189,10,69,300,191,142,76,244,301,81,157,110,70,42,85,43,44,45,17,18,25,23,46,26,103,19,113,114,115,116,126,221,222,173,174,232,176,117,118,47,48,119,120,121,122,123,124,51,125,50,171,170,227])),C=()=>e(()=>import(`./product-open-page-B5G4X71t.js`),__vite__mapDeps([302,2,1,3,4,5,6,44,23,17,18,102,19,103,221,303])),w=()=>e(()=>import(`./work-discovery-page-DAQPKVDs.js`).then(e=>e.n),__vite__mapDeps([304,1,2,3,4,5,6,8,305,91,186,187,76,17,18,45,25,46,26,49,52,60,199,21,22,23,24,27,28,29,93,69,200,94,96,104,201,43,202,50,44,152,203,84,204,51,48,205,306,39,307,179,75,30,34,110,247,263,283,308,309,231,92,10,32,268,176,11,196,197,276,70,56,57,214])),T=()=>e(()=>import(`./work-discovery-overlay-fsL9RJqB.js`),__vite__mapDeps([310,1,2,5,6,304,3,4,8,305,91,186,187,76,17,18,45,25,46,26,49,52,60,199,21,22,23,24,27,28,29,93,69,200,94,96,104,201,43,202,50,44,152,203,84,204,51,48,205,306,39,307,179,75,30,34,110,247,263,283,308,309,231,92,10,32,268,176,11,196,197,276,70,56,57,214,311])),E=()=>e(()=>import(`./setup-status-panel-BNZoqF40.js`),__vite__mapDeps([312,1,2,3,4,5,6,89,8,92,93,189,30,275,76,81,313,85,17,18,44,45,25,23,49,50,124,51,48,201,152,217,218,277,281,204,68,69,70,71,72,73,77,65,66,286,314])),D=()=>e(()=>import(`./appearance-settings-CmCF7PZ5.js`),__vite__mapDeps([315,1,2,5,6,21,8,22,17,18,23,24,25,26,27,28,29,49,50,44,316,66,52,210,219,68,3,4,69,70,45,71,77,65])),O=()=>e(()=>import(`./keyboard-shortcuts-settings-DFhOP2aD.js`),__vite__mapDeps([317,1,2,5,6,17,18,152,163,66,228,68,3,4,69,8,70,45,25,71])),k=()=>e(()=>import(`./personal-settings-panel-DAcl8DU4.js`),__vite__mapDeps([318,1,2,5,6,21,8,22,17,18,23,24,25,26,27,28,29,121,19,319,44,68,3,4,69,70,45,71])),A=()=>e(()=>import(`./system-settings-panel-Ce6zIcki.js`),__vite__mapDeps([320,1,2,5,6,321,8,152,69,81,322,17,18,49,60,68,3,4,70,45,25,71,72,73])),j=()=>e(()=>import(`./desktop-pet-settings-COaboNn1.js`),__vite__mapDeps([323,1,2,3,4,5,6,238,91,8,21,22,17,18,23,24,25,26,27,28,29,75,69,147,324,157,49,152,127,81,45,325,326,68,70,71])),M=()=>e(()=>import(`./app-management-settings-panel-CDnZNKHt.js`),__vite__mapDeps([327,1,2,5,6,94,8,76,306,17,18,44,45,25,23,46,26,29,104,49,152,60,277,68,3,4,69,70,71,72,73])),N=()=>e(()=>import(`./capabilities-settings-panel-mme16Fbp.js`),__vite__mapDeps([328,1,2,4,3,5,6,235,8,329,92,21,22,17,18,23,24,25,26,27,28,29,93,330,165,200,94,96,76,104,49,52,201,168,39,40,15,43,44,45,46,50,51,48,294,58,54,204,281,203,84,152,205,69,242,193,156,73,109,14,81,110,269,139,42,85,184,207,62,19,161,117,118,47,119,120,121,122,123,124,125,66,213,331,60,215,61,224,280,277,64,65,226,67,68,70,71,72,74,75,291,292,332,83,86])),P=()=>e(()=>import(`./gateway-settings-BvKq7vuz.js`),__vite__mapDeps([333,1,2,3,4,5,6,21,8,22,17,18,23,24,25,26,27,28,29,75,200,93,94,96,76,104,49,52,201,275,193,334,81,148,335,152,110,322,269,85,44,45,50,294,331,53,54,60,215,46,65,66,277,64,67,68,69,70,71,72,73,77])),F=()=>e(()=>import(`./runtime-tools-settings-panel-BALcypHp.js`),__vite__mapDeps([336,1,2,5,6,21,8,22,17,18,23,24,25,26,27,28,29,75,93,33,157,44,45,127,81,277,68,3,4,69,70,71,77,65,66,286,285,91,207,314])),I=()=>e(()=>import(`./remote-access-hub-Dw5rG-aA.js`),__vite__mapDeps([337,1,2,3,4,5,6,235,8,22,91,92,30,94,69,200,93,96,76,17,18,104,49,52,201,168,193,334,301,338,322,206,16,85,44,45,25,46,26,29,50,53,54,60,215,169,27,28,65,66,281,51,48,204,205,152,64,226,68,70,71,72,73,339,23,331,77])),L=()=>e(()=>import(`./shares-settings-CzR21j6e.js`),__vite__mapDeps([340,1,2,3,4,5,6,22,8,91,21,17,18,23,24,25,26,27,28,29,190,84,94,241,92,95,187,166,100,176,34,192,49,152,142,76,13,39,81,245,42,167,69,168,43,45,46,169,104,44,50,125,52,53,54,60,215,160,341,155,116,19,162,132,277,203,93,204,51,48,205,67,68,70,71,72,73])),R=()=>e(()=>import(`./agent-defaults-settings-panel-D285zy0S.js`),__vite__mapDeps([342,1,2,3,4,5,6,93,8,80,195,138,40,110,269,17,18,44,45,25,23,86,19,152,58,54,217,218,65,66,280,50,64,67,68,69,70,71,74,22,75,76])),z=()=>e(()=>import(`./management-settings-CuSzixOw.js`),__vite__mapDeps([343,1,2,3,4,5,6,89,8,165,92,21,22,17,18,23,24,25,26,27,28,29,194,344,39,40,206,43,44,45,46,47,19,48,53,49,54,154,215,127,81,277,68,69,70,71,345,93,10,33,346,101,102,103,153,169,94,104,205,152,226,339,168,76,301,50,52,331,72,73,282,283])),B=new Set;function V(e){B.has(e)||(B.add(e),e().catch(()=>{B.delete(e)}))}function H(e){let[t]=e.split(/[?#]/,1);return t||`/`}function U(e){V(p);let t=e.slice(10);if(t===`overview`)return V(E);if(t===`appearance`)return V(D);if(t===`keyboard-shortcuts`)return V(O);if(t===`personal`)return V(k);if(t===`system`)return V(A);if(t===`desktop-pet`)return V(j);if(t===`desktop-app`)return V(M);if(t.startsWith(`capabilities/`))return V(N);if(t===`gateway`)return V(P);if(t===`runtimes`)return V(F);if(t===`devices`)return V(z);if(t===`tunnel`||t===`remote-access`)return V(I);if(t===`shares`)return V(L);if(t===`agent-defaults`)return V(R);if(t===`agent-browser`)return V(m);if(t===`phone-use`)return V(h);if(t===`computer-use`)return V(g)}function W(e){if(!e.startsWith(`/`))return;let p=H(e);if(p===`/capabilities`||p.startsWith(`/capabilities/`))return V(u);if(p===`/user-model`)return V(d);if(p===`/automations`)return V(r);if(p===`/browser-automations`)return V(i);if(p===`/`)return V(a);if(p.startsWith(`/tasks/`))return V(o);if(p===`/projects`)return V(s);if(p.startsWith(`/projects/`))return V(c);if(p===`/notes`||p.startsWith(`/notes/`))return V(l);if(p.startsWith(`/extensions/`))return V(_);if(p===`/local-apps`)return V(x);if(p.startsWith(`/local-apps/`))return V(S);if(p===`/open`)return V(C);if(p===`/onboarding/workspace`)return V(w);if(p.startsWith(`/share/`))return V(b);if(p===`/settings/sessions`)return V(t);if(p===`/settings/usage`)return V(n);if(p===`/settings/logs`)return V(f);if(p===`/settings/extensions/debug`)return V(y);if(p.startsWith(`/settings/ext/`))return V(v);if(p.startsWith(`/settings/`))return U(p)}export{E as A,C,F as D,I as E,n as F,d as I,T as L,L as M,A as N,t as O,o as P,w as R,h as S,s as T,S as _,r as a,l as b,g as c,y as d,_ as f,O as g,a as h,D as i,b as j,p as k,j as l,P as m,R as n,i as o,v as p,M as r,N as s,m as t,z as u,x as v,c as w,k as x,f as y,W as z};
@@ -1,23 +0,0 @@
1
- import{n as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,i as n,l as r,n as i,p as a,u as o}from"./locale-store-5Hf8J8-_.js";import{t as s}from"./messages-uXxg5p54.js";import{_ as c,c as l,d as u,f as d,i as f,m as p,n as m,u as h}from"./schemas-CCWMleym.js";import{i as ee,n as g}from"./constants-DBtMsXdW.js";import{_,b as v,g as y,h as b,m as x,s as S,v as C,y as w}from"./session-api-VquhIBHI.js";import{_ as te,a as T,c as E,d as ne,f as re,i as ie,l as D,o as ae,p as oe,r as se,s as ce,t as le,u as ue}from"./local-session-drafts-DHM4vWDO.js";import{t as O}from"./tool-activity-BtJkgjFf.js";import{r as de}from"./personal-proactivity-DaRnbB1f.js";import{a as fe}from"./attachment-utils-core-BIOUBrpT.js";import{a as pe}from"./gateway-realtime-CyCCNUxm.js";import{t as me}from"./gateway-startup-retry-N3k-C7c2.js";import{n as he}from"./registry-api-B1Mh3bNo.js";import{a as ge}from"./agents-admin-api-CASGzvkW.js";var _e=[0,500,1500],ve=1e4;function ye(e){let t=[e.content,e.thinking??null,e.attachments??null,e.contextRefs??null,e.browserContexts??null];e.appContext!==void 0&&t.push(e.appContext);let n=JSON.stringify(t),r=2166136261,i=5381;for(let e=0;e<n.length;e++){let t=n.charCodeAt(e);r^=t,r=Math.imul(r,16777619),i=Math.imul(i,33)^t}return`${n.length.toString(36)}:${(r>>>0).toString(36)}:${(i>>>0).toString(36)}`}function be(e){return e===408||e===429||e>=500}var xe=/^\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}[^\]]*\]\s*/u,Se=[`user-profile`,`active-focuses`,`collaboration-contract`,`user-context`];function Ce(e,t){let n=`<${t}>`;if(!e.startsWith(n))return null;let r=`</${t}>`,i=e.indexOf(r,n.length);return i<0?null:e.slice(i+r.length).trimStart()}function we(e){return xe.test(e)||e.startsWith(`<source_contexts>`)||Se.some(t=>e.startsWith(`<${t}>`))}function Te(e){if(!e.includes(`<source_contexts>`))return e;let t=e.replace(/^\s*<source_contexts>[\s\S]*?<\/source_contexts>\s*/u,``).trimStart();return t.match(/^<user_message>\r?\n([\s\S]*)\r?\n<\/user_message>\s*$/u)?.[1]??t}function Ee(e){let t=e,n=Ce(t.trimStart(),`xopc_task_execution`);n!==null&&we(n)&&(t=n),t=Te(t);let r=t,i=!1;for(t=t.trimStart();;){let e=Se.find(e=>t.startsWith(`<${e}>`));if(!e)break;let n=Ce(t,e);if(n===null){t=r,i=!1;break}t=n,i=!0}return i&&!xe.test(t)&&(t=r),t.replace(xe,``)}function De(e){return!e.includes(`[media attached:`)&&!e.includes(`xopc-media-uri:`)?e:e.replace(/\s*\[media attached:[^\]]+\]\s*\r?\nxopc-media-uri:[^\r\n]+\r?\n\s*xopc-media-path:[^\r\n]+(?:\r?\n\s*Use the read_media tool[^\r\n]*)?/g,``).replace(/\s*\[media attached:[^\]]+\]\s*/g,` `).replace(/\s*xopc-media-uri:[^\r\n]+/g,``).replace(/\s*xopc-media-path:[^\r\n]+/g,``).replace(/\s*Use the read_media tool[^\r\n]*/g,``).replace(/\n{3,}/g,`
2
-
3
- `).trim()}var Oe=`@xopc-ref:`,ke=`[A-Za-z0-9_-]{1,64}`,Ae=RegExp(`${Oe}(${ke})`,`g`);function je(e){if(!RegExp(`^${ke}$`).test(e))throw Error(`Invalid context reference id`);return`${Oe}${e}`}function Me(){return new RegExp(Ae.source,`g`)}function Ne(e){let t=[],n=Me(),r=0,i;for(;(i=n.exec(e))!==null;)i.index>r&&t.push({type:`text`,text:e.slice(r,i.index)}),t.push({type:`context_ref`,refId:i[1]??``}),r=i.index+i[0].length;return t.length===0?null:(r<e.length&&t.push({type:`text`,text:e.slice(r)}),{version:1,parts:t})}function Pe(e){return e.parts.flatMap(e=>e.type===`context_ref`?[e.refId]:[])}function Fe(e,t){return e.parts.map(e=>{if(e.type===`text`)return e.text;let n=t(e.refId)?.trim();return n?`@${n}`:``}).join(``)}function Ie(e){return e.parts.map(e=>e.type===`text`?e.text:je(e.refId)).join(``)}function Le(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return t.version!==1||!Array.isArray(t.parts)?!1:t.parts.every(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return t.type===`text`?typeof t.text==`string`:t.type===`context_ref`&&typeof t.refId==`string`&&RegExp(`^${ke}$`).test(t.refId)})}var Re=8e3,ze=u({interactionMode:m([`quick`,`compose`]).optional(),choiceDetails:f(u({id:p().min(1).max(160),label:p().trim().min(1).max(1e3),description:p().max(2e3).optional()}).strict()).min(2).max(10).optional(),recommendedChoiceId:p().min(1).max(160).optional(),approval:u({operation:p().min(1).max(1e3),target:p().max(2e3).optional(),impact:p().max(4e3).optional(),argumentsPreview:d(p(),c()).optional()}).strict().optional()}),Be=u({response:u({choiceId:p().min(1).max(160).optional(),text:p().trim().max(Re).optional()}).strict().optional(),decision:m([`approve`,`deny`]).optional()}).strict();Be.extend({action:m([`answer`,`agent_decide`,`cancel`]),expectedVersion:h().int().positive(),idempotencyKey:p().trim().min(1).max(256)}).strict();function Ve(e){let t=ze.safeParse(e);return t.success?t.data:{}}function He(e,t){let n=Be.parse(t);if(e.kind===`approval`){if(n.response||!n.decision)throw Error(`An explicit approval decision is required`);return{answer:n.decision,decision:n.decision}}if(n.decision||!n.response)throw Error(`A structured response is required`);let r=n.response.choiceId?e.choiceDetails?.find(e=>e.id===n.response.choiceId):void 0;if(n.response.choiceId&&!r)throw Error(`Unknown clarification choice`);let i=n.response.text?.trim()??``;if(!r&&!i)throw Error(`Answer is required`);return{answer:r&&i?`Choice: ${r.label}\nAdditional information: ${i}`:r?.label??i,response:{...r?{choiceId:r.id}:{},...i?{text:i}:{}}}}var Ue=u({version:l(1),deliveryId:p().min(1),taskId:p().min(1),taskRunId:p().min(1),taskTitle:p().min(1).max(500),conversationId:p().min(1),originTranscriptId:p().min(1),requestInputId:p().optional(),assignmentEpoch:h().int().nonnegative(),resultRevision:h().int().positive().optional(),previousResultId:p().optional(),contractVersion:h().int().positive().optional(),instructionSequence:h().int().nonnegative().optional(),adoption:f(u({entryId:p(),sequence:h().int(),status:m([`applied`,`partially_applied`,`not_applied`,`superseded`]),verification:m([`passed`,`failed`,`unverified`]),claimIds:f(p()),note:p()})).optional(),outcome:g,text:p().optional(),createdAt:h()});function We(e){let t=Ue.safeParse(e);return t.success?t.data:void 0}var Ge=[`## Result for the originating conversation`,`For ordinary Tasks when publish_task_result is available, use it before completion to review the actual result. Connected Requests use their own structured result tool instead. When files were published, finalArtifactIds must select the exact final artifact IDs from publication receipts, including [] for a text-only result. Exclude intermediate, obsolete and failed files; publication history is not the final delivery manifest.`,`Provide a complete, evidence-grounded result for the originating conversation. The personal assistant may synthesize its final reply from your report. Match the user’s language and requested depth; preserve requested content, relevant sources, verified data cutoffs, uncertainty, and partial failures. Distinguish reported findings from verified facts. Do not invent a friendly opening or assume a new user request.`,`Keep internal planning, Agent names, tool logs, and task progress links out of the result unless the user specifically requested them or they are necessary to explain a blocker. Never substitute a progress page, a plan, or a promise for the requested result. Publish required files through the available artifact tools; do not repeat the same attachments or send the user to a Task page to collect them.`].join(`
4
- `),Ke=`Before finishing, call personal_request_result with the verified summary and, for mail, message items and coverage. The host composes the final explanation and preserves structured items in the main chat.`;function qe(e){let t=e.replace(/\r\n/g,`
5
- `);return t.includes(Ge)?t.replace(Ge,``).replace(Ke,``).replace(/<task_brief>\n([\s\S]*?)\n<\/task_brief>/g,`$1`).replace(/\n{3,}/g,`
6
-
7
- `).trim():e}function Je(e,t){let n=e.replace(/\r\n/g,`
8
- `);return n.includes(Ge)?[t.trim(),Ge,...n.includes(Ke)?[Ke]:[]].filter(Boolean).join(`
9
-
10
- `):t}function Ye(e){return typeof e==`object`&&!!e&&`role`in e}function Xe(e){if(!e||typeof e!=`object`)return!1;let t=e.type;return t===`tool_use`||t===`tool_call`||t===`toolCall`}function Ze(e){return typeof e==`object`&&!!e}function Qe(e){return typeof e.id==`string`&&e.id.length>0?e.id:crypto.randomUUID()}function $e(e){if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return e}}function et(e){return $e(e.args??e.arguments??e.input??e.function?.arguments)??{}}function tt(e){if(typeof e==`string`){let t=Date.parse(e);return Number.isNaN(t)?Date.now():t}return Date.now()}function nt(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e!=`string`)return;let t=Date.parse(e);return Number.isNaN(t)?void 0:t}function rt(e){if(Array.isArray(e))return e.map(e=>it(e))}function it(e){if(!e||typeof e!=`object`)return{name:`file`,mimeType:`application/octet-stream`};let t=e,n=at(t.uri),r=ot(t.name),i=st(t.mimeType,r),a=typeof t.type==`string`?t.type:void 0,o=a===`photo`||a===`image`||i.startsWith(`image/`)?`image`:a===`voice`||a===`audio`||i.startsWith(`audio/`)?`voice`:a;return{id:typeof t.id==`string`?t.id:void 0,name:r,mimeType:i,type:o,size:typeof t.size==`number`?t.size:void 0,uri:n,bucket:typeof t.bucket==`string`?t.bucket:void 0,path:typeof t.path==`string`?t.path:void 0}}function at(e){return typeof e==`string`&&e.trim().startsWith(`media://`)?e.trim():void 0}function ot(e){return typeof e==`string`&&e.trim().length>0?e.trim():`file`}function st(e,t){if(typeof e==`string`&&e.trim().length>0){let t=e.trim();if(t.toLowerCase().split(`;`)[0]?.trim()!==`application/octet-stream`)return t}return fe(t)??`application/octet-stream`}function ct(e){let t=e.uri?.trim();return t?`uri:${t}`:e.id?`id:${e.id}`:`name:${e.name??`file`}|${e.mimeType??``}`}function lt(e){if(!e?.length)return;let t=[],n=new Set;for(let r of e){let e=ct(r);n.has(e)||(n.add(e),t.push(r))}return t.length?t:void 0}var ut=`[Startup context loaded by runtime]`,dt=`...[additional startup memory truncated]...`,ft=`END_QUOTED_NOTES`;function pt(...e){return e.filter(e=>e.length>0).join(`
11
-
12
- `)}function mt(e){if(!e.includes(ut))return e;let t=e.replace(/^\uFEFF/,``);if(!t.startsWith(ut))return e;let n=-1,r=t.lastIndexOf(ft);if(r>=0)n=r+16;else{let e=t.indexOf(dt);e>=0&&(n=e+43)}if(n<0){let n=t.slice(35),r=n.indexOf(`
13
-
14
- `);return r>=0?n.slice(r+2).replace(/^\s+/,``):e}return t.slice(n).replace(/^\s+/,``)}function ht(e){if(typeof e!=`string`||!e.includes(`## Skill:`))return e;let t=e.indexOf(`## Skill:`),n=e.slice(0,t).replace(/\s+$/,``),r=e.slice(t),i=r.match(/## Skill:\s*([^\s\r\n]+)/);if(!i)return e;let a=i[1]??``;if(!a)return e;let o=[...r.matchAll(/\*\*Arguments\*\*:\s*([^\r\n]+)/g)],s=o.length>0?(o[o.length-1]?.[1]??``).trim():``,c=s?`/skill:${a} ${s}`:`/skill:${a}`,l=r.length;if(o.length>0){let e=o[o.length-1];l=(e.index??0)+e[0].length}return pt(n,c,r.slice(l).replace(/^\s+/,``))}function gt(e){return e.includes(`<file path=`)?e.replace(/<file\s+path="[^"]*">\r?\n[\s\S]*?<\/file>(?:\r?\n)*/g,``).replace(/\n{3,}/g,`
15
-
16
- `).trim():e}function k(e){let t=qe(mt(e));return t=Ee(t),t=gt(t),t=De(t),t=vt(t),ht(t)}var _t=/(?:\n{2,})?\[(?:Image description:|\d+ image\(s\) attached(?:; no image-capable model is available to describe them\.| but could not be described:))[\s\S]*\]\s*$/;function vt(e){return e.replace(_t,``).trimEnd()}function yt(e){let t=new Map;return e.forEach((e,n)=>{e.role===`task`&&e.taskTrigger&&t.set(e.taskTrigger.entryId,n)}),e.filter((e,n)=>e.role!==`task`||!e.taskTrigger||t.get(e.taskTrigger.entryId)===n)}function bt(e){return Ot(e)}function xt(e){if(e.type!==`thinking`)return``;let t=e;return typeof t.text==`string`?t.text:typeof t.thinking==`string`?t.thinking:``}function St(e,t){let n=[...e],r=new Map;for(let e=0;e<n.length;e++){let t=n[e];t.type===`tool_use`&&r.set(t.id,e)}for(let e of t){if(e.type===`tool_use`&&r.has(e.id)){let t=r.get(e.id);n[t]=e;continue}if(e.type===`thinking`&&n.length>0){let t=n[n.length-1];if(t.type===`thinking`&&xt(t)===xt(e))continue}e.type===`tool_use`&&r.set(e.id,n.length),n.push(e)}return n}function A(e){if(e.length<2)return e;let t=[];for(let n of e){if(n.role!==`assistant`){t.push(n);continue}let e=t[t.length-1];if(e?.role===`assistant`&&!e.taskResultDelivery&&!n.taskResultDelivery&&!e.personalProvenance&&!n.personalProvenance&&!(n.startsNewBubble&&e.turnId!==n.turnId)){let r={...e,content:St(e.content,n.content)};t[t.length-1]=r,n.timestamp!=null&&(r.timestamp=n.timestamp),n.completedAt!=null&&(r.completedAt=n.completedAt),n.renderKey&&(r.renderKey=n.renderKey),!r.turnId&&n.turnId&&(r.turnId=n.turnId),n.progressiveRender&&(r.progressiveRender=!0),n.usage&&(r.usage=n.usage),n.outcome&&(r.outcome=n.outcome),n.attachments?.length&&(r.attachments=lt([...r.attachments??[],...n.attachments]))}else t.push(n)}return t}function Ct(e){return e.filter(e=>e.type===`text`).map(e=>e.text.trim()).filter(Boolean).join(`
17
- `)}function wt(e){return e.filter(e=>e.type===`thinking`).map(e=>(e.text??``).trim()).filter(Boolean).join(`
18
- `)}function Tt(e){return e.filter(e=>e.type===`tool_use`).map(e=>{let t=typeof e.result==`string`?e.result.trim():JSON.stringify(e.result??``);return`${e.name}|${e.status}|${t}`}).join(`
19
- `)}function Et(e){return e.filter(e=>e.type===`review`).map(e=>JSON.stringify(e)).join(`
20
- `)}function Dt(e,t){return e.role!==`assistant`||t.role!==`assistant`?!1:Ct(e.content)===Ct(t.content)&&wt(e.content)===wt(t.content)&&Tt(e.content)===Tt(t.content)&&Et(e.content)===Et(t.content)&&JSON.stringify(e.outcome??null)===JSON.stringify(t.outcome??null)}function Ot(e){let t=[];for(let n of e){if(!Ye(n))continue;let e=n,r=String(e.role??``);if(r!==`system`){if(r===`task`){let n=kt(e.taskTrigger);n&&t.push({role:`task`,content:[],taskTrigger:n,...e.turnId?{turnId:e.turnId}:{},timestamp:typeof e.timestamp==`number`?e.timestamp:tt(e.timestamp)});continue}if(r===`toolResult`||r===`tool`){Bt(t,e);continue}if(r===`user`){t.push(Mt(e));continue}if(r===`assistant`){t.push(It(e));continue}}}return A(yt(t))}function kt(e){let t=j(e);return!t||typeof t.entryId!=`string`||typeof t.taskId!=`string`||typeof t.taskTitle!=`string`||!t.taskTitle.trim()||![`progress`,`question`,`result`,`failure`].includes(String(t.kind))?null:{entryId:t.entryId,taskId:t.taskId,taskTitle:t.taskTitle,kind:t.kind}}function At(e){return e.filter(e=>e.type===`text`).map(e=>({...e,text:k(e.text)})).filter(e=>!!e.text?.trim())}function jt(e){return lt([...rt(e.media)??[],...rt(e.attachments)??[]])}function Mt(e){let t=e.content,n=typeof t==`string`?(()=>{let e=k(t);return e.trim()?[{type:`text`,text:e}]:[]})():At(Wt(t));return{role:`user`,...e.turnId?{turnId:e.turnId}:{},content:n,attachments:jt(e),contextRefs:Pt(e.metadata),sourceDevice:Nt(e.metadata),userTurnDocument:Ft(e.metadata),timestamp:typeof e.timestamp==`number`?e.timestamp:tt(e.timestamp),usage:e.usage}}function Nt(e){let t=j(e)?.sourceContexts;if(!Array.isArray(t))return;let n=t.map(j).find(e=>e?.kind===`device_context`);return n&&typeof n.sourceId==`string`&&typeof n.title==`string`?{endpointId:n.sourceId,name:n.title}:void 0}function Pt(e){let t=j(e)?.sourceContexts;if(!Array.isArray(t))return;let n=t.flatMap(e=>{let t=j(e);return!t||t.kind!==`note`&&t.kind!==`file`&&t.kind!==`session`&&t.kind!==`browser_tab`&&t.kind!==`mcp_resource`||typeof t.sourceId!=`string`||typeof t.version!=`string`||typeof t.title!=`string`?[]:[{...typeof t.refId==`string`?{refId:t.refId}:{},kind:t.kind,sourceId:t.sourceId,version:t.version,title:t.title,...typeof t.tokenEstimate==`number`?{tokenEstimate:t.tokenEstimate}:{},...t.truncated===!0?{truncated:!0}:{},...t.kind===`file`&&(t.fileKind===`file`||t.fileKind===`directory`)?{fileKind:t.fileKind}:{}}]});return n.length>0?n:void 0}function Ft(e){let t=j(e)?.userTurnDocument;if(!Le(t))return;let n=!1;return{...t,parts:t.parts.map(e=>n||e.type!==`text`?{...e}:(n=!0,{...e,text:k(e.text)}))}}function It(e){let t=zt(e);Rt(t,e.metadata);let n=ee(j(e.metadata)?.turnOutcome),r=de.safeParse(j(e.metadata)?.personalProvenance),i=We(j(e.metadata)?.taskResultDelivery);return{role:`assistant`,...e.turnId?{turnId:e.turnId}:{},...e.startsNewBubble?{startsNewBubble:!0}:{},content:t,attachments:jt(e),...n?{outcome:n}:{},...i?{taskResultDelivery:i}:{},...r.success?{personalProvenance:r.data,startsNewBubble:!0}:{},timestamp:typeof e.timestamp==`number`?e.timestamp:tt(e.timestamp),usage:e.usage}}function j(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function Lt(e){let t=j(e);if(!t||t.type!==`review`)return null;let n=Array.isArray(t.findings)?t.findings:[],r={type:`review`,target:typeof t.target==`string`?t.target:`working tree changes`,summary:typeof t.summary==`string`?t.summary:``,findings:n.map(e=>{let t=j(e);if(!t)return null;let n=t.priority===0||t.priority===1||t.priority===2||t.priority===3?t.priority:2,r=typeof t.title==`string`?t.title:``,i=typeof t.body==`string`?t.body:``;if(!r&&!i)return null;let a={title:r,body:i,priority:n};return typeof t.confidenceScore==`number`&&(a.confidenceScore=t.confidenceScore),typeof t.filePath==`string`&&(a.filePath=t.filePath),typeof t.lineStart==`number`&&(a.lineStart=t.lineStart),typeof t.lineEnd==`number`&&(a.lineEnd=t.lineEnd),a}).filter(e=>e!=null),overallCorrectness:t.overallCorrectness===`patch is correct`||t.overallCorrectness===`patch is incorrect`?t.overallCorrectness:`unknown`,overallExplanation:typeof t.overallExplanation==`string`?t.overallExplanation:``};return typeof t.overallConfidenceScore==`number`&&(r.overallConfidenceScore=t.overallConfidenceScore),typeof t.generatedAt==`number`&&(r.generatedAt=t.generatedAt),(t.source===`model`||t.source===`local`)&&(r.source=t.source),r}function Rt(e,t){let n=Lt(j(t)?.review);n&&(e.some(e=>e.type===`review`&&e.target===n.target)||e.push(n))}function zt(e){let t=nt(e.timestamp),n=Wt(e.rawContent,t),r=n.length>0?n:Wt(e.content,t),i=e.tool_calls;if(Array.isArray(i))for(let e of i){if(!e?.id||r.some(t=>t.type===`tool_use`&&t.id===e.id))continue;let n=e.function?.arguments;if(typeof n==`string`)try{n=JSON.parse(n)}catch{}r.push({type:`tool_use`,id:e.id,name:e.function?.name||`tool`,input:n,status:`running`,startedAt:t})}let a=e.toolCalls;if(Array.isArray(a))for(let e=0;e<a.length;e+=1){let n=a[e],i=typeof n.id==`string`&&n.id?n.id:`tool-call-${e}-${n.name||`tool`}`,o=typeof n.result==`string`,s=r.find(e=>e.type===`tool_use`&&e.id===i);if(s){s.status=o?n.isError?`error`:`done`:s.status,s.result=o?n.result:s.result,s.details=n.details??s.details,o&&(s.completedAt=t,s.durationMs=s.startedAt!=null&&t!=null?Math.max(0,t-s.startedAt):s.durationMs);continue}r.push({type:`tool_use`,id:i,name:n.name||`tool`,input:n.args,status:o?n.isError?`error`:`done`:`running`,result:o?n.result:void 0,details:n.details,startedAt:t,completedAt:o?t:void 0,durationMs:o&&t!=null?0:void 0})}for(let e of r){if(e.type!==`tool_use`)continue;let t=e.details===void 0?e.result:{details:e.details,result:e.result};e.activity=O(e.name,e.status===`running`?`running`:e.status===`error`?`failed`:`completed`,t)}let o=r.some(e=>e.type===`tool_use`)?`narration`:`answer`;for(let e of r)e.type===`text`&&!e.presentation&&(e.presentation=o);return r}function Bt(e,t){let n=Vt(e);if(!n)return;let r=String(t.tool_call_id??t.toolCallId??``),i=Ht(t.content),a=!!t.isError,o=nt(t.timestamp),s=t.nestedCalls;for(let e of s?.calls??[]){if(!e||typeof e!=`object`)continue;let t=e;typeof t.id!=`string`||typeof t.name!=`string`||n.content.some(e=>e.type===`tool_use`&&e.toolCallId===t.id)||n.content.push({type:`tool_use`,id:t.id,toolCallId:t.id,parentToolCallId:r,name:t.name,input:t.arguments,status:t.status===`ok`?`done`:`error`,...typeof t.durationMs==`number`?{durationMs:t.durationMs}:{},...typeof t.error==`string`?{result:t.error}:{},completedAt:o})}let c=r?n.content.find(e=>e.type===`tool_use`&&e.id===r):void 0;if(c){c.status=a?`error`:`done`,c.result=i,c.details=t.details,c.activity=O(c.name,a?`failed`:`completed`,{details:t.details,result:i}),c.completedAt=o,c.startedAt!=null&&o!=null&&(c.durationMs=Math.max(0,o-c.startedAt)),typeof t.durationMs==`number`&&(c.durationMs=t.durationMs);return}let l=n.content.filter(e=>e.type===`tool_use`&&e.status===`running`);l.length===1&&(l[0].status=a?`error`:`done`,l[0].result=i,l[0].details=t.details,l[0].activity=O(l[0].name,a?`failed`:`completed`,{details:t.details,result:i}),l[0].completedAt=o,l[0].startedAt!=null&&o!=null&&(l[0].durationMs=Math.max(0,o-l[0].startedAt)))}function Vt(e){for(let t=e.length-1;t>=0;t--)if(e[t].role===`assistant`)return e[t];return null}function Ht(e){return typeof e==`string`?e:Array.isArray(e)?e.filter(e=>Ze(e)&&e.type===`text`).map(e=>String(e.text??``)).join(`
21
- `):String(e??``)}function Ut(e){let t=e.source?.data;if(typeof t==`string`&&t.length>0)return{type:`image`,source:{data:t}};let n=e.data;if(typeof n!=`string`||n.length===0)return null;let r=n.trim();return r.startsWith(`data:`)?{type:`image`,source:{data:r}}:{type:`image`,source:{data:`data:${typeof e.mimeType==`string`&&e.mimeType.includes(`/`)?e.mimeType:`image/png`};base64,${r.replace(/\s/g,``)}`}}}function Wt(e,t){if(e==null)return[];if(typeof e==`string`)return e.trim()?[{type:`text`,text:e}]:[];if(!Array.isArray(e))return[{type:`text`,text:String(e)}];let n=[];for(let r of e){if(!Ze(r))continue;let e=r.type;if(e===`text`&&typeof r.text==`string`){let e=r.presentation===`pending`||r.presentation===`narration`||r.presentation===`answer`?r.presentation:void 0;n.push({type:`text`,text:r.text,...e?{presentation:e}:{}})}else if(e===`thinking`){let e=typeof r.thinking==`string`?r.thinking:typeof r.text==`string`?r.text:``;n.push({type:`thinking`,text:e,streaming:!1})}else if(e===`image`){let e=Ut(r);e&&n.push(e)}else if(e===`review`){let e=Lt(r);e&&n.push(e)}else if(e===`tool_use`||e===`tool_call`){if(!Xe(r))continue;let e=Qe(r),i=String(r.name??r.function?.name??`tool`),a=r.input??r.function?.arguments;n.push({type:`tool_use`,id:e,toolCallId:e,name:i,input:a,status:r.status===`error`?`error`:`done`,startedAt:t,result:typeof r.result==`string`?r.result:void 0,details:r.details})}else if(e===`toolCall`){if(!Xe(r))continue;let e=Qe(r),i=String(r.name??r.function?.name??`tool`);n.push({type:`tool_use`,id:e,toolCallId:e,name:i,input:et(r),status:`done`,startedAt:t,result:typeof r.result==`string`?r.result:void 0,details:r.details})}}return n}var Gt;function Kt(e){Gt=e?r.getState().conversationId:void 0}async function qt(){if(!Gt||Gt!==r.getState().conversationId)return;let e=re.safeParse({version:1,capturedAt:Date.now(),timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,locale:navigator.language});return e.success?e.data:void 0}var Jt=Symbol.for(`immer-nothing`),Yt=Symbol.for(`immer-draftable`),M=Symbol.for(`immer-state`);function N(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var P=Object,F=P.getPrototypeOf,Xt=`constructor`,Zt=`prototype`,Qt=`configurable`,$t=`enumerable`,en=`writable`,I=`value`,L=e=>!!e&&!!e[M];function R(e){return e?rn(e)||un(e)||!!e[Yt]||!!e[Xt]?.[Yt]||dn(e)||fn(e):!1}var tn=P[Zt][Xt].toString(),nn=new WeakMap;function rn(e){if(!e||!pn(e))return!1;let t=F(e);if(t===null||t===P[Zt])return!0;let n=P.hasOwnProperty.call(t,Xt)&&t[Xt];if(n===Object)return!0;if(!B(n))return!1;let r=nn.get(n);return r===void 0&&(r=Function.toString.call(n),nn.set(n,r)),r===tn}function an(e,t,n=!0){z(e)===0?(n?Reflect.ownKeys(e):P.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function z(e){let t=e[M];return t?t.type_:un(e)?1:dn(e)?2:fn(e)?3:0}var on=(e,t,n=z(e))=>n===2?e.has(t):P[Zt].hasOwnProperty.call(e,t),sn=(e,t,n=z(e))=>n===2?e.get(t):e[t],cn=(e,t,n,r=z(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function ln(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var un=Array.isArray,dn=e=>e instanceof Map,fn=e=>e instanceof Set,pn=e=>typeof e==`object`,B=e=>typeof e==`function`,mn=e=>typeof e==`boolean`;function hn(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var V=e=>e.copy_||e.base_,gn=e=>e.modified_?e.copy_:e.base_;function _n(e,t){if(dn(e))return new Map(e);if(fn(e))return new Set(e);if(un(e))return Array[Zt].slice.call(e);let n=rn(e);if(t===!0||t===`class_only`&&!n){let t=P.getOwnPropertyDescriptors(e);delete t[M];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[en]===!1&&(a[en]=!0,a[Qt]=!0),(a.get||a.set)&&(t[i]={[Qt]:!0,[en]:!0,[$t]:a[$t],[I]:e[i]})}return P.create(F(e),t)}else{let t=F(e);if(t!==null&&n)return{...e};let r=P.create(t);return P.assign(r,e)}}function vn(e,t=!1){return xn(e)||L(e)||!R(e)?e:(z(e)>1&&P.defineProperties(e,{set:bn,add:bn,clear:bn,delete:bn}),P.freeze(e),t&&an(e,(e,t)=>{vn(t,!0)},!1),e)}function yn(){N(2)}var bn={[I]:yn};function xn(e){return e===null||!pn(e)||P.isFrozen(e)}var Sn=`MapSet`,Cn=`Patches`,wn=`ArrayMethods`,Tn={};function H(e){let t=Tn[e];return t||N(0,e),t}var En=e=>!!Tn[e],U,Dn=()=>U,On=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:En(Sn)?H(Sn):void 0,arrayMethodsPlugin_:En(wn)?H(wn):void 0});function kn(e,t){t&&(e.patchPlugin_=H(Cn),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function An(e){jn(e),e.drafts_.forEach(Nn),e.drafts_=null}function jn(e){e===U&&(U=e.parent_)}var Mn=e=>U=On(U,e);function Nn(e){let t=e[M];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Pn(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[M].modified_&&(An(t),N(4)),R(e)&&(e=Fn(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[M].base_,e,t)}else e=Fn(t,n);return In(t,e,!0),An(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===Jt?void 0:e}function Fn(e,t){if(xn(t))return t;let n=t[M];if(!n)return Wn(t,e.handledSet_,e);if(!Rn(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);Hn(n,e)}return n.copy_}function In(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&vn(t,n)}function Ln(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var Rn=(e,t)=>e.scope_===t,zn=[];function Bn(e,t,n,r){let i=V(e),a=e.type_;if(r!==void 0&&sn(i,r,a)===t){cn(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;an(i,(e,n)=>{if(L(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??zn;for(let e of o)cn(i,e,n,a)}function Vn(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!Rn(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=gn(i);Bn(e,i.draft_??i,a,n),Hn(i,r)})}function Hn(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}Ln(e)}}function Un(e,t,n){let{scope_:r}=e;if(L(n)){let i=n[M];Rn(i,r)&&i.callbacks_.push(function(){$n(e),Bn(e,n,gn(i),t)})}else R(n)&&e.callbacks_.push(function(){let i=V(e);e.type_===3?i.has(n)&&Wn(n,r.handledSet_,r):sn(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Wn(sn(e.copy_,t,e.type_),r.handledSet_,r)})}function Wn(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||L(e)||t.has(e)||!R(e)||xn(e)?e:(t.add(e),an(e,(r,i)=>{if(L(i)){let t=i[M];Rn(t,n)&&(cn(e,r,gn(t),e.type_),Ln(t))}else R(i)&&Wn(i,t,n)}),e)}function Gn(e,t){let n=un(e),r={type_:+!!n,scope_:t?t.scope_:Dn(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=Kn;n&&(i=[r],a=qn);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var Kn={get(e,t){if(t===M)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=V(e);if(!on(i,t,e.type_))return Xn(e,i,t);let a=i[t];if(e.finalized_||!R(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&hn(t))return a;if(a===Jn(e.base_,t)||Yn(e,t,a)){$n(e);let n=e.type_===1?+t:t,r=tr(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in V(e)},ownKeys(e){return Reflect.ownKeys(V(e))},set(e,t,n){let r=Zn(V(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=Jn(V(e),t),i=r?.[M];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.delete(t),!0;if(ln(n,r)&&(n!==void 0||on(e.base_,t,e.type_)))return!0;$n(e),Qn(e)}return e.copy_[t]===n&&(n!==void 0||on(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),Un(e,t,n),!0)},deleteProperty(e,t){return $n(e),Jn(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),Qn(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=V(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[en]:!0,[Qt]:e.type_!==1||t!==`length`,[$t]:r[$t],[I]:n[t]}},defineProperty(){N(11)},getPrototypeOf(e){return F(e.base_)},setPrototypeOf(){N(12)}},qn={};for(let e in Kn){let t=Kn[e];qn[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}qn.deleteProperty=function(e,t){return qn.set.call(this,e,t,void 0)},qn.set=function(e,t,n){return Kn.set.call(this,e[0],t,n,e[0])};function Jn(e,t){let n=e[M];return(n?V(n):e)[t]}function Yn(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!R(n)||n[M]?!1:e.baseRefs_.has(n)}function Xn(e,t,n){let r=Zn(t,n);return r?I in r?r[I]:r.get?.call(e.draft_):void 0}function Zn(e,t){if(!(t in e))return;let n=F(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=F(n)}}function Qn(e){e.modified_||(e.modified_=!0,e.parent_&&Qn(e.parent_))}function $n(e){e.copy_||=(e.assigned_=new Map,_n(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var er=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(B(e)&&!B(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}B(t)||N(6),n!==void 0&&!B(n)&&N(7);let r;if(R(e)){let i=Mn(this),a=tr(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?An(i):jn(i)}return kn(i,n),Pn(r,i)}else if(!e||!pn(e)){if(r=t(e),r===void 0&&(r=e),r===Jt&&(r=void 0),this.autoFreeze_&&vn(r,!0),n){let t=[],i=[];H(Cn).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}else N(1,e)},this.produceWithPatches=(e,t)=>{if(B(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},mn(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),mn(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),mn(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){R(e)||N(8),L(e)&&(e=nr(e));let t=Mn(this),n=tr(t,e,void 0);return n[M].isManual_=!0,jn(t),n}finishDraft(e,t){let n=e&&e[M];(!n||!n.isManual_)&&N(9);let{scope_:r}=n;return kn(r,t),Pn(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=H(Cn).applyPatches_;return L(e)?r(e,t):this.produce(e,e=>r(e,t))}};function tr(e,t,n,r){let[i,a]=dn(t)?H(Sn).proxyMap_(t,n):fn(t)?H(Sn).proxySet_(t,n):Gn(t,n);return(n?.scope_??Dn()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?Vn(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function nr(e){return L(e)||N(10,e),rr(e)}function rr(e){if(!R(e)||xn(e))return e;let t=e[M],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=_n(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=_n(e,!0);return an(n,(e,t)=>{cn(n,e,rr(t))},r),t&&(t.finalized_=!1),n}globalThis.Iterator?.from;var ir=new er().produce,ar=new WeakMap,or=0;function sr(e){return ar.get(e)}function cr(e){let t=ar.get(e);if(t)return t;let n=`chat-part:${++or}`;return ar.set(e,n),n}function lr(e,t){ar.set(t,cr(e))}function W(e){return e===`user`}function ur(e,t){if(t<0||t>=e.length)return null;let n=e[t];if(!n||!W(n.role))return null;let r=0;for(let n=0;n<=t;n++){let t=e[n];t&&W(t.role)&&(r+=1)}return r-1}function dr(e,t){let n=1;for(let r=t+1;r<e.length;r++){let t=e[r];if(t&&W(t.role))break;n+=1}return n}function fr(e,t){return e.length===t.length&&e.every((e,n)=>{let r=t[n];return!r||e.role!==r.role?!1:!e.turnId||!r.turnId||e.turnId===r.turnId})}function pr(e,t,n){let r=e=>W(e.role);if(n){let i=t.findIndex(e=>r(e)&&e.turnId===n);if(i>=0){let a=e.findLastIndex(e=>r(e)&&e.turnId===n);if(a>=0&&e.slice(a+1).some(r))return e;let o=t.slice(0,i+1);return o.length<e.length||fr(e,o)?e:A(o)}}let i=e.filter(r).length;if(t.filter(r).length<=i)return e;let a=t.filter(r).slice(i);return a.length===0?e:A([...e,...a])}function mr(e){return e.replace(/^\[\d{4}-\d{2}-\d{2} \d{2}:\d{2}[^\]]*\]\s+/,``)}function hr(e){return(e??[]).filter(e=>e.type===`text`&&!!e.text).map(e=>k(mr(e.text))).join(`
22
-
23
- `).trim()}function gr(e){if(e?.length)return e.map(e=>{let t=e.data??e.content;return{id:e.id,type:e.type??(e.mimeType?.startsWith(`image/`)?`image`:`document`),mimeType:e.mimeType,...t?{data:t}:{},name:e.name,size:e.size,...e.uri?{uri:e.uri}:{},...e.bucket?{bucket:e.bucket}:{},...e.path?{path:e.path}:{},durationSeconds:e.durationSeconds}})}function _r(e){let t=typeof e.timestamp==`number`&&Number.isFinite(e.timestamp)?e.timestamp:Date.now();if(Array.isArray(e.content)||typeof e.content==`string`){let[n]=Ot([{role:`user`,turnId:typeof e.turnId==`string`?e.turnId:void 0,content:e.content,media:e.media,attachments:e.attachments,metadata:e.metadata,timestamp:t}]);return n??null}let n=typeof e.text==`string`?k(e.text.trim()):``,r=rt(e.media);return!n&&!r?.length?null:{role:`user`,turnId:typeof e.turnId==`string`?e.turnId:void 0,content:n?[{type:`text`,text:n}]:[],attachments:r,timestamp:t}}var vr=12e4;function yr(e,t){return!!(e.userTurnDocument&&t.userTurnDocument&&Ie(e.userTurnDocument)===Ie(t.userTurnDocument))}function br(e,t){if(!W(e.role)||!W(t.role)||e.turnId&&t.turnId&&e.turnId!==t.turnId)return!1;let n=hr(e.content).trim(),r=hr(t.content).trim(),i=e.attachments?.length??0,a=t.attachments?.length??0,o=i===0||a>=i;return!!(o&&yr(e,t)||o&&n&&r&&(n===r||r.startsWith(n))||i>0&&o&&Math.abs((t.timestamp??0)-(e.timestamp??0))<=vr)}function xr(e,t){return!W(e.role)||!W(t.role)?!1:e.turnId&&t.turnId?e.turnId===t.turnId:e.timestamp===t.timestamp||yr(e,t)?!0:hr(e.content)===hr(t.content)}function Sr(e,t){let n=e.length-1,r=e[n];if(!r||!W(r.role)||r.turnId)return e;let i=[...e];return i[n]={...r,turnId:t},i}var Cr=`medium`;function wr(){return{name:null,model:``,thinkingLevel:Cr,reasoningLevel:`on`,modelSupportsThinking:!1,effectiveWorkspacePath:``,workspaceSource:`agent_default_root`,userContextMode:`enabled`}}var Tr=class e{static instance;senders=new Map;resumeRunIds=new Map;userAbortedSessions=new Set;static get(){return e.instance||=new e,e.instance}senderFor(e){let t=this.senders.get(e);return t||(t=new ea,this.senders.set(e,t)),t}isStreamingFor(e){return this.senders.get(e)?.isStreamingFor(e)??!1}isTrackingRun(e,t){return this.senders.get(e)?.isTrackingRun(e,t)??!1}getResumeRunId(e){return this.resumeRunIds.get(e)??null}setResumeRunId(e,t){t?this.resumeRunIds.set(e,t):this.resumeRunIds.delete(e)}setUserAborted(e,t){t?this.userAbortedSessions.add(e):this.userAbortedSessions.delete(e)}takeUserAborted(e){return this.userAbortedSessions.delete(e)}resetRunTracking(e){this.resumeRunIds.delete(e),this.userAbortedSessions.delete(e)}abort(e){this.senders.get(e)?.abort(),this.senders.delete(e),this.resetRunTracking(e)}reconcileTerminal(e,t,n){let r=this.senders.get(e)?.reconcileTerminal(e,t,n)??!1;return this.resumeRunIds.get(e)===t&&this.resumeRunIds.delete(e),r}reconcileInactive(e,t){let n=this.senders.get(e)?.reconcileInactive(e,t)??!1;return this.resumeRunIds.get(e)===t&&this.resumeRunIds.delete(e),n}releaseIdleSender(e){let t=this.senders.get(e);t&&!t.isSending&&this.senders.delete(e)}}.get();function Er(e){if(e.type!==`thinking`)return``;let t=e;return(typeof t.text==`string`&&t.text.length>0?t.text:typeof t.thinking==`string`?t.thinking:``).trim()}function Dr(e){if(e.role!==`assistant`)return!1;for(let t of e.content)if(t.type===`text`&&(t.text||``).trim().length>0||t.type===`thinking`&&Er(t).length>0||t.type===`tool_use`||t.type===`review`)return!0;return!1}function Or(e,t){return e&&e.role===`assistant`?{...e,content:[...e.content]}:{role:`assistant`,content:[],timestamp:t}}function kr(e){return{...e,content:e.content.map(e=>{let t={...e};return lr(e,t),t}),attachments:e.attachments?e.attachments.map(e=>({...e})):void 0,contextRefs:e.contextRefs?e.contextRefs.map(e=>({...e})):void 0,userTurnDocument:e.userTurnDocument?{...e.userTurnDocument,parts:e.userTurnDocument.parts.map(e=>({...e}))}:void 0}}function Ar(e,t){return`${e??``}${t}`}function jr(e,t){if(!t)return e;if(!e)return t;if(e.endsWith(t))return e;let n=Math.min(e.length,t.length,512);for(let r=n;r>0;r--)if(e.slice(-r)===t.slice(0,r))return e+t.slice(r);return e+t}function Mr(e,t,n){let r=e??``;return!Number.isInteger(n)||n==null||n<0?null:r.slice(n,n+t.length)===t?r:r.length===n?Ar(r,t):null}function Nr(e){let t=e[e.length-1];t?.type===`thinking`&&t.streaming&&(t.streaming=!1)}function Pr(e){let t=e[e.length-1];t?.type===`thinking`&&t.streaming||e.push({type:`thinking`,text:``,streaming:!0})}function Fr(e,t,n){let r=e[e.length-1];if(r?.type===`thinking`){n?r.text=jr(r.text||``,t):r.text=t,r.streaming=!0;return}e.push({type:`thinking`,text:t,streaming:!0})}function Ir(e){Nr(e);for(let t of e)t.type===`thinking`&&typeof t.text==`string`&&(t.text=t.text.trim())}function Lr(e){for(let t of e)t.type===`tool_use`&&t.status===`running`&&(t.status=`done`)}function Rr(e,t){return e.trim().toLowerCase()===t.trim().toLowerCase()}function zr(e,t,n,r){Nr(e);let i=e[e.length-1];if(i?.type===`text`&&i.segmentId===n){i.text=Mr(i.text,t,r?.offset)??Ar(i.text,t);return}if(r?.reconcileHydratedSegment&&n&&i?.type===`text`&&!i.segmentId){let e=Mr(i.text,t,r.offset);if(e!==null){i.text=e,i.segmentId=n,i.presentation=`pending`;return}}e.push({type:`text`,text:t,...n?{segmentId:n,presentation:`pending`}:{}})}function Br(e,t,n){for(let r=e.length-1;r>=0;r--){let i=e[r];if(i.type===`text`&&i.segmentId===t){i.presentation=n;return}}}function Vr(e){let t=Xr(e);if(!t||t.type!==`review`)return null;let n=Array.isArray(t.findings)?t.findings:[],r={type:`review`,target:typeof t.target==`string`?t.target:`working tree changes`,summary:typeof t.summary==`string`?t.summary:``,findings:n.map(e=>{let t=Xr(e);if(!t)return null;let n=t.priority===0||t.priority===1||t.priority===2||t.priority===3?t.priority:2,r=typeof t.title==`string`?t.title:``,i=typeof t.body==`string`?t.body:``;if(!r&&!i)return null;let a={title:r,body:i,priority:n};return typeof t.confidenceScore==`number`&&(a.confidenceScore=t.confidenceScore),typeof t.filePath==`string`&&(a.filePath=t.filePath),typeof t.lineStart==`number`&&(a.lineStart=t.lineStart),typeof t.lineEnd==`number`&&(a.lineEnd=t.lineEnd),a}).filter(e=>e!=null),overallCorrectness:t.overallCorrectness===`patch is correct`||t.overallCorrectness===`patch is incorrect`?t.overallCorrectness:`unknown`,overallExplanation:typeof t.overallExplanation==`string`?t.overallExplanation:``};return typeof t.overallConfidenceScore==`number`&&(r.overallConfidenceScore=t.overallConfidenceScore),typeof t.generatedAt==`number`&&(r.generatedAt=t.generatedAt),(t.source===`model`||t.source===`local`)&&(r.source=t.source),r}function Hr(e,t){Nr(e);let n=Vr(t);if(!n)return;let r=e.findIndex(e=>e.type===`review`&&e.target===n.target);if(r>=0){let t=e[r];if(!t||t.type!==`review`)return;e[r]={...n,reviewId:t.reviewId,status:t.status===`error`?`error`:`complete`,analysisMarkdown:t.analysisMarkdown,errorMessage:t.errorMessage};return}e.push(n)}function Ur(e){for(let t of e)t.type===`review`&&(t.status!==`preparing`&&t.status!==`reviewing`||(t.status=`error`,t.errorMessage??=`The review stream ended before a conclusion was returned.`))}function Wr(e,t){Nr(e);let n=e.find(e=>e.type===`review`&&e.reviewId===t.reviewId);if(n){n.target=t.target||n.target,n.status=t.stage;return}e.push({type:`review`,reviewId:t.reviewId,target:t.target||`working tree changes`,summary:``,findings:[],overallCorrectness:`unknown`,overallExplanation:``,status:t.stage})}function Gr(e,t,n){if(!n)return;let r=e.find(e=>e.type===`review`&&e.reviewId===t);r&&(r.status=`reviewing`,r.analysisMarkdown=jr(r.analysisMarkdown??``,n))}function Kr(e,t,n,r){let i=e.find(e=>e.type===`review`&&e.reviewId===t);i&&(i.status=n,i.errorMessage=n===`error`?r:void 0)}function qr(e,t,n,r,i,a,o){Nr(e);let s={type:`tool_use`,id:crypto.randomUUID(),toolCallId:r,...o,name:t,activity:a??O(t,`running`),input:n,status:`running`,startedAt:i};e.push(s)}function Jr(e,t,n,r,i,a,o,s){for(let c=e.length-1;c>=0;c--){let l=e[c];if(!(l.type!==`tool_use`||l.status!==`running`)&&!(i&&l.toolCallId!==i&&l.id!==i)&&!(!i&&!Rr(l.name,t))){l.status=n?`error`:`done`,l.result=r,l.activity=o??O(t,n?`failed`:`completed`,r),l.completedAt=a,s?.parentToolCallId&&(l.parentToolCallId=s.parentToolCallId),l.startedAt!=null&&(l.durationMs=Math.max(0,a-l.startedAt)),s?.durationMs!=null&&(l.durationMs=s.durationMs);return}}}function Yr(e,t,n,r){for(let i=e.length-1;i>=0;i--){let a=e[i];if(a.type===`tool_use`&&a.status===`running`){if(n&&a.toolCallId===n){a.details=Zr(a.details,r);return}if(!n&&Rr(a.name,t)){a.details=Zr(a.details,r);return}}}}function Xr(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function Zr(e,t){let n=Xr(t);if(typeof n?.textDelta==`string`){let t=Xr(e)??{};return{...t,text:jr(String(t.text??``),n.textDelta)}}if(n?.kind!==`command_output_delta`)return t;let r=Xr(e)??{},i=n.stream===`stderr`?`stderr`:`stdout`,a=typeof n.delta==`string`?n.delta:``,o=i===`stdout`?`${String(r.stdout??``)}${a}`:String(r.stdout??``),s=i===`stderr`?`${String(r.stderr??``)}${a}`:String(r.stderr??``);return{...r,command:typeof n.command==`string`?n.command:r.command,cwd:typeof n.cwd==`string`?n.cwd:r.cwd,stdout:o,stderr:s,aggregatedOutput:`${String(r.aggregatedOutput??``)}${a}`}}function Qr(e){return e!==`ready`}var G={streamingMsg:null,progress:null,taskPlan:null,sending:!1,streaming:!1};function $r(e){return{...wr(),historyStatus:e,messages:[],hasMore:!1,...G}}var ei=0;function ti(e){let t=kr(e);return t.renderKey??=`chat-row:${++ei}`,t}function K(e){return e.map(ti)}function ni(e,t){return e===t?!0:e.role!==t.role||e.timestamp!==t.timestamp||t.renderKey!==void 0&&e.renderKey!==t.renderKey?!1:JSON.stringify({...e,renderKey:void 0})===JSON.stringify({...t,renderKey:void 0})}function ri(e,t){if(e.turnId&&t.turnId&&e.turnId!==t.turnId||!xr(e,t)&&!br(e,t))return t;let n=t.attachments?.length?t.attachments:e.attachments,r=t.contextRefs?.length?t.contextRefs:e.contextRefs,i=t.userTurnDocument??e.userTurnDocument;return{...t,attachments:n,contextRefs:r,userTurnDocument:i,renderKey:e.renderKey,clientSubmissionId:e.clientSubmissionId}}function ii(e,t){return e.role===t.role?e.turnId&&t.turnId?e.turnId===t.turnId&&e.startsNewBubble===t.startsNewBubble:e.timestamp!==void 0&&e.timestamp===t.timestamp:!1}function ai(e,t){let n=e.length!==t.length,r=0,i=t.map((t,i)=>{let a=e.findIndex((e,n)=>n>=r&&ii(e,t)),o=i>=r?e[i]:void 0,s=o&&(br(o,t)||(!o.turnId||!t.turnId||o.turnId===t.turnId)&&Dt(o,t)),c=a>=0?a:s?i:-1,l=e[c];l&&(r=c+1);let u=l&&W(l.role)&&W(t.role)?ri(l,t):t;if(l&&ni(l,u))return c!==i&&(n=!0),l;n=!0;let d=ti(u);return l?.renderKey&&l.role===u.role&&(ii(l,u)||u.role===`assistant`&&Dt(l,u))&&(d.renderKey=l.renderKey,d.content.forEach((e,t)=>{let n=l.content[t];!n||n.type!==e.type||e.type===`text`&&n.type===`text`&&n.segmentId&&e.segmentId&&n.segmentId!==e.segmentId||e.type===`tool_use`&&n.type===`tool_use`&&(n.toolCallId??n.id)!==(e.toolCallId??e.id)||(lr(n,e),JSON.stringify(n)===JSON.stringify(e)&&(d.content[t]=n))})),d});return n?i:e}function oi(e,t){let n=e.filter(e=>W(e.role)&&e.deliveryStatus);if(n.length===0)return t;let r=e.filter(e=>W(e.role)&&!e.deliveryStatus).length,i=t.filter(e=>W(e.role)).slice(r),a=n.filter(e=>{let t=i.findIndex(t=>br(e,t));return t<0?!0:(i.splice(t,1),!1)});return a.length>0?[...t,...a]:t}function si(e,t){let n=t[0];return n?e.findIndex(e=>ii(e,n)):-1}function ci(e,t,n){let r=n?si(e,t):-1;return r>0?[...e.slice(0,r),...t]:t}function li(e,t){let n=kr(t),r=e[e.length-1];if(r?.role!==`assistant`)return[...e,ti(n)];let i=A([r,n]);return[...e.slice(0,-1),...i]}function ui(e){let t=e.uri?.trim();return t?`uri:${t}`:e.id?`id:${e.id}`:`name:${e.name??`file`}|${e.mimeType??``}`}function di(e,t){let n=[...e??[]],r=ui(t);return n.some(e=>ui(e)===r)||n.push({...t}),n}function fi(e){return{name:e.name,model:e.model,configVersion:e.configVersion,modelConfigSaving:e.modelConfigSaving,thinkingLevel:e.thinkingLevel,reasoningLevel:e.reasoningLevel,modelSupportsThinking:e.modelSupportsThinking,effectiveWorkspacePath:e.effectiveWorkspacePath,workspaceSource:e.workspaceSource,userContextMode:e.userContextMode,historyStatus:e.historyStatus,messages:K(e.messages),hasMore:e.hasMore,streamingMsg:e.streamingMsg?ti(e.streamingMsg):null,progress:e.progress,taskPlan:e.taskPlan?{...e.taskPlan,items:e.taskPlan.items.map(e=>({...e}))}:null,sending:e.sending,streaming:e.streaming}}function q(e){return String(e??``).trim()}function pi(e){return e?{name:e.name,model:e.model,configVersion:e.configVersion,modelConfigSaving:e.modelConfigSaving,thinkingLevel:e.thinkingLevel,reasoningLevel:e.reasoningLevel,modelSupportsThinking:e.modelSupportsThinking,effectiveWorkspacePath:e.effectiveWorkspacePath,workspaceSource:e.workspaceSource,userContextMode:e.userContextMode}:wr()}var J=a((e,t)=>({focusedConversationId:null,initLoading:!0,loadingMore:!1,shellError:null,sessions:{},setFocusedConversationId:t=>e({focusedConversationId:t}),setInitLoading:t=>e({initLoading:t}),setLoadingMore:t=>e({loadingMore:t}),setShellError:t=>e({shellError:t}),setSessionHistoryStatus:(t,n)=>{let r=q(t);r&&e(e=>{let t=e.sessions[r];if(t?.historyStatus===n)return e;let i=t??$r(`unknown`);return{sessions:{...e.sessions,[r]:{...i,historyStatus:n}}}})},patchSessionMeta:(t,n)=>{let r=q(t);r&&e(e=>{let t=e.sessions[r];if(t&&Object.entries(n).every(([e,n])=>t[e]===n))return e;let i=t??$r(`unknown`);return{sessions:{...e.sessions,[r]:{...i,...n}}}})},initSessionSnapshot:(t,n)=>{let r=q(t);r&&e(e=>({sessions:{...e.sessions,[r]:fi(n)}}))},setCommittedSnapshot:(t,n)=>{let r=q(t);r&&e(e=>{let t=e.sessions[r],i=n.hasMore,a=pi(t);if(n.name!==void 0&&(a.name=n.name),!t){let t=K(n.messages);return{sessions:{...e.sessions,[r]:{...a,historyStatus:`ready`,messages:t,hasMore:i,...G}}}}if(mi(t)){let o=new Set(t.messages.map(e=>e.taskResultDelivery?.deliveryId)),s=n.messages.filter(e=>e.taskResultDelivery&&!o.has(e.taskResultDelivery.deliveryId));return{sessions:{...e.sessions,[r]:{...t,...a,messages:[...t.messages,...K(s)],historyStatus:`ready`,hasMore:i}}}}let o=ai(t.messages,n.messages);return{sessions:{...e.sessions,[r]:{...t,...a,historyStatus:`ready`,messages:o,hasMore:i,...G}}}})},updateSessionMessages:(t,n)=>{let r=q(t);r&&e(e=>{let t=e.sessions[r];return t?{sessions:{...e.sessions,[r]:{...t,messages:ai(t.messages,n(t.messages))}}}:e})},finalizeStreamingTurn:(t,n)=>{let r=q(t);r&&e(e=>{let t=e.sessions[r],i=pi(t),a=t?.hasMore??!1;return{sessions:{...e.sessions,[r]:{...i,historyStatus:`ready`,messages:li(t?.messages??[],n),hasMore:a,...G}}}})},completeProgressiveRender:(t,n)=>{let r=q(t);!r||!n||e(e=>{let t=e.sessions[r];if(!t)return e;let i=!1,a=e=>{if(e.renderKey!==n||!e.progressiveRender)return e;i=!0;let t=kr(e);return delete t.progressiveRender,t},o=t.messages.map(a),s=t.streamingMsg?a(t.streamingMsg):null;return i?{sessions:{...e.sessions,[r]:{...t,messages:o,streamingMsg:s}}}:e})},clearStreamingState:(t,n)=>{let r=q(t);r&&e(e=>{let t=e.sessions[r];return!t||n?.preservePendingResponse&&t.streamingMsg?.pendingResponseStatus?e:{sessions:{...e.sessions,[r]:{...t,...G}}}})},clearSession:t=>{let n=q(t);n&&e(e=>{if(!(n in e.sessions))return e;let{[n]:t,...r}=e.sessions;return{sessions:r}})},getSessionSnapshot:e=>{let n=q(e);if(!n)return;let r=t().sessions[n];return r?fi(r):void 0},seedSessionIfEmpty:(e,n,r,i,a=!1)=>{let o=q(e);!o||t().sessions[o]||t().initSessionSnapshot(o,{...wr(),historyStatus:`ready`,messages:n,hasMore:a,streamingMsg:null,progress:null,taskPlan:null,sending:r,streaming:i})},setSessionFlags:(t,n)=>{let r=q(t);r&&e(e=>{let t=e.sessions[r];return!t||(n.sending===void 0||n.sending===t.sending)&&(n.streaming===void 0||n.streaming===t.streaming)?e:{sessions:{...e.sessions,[r]:{...t,...n.sending===void 0?{}:{sending:n.sending},...n.streaming===void 0?{}:{streaming:n.streaming}}}}})},setSessionProgress:(t,n)=>{let r=q(t);r&&e(e=>{let t=e.sessions[r];return t?{sessions:{...e.sessions,[r]:{...t,progress:n}}}:e})},setPendingResponseStatus:(t,n)=>{let r=q(t);r&&e(e=>{let t=e.sessions[r];return!t?.streamingMsg||t.streamingMsg.content.length>0||t.streaming?e:{sessions:{...e.sessions,[r]:{...t,streamingMsg:{...t.streamingMsg,pendingResponseStatus:n}}}}})},setSessionTaskPlan:(t,n)=>{let r=q(t);r&&e(e=>{let t=e.sessions[r];return!t||n.revision<=(t.taskPlan?.revision??0)?e:{sessions:{...e.sessions,[r]:{...t,taskPlan:{...n,items:n.items.map(e=>({...e}))}}}}})},mutateSessionStreaming:(t,n,r=Date.now())=>{let i=q(t);i&&e(e=>{let t=e.sessions[i];if(!t)return e;let a=t.streamingMsg??{role:`assistant`,content:[],timestamp:r},o=ir(a,e=>{e.renderKey??=`assistant-stream:${i}:${r}`,e.progressiveRender=!0,delete e.pendingResponseStatus,n(e)});return o===t.streamingMsg&&t.streaming?e:(o.content.forEach((e,t)=>{let n=a.content[t];n?.type===e.type?lr(n,e):cr(e)}),{sessions:{...e.sessions,[i]:{...t,streamingMsg:o,streaming:!0}}})})},appendAttachmentToCurrentAssistant:(t,n,r)=>{let i=q(t);i&&e(e=>{let t=e.sessions[i];if(!t)return e;if(t.streamingMsg?.role===`assistant`){let r={...t.streamingMsg,attachments:di(t.streamingMsg.attachments,n)};return{sessions:{...e.sessions,[i]:{...t,streamingMsg:r}}}}let r=[...t.messages];for(let a=r.length-1;a>=0;a--){let o=r[a];if(o?.role===`assistant`)return r[a]={...o,attachments:di(o.attachments,n)},{sessions:{...e.sessions,[i]:{...t,messages:r}}}}return e})},applyHydratedTail:(t,n,r)=>{let i=q(t);i&&e(e=>{let t=e.sessions[i];return t?{sessions:{...e.sessions,[i]:{...t,messages:K(n),streamingMsg:r?kr(r):null,streaming:!0,sending:!0}}}:e})},appendUserMessageIfMissing:(t,n)=>{let r=q(t);!r||!W(n.role)||e(e=>{let t=e.sessions[r],i=pi(t);if(!t)return{sessions:{...e.sessions,[r]:{...i,historyStatus:`ready`,messages:K([n]),hasMore:!1,...G}}};let a=t.messages[t.messages.length-1];if(a&&br(a,n)){let i=ri(a,n);return{sessions:{...e.sessions,[r]:{...t,messages:K(A([...t.messages.slice(0,-1),i]))}}}}return t.messages.some(e=>xr(e,n))?e:{sessions:{...e.sessions,[r]:{...t,messages:K(A([...t.messages,n]))}}}})},mergeCommittedFromServer:(t,n,r)=>{let i=q(t);i&&e(e=>{let t=e.sessions[i],a=pi(t),o=r??t?.hasMore??!1;if(!t)return{sessions:{...e.sessions,[i]:{...a,historyStatus:`ready`,messages:K(n),hasMore:o,...G}}};let s=ci(t.messages,n,o),c=s===n?o:t.hasMore;if(!mi(t)){let n=ai(t.messages,oi(t.messages,s));return{sessions:{...e.sessions,[i]:{...t,...a,historyStatus:`ready`,messages:n,hasMore:c,...G}}}}let l=pr(t.messages,s,t.streamingMsg?.turnId);return l===t.messages&&c===t.hasMore&&t.historyStatus===`ready`?e:{sessions:{...e.sessions,[i]:{...t,historyStatus:`ready`,messages:ai(t.messages,l),hasMore:c}}}})},prependHistoryMessages:(t,n,r)=>{let i=q(t);i&&e(e=>{let t=e.sessions[i],a=pi(t);if(!t)return{sessions:{...e.sessions,[i]:{...a,historyStatus:`ready`,messages:K(n),hasMore:r,...G}}};let o=new Set(t.messages.map(e=>e.timestamp)),s=A([...n.filter(e=>!o.has(e.timestamp)),...t.messages]);return{sessions:{...e.sessions,[i]:{...t,messages:ai(t.messages,s),hasMore:r}}}})}}));function mi(e){return e?e.streaming||e.sending||!!e.streamingMsg:!1}function hi(e){return J.getState().getSessionSnapshot(e)}function gi(e){return J.getState().sessions[q(e)]?.messages??[]}function _i(e){let t=q(e);if(!t)return!1;let n=J.getState().sessions[t];return mi(n)||Tr.isStreamingFor(t)?!0:qi(t)}var vi=/^No API key found for (\S+)/i;function yi(e){try{let t=JSON.parse(e);return typeof t.kind!=`string`||typeof t.message!=`string`?null:{kind:t.kind,code:typeof t.code==`string`?t.code:t.kind,provider:typeof t.provider==`string`?t.provider:void 0,modelRef:typeof t.modelRef==`string`?t.modelRef:void 0,deepLink:typeof t.deepLink==`string`?t.deepLink:void 0,message:t.message}}catch{return null}}function bi(){return{kind:`send_failed`,code:`send_failed`,message:`Send failed`}}function xi(e){return{kind:`session_not_found`,code:`session_not_found`,message:e}}function Si(e){let t=e.trim();if(!t)return null;if(t.startsWith(`{`)){let e=yi(t);if(e)return e}let n=vi.exec(t);return n?{kind:`provider_setup_required`,code:`provider_setup_required`,provider:n[1].replace(/[.,]$/,``),deepLink:`/settings/capabilities/models`,message:t}:t===`Assistant turn failed`||t.startsWith(`Error: `)?{kind:`unknown`,code:`unknown`,message:t.startsWith(`Error: `)?t.slice(7):t}:{kind:`unknown`,code:`unknown`,message:t}}function Ci(e){return e.kind!==`provider_setup_required`&&e.kind!==`provider_auth_invalid`||!e.provider?null:{kind:e.kind,provider:e.provider,deepLink:e.deepLink??`/settings/capabilities/models`,message:e.message}}var wi=`xopc-pending-agent-run-changed`;function Ti(e){typeof window>`u`||window.dispatchEvent(new CustomEvent(wi,{detail:{chatId:e}}))}var Ei=1e4,Y,Di=new Set;function Oi(e,t){Y={type:`endpoint`,endpointId:e,token:t};for(let e of Di)e(Y);Di.clear()}function ki(e){!Y||e&&Y.token!==e||(Y=void 0)}function Ai(e){return Y?Promise.resolve(Y):e?.aborted?Promise.reject(e.reason):new Promise((t,n)=>{let r=e=>{o(),t(e)},i=()=>{o(),n(e?.reason??new DOMException(`Aborted`,`AbortError`))},a=globalThis.setTimeout(()=>{o(),n(Error(`Endpoint connection is not ready`))},Ei),o=()=>{globalThis.clearTimeout(a),Di.delete(r),e?.removeEventListener(`abort`,i)};Di.add(r),e?.addEventListener(`abort`,i,{once:!0})})}function ji(e){return`xopc:submission:${e}`}function Mi(e,t){try{let n=sessionStorage.getItem(ji(e));if(n){let e=JSON.parse(n);if(e.fingerprint===t&&typeof e.clientMessageId==`string`)return e.clientMessageId}}catch{}let n=crypto.randomUUID();try{sessionStorage.setItem(ji(e),JSON.stringify({clientMessageId:n,fingerprint:t}))}catch{}return n}function Ni(e,t){try{let n=sessionStorage.getItem(ji(e));if(!n)return;JSON.parse(n).clientMessageId===t&&sessionStorage.removeItem(ji(e))}catch{}}function Pi(e){return e===`on`||e===`stream`||e===`off`?e:`on`}function Fi(e,t){let n=String(e??``).trim();if(!n)return;let r=J.getState(),i=r.sessions[n]?.configVersion;i!==void 0&&(t.configVersion===void 0||t.configVersion<i)||r.patchSessionMeta(n,{model:t.model,configVersion:t.configVersion,localDraft:t.localDraft===!0,thinkingLevel:t.thinkingLevel||`medium`,reasoningLevel:Pi(t.activityDetail?.default??void 0),effectiveWorkspacePath:t.effectiveWorkspacePath??``,workspaceSource:t.workspaceSource??`agent_default_root`,userContextMode:t.userContextMode??`enabled`})}var Ii=40,X=new Map,Z=new Map;function Li(e){e.size>Ii&&e.delete(e.keys().next().value)}function Ri(e){let t=performance.now();return X.set(e,t),Li(X),t}function zi(e,t){X.get(e)===t&&X.delete(e)}function Bi(e,t){if(Z.has(t))return;let n=X.get(e);n!==void 0&&(X.delete(e),Z.set(t,{runId:t,startedAt:n}),Li(Z))}function Vi(e){let t=Z.get(e);!t||t.firstTextAt!==void 0||(t.firstTextAt=performance.now(),t.firstTextMs=t.firstTextAt-t.startedAt)}function Hi(e,t=!1){let n=e.trimStart();return!n||/^(?:```|~~~|\||#{1,6}\s|[-*+]\s|\d+[.)]\s)/u.test(n)?!1:/[。!?]/u.test(n)||/[!?](?:[”’"'))\]]|\s|$)/u.test(n)||/(?<!\b(?:Mr|Mrs|Ms|Dr|Prof|vs|etc))\.[”’"')\]]*\s/u.test(n)||t&&/(?<!\b(?:Mr|Mrs|Ms|Dr|Prof|vs|etc))\.[”’"')\]]*$/u.test(n)}function Ui(e,t){let n=Z.get(e);if(!n||n.firstTextAt===void 0||!t.trim()||t.trim()===`NO_REPLY`)return;let r=performance.now();n.firstVisibleMs===void 0&&(n.firstVisibleMs=r-n.startedAt,n.firstRenderLagMs=r-n.firstTextAt),n.firstSentenceMs===void 0&&Hi(t,n.status===`success`)&&(n.firstSentenceMs=r-n.startedAt)}function Wi(e,t){let n=Z.get(e);n&&(n.status=t)}async function Gi(e,t){if(t.aborted)throw new DOMException(`Aborted`,`AbortError`);e!==0&&await new Promise((n,r)=>{let i=()=>{clearTimeout(a),r(new DOMException(`Aborted`,`AbortError`))},a=setTimeout(()=>{t.removeEventListener(`abort`,i),n()},e);t.addEventListener(`abort`,i,{once:!0})})}async function Ki(e,n,r,i){let a;for(let o of _e){await Gi(o,r);let s=new AbortController,c=setTimeout(()=>s.abort(),ve),l=()=>s.abort();r.addEventListener(`abort`,l,{once:!0});try{let o=await t(e,{method:`POST`,headers:{"Content-Type":`application/json`,...i?{"X-Xopc-Expected-Session-Key":i}:{}},body:n,signal:s.signal});if(r.throwIfAborted(),!be(o.status))return o;a=Error(`Session input temporarily unavailable (${o.status})`)}catch(e){if(r.aborted)throw e;a=e}finally{clearTimeout(c),r.removeEventListener(`abort`,l)}}throw a instanceof Error?a:Error(`Session input request failed`)}function Q(e){return`xopc:pendingRun:${e}`}function qi(e){try{let t=globalThis.sessionStorage?.getItem(Q(e));if(!t)return!1;let n=JSON.parse(t);return typeof n.runId==`string`&&n.runId.trim().length>0}catch{return!1}}function Ji(e){try{let t=globalThis.sessionStorage?.getItem(Q(e));if(!t)return null;let n=JSON.parse(t);return(typeof n.runId==`string`?n.runId.trim():``)||null}catch{return null}}function Yi(e,t){let n=t.trim();if(n)try{let t=Q(e),r=JSON.parse(sessionStorage.getItem(t)??`{}`),i=r.runId===n&&typeof r.lastSeq==`number`?r.lastSeq:0;sessionStorage.setItem(t,JSON.stringify({runId:n,lastSeq:i})),Ti(e)}catch{}}function Xi(e,t){try{let n=sessionStorage.getItem(Q(e));if(!n)return 0;let r=JSON.parse(n);return r.runId===t&&typeof r.lastSeq==`number`?r.lastSeq:0}catch{return 0}}function Zi(e,t,n){if(!(!Number.isInteger(n)||n<1))try{let r=Q(e),i=sessionStorage.getItem(r);if(!i)return;let a=JSON.parse(i);if(a.runId!==t||n<=(typeof a.lastSeq==`number`?a.lastSeq:0))return;sessionStorage.setItem(r,JSON.stringify({runId:t,lastSeq:n}))}catch{}}function Qi(e,t){let n=String(e??``).trim(),r=String(t??``).trim();if(!n||!r)return!1;try{let e=Q(n),t=sessionStorage.getItem(e);return!t||JSON.parse(t).runId!==r?!1:(sessionStorage.removeItem(e),Ti(n),!0)}catch{return!1}}function $i(){let e=[];try{for(let t=0;t<sessionStorage.length;t+=1){let n=sessionStorage.key(t);if(!n?.startsWith(`xopc:pendingRun:`))continue;let r=n.slice(16).trim(),i=sessionStorage.getItem(n);if(!r||!i)continue;let a=JSON.parse(i),o=typeof a.runId==`string`?a.runId.trim():``;o&&e.push({conversationId:r,runId:o})}}catch{return e}return e}var ea=class{_abort;_chatId=``;_trackedRunId;_streamCleanup;_streamFinish;_terminalCallbacks;get isSending(){return!!this._abort}get activeChatId(){return this._chatId}isStreamingFor(e){return!!this._abort&&this._chatId===e}isTrackingRun(e,t){return this.isStreamingFor(e)&&this._trackedRunId===t}reconcileTerminal(e,t,n){return!this.isTrackingRun(e,t)||!this._streamFinish?!1:(this._terminalCallbacks?.onResult({runId:t,conversationId:e,status:n}),this._streamFinish(!0),!0)}reconcileInactive(e,t){return!this.isTrackingRun(e,t)||!this._streamFinish?!1:(this._streamFinish(!1),!0)}async send(e,i,a,s,c,l,u,d,f){if(this.isSending)throw Error(`A submission is already in progress`);if(u&&f)throw Error(`Application context requires a new input`);let p=f===void 0?void 0:te(f);a=a===void 0?void 0:structuredClone(a),d=d?.map(({refId:e,kind:t,sourceId:n,expectedVersion:r})=>({refId:e,kind:t,sourceId:n,expectedVersion:r})),this._trackedRunId=void 0;let m=new AbortController;this._abort=m,this._chatId=i;let h=Ri(i);try{let f=a&&a.length>10?a.slice(0,10):a,h=J.getState().sessions[i],ee=r.getState().conversationId,g=()=>{if(ee!==r.getState().conversationId)throw Error(`Active Gateway changed`)};if(h?.modelConfigSaving)throw Error(`Wait for model configuration to finish saving`);let _=h?.configVersion,v=await Ai(m.signal),y=Mi(i,`${ye({content:e,attachments:f,thinking:s,contextRefs:d,appContext:p})}:${_??``}${u?`:replace:${u}`:``}`),b={content:e,attachments:f,contextRefs:d,appContext:p,endpointContext:void 0},x;if(l||u)u||(b.endpointContext=await qt()),x={clientMessageId:y,configVersion:_,delivery:`next`,...b,thinking:s,origin:v};else{g();let e=await T(i);if(g(),e?.materialization){let t=new ya;await t.confirmPendingMaterialization(i,m.signal);let n=await t.loadSessionAgentConfig(i);m.signal.throwIfAborted(),g(),Fi(i,n),_=n.configVersion,e=await T(i)}let t=await ae(i);if(g(),!e&&!t&&_===void 0){let e=await new ya().loadSessionAgentConfig(i);m.signal.throwIfAborted(),g(),Fi(i,e),_=e.configVersion}if(t){if(b.endpointContext=t.input.endpointContext,ne(t.input)!==ne(b))throw Error(`The previous input is awaiting confirmation`);y=t.clientMessageId,x=oe.parse({...t,origin:v})}else if(e){b.endpointContext=e.submission?.input.endpointContext??await qt();let t={kind:`start`,clientMessageId:y,creation:e.creation,input:b};if(e.submission&&ne(e.submission.input)!==ne(b))throw Error(`The first input is awaiting confirmation. Retry it before sending different content.`);x=oe.parse({...e.submission??t,origin:v}),y=e.submission?.clientMessageId??y,e.submission??=t,await D(e)}else b.endpointContext=await qt(),x=oe.parse({kind:`append`,clientMessageId:y,expectedTranscriptId:await ce(i),configVersion:_,delivery:`next`,input:b,origin:v});g();let{origin:n,...r}=oe.parse(x);await ue(i,r)}g();let S=await Ki(n(l?`/api/tasks/${encodeURIComponent(l)}/inputs`:u?`/api/sessions/${encodeURIComponent(i)}/turns/${encodeURIComponent(u)}/replace`:`/api/sessions/${encodeURIComponent(i)}/inputs`),JSON.stringify(x),m.signal,l?i:void 0);if(!S.ok){g(),!l&&!u&&S.status>=400&&S.status<500&&![401,408,429].includes(S.status)&&await le(i);let e=await S.json().catch(()=>({}));if(!l&&!u&&S.status===400&&e.error?.code===`BAD_REQUEST`){let e=await T(i);g(),e?.submission?.clientMessageId===y&&(delete e.submission,await D(e)),Ni(i,y)}throw e.error?.code===`CONFIG_CHANGED`&&window.dispatchEvent(new CustomEvent(`session-model-config-stale`,{detail:{conversationId:i}})),Error(o(S.status,S.statusText,e.error?.message))}let C=await S.json();if(m.signal.throwIfAborted(),g(),!l&&!u){let e=C.payload?.receipt;if(!e||e.conversationId!==i||e.clientMessageId!==y)throw Error(`Invalid input receipt`);if(C.payload?.session?.transcriptId!==e.transcriptId)throw Error(`Conversation was reset; reload before sending`);await se(i,e.transcriptId),window.dispatchEvent(new CustomEvent(`session-input-state`,{detail:{...C.payload?.inputState,conversationId:i}})),C.payload?.agentConfig&&Fi(i,C.payload.agentConfig)}Ni(i,y),c?.onInputAccepted?.();let w=l||u?C.payload?.state:C.payload?.inputState,te=C.payload?.conversationId?.trim()||i,E=w?.inputs?.find(e=>e.clientMessageId===y);if(w?.activeRunId&&E?.id===w.activeInputId){await this.resume(w.activeRunId,te,c);return}if(!l&&!u){for(;E;){if(await Gi(400,m.signal),this._abort!==m)return;let e=await t(n(`/api/sessions/${encodeURIComponent(i)}/input-state`),{signal:m.signal});if(this._abort!==m)return;if(!e.ok)continue;let r=await e.json();m.signal.throwIfAborted(),g();let a=r.payload;if(a?.activeRunId&&a.activeInputId===E.id){await this.resume(a.activeRunId,te,c);return}if(a?.inputs&&!a.inputs.some(e=>e.id===E.id))break}await c?.onReplayGap?.(),c?.onResult({runId:``,conversationId:te,status:`success`});return}this._abort=void 0}finally{zi(i,h),this._abort===m&&(this._abort=void 0)}}abort(){this._trackedRunId&&Wi(this._trackedRunId,`cancelled`),this._notifyServerAbort(),this._abort?.abort(),this._streamCleanup?.(),this._streamCleanup=void 0,this._abort=void 0,this._clearPendingRun()}_notifyServerAbort(){if(this._chatId)try{let e=sessionStorage.getItem(Q(this._chatId));if(!e)return;let r=JSON.parse(e);if(typeof r.runId!=`string`||!r.runId)return;t(n(`/api/agent/abort`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({runId:r.runId})}).catch(()=>{})}catch{}}async resume(e,t,n){Bi(t,e),this._trackedRunId=void 0,this._abort=new AbortController,this._chatId=t,this._trackedRunId=e,Yi(t,e);let r=this._wrapTerminalCallbacks(n);this._terminalCallbacks=r.wrapped;let i=await new Promise(n=>{let i=!1,a=e=>{i||(i=!0,this._streamCleanup?.(),this._streamCleanup=void 0,n(e))};this._streamFinish=a;let o=Xi(t,e);this._streamCleanup=pe(`run:${e}`,{onEvent:n=>{let i=n.data&&typeof n.data==`object`?{...n.data,seq:n.seq}:{type:n.event,seq:n.seq,payload:n.data};this._dispatchStreamEvent(n.event,i,r.wrapped),Zi(t,e,n.seq),(n.event===`run_end`||n.event===`error`)&&a(!0)},onGap:e=>{if(e.recoverable)return r.wrapped?.onReplayGap?.();a(!1)}},o),this._abort?.signal.addEventListener(`abort`,()=>a(!1),{once:!0})});return this._abort=void 0,this._streamFinish=void 0,this._terminalCallbacks=void 0,this._clearPendingRun(),i}_wrapTerminalCallbacks(e){if(!e)return{wrapped:void 0,sawTerminal:!1,onMissingTerminal:()=>{}};let t=!1,n=()=>{t=!0};return{get sawTerminal(){return t},wrapped:{...e,onResult:r=>{t||(n(),e.onResult(r))},onError:r=>{t||(n(),e.onError(r))}},onMissingTerminal:()=>{t||(n(),e.onError(`Agent run ended without a terminal event`))}}}_clearPendingRun(){let e=this._chatId;if(e)try{let t=Q(e),n=sessionStorage.getItem(t);if(n){let e=JSON.parse(n),t=typeof e?.runId==`string`?e.runId:``;if(this._trackedRunId&&t&&t!==this._trackedRunId)return}sessionStorage.removeItem(t),Ti(e)}catch{}this._trackedRunId=void 0}_dispatchStreamEvent(e,t,n){let r=t.payload&&typeof t.payload==`object`?t.payload:{};switch((e===`run_start`||e===`assistant_message_start`||e===`assistant_delta`)&&r.textSurface===`conversation`&&n?.onTextSurface?.(`conversation`),e){case`run_start`:typeof t.runId==`string`&&this._chatId&&Bi(this._chatId,t.runId),typeof t.runId==`string`&&this._chatId&&(this._trackedRunId=t.runId,Yi(this._chatId,t.runId)),typeof t.runId==`string`&&n?.onStreamStart(t.runId,r.startsNewBubble===!0,kt(r.taskTrigger)??void 0);break;case`user_message`:{let e=r.message&&typeof r.message==`object`?r.message:{},i=_r({...e,turnId:typeof e.turnId==`string`?e.turnId:t.runId});i&&n?.onUserMessage?.(i);break}case`user_transcript`:{let e=_r({text:r.text,media:r.media,timestamp:t.timestamp,turnId:t.runId});e&&n?.onUserMessage?.(e);break}case`assistant_message_start`:typeof t.runId==`string`&&n?.onStreamStart(t.runId);break;case`assistant_delta`:typeof r.delta==`string`&&r.delta&&(typeof t.runId==`string`&&r.delta.trim()&&Vi(t.runId),n?.onToken(r.delta,typeof r.messageId==`string`?r.messageId:void 0,typeof r.offset==`number`?r.offset:void 0));break;case`thinking_delta`:typeof r.delta==`string`&&r.delta&&n?.onThinking(r.delta,!0);break;case`thinking_end`:n?.onThinkingEnd();break;case`assistant_message_end`:n?.onThinkingEnd(),typeof r.messageId==`string`&&(r.presentation===`narration`||r.presentation===`answer`)&&n?.onAssistantMessageEnd?.(r.messageId,r.presentation,r.usage);break;case`tool_start`:{let e=String(r.toolName||`unknown`),i=typeof r.toolCallId==`string`?r.toolCallId:void 0;if(e===`clarify`)break;n?.onToolStart(e,r.args,i,ra(t.timestamp),r.activity,na(r));break}case`tool_update`:{let e=typeof r.toolName==`string`&&r.toolName?r.toolName:`unknown`,t=typeof r.toolCallId==`string`?r.toolCallId:void 0;r.details!==void 0&&n?.onToolUpdate?.(e,t,r.details),typeof r.textDelta==`string`&&r.textDelta&&n?.onToolUpdate?.(e,t,{textDelta:r.textDelta});break}case`tool_end`:n?.onToolEnd(typeof r.toolName==`string`&&r.toolName?r.toolName:`unknown`,r.status===`error`||r.status===`cancelled`,ta(r.result),typeof r.toolCallId==`string`?r.toolCallId:void 0,ra(t.timestamp),r.activity,na(r));break;case`review_start`:typeof r.reviewId==`string`&&r.reviewId&&n?.onReviewStart?.({reviewId:r.reviewId,target:typeof r.target==`string`?r.target:`working tree changes`,stage:r.stage===`preparing`?`preparing`:`reviewing`});break;case`review_delta`:typeof r.reviewId==`string`&&typeof r.delta==`string`&&r.delta&&n?.onReviewDelta?.({reviewId:r.reviewId,delta:r.delta});break;case`review_end`:typeof r.reviewId==`string`&&r.reviewId&&n?.onReviewEnd?.({reviewId:r.reviewId,status:r.status===`error`?`error`:`complete`,...typeof r.message==`string`&&r.message?{message:r.message}:{}});break;case`progress`:n?.onProgress({stage:String(r.stage||`thinking`),message:String(r.message||``),detail:r.detail,toolName:r.toolName,completed:typeof r.completed==`number`?r.completed:void 0,total:typeof r.total==`number`?r.total:void 0,timestamp:Date.now()});break;case`compaction`:n?.onCompaction?.({status:r.status||`started`,tokensBefore:typeof r.tokensBefore==`number`?r.tokensBefore:void 0,tokensAfter:typeof r.tokensAfter==`number`?r.tokensAfter:void 0,summary:typeof r.summary==`string`?r.summary:void 0});break;case`turn_plan`:{let e=ia(r.plan);e.length>0&&n?.onTurnPlanUpdated?.({explanation:typeof r.explanation==`string`&&r.explanation.trim()?r.explanation.trim():void 0,plan:e});break}case`task_plan_updated`:{let e=aa(r.items),t=r.source===`todo`?`todo`:`update_plan`,i=r.scope===`session`?`session`:`turn`,a=typeof r.planId==`string`?r.planId.trim():``,o=typeof r.revision==`number`&&Number.isInteger(r.revision)?r.revision:0;a&&o>0&&n?.onTaskPlanUpdated?.({planId:a,revision:o,source:t,scope:i,explanation:typeof r.explanation==`string`&&r.explanation.trim()?r.explanation.trim():void 0,items:e});break}case`turn_outcome`:{let e=ee(r);e&&n?.onTurnOutcome?.(e);break}case`session_config_updated`:n?.onSessionConfigUpdated?.();break;case`tts_audio`:n?.onTtsAudio?.({uri:String(r.uri||``),mimeType:String(r.mimeType||`audio/mpeg`),name:String(r.name||`voice.mp3`),attachTo:r.attachTo===`last_assistant`?`last_assistant`:void 0,messageId:typeof r.messageId==`string`?r.messageId:void 0});break;case`clarify_request`:{let e=typeof r.requestId==`string`?r.requestId.trim():``,t=typeof r.question==`string`?r.question.trim():``;e&&t&&n?.onClarifyRequest&&n.onClarifyRequest({...Ve(r),requestId:e,kind:r.kind===`approval`?`approval`:`input`,question:t,version:typeof r.version==`number`?r.version:1,createdAt:typeof r.createdAt==`number`?r.createdAt:Date.now(),expiresAt:typeof r.expiresAt==`number`?r.expiresAt:void 0});break}case`run_end`:typeof t.runId==`string`&&typeof t.conversationId==`string`&&(r.status===`success`||r.status===`error`||r.status===`cancelled`||r.status===`suspended`)&&(Wi(t.runId,r.status),n?.onResult({runId:t.runId,conversationId:t.conversationId,status:r.status,...typeof r.summary==`string`&&r.summary?{summary:r.summary}:{}}));break;case`error`:typeof t.runId==`string`&&Wi(t.runId,`error`),n?.onError(String(r.message||JSON.stringify(bi())));break}}};function ta(e){if(typeof e==`string`||e==null)return e;try{return JSON.stringify(e)}catch{return String(e)}}function na(e){return{...typeof e.parentToolCallId==`string`?{parentToolCallId:e.parentToolCallId}:{},...typeof e.durationMs==`number`?{durationMs:e.durationMs}:{}}}function ra(e){if(typeof e!=`number`||!Number.isFinite(e))throw Error(`Chat stream event is missing a numeric timestamp`);return e}function ia(e){return Array.isArray(e)?e.map(e=>{let t=e&&typeof e==`object`&&!Array.isArray(e)?e:void 0,n=typeof t?.step==`string`?t.step.trim():``,r=t?.status;if(!(!n||r!==`pending`&&r!==`in_progress`&&r!==`completed`))return{step:n,status:r}}).filter(e=>!!e):[]}function aa(e){return Array.isArray(e)?e.flatMap(e=>{let t=e&&typeof e==`object`&&!Array.isArray(e)?e:void 0,n=typeof t?.id==`string`?t.id.trim():``,r=typeof t?.title==`string`?t.title.trim():``,i=t?.status;return!n||!r||i!==`pending`&&i!==`in_progress`&&i!==`completed`&&i!==`cancelled`?[]:[{id:n,title:r,status:i}]}):[]}async function oa(e){let r=String(e??``).trim();if(!r||await T(r))return{active:!1};let i=await t(n(y(r)));if(!i.ok)throw Error(`Active run lookup failed (${i.status})`);return _(await i.json())}async function sa(e){let t=String(e??``).trim();if(!t)return null;let n=Ji(t);try{let e=await oa(t);return e.active&&e.runId?(Yi(t,e.runId),e.runId):(n&&Qi(t,n),null)}catch{}return Ji(t)}var ca=e({SessionManager:()=>ya,SessionModelRequiredError:()=>ua,WEB_UI_SESSION_SOURCE_CHANNELS:()=>la}),la=`webchat`,ua=class extends Error{constructor(){super(s(i.getState().language).chat.modelRequiredForResources),this.name=`SessionModelRequiredError`}};function da(e){if(!e||typeof e!=`object`)throw Error(`Invalid session agent config response`);let t=e;if(t.ok!==!0||!t.payload||typeof t.payload!=`object`)throw Error(`Invalid session agent config response`);let n=t.payload,r=n.workspaceSource,i=n.activityDetail,a=i&&typeof i==`object`?i:null,o=e=>e===`off`||e===`on`||e===`stream`;if(typeof n.thinkingLevel!=`string`||typeof n.model!=`string`||!a||!o(a.default)||a.override!==null&&!o(a.override)||!o(a.effective)||a.source!==`session`&&a.source!=="default"||typeof n.effectiveWorkspacePath!=`string`||typeof n.workingDirectoryLocked!=`boolean`||n.userContextMode!==`enabled`&&n.userContextMode!==`off`&&n.userContextMode!==`temporary`||r!==`execution_environment`&&r!==`project`&&r!==`session_override`&&r!==`agent_default_root`&&r!==`agent_workspace`)throw Error(`Invalid session agent config response`);return{thinkingLevel:n.thinkingLevel,configVersion:typeof n.configVersion==`number`?n.configVersion:void 0,fixedModel:n.fixedModel===!0,model:n.model,activityDetail:{default:a.default,override:a.override,effective:a.effective,source:a.source},effectiveWorkspacePath:n.effectiveWorkspacePath,workingDirectoryLocked:n.workingDirectoryLocked,userContextMode:n.userContextMode,workspaceSource:r}}var fa=new Map,pa=new Map;function $(){let e=r.getState().conversationId;return()=>{if(r.getState().conversationId!==e)throw Error(`Active Gateway identity changed`)}}var ma=new Map,ha=50,ga=500,_a=new Map;async function va(e){let t=await e.json().catch(()=>({}));return typeof t.error==`string`?t.error:t.error?.message??`HTTP ${e.status}`}var ya=class{async forkSessionAtTurn(e,r){let i=await t(n(x(e)),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({lastTurnId:r})});if(!i.ok)throw Error(await va(i));return C(await i.json())}async loadSessions(){let e=[],t=0;for(let n=0;n<100;n++){let n=await S({channel:la,limit:100,offset:t});for(let t of n.items)e.push({key:t.key,agentId:t.agentId,transcriptId:t.transcriptId,name:t.name,updatedAt:t.updatedAt,messageCount:t.messageCount,sourceChannel:t.sourceChannel,sourceChatId:t.sourceChatId,projectId:t.projectId,customData:t.customData,routing:t.routing});if(!n.hasMore)break;t+=100}return e.sort((e,t)=>new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime())}async loadSessionAgentConfig(e){let r=$();await this.reconcileDraft(e),r();let i=await T(e);if(i){if(!i.creation.model&&!i.submission&&!i.materialization){let[t,n]=await Promise.all([he(),ge(i.creation.agentId)]);r();let a=n.config.models.chat.primary,o=t.filter(e=>e.id===a||e.id.endsWith(`/${a}`)),s=t.find(e=>e.id===a)??(o.length===1?o[0]:void 0),c=await T(e);if(r(),c&&!c.creation.model&&!c.submission&&!c.materialization&&s)return c.creation.model=s.id,c.creation.thinkingLevel=s.thinking?.initialValue??`off`,await D(c),ie(c);if(c)return ie(c)}return ie(i)}let a=fa.get(e);if(a)return a;let o=(async()=>{let r=await t(n(`/api/sessions/${encodeURIComponent(e)}/agent-config`));if(!r.ok)throw Error(`HTTP ${r.status}`);return da(await r.json())})().finally(()=>{fa.delete(e)});return fa.set(e,o),o}async patchSessionAgentConfig(e,r){let i=await T(e);if(i){if(i.submission||i.materialization)throw Error(`Resolve the pending creation command before changing its configuration`);return r.model!==void 0&&(i.creation.model=r.model??``),r.thinkingLevel!==void 0&&(i.creation.thinkingLevel=r.thinkingLevel),r.userContextMode!==void 0&&(i.creation.temporary=r.userContextMode===`temporary`),await D(i),ie(i)}let a=await t(n(`/api/sessions/${encodeURIComponent(e)}/agent-config`),{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error(e.error??`HTTP ${a.status}`)}return da(await a.json())}async patchTaskConversationModel(e,r,i,a){let o=await t(n(`/api/tasks/${encodeURIComponent(e)}/conversation/config`),{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model:r,thinkingLevel:i,configVersion:a})});if(!o.ok){let e=await o.json().catch(()=>({}));throw Error(e.error??`HTTP ${o.status}`)}return da(await o.json())}fetchSessionActiveRun(e){return oa(e)}async loadSession(e,t=0,r,i,a){if(i||await this.reconcileDraft(e),!i&&await T(e))return{messages:[],hasMore:!1};let o=`${i??e}\0${t}\0${r??``}`,s=ma.get(o);if(s&&s.messagesAtRequest===a)return s.pending;let c=(async()=>{let a=async(t,r)=>{let a=await me(n(i?`/api/tasks/${encodeURIComponent(i)}/conversation/history?${new URLSearchParams({limit:String(ha),...r?{before:r}:{offset:String(t)}}).toString()}`:b(e,{limit:ha,before:r,offset:r?void 0:t})));if(!a.ok)throw Error(`HTTP ${a.status}: ${a.statusText}`);return w(await a.json())},o=await a(t,r);o.session.transcriptId&&await E(e,o.session.transcriptId);let s=o.session.messages,c=Ot(s),l=o.pagination.hasMore,u=o.pagination.nextBeforeCursor,d=typeof o.session.name==`string`&&o.session.name.trim()?o.session.name.trim():void 0;for(;t===0&&!r&&l&&u&&(s.length<ga||c.length<ha||!c.some(e=>e.role===`user`))&&(c[0]?.role===`assistant`||c.length<ha&&!c.some(e=>e.role===`assistant`));){let e=u;if(o=await a(0,e),o.pagination.hasMore&&(!o.pagination.nextBeforeCursor||Number(o.pagination.nextBeforeCursor)>=Number(e)))throw Error(`History pagination did not advance`);s=[...o.session.messages,...s],c=Ot(s),l=o.pagination.hasMore,u=o.pagination.nextBeforeCursor}return{messages:c,hasMore:l,name:d,nextBeforeCursor:u}})().finally(()=>{ma.get(o)?.pending===c&&ma.delete(o)});return ma.set(o,{pending:c,messagesAtRequest:a}),c}async loadTimeline(e,t){if(!t&&(await this.reconcileDraft(e),await T(e)))return[];let r=t??e,i=_a.get(r);if(i)return i;let a=(async()=>{let r=await me(n(t?`/api/tasks/${encodeURIComponent(t)}/conversation/timeline`:`/api/sessions/${encodeURIComponent(e)}/timeline`));if(!r.ok)throw Error(`HTTP ${r.status}: ${r.statusText}`);let i=await r.json();if(i.ok!==!0||!Array.isArray(i.items))throw Error(`Invalid session timeline response`);return i.items})().finally(()=>{_a.delete(r)});return _a.set(r,a),a}async createSession(e){let t=crypto.randomUUID(),n=new Date().toISOString(),r={agentId:e?.agentId?.trim().toLowerCase()||`main`,projectId:e?.projectId?.trim()||null,execution:e?.executionMode?{mode:e.executionMode}:null,temporary:e?.temporary===!0,model:e?.initialAgentConfig?.model??``,thinkingLevel:e?.initialAgentConfig?.thinkingLevel??`off`};return await D({conversationId:t,creation:r,createdAt:n}),{key:t,agentId:r.agentId,projectId:r.projectId??void 0,messageCount:0,updatedAt:n,sourceChannel:`webchat`}}async resetSession(e){let r=e.trim();if(!r)throw Error(`Session key is required`);let i=await t(n(`/api/sessions/${encodeURIComponent(r)}/reset`),{method:`POST`});if(!i.ok)throw Error(await va(i));let a=v(await i.json());if(!a.transcriptId)throw Error(`Reset response is missing transcript identity`);return await E(e,a.transcriptId),a}async reconcileDraft(e){let r=$(),i=await T(e);r();let a=await ae(e);r();let o=a?.clientMessageId??i?.submission?.clientMessageId??i?.materialization?.commandId;if(!o)return;let s=await t(n(`/api/sessions/${encodeURIComponent(e)}/input-receipts/${encodeURIComponent(o)}`));if(s.status===404)return;if(!s.ok)throw Error(await va(s));let c=await s.json();if(r(),c.payload.receipt.conversationId!==e||c.payload.receipt.clientMessageId!==o||!c.payload.session.transcriptId)throw Error(`Invalid input receipt`);if(i?.materialization){let t=await T(e);if(r(),t?.materialization?.commandId!==o)return}await se(e,c.payload.session.transcriptId)}async confirmPendingMaterialization(e,t){let n=$();await this.reconcileDraft(e),t?.throwIfAborted(),n();let r=await T(e);n(),r?.materialization&&await this.submitMaterialization(r,t)}materialize(e,t){let n=JSON.stringify([r.getState().conversationId,e]),i=pa.get(n);if(i)return i;let a=this.materializeDraft(e,t).finally(()=>{pa.get(n)===a&&pa.delete(n)});return pa.set(n,a),a}async materializeDraft(e,t){let n=$();if(!await T(e))return;n(),await this.loadSessionAgentConfig(e),n();let r=await T(e);if(n(),r){if(r.submission)throw Error(`The first input is awaiting confirmation`);if(!r.creation.model.trim())throw new ua;if(r.materialization??={commandId:crypto.randomUUID(),purpose:t},await D(r),n(),await this.submitMaterialization(r)!==`ready`)throw Error(`Conversation environment is not ready yet`)}}async submitMaterialization(e,r){let i=$(),a=e.conversationId;if(!e.materialization)throw Error(`Missing materialization command`);let o=await t(n(`/api/sessions/${encodeURIComponent(a)}/materialize`),{method:`POST`,body:JSON.stringify({...e.materialization,creation:e.creation}),signal:r});if(!o.ok)throw Error(await va(o));let s=await o.json();if(r?.throwIfAborted(),i(),s.payload.receipt.conversationId!==a||s.payload.receipt.clientMessageId!==e.materialization.commandId)throw Error(`Invalid materialization receipt`);let c=await T(a);return i(),c?.materialization?.commandId===e.materialization.commandId&&await se(a,s.payload.receipt.transcriptId),s.payload.receipt.lifecycle}async fetchSessionName(e){let t=await me(n(`/api/sessions/${encodeURIComponent(e)}?offset=0&limit=1`));if(!t.ok)return;let r=(await t.json()).session?.name;return typeof r==`string`&&r.trim()?r.trim():void 0}updateUrl(e){let t=`#/chat/${encodeURIComponent(e)}`;if(location.hash!==t){let e=window.history.state,n=e&&typeof e==`object`&&!Array.isArray(e)?{...e}:e;history.replaceState(n,``,t)}}parseSessionFromHash(){let e=location.hash.slice(1),t=e.match(/^\/chat\/(.+)$/)||e.match(/^chat\/(.+)$/),n=t?decodeURIComponent(t[1]):null;return n&&n!==`new`?n:null}async deleteMessages(e,r){let i=await t(n(`/api/sessions/${encodeURIComponent(e)}/messages`),{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify(r)});if(!i.ok){let e=await i.json().catch(()=>({}));throw Error(e.error??`HTTP ${i.status}`)}}};export{lr as $,qr as A,Wr as B,mi as C,Gr as D,Hr as E,Lr as F,wr as G,Yr as H,Ir as I,gr as J,Sr as K,Kr as L,Jr as M,Or as N,zr as O,Ur as P,ur as Q,Br as R,_i as S,J as T,Tr as U,Pr as V,Cr as W,W as X,mr as Y,dr as Z,Si as _,Qi as a,k as at,hi as b,Ji as c,Re as ct,Fi as d,je as dt,sr as et,ki as f,Me as ft,xi as g,Pe as gt,wi as h,Ie as ht,ea as i,yt as it,kr as j,Fr as k,Yi as l,He as lt,Ai as m,Fe as mt,ca as n,A as nt,qi as o,Je as ot,Oi as p,Ne as pt,hr as q,sa as r,bt as rt,$i as s,qe as st,ya as t,Kt as tt,Ui as u,Ve as ut,Ci as v,Qr as w,gi as x,si as y,Dr as z};
@@ -1 +0,0 @@
1
- import{n as e}from"./settings-mode-store-Dem6-TBe.js";function t(t){let{children:n,fallback:r}=t,i=r===void 0?null:r;return e()?n:i}export{t};