@xopcai/xopc 0.0.415 → 0.0.417
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.
- package/README.md +2 -2
- package/README.zh-CN.md +2 -2
- package/dist/browser-ext/_locales/en/messages.json +4 -1
- package/dist/browser-ext/_locales/zh_CN/messages.json +4 -1
- package/dist/browser-ext/dist/assets/{page-context-MuzjMBlJ.js → page-context-BKnEwsOO.js} +2914 -1381
- package/dist/browser-ext/dist/background.js +39 -10
- package/dist/browser-ext/dist/sidepanel.html +1 -1
- package/dist/browser-ext/dist/sidepanel.js +502 -348
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/activity-YogQEteU.js +1 -0
- package/dist/gateway/static/root/assets/activity-store-DnqOM8GN.js +1 -0
- package/dist/gateway/static/root/assets/agent-avatar-dicebear-1UABT2KS.js +1 -0
- package/dist/gateway/static/root/assets/agent-avatar-display-Cy50vjbq.js +2 -0
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-V4NX_cWz.js +1 -0
- package/dist/gateway/static/root/assets/agent-display-names-Bje7vfSn.js +1 -0
- package/dist/gateway/static/root/assets/agent-plugin-dialog-CQ5LLDMO.js +1 -0
- package/dist/gateway/static/root/assets/agents-O7mago-m.js +77 -0
- package/dist/gateway/static/root/assets/{agents-admin-api-B1p-ghg9.js → agents-admin-api-CyjykMEh.js} +2 -2
- package/dist/gateway/static/root/assets/agents-app-path-ciChvpCS.js +1 -0
- package/dist/gateway/static/root/assets/api-C1dxxDZx.js +1 -0
- package/dist/gateway/static/root/assets/api-Ddrs70xV.js +1 -0
- package/dist/gateway/static/root/assets/app-chrome-BeB4KgOf.js +1 -0
- package/dist/gateway/static/root/assets/app-link-CytZ5zkp.js +1 -0
- package/dist/gateway/static/root/assets/app-management-settings-panel-C1Zs-eha.js +1 -0
- package/dist/gateway/static/root/assets/appearance-settings-lIfGokbz.js +1 -0
- package/dist/gateway/static/root/assets/apps-page-CUvtsRYD.js +1 -0
- package/dist/gateway/static/root/assets/archive-Dz0hferG.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-Ch7wolHE.js → archive-plugin-n5lPr79c.js} +1 -1
- package/dist/gateway/static/root/assets/arrow-left-D880xG-P.js +1 -0
- package/dist/gateway/static/root/assets/arrow-right-DSSvoX71.js +1 -0
- package/dist/gateway/static/root/assets/arrow-up-D5ZtR1QT.js +1 -0
- package/dist/gateway/static/root/assets/arrow-up-right-T72JbQ1Q.js +1 -0
- package/dist/gateway/static/root/assets/{attachment-preview-renderer-wzIchDSv.js → attachment-preview-renderer-DdOEgexg.js} +3 -3
- package/dist/gateway/static/root/assets/{attachment-process-heavy-Db4nTY5N.js → attachment-process-heavy-DGZZ-M85.js} +2 -2
- package/dist/gateway/static/root/assets/automation-api-Bld8blNl.js +1 -0
- package/dist/gateway/static/root/assets/automation-display-BcfZOQTC.js +2 -0
- package/dist/gateway/static/root/assets/{automations-page-DK7AU79v.js → automations-page-oLsNzu_6.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-BgtYY2Mm.js +8 -0
- package/dist/gateway/static/root/assets/beta-badge-BnzdzIEl.js +1 -0
- package/dist/gateway/static/root/assets/{binary-plugins-B4HcHYsC.js → binary-plugins-D9VW7dWP.js} +2 -2
- package/dist/gateway/static/root/assets/{block-editor-BQAWEZF-.js → block-editor-C477bTtO.js} +23 -23
- package/dist/gateway/static/root/assets/book-open-CCGtrT3R.js +1 -0
- package/dist/gateway/static/root/assets/bot-DjLkhyZL.js +1 -0
- package/dist/gateway/static/root/assets/box-DvYoGszj.js +1 -0
- package/dist/gateway/static/root/assets/braces-Cfmtagno.js +1 -0
- package/dist/gateway/static/root/assets/brand-logo-CgT9zQfr.js +1 -0
- package/dist/gateway/static/root/assets/briefcase-business-BsoCaI_t.js +1 -0
- package/dist/gateway/static/root/assets/browser-BLJWD7WI.js +8 -0
- package/dist/gateway/static/root/assets/{browser-automation-inputs-D6AccXaA.js → browser-automation-inputs-CCiYXxmh.js} +1 -1
- package/dist/gateway/static/root/assets/browser-automations-page-DIUNY94X.js +3 -0
- package/dist/gateway/static/root/assets/browser-control-api-Y3fvmeBk.js +6 -0
- package/dist/gateway/static/root/assets/browser-notification-delivery-DmE2FgGc.js +1 -0
- package/dist/gateway/static/root/assets/browser-settings-page-DjkGahlz.js +3 -0
- package/dist/gateway/static/root/assets/{button-aIC072nz.js → button-CnRSIP6m.js} +1 -1
- package/dist/gateway/static/root/assets/calendar-clock-D-quYVPe.js +1 -0
- package/dist/gateway/static/root/assets/calendar-days-hw_Y-g-s.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-DAyA681v.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-DRVXLssH.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-page-DFW4Y0x8.js +2 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-uOHSMQPZ.js +8 -0
- package/dist/gateway/static/root/assets/capability-header-actions-CTUCuBlW.js +1 -0
- package/dist/gateway/static/root/assets/capability-icon-DVoZxEgW.js +1 -0
- package/dist/gateway/static/root/assets/capability-links-DzQWK1Fh.js +1 -0
- package/dist/gateway/static/root/assets/channels-D2a69dSt.js +1 -0
- package/dist/gateway/static/root/assets/channels-routes-r2g-9DdC.js +1 -0
- package/dist/gateway/static/root/assets/chat-agents-api-D5nR_JVe.js +1 -0
- package/dist/gateway/static/root/assets/chat-chart-block-K2t333qv.js +2 -0
- package/dist/gateway/static/root/assets/chat-page-CG38tCHE.js +71 -0
- package/dist/gateway/static/root/assets/chat-page-zQeUaawJ.css +1 -0
- package/dist/gateway/static/root/assets/chat-terminal-dock-CkFG6mA3.js +35 -0
- package/dist/gateway/static/root/assets/chevron-left-DqFhpbvK.js +1 -0
- package/dist/gateway/static/root/assets/chevron-right-BweFrslA.js +1 -0
- package/dist/gateway/static/root/assets/chunk-D32TOXHM-DQIy-Baq.js +156 -0
- package/dist/gateway/static/root/assets/chunk-KS7C4IRE-CiwuuyV8.js +4 -0
- package/dist/gateway/static/root/assets/circle-BoO4YvTx.js +1 -0
- package/dist/gateway/static/root/assets/circle-alert-BEjgurr2.js +1 -0
- package/dist/gateway/static/root/assets/circle-pause-CN9jYH2s.js +1 -0
- package/dist/gateway/static/root/assets/circle-x-DFsCKeya.js +1 -0
- package/dist/gateway/static/root/assets/clock-3-DnrAnuyZ.js +1 -0
- package/dist/gateway/static/root/assets/cloud-C4-yfnnk.js +1 -0
- package/dist/gateway/static/root/assets/cloud-credits-B-nbtkqv.js +1 -0
- package/dist/gateway/static/root/assets/code-xml-DJtYhZUF.js +1 -0
- package/dist/gateway/static/root/assets/coins-DjP27vUx.js +1 -0
- package/dist/gateway/static/root/assets/command-palette-api-Do_66X1B.js +1 -0
- package/dist/gateway/static/root/assets/composer-payload-handoff-BU3B-C26.js +1 -0
- package/dist/gateway/static/root/assets/computer-settings-page-DBxOcMko.js +1 -0
- package/dist/gateway/static/root/assets/confirm-dialog-XGclfBqe.js +1 -0
- package/dist/gateway/static/root/assets/connected-providers-grid-Dmnu2zle.js +1 -0
- package/dist/gateway/static/root/assets/connector-filters-Cfcx9EA2.js +1 -0
- package/dist/gateway/static/root/assets/connector-service-page-rWpnchb3.js +1 -0
- package/dist/gateway/static/root/assets/connectors-api-DIBG72k4.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-DT_WrC1y.js +1 -0
- package/dist/gateway/static/root/assets/constants-DBtMsXdW.js +1 -0
- package/dist/gateway/static/root/assets/copy-text-row-CYIv7RfP.js +1 -0
- package/dist/gateway/static/root/assets/cpu-B247669f.js +1 -0
- package/dist/gateway/static/root/assets/database-CjjeZfRG.js +1 -0
- package/dist/gateway/static/root/assets/date-picker-CE-cZFCU.js +1 -0
- package/dist/gateway/static/root/assets/dependency-picker-7SpSfDSg.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-lorocS9j.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-narrative-CS8qJpNO.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-settings-CEcohlZq.js +1 -0
- package/dist/gateway/static/root/assets/{desktop-pet-sprite-Bd-aOI7N.js → desktop-pet-sprite-D5YYq2zC.js} +1 -1
- package/dist/gateway/static/root/assets/dev-view-store-57HgVuZ6.js +1 -0
- package/dist/gateway/static/root/assets/device-pairing-wizard-CLCPuf4R.js +1 -0
- package/dist/gateway/static/root/assets/directory-picker-path-field-D4jMhpka.js +1 -0
- package/dist/gateway/static/root/assets/discussion-annotation-sync-BKjf9gWe.js +1 -0
- package/dist/gateway/static/root/assets/dist-CaUuvp8-.js +1 -0
- package/dist/gateway/static/root/assets/dist-DNCdG_qB.js +1 -0
- package/dist/gateway/static/root/assets/dist-DfWfZ9iu.js +1 -0
- package/dist/gateway/static/root/assets/dist-DusecO_p.js +1 -0
- package/dist/gateway/static/root/assets/docx-preview-CnIClbYi.js +20 -0
- package/dist/gateway/static/root/assets/earth-BMhZtzcj.js +1 -0
- package/dist/gateway/static/root/assets/echarts-runtime-QSmTlXOu.js +18 -0
- package/dist/gateway/static/root/assets/electron-env-DHOGevH3.js +1 -0
- package/dist/gateway/static/root/assets/extension-debug-page-BsK2LMXQ.js +1 -0
- package/dist/gateway/static/root/assets/extension-iframe-host-Dhkk5JV2.js +1 -0
- package/dist/gateway/static/root/assets/extension-marketplace-api-CVJPqJOB.js +1 -0
- package/dist/gateway/static/root/assets/extension-page-Brps2XDP.js +1 -0
- package/dist/gateway/static/root/assets/extension-paths-DvuaZJuy.js +1 -0
- package/dist/gateway/static/root/assets/extension-provider-Byrd8Sor.js +1 -0
- package/dist/gateway/static/root/assets/extension-settings-page-CHY68DpG.js +1 -0
- package/dist/gateway/static/root/assets/file-BqMS_3DT.js +1 -0
- package/dist/gateway/static/root/assets/file-archive-DanfQJNe.js +1 -0
- package/dist/gateway/static/root/assets/file-preview-surface-BlprUrIs.js +1 -0
- package/dist/gateway/static/root/assets/file-text-D12HbeVy.js +1 -0
- package/dist/gateway/static/root/assets/file-tree-CFlZnV3Y.js +1 -0
- package/dist/gateway/static/root/assets/file-tree-utils-DJs1faGv.js +1 -0
- package/dist/gateway/static/root/assets/files-BNL4kkSB.js +1 -0
- package/dist/gateway/static/root/assets/floating-ui.dom-seOukHzT.js +1 -0
- package/dist/gateway/static/root/assets/folder-CN-pC3XL.js +1 -0
- package/dist/gateway/static/root/assets/folder-kanban-CpLlFI1o.js +1 -0
- package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-config-swr-fQKBHBi1.js → gateway-config-swr-BAmUhiP1.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-CsykKL4l.js +1 -0
- package/dist/gateway/static/root/assets/gateway-realtime-store-DQqMBruB.js +1 -0
- package/dist/gateway/static/root/assets/gateway-restart-Ch128Lrr.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-BA5-Uuwx.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-Cfwxof4k.js → gateway-startup-retry-CtUB3g6N.js} +1 -1
- package/dist/gateway/static/root/assets/gauge-C78eD2BA.js +1 -0
- package/dist/gateway/static/root/assets/git-branch-Dh9uxTot.js +1 -0
- package/dist/gateway/static/root/assets/global-defaults-api-CINf-C6a.js +2 -0
- package/dist/gateway/static/root/assets/heart-Cp4rgrqn.js +1 -0
- package/dist/gateway/static/root/assets/highlight-code-BH65IIbJ.js +1 -0
- package/dist/gateway/static/root/assets/highlighted-body-KQOG7T2V-DKGma5wI.js +1 -0
- package/dist/gateway/static/root/assets/history-DXH_9jsE.js +1 -0
- package/dist/gateway/static/root/assets/home-page-DaMFBYo1.js +2 -0
- package/dist/gateway/static/root/assets/image-Cwyalflz.js +1 -0
- package/dist/gateway/static/root/assets/image-generation-api-I_JgLL_m.js +1 -0
- package/dist/gateway/static/root/assets/imports-page-BWShtGRQ.js +1 -0
- package/dist/gateway/static/root/assets/index-BpCi0TdG.js +11 -0
- package/dist/gateway/static/root/assets/index-DY2Y83b9.css +1 -0
- package/dist/gateway/static/root/assets/index.module-Cd9ENXfk.js +1 -0
- package/dist/gateway/static/root/assets/info-CDrmIZhb.js +1 -0
- package/dist/gateway/static/root/assets/install-connector-dialog-DU1Tz7B3.js +1 -0
- package/dist/gateway/static/root/assets/interaction-BdhHBbYa.js +1 -0
- package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +1 -0
- package/dist/gateway/static/root/assets/{jszip.min-DT31yWkU.js → jszip.min-Dj17eJqX.js} +1 -1
- package/dist/gateway/static/root/assets/key-round-DWbpyU2U.js +1 -0
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-CdM4BQwp.js +1 -0
- package/dist/gateway/static/root/assets/languages-zXtNocoy.js +2 -0
- package/dist/gateway/static/root/assets/laptop-CI3hBVrl.js +1 -0
- package/dist/gateway/static/root/assets/layers-mJW7JJKm.js +1 -0
- package/dist/gateway/static/root/assets/layout-grid-CEVZdVFU.js +1 -0
- package/dist/gateway/static/root/assets/list-checks-BbsExAoq.js +1 -0
- package/dist/gateway/static/root/assets/list-filter-COkzTdOz.js +1 -0
- package/dist/gateway/static/root/assets/list-todo-CTVRto8O.js +1 -0
- package/dist/gateway/static/root/assets/list-tree-B0OMswgM.js +1 -0
- package/dist/gateway/static/root/assets/local-app-workbench-page-qPflPuQD.js +1 -0
- package/dist/gateway/static/root/assets/local-apps-Ck6kACsY.js +1 -0
- package/dist/gateway/static/root/assets/local-apps-page-CxyRVfjD.js +1 -0
- package/dist/gateway/static/root/assets/local-session-drafts-B9ZPwotC.js +1 -0
- package/dist/gateway/static/root/assets/{locale-store-B7s2Hb35.js → locale-store-lIXD1FMw.js} +1 -1
- package/dist/gateway/static/root/assets/lock-keyhole-DEK5kH0u.js +1 -0
- package/dist/gateway/static/root/assets/logs-page-CbY1N-zi.js +2 -0
- package/dist/gateway/static/root/assets/loopi-C09I2mNj.css +1 -0
- package/dist/gateway/static/root/assets/loopi-CNtmi9FU.js +1 -0
- package/dist/gateway/static/root/assets/management-settings-Diy12JfQ.js +1 -0
- package/dist/gateway/static/root/assets/{markdown-editor-phTQ0mox.js → markdown-editor-BuuGlcfG.js} +1 -1
- package/dist/gateway/static/root/assets/markdown-view-C-DHb3Io.css +1 -0
- package/dist/gateway/static/root/assets/markdown-view-CJt-i2Dp.js +324 -0
- package/dist/gateway/static/root/assets/{media-plugins-DYQDjCVQ.js → media-plugins-D_bR23mA.js} +1 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-Ur99GwOg.js +1 -0
- package/dist/gateway/static/root/assets/mermaid-render-oOellPHt.js +134 -0
- package/dist/gateway/static/root/assets/message-circle-Badhj-4D.js +1 -0
- package/dist/gateway/static/root/assets/message-square-fVE7Ghj1.js +1 -0
- package/dist/gateway/static/root/assets/message-square-plus-XP0tGdlV.js +1 -0
- package/dist/gateway/static/root/assets/{messages-BYq0cPbn.js → messages-DRR9N3HC.js} +1 -1
- package/dist/gateway/static/root/assets/messages-square-BckAJrEW.js +1 -0
- package/dist/gateway/static/root/assets/mic-CuUb7zc-.js +1 -0
- package/dist/gateway/static/root/assets/minimize-2-DtOGrlpo.js +1 -0
- package/dist/gateway/static/root/assets/mobile-pair-qr-CuIbmw5x.js +1 -0
- package/dist/gateway/static/root/assets/model-selector-DCYA_ntf.js +1 -0
- package/dist/gateway/static/root/assets/models-hub-cache-za2fWJLg.js +1 -0
- package/dist/gateway/static/root/assets/monitor-Af5eAvF7.js +1 -0
- package/dist/gateway/static/root/assets/mouse-pointer-2-DZ51Onvj.js +1 -0
- package/dist/gateway/static/root/assets/navigation-BkjnOw30.js +1 -0
- package/dist/gateway/static/root/assets/network-BUQLY1BV.js +1 -0
- package/dist/gateway/static/root/assets/new-session-preferences-gb411vZP.js +1 -0
- package/dist/gateway/static/root/assets/note-detail-panel-DBs1yHLy.js +5 -0
- package/dist/gateway/static/root/assets/note-image-lightbox-CivkB6LB.js +1 -0
- package/dist/gateway/static/root/assets/notes-api-C_458rv5.js +1 -0
- package/dist/gateway/static/root/assets/notes-page-DL3c-41a.js +8 -0
- package/dist/gateway/static/root/assets/number-input-El7Szeln.js +1 -0
- package/dist/gateway/static/root/assets/oauth-api-C3X9FLYw.js +1 -0
- package/dist/gateway/static/root/assets/oauth-authorization-window-o6URRos4.js +1 -0
- package/dist/gateway/static/root/assets/oauth-provider-connect-H81se_3n.js +1 -0
- package/dist/gateway/static/root/assets/package-wATCyihJ.js +1 -0
- package/dist/gateway/static/root/assets/page-context-capture-button-BkAlQ7cB.js +1 -0
- package/dist/gateway/static/root/assets/page-context-draft-ClLgaOaD.js +1 -0
- package/dist/gateway/static/root/assets/page-header-store-DH8K0xii.js +1 -0
- package/dist/gateway/static/root/assets/page-tabs-oeTY7z3_.js +1 -0
- package/dist/gateway/static/root/assets/panel-left-C8MqSXRZ.js +1 -0
- package/dist/gateway/static/root/assets/panel-right-CFGrHTsD.js +1 -0
- package/dist/gateway/static/root/assets/paperclip-f1HujQY1.js +1 -0
- package/dist/gateway/static/root/assets/pause-DuPxgSxk.js +1 -0
- package/dist/gateway/static/root/assets/{pdf-D4PI9qAw.js → pdf-EQHMWEbX.js} +3 -3
- package/dist/gateway/static/root/assets/pdf-runtime-JnUAvfIa.js +2 -0
- package/dist/gateway/static/root/assets/{pdf.worker.min-B4E34YdZ.js → pdf.worker.min-bpyjgR8v.js} +7 -7
- package/dist/gateway/static/root/assets/pencil-DmIY3Oa-.js +1 -0
- package/dist/gateway/static/root/assets/personal-avatar-BLtHt8fV.js +1 -0
- package/dist/gateway/static/root/assets/personal-avatar-BUCb7OiW.css +1 -0
- package/dist/gateway/static/root/assets/personal-page-B5DP3lO-.js +1 -0
- package/dist/gateway/static/root/assets/personal-proactivity-DaRnbB1f.js +1 -0
- package/dist/gateway/static/root/assets/personal-settings-panel-DjDc5Kaz.js +1 -0
- package/dist/gateway/static/root/assets/phone-dependencies-card-DISHarj8.js +1 -0
- package/dist/gateway/static/root/assets/phone-model-picker-u8YIQCgo.js +1 -0
- package/dist/gateway/static/root/assets/phone-settings-page-el3pT0PD.js +1 -0
- package/dist/gateway/static/root/assets/phone-workspace-store-fhnZrgy_.js +1 -0
- package/dist/gateway/static/root/assets/pin-off-BMRv-Kxr.js +1 -0
- package/dist/gateway/static/root/assets/play-kxZvpBg8.js +1 -0
- package/dist/gateway/static/root/assets/plug-DKYPEgkR.js +1 -0
- package/dist/gateway/static/root/assets/plug-zap-L8NMe3Sv.js +1 -0
- package/dist/gateway/static/root/assets/plugin-details-dialog-CTBs1Jde.js +1 -0
- package/dist/gateway/static/root/assets/plus-Q2yW6OE7.js +1 -0
- package/dist/gateway/static/root/assets/popover-select-DniHw2dy.js +1 -0
- package/dist/gateway/static/root/assets/power-ZI-pBczI.js +1 -0
- package/dist/gateway/static/root/assets/power-off-CwwQ7Gp7.js +1 -0
- package/dist/gateway/static/root/assets/preference-select-fields-D7oluyHN.js +1 -0
- package/dist/gateway/static/root/assets/preload-helper-Czpn1I53.js +1 -0
- package/dist/gateway/static/root/assets/preview-open-alternatives-CY_hjK4b.js +1 -0
- package/dist/gateway/static/root/assets/product-automation-feedback-DsUSqCOX.js +7 -0
- package/dist/gateway/static/root/assets/product-delivery-BU_H84jL.js +1 -0
- package/dist/gateway/static/root/assets/product-navigation-Co8pLbDP.js +1 -0
- package/dist/gateway/static/root/assets/product-open-page-xn9G4hSI.js +1 -0
- package/dist/gateway/static/root/assets/product-preview-content-DcoK-iZe.js +1 -0
- package/dist/gateway/static/root/assets/product-preview-modal-Ruw9WSKK.js +2 -0
- package/dist/gateway/static/root/assets/project-detail-page-BKvWLiMw.js +7 -0
- package/dist/gateway/static/root/assets/project-understanding-BCQr0AZ_.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-D4g7bB7X.js +1 -0
- package/dist/gateway/static/root/assets/providers-api-CzVkFKFg.js +1 -0
- package/dist/gateway/static/root/assets/puzzle-BptcPjKI.js +1 -0
- package/dist/gateway/static/root/assets/recording-upload-0jxahBMo.js +1 -0
- package/dist/gateway/static/root/assets/refresh-button-bU_0NarN.js +1 -0
- package/dist/gateway/static/root/assets/refresh-cw-BRlGaq2w.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-BcfoLEna.js → registry-api-n8TwtJ_j.js} +2 -2
- package/dist/gateway/static/root/assets/remote-access-hub-cZpBi4Rk.js +1 -0
- package/dist/gateway/static/root/assets/rotate-ccw-JM1TBLpp.js +1 -0
- package/dist/gateway/static/root/assets/rotate-cw-LIg3Am9S.js +1 -0
- package/dist/gateway/static/root/assets/route-preload-B5UiReO7.js +2 -0
- package/dist/gateway/static/root/assets/runtime-health-D2TDFLLq.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-api-DesqGCnE.js → runtime-tools-api-D-8KjYK6.js} +1 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-MKlLFuow.js +1 -0
- package/dist/gateway/static/root/assets/save-DRDABU--.js +1 -0
- package/dist/gateway/static/root/assets/schema-form-v4N4lawq.js +1 -0
- package/dist/gateway/static/root/assets/schemas-CCWMleym.js +55 -0
- package/dist/gateway/static/root/assets/search-DA7gz22f.js +1 -0
- package/dist/gateway/static/root/assets/secret-input-BQvFXqzz.js +1 -0
- package/dist/gateway/static/root/assets/secret-input-labels-B5Jl5HqK.js +1 -0
- package/dist/gateway/static/root/assets/segmented-styles-Cqb91xsn.js +1 -0
- package/dist/gateway/static/root/assets/send-1f1Ntw6E.js +1 -0
- package/dist/gateway/static/root/assets/server-BlHCBjiE.js +1 -0
- package/dist/gateway/static/root/assets/service-recommendation-list-B1xuVT3N.js +1 -0
- package/dist/gateway/static/root/assets/{session-api-DdQnMwkl.js → session-api-CsCoI2im.js} +1 -1
- package/dist/gateway/static/root/assets/session-channel-icon-SsY70Z6t.js +1 -0
- package/dist/gateway/static/root/assets/session-identity-label-B7sgG1PE.js +1 -0
- package/dist/gateway/static/root/assets/session-manager-5l9q0cd5.js +16 -0
- package/dist/gateway/static/root/assets/sessions-page-DsLw2aMD.js +1 -0
- package/dist/gateway/static/root/assets/settings-2-D-csvaET.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-B5lQeVNi.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-section-BqoVSko2.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-draft-Dy10ldo8.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-section-num14vSv.js +1 -0
- package/dist/gateway/static/root/assets/settings-loading-skeleton-BTqvr_Fw.js +1 -0
- package/dist/gateway/static/root/assets/settings-mode-store-CBsJ-Qg2.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-DROUGyJl.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-header-Bv-kQFTm.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-layout-DHP6MrrL.js +1 -0
- package/dist/gateway/static/root/assets/settings-uiTATseT.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-MJE3B_LX.js +1 -0
- package/dist/gateway/static/root/assets/share-link-dialog-BJHRQVKC.js +1 -0
- package/dist/gateway/static/root/assets/share-preview-page-Bsrv_zOQ.js +2 -0
- package/dist/gateway/static/root/assets/shares-api-rtWVHA_d.js +1 -0
- package/dist/gateway/static/root/assets/shares-settings-CfIRv4uX.js +1 -0
- package/dist/gateway/static/root/assets/shield-B1sI_cxl.js +1 -0
- package/dist/gateway/static/root/assets/shield-check-BU58siTV.js +1 -0
- package/dist/gateway/static/root/assets/shield-off-2jsucUds.js +1 -0
- package/dist/gateway/static/root/assets/side-chat-shortcut-BIw-1TTD.js +1 -0
- package/dist/gateway/static/root/assets/skill-api-B_W1K3sv.js +1 -0
- package/dist/gateway/static/root/assets/skill-api-utils-C7V4JVXM.js +1 -0
- package/dist/gateway/static/root/assets/skill-list-api-BzlKXPsE.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-Cff2GgZb.js +1 -0
- package/dist/gateway/static/root/assets/skill-wire-pattern-BPpeIcCi.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-DtBloYeU.js +2 -0
- package/dist/gateway/static/root/assets/sliders-horizontal-DqsYor6I.js +1 -0
- package/dist/gateway/static/root/assets/sliding-tab-list-DuQyViqe.js +1 -0
- package/dist/gateway/static/root/assets/smartphone-DSSsQFqA.js +1 -0
- package/dist/gateway/static/root/assets/{source-workspace-editor-BIvi89Zx.js → source-workspace-editor-kxosllTu.js} +1 -1
- package/dist/gateway/static/root/assets/sparkles-DHlfQFAF.js +1 -0
- package/dist/gateway/static/root/assets/specialists-xbB3xL9e.js +1 -0
- package/dist/gateway/static/root/assets/square-DMK_fB-3.js +1 -0
- package/dist/gateway/static/root/assets/square-pen-B8FsvqNu.js +1 -0
- package/dist/gateway/static/root/assets/square-terminal-K87bylpZ.js +1 -0
- package/dist/gateway/static/root/assets/star-BUWJqJ5c.js +1 -0
- package/dist/gateway/static/root/assets/stethoscope-DRqTAtjD.js +1 -0
- package/dist/gateway/static/root/assets/sticky-note-fzP7NAJq.js +1 -0
- package/dist/gateway/static/root/assets/store-SzD1Jvgm.js +1 -0
- package/dist/gateway/static/root/assets/system-settings-panel-BeQeUUMH.js +1 -0
- package/dist/gateway/static/root/assets/task-detail-page-Drrv-Hp0.js +2 -0
- package/dist/gateway/static/root/assets/task-result-evidence-D1Kyskm_.js +1 -0
- package/dist/gateway/static/root/assets/tasks-DRmd6sWt.js +1 -0
- package/dist/gateway/static/root/assets/terminal-oKqqZdiG.js +1 -0
- package/dist/gateway/static/root/assets/terminal-panel-store-5Fzctajw.js +1 -0
- package/dist/gateway/static/root/assets/theme-store-DW45fWYQ.js +1 -0
- package/dist/gateway/static/root/assets/timer-rCwGHjuO.js +1 -0
- package/dist/gateway/static/root/assets/tool-friendly-title-DGmi7rCQ.js +1 -0
- package/dist/gateway/static/root/assets/tracing-settings-page-B12u5D9A.js +1 -0
- package/dist/gateway/static/root/assets/trash-2-DusmjVPV.js +1 -0
- package/dist/gateway/static/root/assets/triangle-alert-2JXFNNKU.js +1 -0
- package/dist/gateway/static/root/assets/tunnel-api-DGO56LQU.js +1 -0
- package/dist/gateway/static/root/assets/understanding-activity-store-CTe6TFB0.js +1 -0
- package/dist/gateway/static/root/assets/understanding-refresh-store-mE9OKG6q.js +1 -0
- package/dist/gateway/static/root/assets/unlink-BEuthaaq.js +1 -0
- package/dist/gateway/static/root/assets/upload-rrb46c3c.js +1 -0
- package/dist/gateway/static/root/assets/usage-page-Ud2U9UG1.js +1 -0
- package/dist/gateway/static/root/assets/use-async-resource-BHFGZCY2.js +1 -0
- package/dist/gateway/static/root/assets/use-autosave-Cs2Ga_Y_.js +1 -0
- package/dist/gateway/static/root/assets/use-composer-attachments-BCbMj-MN.js +2 -0
- package/dist/gateway/static/root/assets/use-directory-picker-C4p7AgWY.js +1 -0
- package/dist/gateway/static/root/assets/use-file-preview-expanded-DSpCRXUW.js +2 -0
- package/dist/gateway/static/root/assets/use-media-query-ady-FgjK.js +1 -0
- package/dist/gateway/static/root/assets/use-personal-profile-BHL2AxWU.js +1 -0
- package/dist/gateway/static/root/assets/use-workspace-tree-CnmPZrpx.js +1 -0
- package/dist/gateway/static/root/assets/user-model-page-p5iPfnwl.js +2 -0
- package/dist/gateway/static/root/assets/user-round-C9jxPhMR.js +1 -0
- package/dist/gateway/static/root/assets/{vendor-codemirror-Qdcjid65.js → vendor-codemirror-aCQ0FcJT.js} +8 -8
- package/dist/gateway/static/root/assets/{vendor-swr-BIWyz7Rc.js → vendor-swr-CdRzEUwF.js} +1 -1
- package/dist/gateway/static/root/assets/video-B6V0GFss.js +1 -0
- package/dist/gateway/static/root/assets/voice-api-key-field-3gyc2UV3.js +1 -0
- package/dist/gateway/static/root/assets/voice-call-context-BM2A4bLz.js +1 -0
- package/dist/gateway/static/root/assets/{voice-config-api-BkUlN7GH.js → voice-config-api-Cda2uBIC.js} +1 -1
- package/dist/gateway/static/root/assets/voice-input-shortcut-events-DtYHsPLF.js +1 -0
- package/dist/gateway/static/root/assets/voice-transcribe-api-TInEfIYo.js +1 -0
- package/dist/gateway/static/root/assets/volume-2-BSJhAY97.js +1 -0
- package/dist/gateway/static/root/assets/wand-sparkles-CkSL-3Fy.js +1 -0
- package/dist/gateway/static/root/assets/{with-selector-aYPsXwdl.js → with-selector-xonYxPoM.js} +1 -1
- package/dist/gateway/static/root/assets/work-discovery-overlay-Dqu5CQCS.js +1 -0
- package/dist/gateway/static/root/assets/work-discovery-page-p-8ciZ0i.js +1 -0
- package/dist/gateway/static/root/assets/working-directory-picker-modal-DHl2cZY1.js +1 -0
- package/dist/gateway/static/root/assets/workspace-api-CtDbI6T7.js +2 -0
- package/dist/gateway/static/root/assets/workspace-editor-agent-store-B94Q2nN8.js +1 -0
- package/dist/gateway/static/root/assets/workspace-file-preview-dialog-CTIbUfKb.js +1 -0
- package/dist/gateway/static/root/assets/workspace-open-location-menu-BwxouqdZ.js +1 -0
- package/dist/gateway/static/root/assets/wrench-DFb4r8bH.js +1 -0
- package/dist/gateway/static/root/assets/x-B_N4OPjy.js +1 -0
- package/dist/gateway/static/root/assets/{xlsx-CKkngM-o.js → xlsx-Cl_0CZaL.js} +11 -11
- package/dist/gateway/static/root/assets/xml-_d7dTN2Q.js +3 -0
- package/dist/gateway/static/root/assets/xopc-cloud-account-card-CFb-23rS.js +1 -0
- package/dist/gateway/static/root/assets/zap-dximCGjy.js +1 -0
- package/dist/gateway/static/root/browser-setup-test.html +5 -0
- package/dist/gateway/static/root/browser-setup-test.js +7 -0
- package/dist/gateway/static/root/index.html +267 -46
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/browser-setup.js +6 -0
- package/dist/packages/gateway-contract/src/index.js +4 -0
- package/dist/packages/gateway-contract/src/phone-setup.js +6 -0
- package/dist/packages/realtime-client/src/index.js +1 -0
- package/dist/packages/realtime-protocol/src/index.js +1 -0
- package/dist/src/activity/emitter.js +1 -2
- package/dist/src/activity/service.js +1 -2
- package/dist/src/agent/agent-manager.d.ts +5 -0
- package/dist/src/agent/agent-manager.js +16 -6
- package/dist/src/agent/background-review/run-background-review.js +2 -3
- package/dist/src/agent/context/execution-context.js +1 -2
- package/dist/src/agent/context/execution-scope.js +1 -2
- package/dist/src/agent/context/project-context.js +1 -2
- package/dist/src/agent/embedded/agent-profile-context.js +1 -2
- package/dist/src/agent/embedded/run-turn.js +2 -4
- package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js +1 -2
- package/dist/src/agent/embedded/tool-search-extension.js +14 -1
- package/dist/src/agent/external-tools/cliProvider.js +3 -4
- package/dist/src/agent/external-tools/composio-provider.js +3 -4
- package/dist/src/agent/external-tools/endpoint-provider.js +2 -2
- package/dist/src/agent/memory/compaction-promotion.js +1 -2
- package/dist/src/agent/orchestration/research-checkpoint.js +26 -31
- package/dist/src/agent/prompt/response-language.js +1 -2
- package/dist/src/agent/prompt/service-prompt-builder.js +3 -6
- package/dist/src/agent/prompt/system-prompt.js +1 -2
- package/dist/src/agent/service/direct-turn-helpers.js +1 -2
- package/dist/src/agent/service/process-direct-streaming.js +1 -2
- package/dist/src/agent/service/webchat-tts.js +1 -2
- package/dist/src/agent/service.d.ts +1 -0
- package/dist/src/agent/service.js +8 -3
- package/dist/src/agent/service.types.d.ts +3 -0
- package/dist/src/agent/skills/index.js +1 -1
- package/dist/src/agent/skills/managed-store.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/tool-manuals/computer.d.ts +1 -1
- package/dist/src/agent/tool-manuals/computer.js +2 -0
- package/dist/src/agent/tool-manuals/phone.d.ts +1 -1
- package/dist/src/agent/tool-manuals/phone.js +14 -4
- package/dist/src/agent/tool-manuals/xopc-configuration.d.ts +2 -0
- package/dist/src/agent/tool-manuals/xopc-configuration.js +29 -0
- package/dist/src/agent/tools/browser/tool/browser-use-tool.d.ts +2 -0
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js +6 -2
- package/dist/src/agent/tools/delegate-tool.js +2 -4
- package/dist/src/agent/tools/factory.d.ts +4 -0
- package/dist/src/agent/tools/factory.js +23 -9
- package/dist/src/agent/tools/personal-read-tool.js +1 -1
- package/dist/src/agent/tools/personal-task-tool.js +1 -2
- package/dist/src/agent/tools/phone-use-tool.d.ts +2 -0
- package/dist/src/agent/tools/phone-use-tool.js +79 -4
- package/dist/src/agent/tools/research-checkpoint-tool.js +1 -2
- package/dist/src/agent/tools/tool-manual-tool.d.ts +1 -1
- package/dist/src/agent/tools/tool-manual-tool.js +3 -1
- package/dist/src/agent/tools/toolExposure.js +3 -0
- package/dist/src/agent/tools/xopc-use-tool.d.ts +5 -2
- package/dist/src/agent/tools/xopc-use-tool.js +47 -6
- package/dist/src/agent-catalog/capabilities.js +2 -2
- package/dist/src/agent-catalog/repository.js +3 -4
- package/dist/src/agent-catalog/test-support.js +1 -2
- package/dist/src/agent-matching/selection-repository.js +1 -2
- package/dist/src/automations/capabilities/drafts.js +3 -5
- package/dist/src/bootstrap/application-state.js +1 -2
- package/dist/src/browser/automations/repository.js +1 -2
- package/dist/src/browser/drivers/browser-driver.d.ts +2 -2
- package/dist/src/browser/drivers/extension-driver.d.ts +2 -2
- package/dist/src/browser/drivers/extension-driver.js +6 -3
- package/dist/src/browser/native-messaging-host.js +2 -4
- package/dist/src/browser/providers/browser-ext-install.js +3 -2
- package/dist/src/browser/providers/realtime-extension.js +1 -2
- package/dist/src/browser/recordings/service.js +1 -2
- package/dist/src/browser/runtime/browser-runtime.d.ts +4 -1
- package/dist/src/browser/runtime/browser-runtime.js +29 -17
- package/dist/src/browser/setup/repository.d.ts +5 -0
- package/dist/src/browser/setup/repository.js +42 -0
- package/dist/src/browser/setup/service.d.ts +157 -0
- package/dist/src/browser/setup/service.js +433 -0
- package/dist/src/browser/setup/types.d.ts +38 -0
- package/dist/src/browser/setup/types.js +1 -0
- package/dist/src/capabilities/runtime/dispatcher.js +1 -1
- package/dist/src/capabilities/runtime/product.js +1 -1
- package/dist/src/chat-previews/store.js +1 -2
- package/dist/src/cli/commands/agents.js +1 -1
- package/dist/src/cli/commands/doctor/checks/automation-integrity.js +1 -2
- package/dist/src/cli/commands/doctor/checks/database-relations.js +1 -2
- package/dist/src/cli/commands/doctor/checks/database-schema.js +2 -3
- package/dist/src/cli/commands/doctor/checks/node-version.js +6 -6
- package/dist/src/cli/commands/doctor/checks/session-integrity.js +1 -2
- package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
- package/dist/src/cli/commands/gateway/shared.js +1 -2
- package/dist/src/cli/commands/history.js +1 -2
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard/model.js +1 -1
- package/dist/src/cli/commands/project.js +1 -2
- package/dist/src/cli/utils/init-workspace-core.js +1 -1
- package/dist/src/computer/diagnostics.d.ts +7 -7
- package/dist/src/computer/diagnostics.js +8 -2
- package/dist/src/computer/errors.js +9 -1
- package/dist/src/computer/evaluation.d.ts +4 -4
- package/dist/src/computer/keyboard.d.ts +1 -1
- package/dist/src/computer/keyboard.js +10 -2
- package/dist/src/computer/model-adapter.js +27 -7
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/gateway-bind.js +1 -2
- package/dist/src/config/schema.d.ts +7 -0
- package/dist/src/connectors/cli/lifecycle.js +1 -2
- package/dist/src/connectors/composio-managed-events.js +1 -2
- package/dist/src/connectors/connected-source-ingestion.js +1 -2
- package/dist/src/connectors/connected-source-understanding.js +3 -5
- package/dist/src/connectors/content-enrichment.js +1 -2
- package/dist/src/connectors/learning-coordinator.js +2 -3
- package/dist/src/connectors/runtime-adapter-registry.js +1 -2
- package/dist/src/daemon/constants.js +9 -14
- package/dist/src/daemon/index.js +1 -4
- package/dist/src/daemon/install-plan.js +1 -2
- package/dist/src/daemon/launchd.js +1 -2
- package/dist/src/daemon/schtasks.js +1 -2
- package/dist/src/daemon/service-audit.js +1 -2
- package/dist/src/daemon/service.js +1 -2
- package/dist/src/daemon/systemd.js +1 -2
- package/dist/src/discussions/analyzer.d.ts +3 -3
- package/dist/src/endpoint-tools/runtime.js +1 -2
- package/dist/src/execution-environments/local-worktree-manager.js +1 -1
- package/dist/src/execution-environments/subject.js +1 -2
- package/dist/src/extensions/agent-plugins/branding.js +2 -1
- package/dist/src/extensions/agent-plugins/cli-authorization.js +2 -1
- package/dist/src/extensions/agent-plugins/contained-path.d.ts +1 -0
- package/dist/src/extensions/agent-plugins/contained-path.js +29 -0
- package/dist/src/extensions/agent-plugins/mcp-adapter.js +2 -1
- package/dist/src/extensions/agent-plugins/resources.js +1 -1
- package/dist/src/extensions/agent-plugins/skill-catalog.js +3 -2
- package/dist/src/extensions/agent-plugins/source-catalog.js +1 -1
- package/dist/src/extensions/agent-plugins/store.js +2 -1
- package/dist/src/extensions/agent-plugins/validation.d.ts +1 -2
- package/dist/src/extensions/agent-plugins/validation.js +3 -26
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agents-admin.js +2 -2
- package/dist/src/gateway/client-ip.js +1 -2
- package/dist/src/gateway/file-space-service.js +1 -2
- package/dist/src/gateway/global-defaults-admin.js +1 -1
- package/dist/src/gateway/hono/app.js +2 -4
- package/dist/src/gateway/hono/middleware/auth.js +3 -6
- package/dist/src/gateway/hono/middleware/logger.js +1 -2
- package/dist/src/gateway/hono/middleware/public-device-rate-limit.js +1 -2
- package/dist/src/gateway/hono/middleware/scopes.js +1 -2
- package/dist/src/gateway/hono/middleware/strict-rate-limit.js +1 -2
- package/dist/src/gateway/hono/oauth-async.js +1 -2
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/browser-session.js +1 -2
- package/dist/src/gateway/hono/routes/browser-setup.d.ts +3 -0
- package/dist/src/gateway/hono/routes/browser-setup.js +114 -0
- package/dist/src/gateway/hono/routes/browser.d.ts +2 -1
- package/dist/src/gateway/hono/routes/browser.js +4 -7
- package/dist/src/gateway/hono/routes/cli-connectors.js +1 -2
- package/dist/src/gateway/hono/routes/composer-history.js +1 -2
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/config.js +1 -2
- package/dist/src/gateway/hono/routes/connectors.js +9 -11
- package/dist/src/gateway/hono/routes/context-sources.js +1 -2
- package/dist/src/gateway/hono/routes/device-pairing-approval.js +2 -4
- package/dist/src/gateway/hono/routes/device-push.js +1 -2
- package/dist/src/gateway/hono/routes/devices.js +4 -8
- package/dist/src/gateway/hono/routes/discussions.js +1 -2
- package/dist/src/gateway/hono/routes/endpoint-tools.js +1 -2
- package/dist/src/gateway/hono/routes/home.js +2 -3
- package/dist/src/gateway/hono/routes/interaction-state.js +1 -2
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/memory-learning.js +1 -2
- package/dist/src/gateway/hono/routes/notes.js +2 -2
- package/dist/src/gateway/hono/routes/personal-agent.js +1 -2
- package/dist/src/gateway/hono/routes/phone-dependencies.js +2 -7
- package/dist/src/gateway/hono/routes/phone-setup.d.ts +7 -0
- package/dist/src/gateway/hono/routes/phone-setup.js +231 -0
- package/dist/src/gateway/hono/routes/phone-wireless.d.ts +4 -0
- package/dist/src/gateway/hono/routes/phone-wireless.js +63 -0
- package/dist/src/gateway/hono/routes/phone.js +119 -28
- package/dist/src/gateway/hono/routes/projects.js +3 -4
- package/dist/src/gateway/hono/routes/public-gateway.js +4 -3
- package/dist/src/gateway/hono/routes/session-input-handler.js +1 -1
- package/dist/src/gateway/hono/routes/sessions.js +2 -4
- package/dist/src/gateway/hono/routes/shares.js +2 -4
- package/dist/src/gateway/hono/routes/tasks.js +2 -3
- package/dist/src/gateway/hono/routes/user-model-refresh.js +1 -2
- package/dist/src/gateway/hono/routes/user-model.js +1 -2
- package/dist/src/gateway/host.js +4 -9
- package/dist/src/gateway/image-generation-setup.js +1 -1
- package/dist/src/gateway/index.js +2 -6
- package/dist/src/gateway/listen.js +1 -2
- package/dist/src/gateway/next-turn-suggestions/service.js +1 -2
- package/dist/src/gateway/next-turn-suggestions/snapshot.js +1 -2
- package/dist/src/gateway/provider-model-setup.js +1 -1
- package/dist/src/gateway/rate-limit/auth-policy.js +11 -7
- package/dist/src/gateway/rate-limit/buckets.js +220 -211
- package/dist/src/gateway/rate-limit/env-flags.js +1 -4
- package/dist/src/gateway/rate-limit/index.js +4 -13
- package/dist/src/gateway/runtime-config.js +2 -4
- package/dist/src/gateway/security/audit.js +1 -2
- package/dist/src/gateway/security/browser-session.js +1 -2
- package/dist/src/gateway/security/device-request-proof.d.ts +1 -2
- package/dist/src/gateway/security/device-request-proof.js +2 -4
- package/dist/src/gateway/security/gateway-scopes.js +2 -6
- package/dist/src/gateway/security/index.js +1 -4
- package/dist/src/gateway/security/loopback.js +6 -7
- package/dist/src/gateway/service/agent-runner.js +2 -4
- package/dist/src/gateway/service/app-context-access.js +1 -2
- package/dist/src/gateway/service/config-coordinator.d.ts +4 -0
- package/dist/src/gateway/service/run-gateway-agent.js +2 -4
- package/dist/src/gateway/service/session-input-coordinator.js +3 -6
- package/dist/src/gateway/service.d.ts +5 -0
- package/dist/src/gateway/service.js +64 -22
- package/dist/src/gateway/session-context-summary.js +2 -4
- package/dist/src/gateway/tailscale-auth.js +1 -2
- package/dist/src/gateway/ws-security.js +1 -2
- package/dist/src/gateway/xopc-cloud-capability-setup.js +8 -2
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/imports/importService.js +1 -1
- package/dist/src/infra/rate-limit/failure-limiter.js +90 -78
- package/dist/src/infra/rate-limit/index.js +3 -11
- package/dist/src/infra/rate-limit/keyed-store.js +47 -52
- package/dist/src/infra/rate-limit/rate-limiter.js +58 -55
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/infra/update-service-refresh.js +1 -2
- package/dist/src/knowledge/chunks.js +1 -4
- package/dist/src/knowledge/connected-knowledge-pipeline.js +3 -6
- package/dist/src/knowledge/ingestion-service.js +1 -2
- package/dist/src/knowledge-memory/repository.js +1 -2
- package/dist/src/local-apps/service.js +1 -1
- package/dist/src/local-apps/store.js +1 -2
- package/dist/src/media/session-references.js +1 -2
- package/dist/src/memory-learning/forget-capture.js +1 -2
- package/dist/src/memory-learning/forgotten-history.js +3 -6
- package/dist/src/memory-learning/service.js +1 -2
- package/dist/src/memory-learning/source-learning.js +3 -3
- package/dist/src/memory-learning/task-receipts.js +1 -2
- package/dist/src/memory-learning/work-candidate.d.ts +29 -0
- package/dist/src/memory-learning/work-candidate.js +31 -0
- package/dist/src/memory-learning/work-capture.d.ts +2 -29
- package/dist/src/memory-learning/work-capture.js +2 -30
- package/dist/src/memory-maintenance/service.js +1 -2
- package/dist/src/notes/agent-context.js +1 -2
- package/dist/src/notes/attachment-ref.js +4 -8
- package/dist/src/notes/note-attachment-sync.js +1 -2
- package/dist/src/notes/note-index-meta.js +7 -14
- package/dist/src/notes/note-markdown.js +7 -13
- package/dist/src/notes/service.js +3 -6
- package/dist/src/notes/store.js +2 -4
- package/dist/src/notifications/clarification.js +1 -2
- package/dist/src/notifications/service.js +1 -2
- package/dist/src/personal-agent/proactivity/repository.js +1 -2
- package/dist/src/personal-agent/proactivity/service.js +1 -2
- package/dist/src/personal-agent/prompt-context.js +1 -2
- package/dist/src/personal-agent/reply-composer.js +4 -5
- package/dist/src/personal-agent/repository.js +1 -2
- package/dist/src/personal-agent/request-delivery.js +1 -2
- package/dist/src/personal-agent/result-extraction.js +71 -71
- package/dist/src/personal-agent/service.js +2 -3
- package/dist/src/phone/adb-command.d.ts +1 -0
- package/dist/src/phone/adb-command.js +12 -0
- package/dist/src/phone/adb-driver.d.ts +6 -2
- package/dist/src/phone/adb-driver.js +45 -21
- package/dist/src/phone/cloud-adb-connection.d.ts +34 -0
- package/dist/src/phone/cloud-adb-connection.js +324 -0
- package/dist/src/phone/cloud-adb-writable.d.ts +3 -0
- package/dist/src/phone/cloud-adb-writable.js +21 -0
- package/dist/src/phone/cloud-adb.d.ts +3 -32
- package/dist/src/phone/cloud-adb.js +3 -259
- package/dist/src/phone/cloud-key-permissions.d.ts +2 -0
- package/dist/src/phone/cloud-key-permissions.js +66 -0
- package/dist/src/phone/cloud-phones.js +2 -1
- package/dist/src/phone/cloud-scrcpy.d.ts +1 -1
- package/dist/src/phone/cloud-scrcpy.js +3 -2
- package/dist/src/phone/contracts.d.ts +197 -1
- package/dist/src/phone/contracts.js +55 -6
- package/dist/src/phone/foreground.d.ts +1 -0
- package/dist/src/phone/foreground.js +18 -0
- package/dist/src/phone/live-state.d.ts +2 -0
- package/dist/src/phone/live-state.js +5 -0
- package/dist/src/phone/model-adapter.d.ts +65 -4
- package/dist/src/phone/model-adapter.js +157 -48
- package/dist/src/phone/numeric-entry.d.ts +31 -0
- package/dist/src/phone/numeric-entry.js +126 -0
- package/dist/src/phone/planning.d.ts +27 -0
- package/dist/src/phone/planning.js +79 -0
- package/dist/src/phone/recovery.d.ts +37 -0
- package/dist/src/phone/recovery.js +81 -0
- package/dist/src/phone/reliability.d.ts +2 -2
- package/dist/src/phone/reliability.js +19 -6
- package/dist/src/phone/repository.d.ts +4 -1
- package/dist/src/phone/repository.js +12 -1
- package/dist/src/phone/runtime.d.ts +79 -3
- package/dist/src/phone/runtime.js +861 -93
- package/dist/src/phone/scrcpy.js +3 -2
- package/dist/src/phone/semantic-controls.d.ts +13 -0
- package/dist/src/phone/semantic-controls.js +76 -0
- package/dist/src/phone/setup/service.d.ts +101 -0
- package/dist/src/phone/setup/service.js +296 -0
- package/dist/src/phone/task-feedback.d.ts +4 -0
- package/dist/src/phone/task-feedback.js +47 -0
- package/dist/src/phone/ui-dump-binary.d.ts +1 -0
- package/dist/src/phone/ui-dump-binary.js +4 -0
- package/dist/src/phone/wireless.d.ts +80 -0
- package/dist/src/phone/wireless.js +244 -0
- package/dist/src/projects/capabilities/write.js +1 -2
- package/dist/src/projects/project-service.js +1 -2
- package/dist/src/projects/workspace.js +1 -2
- package/dist/src/providers/presentation.js +2 -2
- package/dist/src/providers/xopc-cloud-model-source.js +6 -2
- package/dist/src/realtime/runtime.d.ts +3 -0
- package/dist/src/realtime/runtime.js +16 -3
- package/dist/src/remote-access/exposure-guards.js +1 -2
- package/dist/src/runtime-tools/archive.js +1 -1
- package/dist/src/runtime-tools/catalog.d.ts +1 -1
- package/dist/src/runtime-tools/catalog.js +2 -2
- package/dist/src/session/config-store.js +1 -2
- package/dist/src/session/init-session-turn.js +1 -2
- package/dist/src/session/resolve-session.js +1 -2
- package/dist/src/session/store.js +2 -4
- package/dist/src/share/share-rate-limit.js +1 -2
- package/dist/src/share/share-url.js +1 -2
- package/dist/src/share/site-share-router.js +1 -2
- package/dist/src/storage/sqlite/activity-repository.js +2 -6
- package/dist/src/storage/sqlite/browser-tab-binding-repository.js +2 -6
- package/dist/src/storage/sqlite/clarification-wait-repository.js +9 -14
- package/dist/src/storage/sqlite/collaboration-rule-repository.js +3 -8
- package/dist/src/storage/sqlite/composer-input-history-repository.js +3 -8
- package/dist/src/storage/sqlite/config-repository.js +5 -9
- package/dist/src/storage/sqlite/connector-learning-repository.js +2 -6
- package/dist/src/storage/sqlite/connector-sync-policy-repository.js +2 -6
- package/dist/src/storage/sqlite/context-evidence-repository.js +3 -8
- package/dist/src/storage/sqlite/context-extraction-repository.js +3 -8
- package/dist/src/storage/sqlite/device-access-repository.js +16 -23
- package/dist/src/storage/sqlite/device-pairing-approval.js +2 -6
- package/dist/src/storage/sqlite/device-pairing-repository.js +5 -10
- package/dist/src/storage/sqlite/endpoint-principal-repository.js +2 -6
- package/dist/src/storage/sqlite/endpoint-session-binding-repository.js +2 -6
- package/dist/src/storage/sqlite/endpoint-tool-invocation-repository.js +2 -6
- package/dist/src/storage/sqlite/gateway-identity-repository.js +2 -6
- package/dist/src/storage/sqlite/home-attention-repository.js +2 -6
- package/dist/src/storage/sqlite/index.js +40 -72
- package/dist/src/storage/sqlite/interaction-state-repository.js +4 -10
- package/dist/src/storage/sqlite/knowledge-repository.js +3 -8
- package/dist/src/storage/sqlite/note-agent-context-repository.js +2 -6
- package/dist/src/storage/sqlite/notes-repository.js +4 -9
- package/dist/src/storage/sqlite/research-checkpoint-repository.js +3 -8
- package/dist/src/storage/sqlite/schema.d.ts +2 -2
- package/dist/src/storage/sqlite/schema.js +7 -7
- package/dist/src/storage/sqlite/schema.sql +10 -0
- package/dist/src/storage/sqlite/session-creation-repository.js +2 -4
- package/dist/src/storage/sqlite/session-task-plan-repository.js +9 -14
- package/dist/src/storage/sqlite/session-turn-replace-repository.js +5 -9
- package/dist/src/storage/sqlite/sidebar-layout-repository.js +9 -14
- package/dist/src/storage/sqlite/transcript-repository.js +6 -10
- package/dist/src/storage/sqlite/upgrades/260_browser_setup.sql +9 -0
- package/dist/src/storage/sqlite/user-people-repository.js +3 -8
- package/dist/src/storage/sqlite/user-trust-repository.js +4 -9
- package/dist/src/tasks/capabilities/read.js +2 -2
- package/dist/src/tasks/capabilities/write.js +1 -1
- package/dist/src/tasks/execution-context.js +1 -2
- package/dist/src/tasks/home-query-service.js +1 -2
- package/dist/src/tasks/task-allocation-repository.js +1 -2
- package/dist/src/tasks/task-context-assembler.js +1 -2
- package/dist/src/tasks/task-handoff.js +2 -4
- package/dist/src/tasks/task-instruction-sequence.d.ts +1 -0
- package/dist/src/tasks/task-instruction-sequence.js +7 -0
- package/dist/src/tasks/task-language.js +1 -2
- package/dist/src/tasks/task-research-result.d.ts +1 -2
- package/dist/src/tasks/task-research-result.js +1 -3
- package/dist/src/tasks/task-result-delivery-repository.js +1 -1
- package/dist/src/tasks/task-result-delivery-service.js +3 -3
- package/dist/src/tasks/task-run-coordinator.js +3 -3
- package/dist/src/tasks/task-run-dispatcher.js +1 -2
- package/dist/src/tasks/task-value-metrics-service.js +1 -2
- package/dist/src/tui/backends/embedded-backend.js +2 -3
- package/dist/src/tui/tui-commands.js +1 -2
- package/dist/src/tunnel/registration-proof.js +1 -2
- package/dist/src/tunnel/tunnel-rate-limit.js +1 -2
- package/dist/src/user-context/access-policy.js +1 -2
- package/dist/src/user-context/domain.js +13 -18
- package/dist/src/user-context/extraction/registry.js +1 -2
- package/dist/src/user-context/interaction-state.js +1 -4
- package/dist/src/user-context/relationship-continuity.js +1 -2
- package/dist/src/user-context/sources/consent-repository.js +1 -2
- package/dist/src/user-context/sources/index.js +1 -1
- package/dist/src/user-context/trust-policy.js +8 -13
- package/dist/src/user-model/action-rule-suggestions.js +1 -2
- package/dist/src/user-model/bootstrap.js +1 -2
- package/dist/src/user-model/capture/executor.js +2 -4
- package/dist/src/user-model/capture/semantic.d.ts +1 -1
- package/dist/src/user-model/capture/semantic.js +1 -1
- package/dist/src/user-model/domain.js +30 -35
- package/dist/src/user-model/goals.js +1 -2
- package/dist/src/user-model/index.js +1 -4
- package/dist/src/user-model/observation-repository.js +1 -2
- package/dist/src/user-model/repository.js +1 -2
- package/dist/src/user-model/usage-policy.js +1 -2
- package/dist/src/voice/realtime/memory-context.js +1 -2
- package/dist/src/voice/realtime/persona-context.js +1 -1
- package/dist/src/work-discovery/service.js +4 -6
- package/package.json +8 -8
- package/skills/tools/configure-xopc/SKILL.md +54 -0
- package/skills/tools/configure-xopc/references/browser/acceptance.md +32 -0
- package/skills/tools/configure-xopc/references/browser/chrome-extension.md +23 -0
- package/skills/tools/configure-xopc/references/browser/overview.md +19 -0
- package/skills/tools/configure-xopc/references/browser/permissions.md +23 -0
- package/skills/tools/configure-xopc/references/browser/troubleshooting.md +24 -0
- package/skills/tools/configure-xopc/references/phone/acceptance.md +27 -0
- package/skills/tools/configure-xopc/references/phone/aliyun.md +29 -0
- package/skills/tools/configure-xopc/references/phone/dependencies.md +18 -0
- package/skills/tools/configure-xopc/references/phone/local.md +19 -0
- package/skills/tools/configure-xopc/references/phone/models.md +21 -0
- package/skills/tools/configure-xopc/references/phone/overview.md +25 -0
- package/skills/tools/configure-xopc/references/phone/troubleshooting.md +27 -0
- package/skills/tools/configure-xopc/references/scene-index.md +12 -0
- package/dist/gateway/static/root/assets/agent-avatar-dicebear-CJFwitU2.js +0 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DclyJr1N.js +0 -1
- package/dist/gateway/static/root/assets/agents-jhErNtzi.js +0 -77
- package/dist/gateway/static/root/assets/app-management-settings-panel-DgwqNi5i.js +0 -1
- package/dist/gateway/static/root/assets/appearance-settings-C0wJfFyz.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-C0LcnI4h.js +0 -1
- package/dist/gateway/static/root/assets/automation-display-BFN7zWBg.js +0 -2
- package/dist/gateway/static/root/assets/automations-workspace-CBxiV34x.js +0 -8
- package/dist/gateway/static/root/assets/browser-automations-page-vJIrTxdi.js +0 -3
- package/dist/gateway/static/root/assets/browser-settings-page-in5Roh_E.js +0 -3
- package/dist/gateway/static/root/assets/capabilities-BlxF36t-.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-page-CiGx8wpQ.js +0 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-a8kqjzQu.js +0 -8
- package/dist/gateway/static/root/assets/capability-header-actions-D4Yq35fD.js +0 -1
- package/dist/gateway/static/root/assets/channels-C_CxcjKT.js +0 -1
- package/dist/gateway/static/root/assets/chat-terminal-dock-zdMySdMm.js +0 -36
- package/dist/gateway/static/root/assets/chunk-KS7C4IRE-BvcCCgTW.js +0 -4
- package/dist/gateway/static/root/assets/cloud-credits-BMYMiiNn.js +0 -1
- package/dist/gateway/static/root/assets/computer-settings-page-C5Z6Jr0p.js +0 -1
- package/dist/gateway/static/root/assets/connector-service-page-Cxus0qrZ.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-DCBO2CxK.js +0 -1
- package/dist/gateway/static/root/assets/constants-DeXt1mV-.js +0 -1
- package/dist/gateway/static/root/assets/date-picker-DuyyD6jz.js +0 -1
- package/dist/gateway/static/root/assets/dependency-picker-BZN72rrk.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-BtvTIDCi.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-BcyP7Z6v.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-Ctbgr50F.js +0 -1
- package/dist/gateway/static/root/assets/directory-picker-path-field-DOusKz-O.js +0 -1
- package/dist/gateway/static/root/assets/dist-C3DSFZCi.js +0 -1
- package/dist/gateway/static/root/assets/dist-CI_fqRk-.js +0 -1
- package/dist/gateway/static/root/assets/docx-preview-CajIk2FR.js +0 -20
- package/dist/gateway/static/root/assets/echarts-runtime-tcHc9TOS.js +0 -18
- package/dist/gateway/static/root/assets/electron-env-Dit0bHgy.js +0 -1
- package/dist/gateway/static/root/assets/extension-debug-page-Bt4FwsFu.js +0 -1
- package/dist/gateway/static/root/assets/extension-page-0vsxX3FB.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-5Pt5_ELc.js +0 -1
- package/dist/gateway/static/root/assets/files-Bw4SBGdM.js +0 -1
- package/dist/gateway/static/root/assets/floating-ui.dom-B7uQOZZW.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-DkWCHVzI.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-Bx9KCID-.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-BsVOcmV5.js +0 -1
- package/dist/gateway/static/root/assets/highlight-code-C8eS9949.js +0 -1
- package/dist/gateway/static/root/assets/highlighted-body-KQOG7T2V-Cbk7eMlg.js +0 -1
- package/dist/gateway/static/root/assets/home-page-BZDZnmyc.js +0 -2
- package/dist/gateway/static/root/assets/image-generation-api-CAS8QVla.js +0 -1
- package/dist/gateway/static/root/assets/imports-page-BCLBYzV1.js +0 -1
- package/dist/gateway/static/root/assets/index-Bys6njTY.js +0 -710
- package/dist/gateway/static/root/assets/index-Vsf0bj5e.css +0 -1
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-CM_kt5XN.js +0 -1
- package/dist/gateway/static/root/assets/languages-byq_L2Ae.js +0 -2
- package/dist/gateway/static/root/assets/local-app-workbench-page-Dk87jtcc.js +0 -1
- package/dist/gateway/static/root/assets/local-apps-page-BTSOChhk.js +0 -1
- package/dist/gateway/static/root/assets/local-apps-yys1VChX.js +0 -1
- package/dist/gateway/static/root/assets/local-session-drafts-iGX_6O0O.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-D3gVdm8S.js +0 -2
- package/dist/gateway/static/root/assets/management-settings-BQNYFE4J.js +0 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-ChweJKTv.js +0 -1
- package/dist/gateway/static/root/assets/note-detail-panel-CYKwUCte.js +0 -5
- package/dist/gateway/static/root/assets/note-image-lightbox-BTSZb9ZT.js +0 -1
- package/dist/gateway/static/root/assets/notes-page-CJ5nhWfL.js +0 -8
- package/dist/gateway/static/root/assets/number-input-DDeqHK-G.js +0 -1
- package/dist/gateway/static/root/assets/page-context-capture-button-DVn_dU83.js +0 -1
- package/dist/gateway/static/root/assets/pdf-runtime-DU_sMPjG.js +0 -2
- package/dist/gateway/static/root/assets/personal-page-DcW14lqn.js +0 -1
- package/dist/gateway/static/root/assets/personal-proactivity-BJcZ3Yhi.js +0 -1
- package/dist/gateway/static/root/assets/personal-settings-panel-C16Iqe7X.js +0 -1
- package/dist/gateway/static/root/assets/phone-dependencies-card-D3l9uPFM.js +0 -1
- package/dist/gateway/static/root/assets/phone-model-picker-DOv38vBn.js +0 -1
- package/dist/gateway/static/root/assets/phone-settings-page-DUHp1q_9.js +0 -1
- package/dist/gateway/static/root/assets/plugin-details-dialog-BpfgDlVa.js +0 -1
- package/dist/gateway/static/root/assets/popover-select-DGKUpVsz.js +0 -1
- package/dist/gateway/static/root/assets/preload-helper-zJ_50EbN.js +0 -1
- package/dist/gateway/static/root/assets/preview-open-alternatives-RlHk76TI.js +0 -1
- package/dist/gateway/static/root/assets/product-delivery-BqNm-8S5.js +0 -1
- package/dist/gateway/static/root/assets/product-open-page-Dh-HqLrE.js +0 -1
- package/dist/gateway/static/root/assets/product-preview-content-c3K-4DWc.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-GD8TxKad.js +0 -7
- package/dist/gateway/static/root/assets/projects-page-B8HAt9sD.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-D3el7lHK.js +0 -1
- package/dist/gateway/static/root/assets/runtime-tools-settings-panel-Dbskk6RG.js +0 -1
- package/dist/gateway/static/root/assets/schema-form-CXO1B1k4.js +0 -1
- package/dist/gateway/static/root/assets/schemas-CObaziC7.js +0 -64
- package/dist/gateway/static/root/assets/session-manager-CA1NkTR_.js +0 -16
- package/dist/gateway/static/root/assets/sessions-page-07liaSHH.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-BGjU8rfN.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-BQxKmbbJ.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-DvVMpKiA.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-header-CYpuTXUW.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-layout-B20AfmFG.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-DKo_VTx-.js +0 -1
- package/dist/gateway/static/root/assets/share-preview-page-XgZk8Oa1.js +0 -2
- package/dist/gateway/static/root/assets/shares-settings-BODFqK8k.js +0 -1
- package/dist/gateway/static/root/assets/skill-api-CV-WT2hj.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-Ce6OUk2C.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-B7ehOIML.js +0 -2
- package/dist/gateway/static/root/assets/specialists-4bkS5rZ4.js +0 -1
- package/dist/gateway/static/root/assets/system-settings-panel-CxJkZRT4.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-CxRR0QuW.js +0 -2
- package/dist/gateway/static/root/assets/task-result-evidence-D-gGKNX9.js +0 -1
- package/dist/gateway/static/root/assets/tasks-TVRjEggr.js +0 -1
- package/dist/gateway/static/root/assets/tracing-settings-page-CQw3G-FB.js +0 -1
- package/dist/gateway/static/root/assets/tunnel-api-B2HnCi0U.js +0 -1
- package/dist/gateway/static/root/assets/usage-page-uUEkO38r.js +0 -1
- package/dist/gateway/static/root/assets/use-autosave-Dc0nwUpX.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-ICUutbKL.js +0 -2
- package/dist/gateway/static/root/assets/voice-api-key-field-BSWXZkGa.js +0 -1
- package/dist/gateway/static/root/assets/work-discovery-overlay-H3cdwq3l.js +0 -1
- package/dist/gateway/static/root/assets/xopc-cloud-account-card-CvT_W6YS.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,d as t,g as n,i as r,l as i,p as a,r as o,s,t as c,u as l}from"./schemas-CObaziC7.js";import{n as u}from"./specialists-4bkS5rZ4.js";var d=c([`backlog`,`ready`,`active`,`review`,`closed`]),f=c([`done`,`cancelled`,`duplicate`,`wont_do`]),p=c([`allocating`,`idle`,`queued`,`running`,`waiting`,`verifying`,`blocked`,`failed`,`cancelled`]),m=c([`dependency`,`user_input`,`approval`,`external_event`,`scheduled_time`,`retry_backoff`,`paused`]),h=c([`active`,`resolved`,`cancelled`]),g=l({id:a(),taskId:a(),taskRunId:a().optional(),kind:m,status:h,reason:a(),condition:t(a(),n()),resumeAt:i().int().nonnegative().optional(),resolvedBy:t(a(),n()).optional(),resolution:n().optional(),createdAt:i().int().nonnegative(),resolvedAt:i().int().nonnegative().optional()}),_=l({kind:c([`allocation_blocked`,`allocation_failed`,`input_required`,`approval_required`,`dependency_blocked`,`run_failed`,`verification_failed`,`overdue`,`stale`]),summary:a(),sourceId:a().optional()}),v=c([`agent`,`human`,`external`]),y=c([`queued`,`running`,`waiting`,`verifying`,`succeeded`,`failed`,`cancelled`]),b=new Set([`succeeded`,`failed`,`cancelled`]),x=l({id:a(),taskId:a(),rootRunId:a(),parentRunId:a().optional(),attempt:i().int().positive(),status:y,executorKind:v,executorRef:t(a(),n()),trigger:t(a(),n()),correlationId:a(),causationId:a().optional(),idempotencyKey:a(),contractVersion:i().int().positive(),contextSnapshotId:a().optional(),policySnapshot:t(a(),n()).optional(),conversationId:a().optional(),queuedAt:i().int().nonnegative(),scheduledAt:i().int().nonnegative().optional(),startedAt:i().int().nonnegative().optional(),heartbeatAt:i().int().nonnegative().optional(),completedAt:i().int().nonnegative().optional(),timeoutAt:i().int().nonnegative().optional(),leaseOwner:a().optional(),leaseExpiresAt:i().int().nonnegative().optional(),retryPolicy:t(a(),n()),retryOfRunId:a().optional(),terminalCode:a().optional(),terminalMessage:a().optional(),version:i().int().positive()}).superRefine((e,t)=>{!e.parentRunId&&e.rootRunId!==e.id&&t.addIssue({code:`custom`,path:[`rootRunId`],message:`A root run must reference itself`}),(e.startedAt!==void 0||[`running`,`verifying`,`succeeded`].includes(e.status))&&(!e.contextSnapshotId||!e.policySnapshot)&&t.addIssue({code:`custom`,path:[`contextSnapshotId`],message:`A dispatched run requires context and policy snapshots`}),b.has(e.status)!==!!e.completedAt&&t.addIssue({code:`custom`,path:[`completedAt`],message:`Only terminal runs have a completion timestamp`})}),S=l({id:a(),runId:a(),sequence:i().int().positive(),type:a(),payload:t(a(),n()),actor:t(a(),n()),occurredAt:i().int().nonnegative()}),C=l({id:a(),taskId:a(),status:c([`pending`,`selecting`,`assigned`,`blocked`,`failed`,`cancelled`]),selectedAgentId:a().optional(),selectionReason:a().optional(),reasonCode:a().optional(),attempts:i(),updatedAt:i()}),w=c([`low`,`normal`,`high`,`critical`]),T=c([`title`,`body`,`phase`,`resolution`,`priority`,`dueAt`,`projectId`,`milestoneId`,`parentTaskId`,`ownerId`,`delegateAgentId`,`boardRank`,`contract`,`dependencies`,`context`,`runs`,`receipts`,`acceptance`,`feedback`,`attention`,`conversation`]),E=l({taskId:a().min(1),projectId:a().min(1).optional(),version:i().int().positive(),changedFields:o(T).min(1),source:c([`user`,`agent`,`runtime`]),actorId:a().min(1).optional(),occurredAt:i().int().nonnegative()}),D=l({taskId:a().min(1),projectId:a().min(1).optional(),deletedAt:i().int().nonnegative()}),O=c([`verified_auto`,`verified_then_review`,`manual`]),k=l({kind:c([`user`,`agent`,`system`,`integration`]),id:a().optional()}),A=l({taskId:a(),version:i().int().positive(),objective:a(),expectedOutputs:o(a()),acceptanceCriteria:o(a()),constraints:o(a()),approvalRequired:o(a()),assumptions:o(a()),risks:o(a()),acceptancePolicy:O,outputDestinations:o(t(a(),n())),createdBy:k,createdAt:i().int().nonnegative()}),j=l({id:a(),title:a(),body:a().optional(),phase:d,resolution:f.optional(),priority:w,dueAt:i().int().nonnegative().optional(),projectId:a().optional(),milestoneId:a().optional(),parentTaskId:a().optional(),ownerId:a().optional(),delegateAgentId:a().optional(),source:a(),locale:c([`en`,`zh`]).optional(),latestContractVersion:i().int().positive(),boardRank:i().finite().default(0),version:i().int().positive(),contract:A.optional(),createdAt:i().int().nonnegative(),updatedAt:i().int().nonnegative(),closedAt:i().int().nonnegative().optional()}).superRefine((e,t)=>{e.phase===`closed`!=!!e.resolution&&t.addIssue({code:`custom`,path:[`resolution`],message:`Closed tasks require a resolution and open tasks cannot have one`})}),M=c([`input`,`reference`,`constraint`,`deliverable`,`evidence`]),N=l({id:a(),taskId:a(),targetKind:c([`document`,`file`,`url`,`session`,`memory`,`task`,`artifact`,`source`]),targetId:a(),role:M,title:a().optional(),pinned:r(),retrievalPolicy:t(a(),n()),metadata:t(a(),n()),createdBy:k,createdAt:i().int().nonnegative(),updatedAt:i().int().nonnegative()}),P=l({id:a(),taskId:a(),capability:a(),scope:t(a(),n()),grantedBy:k,grantedAt:i().int().nonnegative(),expiresAt:i().int().nonnegative().optional(),revokedAt:i().int().nonnegative().optional()}),F=l({id:a(),title:a(),phase:d,resolution:f.optional(),allocation:C.optional(),operationalState:p}),I=l({kind:c([`artifact`,`test`,`state`,`source`]),title:a(),summary:a(),uri:a().optional(),verifies:o(a()).optional(),provenance:c([`tool`,`external`,`user`,`judge`]),strength:c([`observed`,`verified`]),observedAt:i().int().nonnegative()}),L=l({recommendation:a(),reasons:o(a()),rejectedAlternatives:o(l({option:a(),reason:a()})),uncertainty:a().optional(),confidence:i().min(0).max(1)}),R=l({runId:a(),status:c([`succeeded`,`failed`,`cancelled`]),summary:a(),changes:o(I),evidence:o(I),verification:l({status:c([`passed`,`failed`,`unverified`]),checks:o(l({criterion:a(),status:c([`passed`,`failed`,`unverified`]),evidenceTitles:o(a()),note:a().optional(),method:c([`tool_verified`,`model_reviewed`,`unverified`]).optional()}))}),remainingWork:o(a()),nextAction:a().optional(),needsUser:r(),completionVerdict:c([`achieved`,`partial`,`not_achieved`]).optional(),failure:l({code:a(),phase:a(),recoveryAction:a()}).optional(),judgment:L.optional(),contextTraceId:a().optional(),finalizedAt:i().int().nonnegative()}),z=l({contractVersion:i().int().positive(),criterionIndex:i().int().nonnegative(),criterionText:a(),status:c([`passed`,`failed`]),note:a().optional(),reviewedBy:k,reviewedAt:i().int().nonnegative()});l({expectedVersion:i().int().positive(),contractVersion:i().int().positive(),status:c([`passed`,`failed`]),note:a().trim().max(2e3).optional()}).strict();var B=e(`kind`,[l({kind:s(`agent`),agentId:a().min(1)}),l({kind:s(`human`),actorId:a().min(1)}),l({kind:s(`external`),provider:a().min(1),config:n()})]),V=A.omit({taskId:!0,version:!0,createdBy:!0,createdAt:!0}),H=N.omit({id:!0,taskId:!0,createdBy:!0,createdAt:!0,updatedAt:!0});l({idempotencyKey:a().trim().min(1).max(200),title:a().trim().min(1).max(500),body:a().trim().max(5e4).optional(),projectId:a().trim().min(1).optional(),milestoneId:a().trim().min(1).optional(),parentTaskId:a().trim().min(1).optional(),priority:w.default(`normal`),dueAt:i().int().nonnegative().optional(),ownerId:a().trim().min(1).optional(),delegateAgentId:a().trim().min(1).optional(),originConversationId:a().trim().min(1).optional(),locale:c([`en`,`zh`]).optional(),contract:V,dependencies:o(a().trim().min(1)).default([]),context:o(H).default([]),authorityGrants:o(l({capability:a().min(1),scope:t(a(),n()).default({}),expiresAt:i().int().nonnegative().optional()})).default([]),activation:e(`mode`,[l({mode:s(`allocate`),requirements:u}).strict(),l({mode:s(`capture`),phase:c([`backlog`,`ready`]).default(`backlog`)}),l({mode:s(`start`),executor:B.optional(),scheduleAt:i().int().nonnegative().optional()})])}).strict(),l({expectedVersion:i().int().positive(),title:a().trim().min(1).max(500).optional(),body:a().trim().max(5e4).nullable().optional(),projectId:a().trim().min(1).nullable().optional(),milestoneId:a().trim().min(1).nullable().optional(),parentTaskId:a().trim().min(1).nullable().optional(),priority:w.optional(),dueAt:i().int().nonnegative().nullable().optional(),ownerId:a().trim().min(1).nullable().optional()}).strict();var U=l({kind:c([`dependency`,`user_input`,`approval`,`external_event`,`scheduled_time`,`retry_backoff`,`paused`]),reason:a().min(1),condition:t(a(),n()).default({}),resumeAt:i().int().nonnegative().optional()}),W=e(`type`,[l({type:s(`retry_allocation`)}),l({type:s(`move`),phase:d,resolution:f.optional()}),l({type:s(`mark_ready`)}),l({type:s(`start`),executor:B,scheduleAt:i().int().nonnegative().optional()}),l({type:s(`request_review`)}),l({type:s(`close`),resolution:f}),l({type:s(`reopen`),phase:c([`backlog`,`ready`,`active`,`review`])}),l({type:s(`add_wait`),wait:U}),l({type:s(`resolve_wait`),waitId:a(),resolution:n().optional()}),l({type:s(`revise_contract`),contract:V})]),G=c([`board`,`mobile`,`api`,`runtime`,`undo`]),K=l({id:a(),taskId:a(),fromPhase:d,toPhase:d,fromResolution:f.optional(),toResolution:f.optional(),actor:k,source:G,operationId:a().optional(),runId:a().optional(),taskVersion:i().int().positive(),createdAt:i()});l({source:G.optional(),idempotencyKey:a().trim().min(1).max(200),expectedVersion:i().int().positive(),command:W}).strict(),l({dependsOnTaskIds:o(a().trim().min(1)),expectedVersion:i().int().positive()}).strict(),l({expectedVersion:i().int().positive(),beforeTaskId:a().trim().min(1).nullable().optional()}).strict();var q=l({ok:s(!0),items:o(l({task:j,allocation:C.optional(),operationalState:p,attention:o(_)}))}),J=l({ok:s(!0),task:j,allocation:C.optional(),operationalState:p,run:x.optional()}),Y=l({taskId:a(),activeConversationId:a().optional(),currentExecutorAgentId:a().optional(),assignmentEpoch:i().int().nonnegative(),status:c([`idle`,`active`]),updatedAt:i().int().nonnegative()}),X=l({id:a(),taskId:a(),conversationId:a(),role:c([`primary`,`discussion`,`execution`]),agentId:a().optional(),runId:a().optional(),assignmentEpoch:i().int().nonnegative(),status:c([`active`,`completed`,`superseded`,`failed`]),startedAt:i().int().nonnegative(),endedAt:i().int().nonnegative().optional(),createdAt:i().int().nonnegative()});l({toAgentId:a().trim().min(1),expectedVersion:i().int().positive(),idempotencyKey:a().trim().min(1).max(200)}).strict(),l({ok:s(!0),task:j,conversation:Y,fromAgentId:a().optional(),toAgentId:a(),activeConversationId:a(),assignmentEpoch:i().int().positive()});var Z=l({phaseChanges:o(K).default([]),ok:s(!0),task:j,allocation:C.optional(),operationalState:p,attention:o(_),waits:o(g),runs:o(x),receipts:o(R),criterionReviews:o(z),context:o(N),conversation:Y,sessions:o(X),authorityGrants:o(P),dependencies:o(F),dependents:o(F),allowedCommands:o(a())});l({ok:s(!0),items:o(R)});function Q(e){let t=new Set(e?.evidence.filter(e=>e.strength===`verified`).map(e=>e.title));return new Set(e?.verification.checks.filter(e=>e.status===`passed`&&e.evidenceTitles.some(e=>t.has(e))).map(e=>e.criterion))}export{f as _,F as a,q as c,Q as d,S as f,d as g,p as h,D as i,w as l,_ as m,W as n,Z as o,x as p,J as r,B as s,E as t,R as u,g as v};
|
|
@@ -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"./popover-select-DGKUpVsz.js";import{i as a,n as ee,o}from"./locale-store-B7s2Hb35.js";import{i as s}from"./vendor-swr-BIWyz7Rc.js";import{t as c}from"./button-aIC072nz.js";import{t as l}from"./skeleton-BI5TyibZ.js";import{Bc as te,Do as ne,Ha as re,Hc as ie,Ic as ae,Lc as u,Rc as oe,Vc as se,zc as d}from"./index-Bys6njTY.js";import{t as f}from"./number-input-DDeqHK-G.js";import{n as ce,t as le}from"./settings-page-header-CYpuTXUW.js";import"./settings-page-layout-B20AfmFG.js";import{n as p,t as ue}from"./use-autosave-Dc0nwUpX.js";var m=e(t(),1),h=n(),g=e=>a(`/api/observability/${e}`);async function _(e,t=`GET`,n){return o(g(e),{method:t,...n===void 0?{}:{body:JSON.stringify(n)}})}var v=r(),y=`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,b=`space-y-4 rounded-xl border border-edge bg-surface-panel p-4`,de=(e=0)=>`${(e/1048576).toFixed(1)} MiB`;function x(){let e=(0,h.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,v.jsxs)(`div`,{"aria-busy":`true`,className:`space-y-4`,children:[(0,v.jsx)(l,{className:`h-48 rounded-xl`}),(0,v.jsx)(l,{className:`h-64 rounded-xl`})]}),e[0]=t):t=e[0],t}function fe(e,t){let n=0,r=e,i=new Set;for(;r.parentSpanId&&n<12&&!i.has(r.spanId);){i.add(r.spanId);let e=t.find(e=>e.spanId===r.parentSpanId);if(!e)break;r=e,n++}return n}function pe(e){let t=[],n=new Set;function r(i){n.has(i.spanId)||(n.add(i.spanId),t.push(i),e.filter(e=>e.parentSpanId===i.spanId).forEach(r))}return e.filter(t=>!t.parentSpanId||!e.some(e=>e.spanId===t.parentSpanId)).forEach(r),e.forEach(r),t}function S(){let e=ee(e=>e.language)===`zh`,t=(t,n)=>e?n:t,n=s(g(`tracing/settings`),()=>_(`tracing/settings`)),r=s(g(`tracing/status`),()=>_(`tracing/status`),{refreshInterval:1e4}),[a,o]=(0,m.useState)(),[h,S]=(0,m.useState)(),C=a??h??n.data?.config,[w,T]=(0,m.useState)(``),[E,D]=(0,m.useState)(``),[me,he]=(0,m.useState)(0),[O,ge]=(0,m.useState)(!1),[k,A]=(0,m.useState)(``),[_e,j]=(0,m.useState)(!1),[M,ve]=(0,m.useState)(``),[N,ye]=(0,m.useState)(`7`),[P,be]=(0,m.useState)({conversationId:``,runId:``,agentId:``}),[F,I]=(0,m.useState)(`records`),[L,xe]=(0,m.useState)(`10`),[Se,Ce]=(0,m.useState)([``]),[R,z]=(0,m.useState)(0),[we,Te]=(0,m.useState)(()=>Date.now()+1),B=Se[R],[V,H]=(0,m.useState)();function U(){Ce([``]),z(0),Te(Date.now()+1)}let[Ee,W]=(0,m.useState)(!1),G=new URLSearchParams({limit:L,from:String(we-Number(N)*864e5),to:String(we)});M&&G.set(`status`,M),B&&G.set(`cursor`,B);for(let[e,t]of Object.entries(P))t&&G.set(e,t);let De=`traces?${G}`,K=s(g(De),()=>_(De),{refreshInterval:B?0:1e4}),q=s(V?g(`traces/${V}`):null,()=>_(`traces/${V}`));function J(e){if(!C)return;let t=structuredClone(C);e(t),o(t)}async function Y(e,i=t(`Saved`,`已保存`)){ge(!0),A(``),j(!1);try{await e(),A(i),await Promise.all([n.mutate(),r.mutate(),K.mutate()])}catch(e){j(!0),A(e instanceof Error?e.message:t(`Request failed`,`操作失败`))}finally{ge(!1)}}let X=ue({value:C??null,dirty:!!(a&&JSON.stringify(a)!==JSON.stringify(h??n.data?.config)),validate:e=>{if([[`retentionDays`,1,90],[`maxStoreMiB`,16,4096],[`maxTraces`,10,1e5],[`maxSpans`,100,1e6],[`maxTraceKiB`,16,4096],[`maxWriteMiBPerMinute`,1,100]].some(([t,n,r])=>!Number.isInteger(e.local[t])||e.local[t]<n||e.local[t]>r))return t(`Enter valid storage limits before continuing.`,`请填写有效的存储限额。`);try{let t=new URL(e.langfuse.baseUrl);if(![`http:`,`https:`].includes(t.protocol)||e.langfuse.baseUrl.length>2048)throw Error()}catch{return t(`Enter a valid HTTP(S) Base URL.`,`请填写有效的 HTTP(S) Base URL。`)}return null},onSave:async e=>{S((await _(`tracing/settings`,`PATCH`,e)).config),o(t=>t&&JSON.stringify(t)===JSON.stringify(e)?void 0:t),await r.mutate().catch(()=>{})}}),Z=(0,m.useMemo)(()=>({publicKey:w.trim(),secretKey:E.trim()}),[w,E]),Q=ue({value:Z,dirty:!!(Z.publicKey||Z.secretKey),delayMs:1e3,validate:e=>e.publicKey.length>512||e.secretKey.length>512?t(`Credentials must be at most 512 characters.`,`凭证长度不能超过 512 个字符。`):null,onSave:async e=>{await _(`tracing/langfuse/credentials`,`PUT`,{...e.publicKey?{publicKey:e.publicKey}:{},...e.secretKey?{secretKey:e.secretKey}:{}}),T(t=>t.trim()===e.publicKey?``:t),D(t=>t.trim()===e.secretKey?``:t),he(e=>e+1),await Promise.allSettled([n.mutate(),r.mutate()])}}),$=[X.status,Q.status].some(e=>e===`dirty`||e===`saving`);async function Oe(){V&&await Y(async()=>{let e=await _(`traces/${V}/export`),t=URL.createObjectURL(new Blob([JSON.stringify(e,null,2)],{type:`application/json`})),n=document.createElement(`a`);n.href=t,n.download=`trace-${V}.json`,n.click(),URL.revokeObjectURL(t)},t(`Exported`,`已导出`))}return(0,v.jsxs)(ce,{className:`space-y-6`,children:[(0,v.jsx)(le,{title:t(`Runtime tracing`,`运行追踪`),subtitle:t(`Local diagnostics with bounded retention. Enable Langfuse to also export new traces.`,`默认保留有界本地记录;启用 Langfuse 后同时导出新采集的追踪。`),actions:F===`settings`?(0,v.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3`,children:[(0,v.jsx)(`span`,{className:`text-xs text-fg-muted`,children:t(`Changes save automatically`,`修改后自动保存`)}),(0,v.jsx)(p,{status:X.status,error:X.error})]}):(0,v.jsx)(c,{disabled:K.isValidating,onClick:U,children:t(`Refresh records`,`刷新记录`)})}),k&&(0,v.jsx)(`p`,{role:_e?`alert`:`status`,className:`text-sm text-fg-muted`,children:k}),n.error&&(0,v.jsx)(`p`,{role:`alert`,children:String(n.error.message)}),(0,v.jsxs)(re,{as:`nav`,"aria-label":t(`Tracing sections`,`追踪页面分区`),className:`flex gap-2 border-b border-edge pb-3`,children:[(0,v.jsx)(c,{"aria-pressed":F===`records`,variant:`ghost`,onClick:()=>I(`records`),children:t(`Execution records`,`执行记录`)}),(0,v.jsx)(c,{"aria-pressed":F===`settings`,variant:`ghost`,onClick:()=>I(`settings`),children:t(`Capture settings`,`采集设置`)})]}),F===`settings`&&(C?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(`section`,{className:b,onBlurCapture:X.onBlurCapture,children:[(0,v.jsx)(`h2`,{className:`font-medium`,children:t(`Local recording`,`本地记录`)}),X.error&&(0,v.jsx)(c,{variant:`ghost`,onClick:X.retry,children:t(`Retry autosave`,`重试自动保存`)}),(0,v.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,v.jsx)(`input`,{type:`checkbox`,checked:C.enabled,onChange:e=>J(t=>{t.enabled=e.target.checked})}),t(`Record traces`,`记录运行追踪`)]}),(0,v.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-3`,children:[(0,v.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t(`Retention (days)`,`保留天数`),(0,v.jsx)(f,{className:y,type:`number`,min:1,max:90,value:C.local.retentionDays,onChange:e=>J(t=>{t.local.retentionDays=Number(e.target.value)})})]}),(0,v.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t(`Storage budget (MiB)`,`存储上限(MiB)`),(0,v.jsx)(f,{className:y,type:`number`,min:16,max:4096,value:C.local.maxStoreMiB,onChange:e=>J(t=>{t.local.maxStoreMiB=Number(e.target.value)})})]}),(0,v.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t(`Capture`,`采集内容`),(0,v.jsx)(i,{placeholder:t(`Choose`,`请选择`),allowEmpty:!1,value:C.capture,onChange:e=>J(t=>{t.capture=e}),options:[{value:`metadata`,label:t(`Metadata only`,`仅元数据`)},{value:`redacted`,label:t(`Redacted previews`,`脱敏摘要`)},{value:`detailed`,label:t(`Detailed · 30 minutes`,`详细记录 · 30 分钟`)}]})]})]}),(0,v.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t(`Previews may contain personal content. Secrets and media are filtered; large values are truncated.`,`摘要可能包含个人内容。过滤凭证和媒体,超长内容会截断。`)}),C.detailedUntil&&(0,v.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[t(`Detailed capture expires: `,`详细采集截止:`),new Date(C.detailedUntil).toLocaleString()]}),(0,v.jsxs)(`details`,{children:[(0,v.jsx)(`summary`,{className:`cursor-pointer text-sm`,children:t(`Advanced limits`,`高级限制`)}),(0,v.jsx)(`div`,{className:`mt-3 grid gap-3 sm:grid-cols-2`,children:[[`maxTraces`,t(`Trace count`,`Trace 条数`)],[`maxSpans`,t(`Span count`,`Span 条数`)],[`maxTraceKiB`,t(`Per trace (KiB)`,`单 Trace 上限(KiB)`)],[`maxWriteMiBPerMinute`,t(`Write budget (MiB/minute)`,`写入额度(MiB/分钟)`)]].map(([e,t])=>(0,v.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t,(0,v.jsx)(f,{type:`number`,min:1,className:y,value:C.local[e],onChange:t=>J(n=>{n.local[e]=Number(t.target.value)})})]},e))})]}),r.data?(0,v.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[t(`Disk / payload`,`磁盘 / 数据`),`:`,de(r.data.local.physicalBytes),` / `,de(r.data.local.bytes),` · `,r.data.local.traces??0,` traces · `,r.data.local.spans??0,` spans · `,t(`Dropped`,`丢弃`),` `,Number(r.data.local.dropped??0)+Number(r.data.local.queueDropped??0),(r.data.local.paused||r.data.local.unavailable)&&` · ${t(`Recording paused`,`存储暂停`)}`]}):(0,v.jsx)(l,{className:`h-10`}),(r.error||r.data?.local.lastError)&&(0,v.jsx)(`p`,{role:`alert`,className:`text-sm`,children:r.data?.local.lastError||String(r.error.message)}),(0,v.jsxs)(`div`,{className:`flex gap-2`,children:[(0,v.jsx)(c,{disabled:O||$,onClick:()=>void Y(async()=>{await _(`traces/prune`,`POST`)}),children:t(`Clean expired`,`清理过期记录`)}),(0,v.jsx)(c,{disabled:O,onClick:()=>W(!0),children:t(`Clear local traces`,`清空本地追踪`)})]})]}),(0,v.jsxs)(`section`,{className:b,children:[(0,v.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,v.jsx)(`h2`,{className:`font-medium`,children:`Langfuse`}),(0,v.jsx)(p,{status:Q.status,error:Q.error})]}),Q.error&&(0,v.jsx)(c,{variant:`ghost`,onClick:Q.retry,children:t(`Retry autosave`,`重试自动保存`)}),(0,v.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,v.jsx)(`input`,{type:`checkbox`,checked:C.langfuse.enabled,onBlur:X.onBlurCapture,onChange:e=>J(t=>{t.langfuse.enabled=e.target.checked})}),t(`Also export new traces to Langfuse`,`同时导出新采集的追踪到 Langfuse`)]}),(0,v.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,v.jsxs)(`label`,{className:`space-y-1 text-sm sm:col-span-2`,children:[`Base URL`,(0,v.jsx)(`input`,{className:y,type:`url`,value:C.langfuse.baseUrl,onBlur:X.onBlurCapture,onChange:e=>J(t=>{t.langfuse.baseUrl=e.target.value})})]}),[`publicKey`,`secretKey`].map(e=>{let r=e===`publicKey`?`Public Key`:`Secret Key`,i=e===`publicKey`?w:E,a=n.data?.credentials[e===`publicKey`?`publicKeyConfigured`:`secretKeyConfigured`];return(0,v.jsxs)(`div`,{className:`space-y-1 text-sm`,onBlurCapture:Q.onBlurCapture,children:[(0,v.jsx)(`label`,{htmlFor:`langfuse-${e}`,children:r}),(0,v.jsx)(ne,{id:`langfuse-${e}`,value:i||(a?`••••••••••••`:``),allowUnrevealedCopy:!0,onChange:t=>(e===`publicKey`?T:D)(t.replace(/^•+/,``)),placeholder:e===`publicKey`?`pk-lf-…`:`sk-lf-…`,labels:{show:t(`Show ${r}`,`查看 ${r}`),hide:t(`Hide ${r}`,`隐藏 ${r}`),copy:t(`Copy ${r}`,`复制 ${r}`),copied:t(`Copied`,`已复制`)},reveal:()=>_(`tracing/langfuse/credentials/${e}/reveal`,`POST`).then(e=>e.key),loadFailedLabel:t(`Unable to load the configured key.`,`无法读取已配置的 Key。`),notInConfigFile:t(`No configured key is available.`,`暂无已配置的 Key。`)},me)]},e)})]}),(0,v.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[t(`Credential sources`,`凭证来源`),`:`,n.data?.credentials.publicKeySource,` / `,n.data?.credentials.secretKeySource,` · URL: `,n.data?.credentials.baseUrlSource]}),r.data&&(0,v.jsxs)(`p`,{className:`text-sm text-fg-muted`,children:[r.data.langfuse.state,` · `,t(`Pending`,`待发送`),` `,r.data.langfuse.pending,` · `,t(`Dropped`,`丢弃`),` `,r.data.langfuse.dropped,r.data.langfuse.lastSuccess?` · ${new Date(r.data.langfuse.lastSuccess).toLocaleString()}`:``]}),r.data?.langfuse.lastError&&(0,v.jsx)(`p`,{role:`alert`,className:`text-sm`,children:r.data.langfuse.lastError}),(0,v.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t(`Changes save automatically. Historical traces are not uploaded. Offline exports may be dropped.`,`修改后自动保存。不会上传历史记录;断网或队列满时可能丢弃远端导出。`)}),(0,v.jsxs)(`div`,{className:`flex gap-2`,children:[(0,v.jsx)(c,{disabled:O||$,onClick:()=>void Y(async()=>{if(!(await _(`tracing/langfuse/test`,`POST`)).ok)throw Error(t(`Connection test failed. Check saved configuration and credentials.`,`连接测试失败,请检查已保存的配置和凭证。`))},t(`Diagnostic trace accepted by the ingestion endpoint`,`采集端已接受诊断追踪`)),children:t(`Test connection`,`测试连接`)}),(0,v.jsx)(c,{disabled:O||$,onClick:()=>void Y(async()=>{await _(`tracing/langfuse/credentials`,`DELETE`),T(``),D(``),he(e=>e+1)}),children:t(`Remove saved credentials`,`移除已保存凭证`)})]})]})]}):(0,v.jsx)(x,{})),F===`records`&&(0,v.jsxs)(`section`,{className:b,children:[(0,v.jsx)(`h2`,{className:`font-medium`,children:t(`Recent runs`,`最近执行`)}),(0,v.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-3`,children:[(0,v.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t(`Status`,`执行状态`),(0,v.jsx)(i,{placeholder:t(`All statuses`,`全部状态`),allowEmpty:!1,value:M,onChange:e=>{ve(e),U()},options:[{value:``,label:t(`All statuses`,`全部状态`)},...[`running`,`success`,`error`,`cancelled`,`suspended`,`interrupted`].map(e=>({value:e,label:t(e,{running:`运行中`,success:`成功`,error:`失败`,cancelled:`已取消`,suspended:`已暂停`,interrupted:`已中断`}[e])}))]})]}),(0,v.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t(`Time range`,`时间范围`),(0,v.jsx)(i,{placeholder:t(`Choose`,`请选择`),value:N,allowEmpty:!1,onChange:e=>{ye(e),U()},options:[`1`,`7`,`30`,`90`].map(e=>({value:e,label:`${e} ${t(`days`,`天`)}`}))})]}),(0,v.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[t(`Page size`,`每页条数`),(0,v.jsx)(i,{placeholder:t(`Choose`,`请选择`),value:L,allowEmpty:!1,onChange:e=>{xe(e),U()},options:[`10`,`20`].map(e=>({value:e,label:`${e} ${t(`records`,`条`)}`}))})]})]}),(0,v.jsxs)(`details`,{children:[(0,v.jsxs)(`summary`,{className:`cursor-pointer text-sm text-fg-muted`,children:[t(`Advanced filters`,`高级筛选`),Object.values(P).some(Boolean)?` · ${t(`Active`,`已启用`)}`:``]}),(0,v.jsx)(`div`,{className:`mt-3 grid gap-3 sm:grid-cols-3`,children:[`conversationId`,`runId`,`agentId`].map(e=>(0,v.jsxs)(`label`,{className:`space-y-1 text-sm`,children:[{conversationId:t(`Conversation ID`,`会话 ID`),runId:t(`Run ID`,`执行 ID`),agentId:t(`Agent ID`,`Agent ID`)}[e],(0,v.jsx)(`input`,{"aria-label":e,placeholder:t(`Exact ID`,`输入完整 ID`),className:y,value:P[e],onChange:t=>{be({...P,[e]:t.target.value}),U()}})]},e))})]}),(0,v.jsxs)(`div`,{role:`region`,"aria-label":t(`Execution results`,`执行结果`),"aria-busy":K.isValidating,className:`h-[24rem] min-h-0 overflow-y-auto overscroll-contain rounded-lg border border-edge sm:h-[28rem]`,children:[K.error&&(0,v.jsx)(`p`,{role:`alert`,className:`p-4 text-sm`,children:K.error.message}),!K.data&&!K.error?(0,v.jsx)(`div`,{className:`space-y-3 p-3`,children:[0,1,2,3,4].map(e=>(0,v.jsx)(l,{className:`h-16`},e))}):(0,v.jsxs)(`div`,{className:`divide-y divide-edge`,children:[K.data?.traces.length===0&&(0,v.jsx)(`p`,{className:`flex h-48 items-center justify-center px-4 text-sm text-fg-muted`,children:t(`No traces in this range`,`此时间范围内暂无记录`)}),K.data?.traces.map(n=>(0,v.jsxs)(`button`,{onClick:()=>H(n.traceId),className:`flex w-full flex-col gap-2 px-3 py-3 text-left text-sm hover:bg-surface-hover sm:flex-row sm:items-center sm:justify-between`,children:[(0,v.jsxs)(`div`,{className:`min-w-0`,children:[(0,v.jsxs)(`p`,{className:`truncate font-medium`,children:[n.name,n.attributes[`xopc.agentId`]?` · ${n.attributes[`xopc.agentId`]}`:``]}),(0,v.jsxs)(`p`,{className:`truncate text-xs text-fg-muted`,children:[new Date(n.startedAt).toLocaleString(e?`zh-CN`:`en-US`),` · `,n.traceId]}),n.stats&&(0,v.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[n.stats.generations,` `,t(`model calls`,`次模型调用`),` · `,n.stats.tokens,` tokens · $`,n.stats.knownCostUsd.toFixed(4),n.stats.unknownCostCalls>0?` · ${t(`partial cost`,`部分成本未知`)}`:``]})]}),(0,v.jsxs)(`span`,{className:`shrink-0 text-xs text-fg-muted`,children:[t(n.status,{running:`运行中`,success:`成功`,error:`失败`,cancelled:`已取消`,suspended:`已暂停`,interrupted:`已中断`}[n.status]??n.status),` · `,n.endedAt?`${Math.round(n.endedAt-n.startedAt)} ms`:`—`,n.partialReason?` · ${t(`Partial`,`部分记录`)}`:``]})]},n.traceId))]})]}),(0,v.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,v.jsx)(`p`,{"aria-live":`polite`,className:`text-xs text-fg-muted`,children:t(`Page ${R+1} · ${K.data?.traces.length??0} records`,`第 ${R+1} 页 · ${K.data?.traces.length??0} 条`)}),(0,v.jsxs)(`div`,{className:`flex gap-2`,children:[(0,v.jsx)(c,{disabled:R===0||K.isValidating,onClick:()=>z(e=>Math.max(0,e-1)),children:t(`Previous page`,`上一页`)}),(0,v.jsx)(c,{disabled:!K.data?.nextCursor||K.isValidating,onClick:()=>{let e=K.data?.nextCursor;e&&(Ce(t=>[...t.slice(0,R+1),e]),z(e=>e+1))},children:t(`Next page`,`下一页`)})]})]})]}),(0,v.jsx)(ae,{open:!!V,onOpenChange:e=>{e||H(void 0)},children:(0,v.jsxs)(se,{children:[(0,v.jsx)(te,{className:`fixed inset-0 z-[90] bg-black/40`}),(0,v.jsxs)(oe,{className:`fixed left-1/2 top-1/2 z-[91] flex h-[min(44rem,calc(100vh-2rem))] w-[min(64rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay p-4`,children:[(0,v.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-3`,children:[(0,v.jsx)(ie,{className:`font-medium`,children:t(`Trace details`,`追踪详情`)}),(0,v.jsx)(u,{asChild:!0,children:(0,v.jsx)(c,{children:t(`Close`,`关闭`)})})]}),(0,v.jsx)(d,{className:`shrink-0 truncate text-xs text-fg-muted`,children:V}),(0,v.jsx)(`div`,{className:`min-h-0 flex-1 space-y-3 overflow-y-auto py-4`,children:q.error?(0,v.jsx)(`p`,{role:`alert`,children:q.error.message}):q.data?(0,v.jsxs)(v.Fragment,{children:[(0,v.jsxs)(`p`,{className:`text-sm`,children:[q.data.trace.status,` `,q.data.trace.partialReason&&` · ${q.data.trace.partialReason}`]}),pe(q.data.spans).map(e=>(0,v.jsxs)(`details`,{style:{marginLeft:fe(e,q.data.spans)*12},className:`rounded-lg border border-edge p-3 text-sm`,children:[(0,v.jsxs)(`summary`,{className:`cursor-pointer`,children:[e.name,` · `,e.status,` · `,e.endedAt?`${Math.round(e.endedAt-e.startedAt)} ms`:`—`]}),(0,v.jsx)(`pre`,{className:`mt-3 whitespace-pre-wrap break-all text-xs text-fg-muted`,children:JSON.stringify(e.attributes,null,2)})]},e.spanId))]}):(0,v.jsx)(x,{})}),(0,v.jsx)(`div`,{className:`shrink-0 border-t border-edge pt-3`,children:(0,v.jsx)(c,{disabled:!q.data||O,onClick:()=>void Oe(),children:t(`Export JSON`,`导出 JSON`)})})]})]})}),(0,v.jsx)(ae,{open:Ee,onOpenChange:W,children:(0,v.jsxs)(se,{children:[(0,v.jsx)(te,{className:`fixed inset-0 z-[90] bg-black/40`}),(0,v.jsxs)(oe,{className:`fixed left-1/2 top-1/2 z-[91] w-[min(28rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 space-y-4 rounded-xl border border-edge bg-surface-overlay p-5`,children:[(0,v.jsx)(ie,{children:t(`Clear local traces?`,`清空本地追踪?`)}),(0,v.jsx)(d,{className:`text-sm text-fg-muted`,children:t(`Removes retained local traces. Conversations, usage records and Langfuse data remain available.`,`删除已保留的本地追踪。会话、用量记录及 Langfuse 数据仍保留。`)}),(0,v.jsxs)(`div`,{className:`flex gap-2`,children:[(0,v.jsx)(c,{disabled:O||$,onClick:()=>void Y(async()=>{await _(`traces`,`DELETE`),W(!1),H(void 0)}),children:t(`Clear`,`清空`)}),(0,v.jsx)(u,{asChild:!0,children:(0,v.jsx)(c,{children:t(`Cancel`,`取消`)})})]})]})]})})]})}export{S as TracingSettingsPage};
|
|
@@ -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"./external-link-DjqjBmc3.js";import{t as a}from"./globe-DSSGFWFn.js";import{t as o}from"./loader-circle-CifKLtgG.js";import{t as s}from"./messages-BYq0cPbn.js";import{t as c}from"./cn-0WouolD0.js";import{a as l,i as u,l as d,n as ee,o as f}from"./locale-store-B7s2Hb35.js";import{i as p}from"./vendor-swr-BIWyz7Rc.js";import{t as m}from"./button-aIC072nz.js";import{t as h}from"./skeleton-BI5TyibZ.js";import{n as g,r as _}from"./gateway-config-swr-fQKBHBi1.js";import{Ii as v,Mo as y,Vl as b,xo as x}from"./index-Bys6njTY.js";import{n as te,t as ne}from"./settings-form-section-BQxKmbbJ.js";var S=e(t(),1),C=n(),w=r();function T(e){let t=(0,C.c)(10),{language:n,label:r,section:a,className:o}=e,s;t[0]!==n||t[1]!==a?(s=x(n,a),t[0]=n,t[1]=a,t[2]=s):s=t[2];let l;t[3]===o?l=t[4]:(l=c(`inline-flex items-center gap-1 text-sm font-medium text-accent hover:underline`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,o),t[3]=o,t[4]=l);let u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,w.jsx)(i,{className:`size-3.5 shrink-0`,"aria-hidden":!0}),t[5]=u):u=t[5];let d;return t[6]!==r||t[7]!==s||t[8]!==l?(d=(0,w.jsxs)(`a`,{href:s,target:`_blank`,rel:`noreferrer`,className:l,children:[r,u]}),t[6]=r,t[7]=s,t[8]=l,t[9]=d):d=t[9],d}async function E(){let e=await l(`/api/exposure/status`);if(!e.ok)throw Error(`Failed to load exposure status (${e.status})`);return await e.json()}async function D(e=`serve`){let t=await l(`/api/exposure/tailscale/start`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({mode:e})});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error??`Start failed (${t.status})`)}return await t.json()}async function O(){let e=await l(`/api/exposure/tailscale/stop`,{method:`POST`});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error??`Stop failed (${e.status})`)}return await e.json()}var k=`https://tailscale.com/download`;function A(e){let t=(0,C.c)(2),{label:n}=e,r;return t[0]===n?r=t[1]:(r=(0,w.jsx)(`a`,{href:k,target:`_blank`,rel:`noreferrer`,className:`font-medium text-accent hover:underline`,children:n}),t[0]=n,t[1]=r),r}function j({embedded:e=!1}){let t=ee(e=>e.language),n=s(t).remoteAccess.tailscale,r=(0,S.useMemo)(()=>({copy:n.copyUrl,copied:n.copied,copyFailed:s(t).clipboard.copyFailed}),[t,n.copyUrl,n.copied]),i=!!d(e=>e.conversationId),[c,l]=(0,S.useState)(!1),[u,f]=(0,S.useState)(null),{data:g,mutate:_,isLoading:y}=p(i?`exposure-status`:null,E,{refreshInterval:3e4}),x=g?.tailscale.hostname,C=g?.tailscale.active===!0,k=g?.tailscale.cliAvailable!==!1,j=x?`https://${x}/`:null,re=(0,S.useCallback)(async()=>{l(!0),f(null);try{await D(`serve`),await _()}catch(e){f(e instanceof Error?e.message:String(e))}finally{l(!1)}},[_]),ie=(0,S.useCallback)(async()=>{l(!0),f(null);try{await O(),await _()}catch(e){f(e instanceof Error?e.message:String(e))}finally{l(!1)}},[_]);if(!i)return null;let M=(0,w.jsxs)(`div`,{className:e?`space-y-4`:`mt-4 space-y-3`,children:[e?(0,w.jsxs)(`ol`,{className:`space-y-3 text-sm text-fg-muted`,children:[(0,w.jsxs)(`li`,{className:`flex gap-2`,children:[(0,w.jsx)(`span`,{className:`flex size-5 shrink-0 items-center justify-center rounded-full bg-surface-hover text-xs font-semibold text-fg`,children:`1`}),(0,w.jsxs)(`span`,{children:[n.stepInstallBefore,(0,w.jsx)(A,{label:n.stepInstallLink}),n.stepInstallAfter]})]}),(0,w.jsxs)(`li`,{className:`flex gap-2`,children:[(0,w.jsx)(`span`,{className:`flex size-5 shrink-0 items-center justify-center rounded-full bg-surface-hover text-xs font-semibold text-fg`,children:`2`}),(0,w.jsx)(`span`,{children:n.stepEnable})]}),(0,w.jsxs)(`li`,{className:`flex gap-2`,children:[(0,w.jsx)(`span`,{className:`flex size-5 shrink-0 items-center justify-center rounded-full bg-surface-hover text-xs font-semibold text-fg`,children:`3`}),(0,w.jsx)(`span`,{children:n.stepCopy})]})]}):null,e&&g?.tailscale.cliAvailable===!1?(0,w.jsxs)(`p`,{className:`rounded-lg bg-amber-500/10 px-3 py-2 text-sm text-fg-muted`,children:[n.cliMissingIntro,` `,(0,w.jsx)(A,{label:n.cliMissingDownloadLink}),n.cliMissingSuffix]}):null,y&&!g?(0,w.jsxs)(`div`,{className:`grid gap-3`,"aria-busy":`true`,children:[(0,w.jsx)(h,{className:`h-20 rounded-lg`}),(0,w.jsx)(h,{className:`h-20 rounded-lg`})]}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(ne,{children:[(0,w.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:n.statusLabel}),(0,w.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:C?n.statusActive:n.statusOff}),j?(0,w.jsx)(`div`,{className:`mt-3`,children:(0,w.jsx)(v,{text:j,labels:r})}):null,u?(0,w.jsx)(`p`,{className:`mt-2 text-sm text-red-600 dark:text-red-400`,children:u}):null,(0,w.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:C?(0,w.jsxs)(m,{type:`button`,variant:`secondary`,disabled:c,onClick:()=>void ie(),children:[c?(0,w.jsx)(o,{className:`mr-1 size-4 animate-spin`}):null,n.disableServe]}):(0,w.jsxs)(m,{type:`button`,disabled:c||!k,onClick:()=>void re(),children:[c?(0,w.jsx)(o,{className:`mr-1 size-4 animate-spin`}):(0,w.jsx)(b,{className:`mr-1 size-4`}),n.enableServe]})})]}),(0,w.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.hint}),(0,w.jsx)(T,{language:t,label:n.docsLink,section:`tailscale-serve`,className:`mt-2`})]})]});return e?M:(0,w.jsxs)(ne,{children:[(0,w.jsx)(te,{icon:a,title:n.title,subtitle:n.subtitle}),M]})}async function re(e){let t=await l(u(`/api/tunnel/probe-public`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({url:e})});if(!t.ok&&t.status!==400)throw Error(`Probe failed (${t.status})`);return await t.json()}async function ie(e){await f(u(`/api/config`),{method:`PATCH`,body:JSON.stringify({gateway:{publicUrl:e??null}})})}function M(e){let t=e.split(`.`).map(e=>Number.parseInt(e,10));if(t.length!==4||t.some(e=>!Number.isFinite(e)))return!1;let[n,r]=t;return n===10||n===127||n===169&&r===254||n===172&&r>=16&&r<=31||n===192&&r===168||n===100&&r>=64&&r<=127}function ae(){return(0,S.useMemo)(()=>{if(typeof window>`u`)return null;let{protocol:e,hostname:t,origin:n}=window.location;if(e!==`https:`&&e!==`http:`)return null;let r=t.toLowerCase();return!r||r===`localhost`||r===`127.0.0.1`||r===`::1`||r===`[::1]`||r.endsWith(`.local`)||r.endsWith(`.localhost`)||M(r)?null:n.toLowerCase().replace(/\/+$/,``)},[])}function oe(){return c(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,y,`dark:border-edge`)}function se(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e.gateway;if(!t||typeof t!=`object`||Array.isArray(t))return null;let n=t.publicUrl;return typeof n==`string`&&n.trim()?n.trim():null}function N(){let e=(0,C.c)(85),t=ee(le),n;e[0]===t?n=e[1]:(n=s(t),e[0]=t,e[1]=n);let r=n.remoteAccess.reverseProxy,i=!!d(ce),l=ae(),u=_(i).data?.payload?.config,f;e[2]===u?f=e[3]:(f=se(u),e[2]=u,e[3]=f);let p=f,[h,v]=(0,S.useState)(``),y;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(y={busy:!1,result:null},e[4]=y):y=e[4];let[b,x]=(0,S.useState)(y),T;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(T={busy:!1,error:null},e[5]=T):T=e[5];let[E,D]=(0,S.useState)(T),O,k;e[6]!==p||e[7]!==l||e[8]!==h?(O=()=>{h||(p?v(p):l&&v(l))},k=[p,l,h],e[6]=p,e[7]=l,e[8]=h,e[9]=O,e[10]=k):(O=e[9],k=e[10]),(0,S.useEffect)(O,k);let A;bb0:{let t;e[11]===h?t=e[12]:(t=h.trim(),e[11]=h,e[12]=t);let n=t;if(n){A=n;break bb0}A=p??l??``}let j=A,M=!p&&!!l&&j===l,N;e[13]!==h||e[14]!==j?(N=async()=>{let e=h.trim()||j;if(e){x({busy:!0,result:null});try{x({busy:!1,result:await re(e)})}catch(e){let t=e;x({busy:!1,result:{ok:!1,code:`NETWORK_ERROR`,message:t instanceof Error?t.message:String(t)}})}}},e[13]=h,e[14]=j,e[15]=N):N=e[15];let de=N,fe;e[16]===j?fe=e[17]:(fe=async()=>{let e=j.trim();if(e){D({busy:!0,error:null});try{await ie(e),await g(),D({busy:!1,error:null})}catch(e){let t=e;D({busy:!1,error:t instanceof Error?t.message:String(t)})}}},e[16]=j,e[17]=fe);let pe=fe,P;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(P=async()=>{D({busy:!0,error:null});try{await ie(null),await g(),v(``),x({busy:!1,result:null}),D({busy:!1,error:null})}catch(e){let t=e;D({busy:!1,error:t instanceof Error?t.message:String(t)})}},e[18]=P):P=e[18];let me=P;if(!i)return null;let F;e[19]!==r.subtitle||e[20]!==r.title?(F=(0,w.jsx)(te,{icon:a,title:r.title,subtitle:r.subtitle}),e[19]=r.subtitle,e[20]=r.title,e[21]=F):F=e[21];let I;e[22]===r.urlLabel?I=e[23]:(I=(0,w.jsx)(`label`,{className:`text-sm font-medium text-fg`,htmlFor:`reverse-proxy-url`,children:r.urlLabel}),e[22]=r.urlLabel,e[23]=I);let L;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(L=c(oe(),`font-mono text-xs sm:flex-1 sm:min-w-0 sm:w-auto`),e[24]=L):L=e[24];let R;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(R=e=>{v(e.target.value),x({busy:!1,result:null})},e[25]=R):R=e[25];let z;e[26]!==h||e[27]!==r.urlPlaceholder||e[28]!==L?(z=(0,w.jsx)(`input`,{id:`reverse-proxy-url`,className:L,type:`text`,autoComplete:`off`,spellCheck:!1,placeholder:r.urlPlaceholder,value:h,onChange:R}),e[26]=h,e[27]=r.urlPlaceholder,e[28]=L,e[29]=z):z=e[29];let B;e[30]===de?B=e[31]:(B=()=>void de(),e[30]=de,e[31]=B);let V;e[32]!==h||e[33]!==b.busy?(V=b.busy||!h.trim(),e[32]=h,e[33]=b.busy,e[34]=V):V=e[34];let H;e[35]===b.busy?H=e[36]:(H=b.busy?(0,w.jsx)(o,{className:`size-3.5 animate-spin`}):null,e[35]=b.busy,e[36]=H);let he=b.busy?r.probing:r.probeButton,U;e[37]!==B||e[38]!==V||e[39]!==H||e[40]!==he?(U=(0,w.jsxs)(m,{type:`button`,variant:`secondary`,className:`shrink-0 whitespace-nowrap`,onClick:B,disabled:V,children:[H,he]}),e[37]=B,e[38]=V,e[39]=H,e[40]=he,e[41]=U):U=e[41];let W;e[42]!==z||e[43]!==U?(W=(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-stretch`,children:[z,U]}),e[42]=z,e[43]=U,e[44]=W):W=e[44];let G;e[45]===r.urlHint?G=e[46]:(G=(0,w.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:r.urlHint}),e[45]=r.urlHint,e[46]=G);let K;e[47]!==l||e[48]!==M||e[49]!==r.autoDetectedHint||e[50]!==r.autoDetectedTitle?(K=M&&l?(0,w.jsxs)(`div`,{className:`rounded-lg bg-accent-soft/60 px-3 py-2 text-xs leading-relaxed text-accent-fg`,children:[(0,w.jsx)(`div`,{className:`font-medium`,children:r.autoDetectedTitle}),(0,w.jsx)(`div`,{className:`mt-1 break-all font-mono text-[11px]`,children:l}),(0,w.jsx)(`p`,{className:`mt-1`,children:r.autoDetectedHint})]}):null,e[47]=l,e[48]=M,e[49]=r.autoDetectedHint,e[50]=r.autoDetectedTitle,e[51]=K):K=e[51];let q;e[52]!==b.result||e[53]!==r.probeStatus?(q=b.result?(0,w.jsx)(ue,{result:b.result,labels:r.probeStatus}):null,e[52]=b.result,e[53]=r.probeStatus,e[54]=q):q=e[54];let J;e[55]!==p||e[56]!==j||e[57]!==pe||e[58]!==r.saveAsDefault||e[59]!==r.saving||e[60]!==E.busy?(J=j&&p!==j?(0,w.jsxs)(m,{type:`button`,onClick:()=>void pe(),disabled:E.busy,children:[E.busy?(0,w.jsx)(o,{className:`size-3.5 animate-spin`}):null,E.busy?r.saving:r.saveAsDefault]}):null,e[55]=p,e[56]=j,e[57]=pe,e[58]=r.saveAsDefault,e[59]=r.saving,e[60]=E.busy,e[61]=J):J=e[61];let Y;e[62]!==p||e[63]!==r.clear||e[64]!==E.busy?(Y=p?(0,w.jsx)(m,{type:`button`,variant:`ghost`,onClick:()=>void me(),disabled:E.busy,children:r.clear}):null,e[62]=p,e[63]=r.clear,e[64]=E.busy,e[65]=Y):Y=e[65];let X;e[66]!==J||e[67]!==Y?(X=(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:flex-wrap`,children:[J,Y]}),e[66]=J,e[67]=Y,e[68]=X):X=e[68];let Z;e[69]===E.error?Z=e[70]:(Z=E.error?(0,w.jsx)(`p`,{className:`text-xs text-red-800 dark:text-red-200`,children:E.error}):null,e[69]=E.error,e[70]=Z);let Q;e[71]===r.certWarning?Q=e[72]:(Q=(0,w.jsx)(`div`,{className:`rounded-lg bg-amber-50 px-3 py-2 text-xs leading-relaxed text-amber-950 dark:bg-amber-950/30 dark:text-amber-100`,children:r.certWarning}),e[71]=r.certWarning,e[72]=Q);let $;e[73]!==I||e[74]!==W||e[75]!==G||e[76]!==K||e[77]!==q||e[78]!==X||e[79]!==Z||e[80]!==Q?($=(0,w.jsxs)(`div`,{className:`mt-4 space-y-3`,children:[I,W,G,K,q,X,Z,Q]}),e[73]=I,e[74]=W,e[75]=G,e[76]=K,e[77]=q,e[78]=X,e[79]=Z,e[80]=Q,e[81]=$):$=e[81];let ge;return e[82]!==F||e[83]!==$?(ge=(0,w.jsx)(`div`,{className:`flex flex-col gap-4`,children:(0,w.jsxs)(ne,{children:[F,$]})}),e[82]=F,e[83]=$,e[84]=ge):ge=e[84],ge}function ce(e){return e.conversationId}function le(e){return e.language}function ue(e){let t=(0,C.c)(18),{result:n,labels:r}=e;if(n.ok){let e;t[0]===r.ok?e=t[1]:(e=(0,w.jsx)(`span`,{className:`font-medium`,children:r.ok}),t[0]=r.ok,t[1]=e);let i;t[2]===n.latencyMs?i=t[3]:(i=(0,w.jsxs)(`span`,{className:`font-mono`,children:[n.latencyMs,`ms`]}),t[2]=n.latencyMs,t[3]=i);let a;t[4]!==r.gatewayReady||t[5]!==n.gatewayReady?(a=n.gatewayReady?(0,w.jsxs)(w.Fragment,{children:[` · `,(0,w.jsx)(`span`,{children:r.gatewayReady})]}):null,t[4]=r.gatewayReady,t[5]=n.gatewayReady,t[6]=a):a=t[6];let o;return t[7]!==e||t[8]!==i||t[9]!==a?(o=(0,w.jsxs)(`div`,{className:`rounded-lg bg-emerald-50 px-3 py-2 text-xs text-emerald-900 dark:bg-emerald-950/30 dark:text-emerald-100`,children:[e,` · `,i,a]}),t[7]=e,t[8]=i,t[9]=a,t[10]=o):o=t[10],o}let i=r[`code_${n.code}`]??r.codeUnknown,a;t[11]===i?a=t[12]:(a=(0,w.jsx)(`span`,{className:`font-medium`,children:i}),t[11]=i,t[12]=a);let o;t[13]===n.message?o=t[14]:(o=n.message?(0,w.jsxs)(w.Fragment,{children:[` — `,(0,w.jsx)(`span`,{className:`font-mono break-all`,children:n.message})]}):null,t[13]=n.message,t[14]=o);let s;return t[15]!==a||t[16]!==o?(s=(0,w.jsxs)(`div`,{className:`rounded-lg bg-red-50 px-3 py-2 text-xs text-red-900 dark:bg-red-950/30 dark:text-red-100`,children:[a,o]}),t[15]=a,t[16]=o,t[17]=s):s=t[17],s}async function de(){let e=await f(u(`/api/device-pairing/readiness`));return{ready:e.ready,routes:e.routes,protocolVersion:e.protocolVersion}}async function fe(e){try{return{kind:`ready`,setup:(await f(u(`/api/device-pairing/setups`),{method:`POST`,body:JSON.stringify({targetKind:e})})).setup}}catch(e){if(e.body?.error?.code===`NO_SECURE_ROUTE`)return{kind:`needs-secure-route`};throw e}}async function pe(e){return f(u(`/api/device-pairing/setups/${encodeURIComponent(e)}`))}async function P(e){await f(u(`/api/device-pairing/setups/${encodeURIComponent(e)}`),{method:`DELETE`})}async function me(e,t){await f(u(`/api/device-pairing/requests/${encodeURIComponent(e.requestId)}/decision`),{method:`POST`,body:JSON.stringify({decision:t,expectedRevision:e.revision})})}async function F(){let e=await l(u(`/api/browser/extension/archive`));if(!e.ok)throw Error(`Browser extension download failed (${e.status})`);let t=e.headers.get(`Content-Disposition`)??``,n=/filename="([^"]+)"/.exec(t)?.[1]??`xopc-browser-extension.zip`,r=URL.createObjectURL(await e.blob());try{let e=document.createElement(`a`);e.href=r,e.download=n,e.click()}finally{URL.revokeObjectURL(r)}}var I=`https://console.xopc.ai/access/client`;function L(e){if(!e||typeof e!=`object`)return;let t=e.body;if(!t||typeof t!=`object`)return;let n=t.error;if(!n||typeof n!=`object`)return;let r=n.code;return typeof r==`string`?r:void 0}function R(e){return[`tunnel_oauth_required`,`invalid_token`,`insufficient_scope`].includes(L(e)??``)}async function z(){return f(u(`/api/tunnel/status`))}async function B(){await f(u(`/api/tunnel/consent`),{method:`POST`,body:JSON.stringify({})})}async function V(){await f(u(`/api/tunnel/registration-key`),{method:`POST`,body:JSON.stringify({})})}async function H(){return f(u(`/api/tunnel/start`),{method:`POST`,body:JSON.stringify({})})}async function he(e){return f(u(`/api/tunnel/stop`),{method:`POST`,body:JSON.stringify({release:e?.release===!0})})}async function U(){let e=(await f(u(`/api/tunnel/reveal-registration-secret`),{method:`POST`,body:JSON.stringify({})})).payload;if(!e)throw Error(`Missing reveal payload`);return{registrationSecret:e.registrationSecret??null,source:e.source===`config`?`config`:`none`}}async function W(e){await f(u(`/api/config`),{method:`PATCH`,body:JSON.stringify({tunnel:e})})}export{N as _,B as a,T as b,he as c,P as d,fe as f,pe as g,de as h,V as i,L as l,F as m,z as n,U as o,me as p,W as r,H as s,I as t,R as u,j as v,E as y};
|
|
@@ -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-BvcCCgTW.js";import{t as a}from"./popover-select-DGKUpVsz.js";import{t as o}from"./messages-BYq0cPbn.js";import{i as s,n as ee,o as c}from"./locale-store-B7s2Hb35.js";import{i as l}from"./vendor-swr-BIWyz7Rc.js";import{t as u}from"./button-aIC072nz.js";import{t as d}from"./skeleton-BI5TyibZ.js";import{Bd as f,Ha as p,Il as m,Zu as h,fd as g,gd as _,jd as v,ol as y}from"./index-Bys6njTY.js";import{n as b,t as te}from"./settings-page-header-CYpuTXUW.js";import"./settings-page-layout-B20AfmFG.js";import{t as x}from"./xopc-cloud-account-card-CvT_W6YS.js";var S=e(t(),1),C=n();function w(e,t=Date.now()+1){let n=t-e*24*60*60*1e3;return new URLSearchParams({from:String(n),to:String(t)}).toString()}function T(e){return c(s(`/api/usage/summary?${e}`))}function E(e,t,n=20){let r=new URLSearchParams(e);return r.set(`limit`,String(n)),t&&r.set(`cursor`,t),c(s(`/api/usage/events?${r}`))}var D=r();function O(e,t){return new Intl.NumberFormat(t===`zh`?`zh-CN`:`en-US`,{notation:`compact`,maximumFractionDigits:1}).format(e)}function k(e){return`$${Number(e).toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:6})}`}function A(e){let t=BigInt(e),n=String(t%10000n).padStart(4,`0`).replace(/0+$/,``);return`${t/10000n}${n?`.${n}`:``}`}function j(e,t){return new Intl.DateTimeFormat(t===`zh`?`zh-CN`:`en-US`,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(e)}function M(){let e=(0,C.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,D.jsxs)(`div`,{className:`space-y-4`,"aria-busy":`true`,children:[(0,D.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:[0,1,2,3].map(N)}),(0,D.jsx)(d,{className:`h-52 rounded-xl`}),(0,D.jsx)(d,{className:`h-72 rounded-xl`})]}),e[0]=t):t=e[0],t}function N(e){return(0,D.jsx)(d,{className:`h-24 rounded-xl`},e)}function P(){let e=ee(e=>e.language),t=o(e).usage,[n,r]=i(),s=[`7`,`30`,`90`].includes(n.get(`days`)??``)?n.get(`days`):`7`,c=n.get(`size`)===`50`?50:20,C=n.getAll(`cursor`),N=C.at(-1),[P]=(0,S.useState)(()=>Date.now()+1),F=Number(n.get(`to`)),I=Number.isSafeInteger(F)&&F>Number(s)*864e5?F:P,L=(0,S.useMemo)(()=>w(Number(s),I),[s,I]),R=l([`usage-summary`,L],()=>T(L),{refreshInterval:15e3}),z=l([`usage-events`,L,N,c],()=>E(L,N,c),{refreshInterval:15e3}),B=!R.data&&!R.error,V=R.error,H=e=>{let t=new URLSearchParams(n);t.set(`to`,String(I)),e(t),r(t)},U=e=>H(t=>{t.set(`days`,e),t.set(`to`,String(Date.now()+1)),t.delete(`cursor`),t.delete(`groupPage`)}),W=n.get(`group`)===`model`?`model`:`scenario`,G=[...W===`model`?R.data?.byModel??[]:R.data?.byCategory??[]].sort((e,t)=>t.totals.calls-e.totals.calls||e.key.localeCompare(t.key)),K=Math.max(1,Math.ceil((G?.length??0)/6)),q=Number(n.get(`groupPage`)),J=Math.min(K,Number.isSafeInteger(q)&&q>0?q:1),Y=G?.slice((J-1)*6,J*6),X=C.length+1,Z=R.data?.totals,ne=(Z?.billing?.cloud.calls??0)>0,Q=e=>{let n=e.billing?.cloud;return n?.calls?n.chargedCreditMicro===null?t.cloudUnconfirmed:`${n.pendingCalls+n.unavailableCalls>0?`≥ `:``}${A(n.chargedCreditMicro)} Credits`:t.noCloudCalls},$=e=>{let n=e.billing?.external;return n?.calls?n.unknownCostCalls===n.calls?t.costUnknown:`${n.unknownCostCalls>0?`≥ `:`≈ `}${k(n.estimatedCostUsd)}`:t.noExternalCalls},re=e=>e.billing?.source===`local`||e.provider!==`xopc-cloud`&&e.costSource===`local`?t.localSource:e.billing?.source===`xopc_cloud`||e.provider===`xopc-cloud`?t.cloudSource:t.externalSource,ie=e=>{let n=e.billing;return n?.source===`local`?t.localNoCharge:n?.source===`xopc_cloud`?n.state===`settled`&&n.chargedCreditMicro!==null?`${A(n.chargedCreditMicro)} Credits`:n.state===`released`?t.cloudReleased:n.state===`pending`?n.reservedCreditMicro===null?t.cloudPending:t.cloudPendingReserved.replace(`{{credits}}`,A(n.reservedCreditMicro)):t.cloudUnconfirmed:e.provider===`xopc-cloud`?t.cloudUnconfirmed:e.costSource===`local`?t.localNoCharge:e.estimatedCostUsd===void 0?t.costUnknown:`≈ ${k(e.estimatedCostUsd)}`},ae=e=>(0,D.jsxs)(`span`,{className:`flex flex-col items-end gap-1 text-xs`,children:[e.billing?.cloud.calls?(0,D.jsxs)(`span`,{children:[t.cloudSource,`: `,Q(e)]}):null,e.billing?.external.calls?(0,D.jsxs)(`span`,{children:[t.externalSource,`: `,$(e)]}):null,e.billing?.localCalls?(0,D.jsx)(`span`,{children:t.localNoCharge}):null,(0,D.jsxs)(`span`,{children:[e.calls,` `,t.callUnit]})]}),oe={"usage.reason.imageGeneration":t.reasons.imageGeneration,"usage.reason.audioTranscription":t.reasons.audioTranscription,"usage.reason.audioSpeech":t.reasons.audioSpeech,"usage.reason.agentAnswer":t.reasons.agentAnswer,"usage.reason.continueAfterTool":t.reasons.continueAfterTool,"usage.reason.backgroundReview":t.reasons.backgroundReview,"usage.reason.sessionCompaction":t.reasons.sessionCompaction,"usage.reason.sessionTitle":t.reasons.sessionTitle,"usage.reason.imageUnderstanding":t.reasons.imageUnderstanding,"usage.reason.webExtract":t.reasons.webExtract,"usage.reason.sessionSearch":t.reasons.sessionSearch,"usage.reason.noteGeneration":t.reasons.noteGeneration,"usage.reason.automationDraft":t.reasons.automationDraft,"usage.reason.taskPlanning":t.reasons.taskPlanning,"usage.reason.taskJudging":t.reasons.taskJudging,"usage.reason.voiceSummary":t.reasons.voiceSummary,"usage.reason.voiceSelection":t.reasons.voiceSelection,"usage.reason.homeAdvice":t.reasons.homeAdvice,"usage.reason.workDiscovery":t.reasons.workDiscovery,"usage.reason.workInvestigation":t.reasons.workInvestigation,"usage.reason.discussionAnalysis":t.reasons.discussionAnalysis,"usage.reason.textAssist":t.reasons.textAssist,"usage.reason.userModelInterpretation":t.reasons.userModelInterpretation,"usage.reason.other":t.reasons.other};return(0,D.jsxs)(b,{children:[(0,D.jsx)(te,{title:t.title,subtitle:t.subtitle,actions:(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(`div`,{className:`w-36`,children:(0,D.jsx)(a,{value:s,allowEmpty:!1,ariaLabel:t.periodLabel,placeholder:t.periodLabel,options:[{value:`7`,label:t.last7Days},{value:`30`,label:t.last30Days},{value:`90`,label:t.last90Days}],onChange:U})}),(0,D.jsx)(u,{variant:`ghost`,"aria-label":t.refresh,title:t.refresh,onClick:()=>U(s),children:(0,D.jsx)(m,{className:`size-4`,"aria-hidden":!0})})]})}),B?(0,D.jsx)(M,{}):V?(0,D.jsxs)(`div`,{role:`alert`,className:`flex items-start gap-3 rounded-xl border border-edge bg-surface-inset p-4 text-sm text-fg-muted`,children:[(0,D.jsx)(v,{className:`mt-0.5 size-4 shrink-0 text-danger`,"aria-hidden":!0}),(0,D.jsxs)(`div`,{className:`space-y-2`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`p`,{className:`font-medium text-fg`,children:t.loadError}),(0,D.jsx)(`p`,{className:`mt-1`,children:String(V.message??V)})]}),(0,D.jsx)(u,{variant:`secondary`,onClick:()=>void Promise.all([R.mutate(),z.mutate()]),children:t.retry})]})]}):Z?(0,D.jsxs)(`div`,{className:`space-y-5`,children:[(0,D.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:t.summaryLabel}),(0,D.jsx)(`section`,{"aria-label":t.summaryLabel,className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:[{label:t.cloudCharged,value:Q(Z),icon:_},{label:t.knownCost,value:$(Z),icon:_},{label:t.calls,value:Z.calls.toLocaleString(),icon:h},{label:t.tokens,value:O(Z.totalTokens,e),icon:g}].map(e=>(0,D.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-panel p-4`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-fg-muted`,children:[(0,D.jsx)(e.icon,{className:`size-4`,"aria-hidden":!0}),e.label]}),(0,D.jsx)(`div`,{className:`mt-2 text-xl font-semibold tabular-nums text-fg`,children:e.value})]},e.label))}),(Z.billing?.external.unknownCostCalls??0)>0?(0,D.jsx)(`p`,{className:`rounded-lg border border-edge bg-surface-inset px-3 py-2 text-xs leading-5 text-fg-muted`,children:Z.billing?.external.unknownCostCalls===Z.billing?.external.calls?t.allCostsUnknown:t.someCostsUnknown}):null,Z.billing?.cloud.calls?(0,D.jsxs)(`p`,{className:`rounded-lg border border-edge bg-surface-inset px-3 py-2 text-xs leading-5 text-fg-muted`,children:[t.cloudCoverage.replace(`{{pending}}`,String(Z.billing.cloud.pendingCalls)).replace(`{{unknown}}`,String(Z.billing.cloud.unavailableCalls)),Z.billing.cloud.reservedCreditMicro===null?``:` ${t.cloudReserved.replace(`{{credits}}`,A(Z.billing.cloud.reservedCreditMicro))}`]}):null,(0,D.jsxs)(`section`,{className:`overflow-hidden rounded-xl border border-edge bg-surface-panel`,children:[(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:t.distribution}),(0,D.jsx)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:t.distributionHint})]}),(0,D.jsx)(p,{className:`flex gap-1`,role:`group`,"aria-label":t.distribution,children:[`scenario`,`model`].map(e=>(0,D.jsx)(u,{variant:W===e?`secondary`:`ghost`,"aria-pressed":W===e,onClick:()=>H(t=>{t.set(`group`,e),t.delete(`groupPage`)}),children:e===`scenario`?t.byScenario:t.byModel},e))})]}),(0,D.jsx)(`div`,{className:`divide-y divide-edge-subtle px-4`,children:Y?.length?Y.map(e=>{let n=W===`scenario`?t.categories[e.key]??e.key:e.key;return(0,D.jsxs)(`div`,{className:`flex flex-col gap-3 py-3 text-sm sm:flex-row sm:items-center sm:justify-between`,children:[(0,D.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,D.jsx)(`p`,{className:`truncate font-medium text-fg`,title:n,children:n}),(0,D.jsx)(`div`,{className:`mt-2 h-1 max-w-64 overflow-hidden rounded-full bg-surface-inset`,"aria-hidden":!0,children:(0,D.jsx)(`div`,{className:`h-full rounded-full bg-accent`,style:{width:`${Z.calls?e.totals.calls/Z.calls*100:0}%`}})})]}),(0,D.jsx)(`div`,{className:`shrink-0 self-end tabular-nums text-fg-muted sm:self-auto`,children:ae(e.totals)})]},e.key)}):(0,D.jsx)(`p`,{className:`py-5 text-sm text-fg-subtle`,children:t.empty})}),K>1?(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-edge px-4 py-3`,children:[(0,D.jsx)(`p`,{className:`text-xs text-fg-muted`,"aria-live":`polite`,children:t.groupPage.replace(`{{page}}`,String(J)).replace(`{{pages}}`,String(K)).replace(`{{count}}`,String(G?.length??0))}),(0,D.jsxs)(`div`,{className:`flex gap-2`,children:[(0,D.jsx)(u,{disabled:J===1,"aria-label":t.previousDistribution,onClick:()=>H(e=>e.set(`groupPage`,String(J-1))),children:t.previousPage}),(0,D.jsx)(u,{disabled:J===K,"aria-label":t.nextDistribution,onClick:()=>H(e=>e.set(`groupPage`,String(J+1))),children:t.nextPage})]})]}):null]}),(0,D.jsxs)(`section`,{className:`overflow-hidden rounded-xl border border-edge bg-surface-panel`,children:[(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:t.recentCalls}),(0,D.jsx)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:t.recentCallsHint})]}),(0,D.jsx)(`div`,{className:`w-36`,children:(0,D.jsx)(a,{value:String(c),allowEmpty:!1,ariaLabel:t.pageSize,placeholder:t.pageSize,options:[20,50].map(e=>({value:String(e),label:t.rowsPerPage.replace(`{{count}}`,String(e))})),onChange:e=>H(t=>{t.set(`size`,e),t.delete(`cursor`)})})})]}),(0,D.jsx)(`div`,{className:`divide-y divide-edge-subtle`,children:z.error?(0,D.jsxs)(`div`,{role:`alert`,className:`space-y-3 p-4 text-sm text-fg-muted`,children:[(0,D.jsx)(`p`,{children:t.loadError}),(0,D.jsx)(u,{onClick:()=>void z.mutate(),children:t.retry})]}):z.data?z.data.items.length?z.data.items.map(n=>(0,D.jsxs)(`article`,{className:`grid gap-2 px-4 py-3 text-sm sm:grid-cols-[minmax(0,1fr)_auto] sm:items-center`,children:[(0,D.jsxs)(`div`,{className:`min-w-0`,children:[(0,D.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,D.jsx)(f,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":!0}),(0,D.jsx)(`span`,{className:`truncate font-medium text-fg`,children:oe[n.reasonKey]??t.reasons.other})]}),(0,D.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-fg-subtle`,children:[(0,D.jsxs)(`span`,{className:`min-w-0 [overflow-wrap:anywhere]`,children:[n.provider,`/`,n.model]}),(0,D.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,D.jsx)(y,{className:`size-3`,"aria-hidden":!0}),j(n.startedAt,e)]}),(0,D.jsx)(`span`,{className:`rounded border border-edge px-1.5 py-0.5`,children:re(n)}),(0,D.jsx)(`span`,{children:n.totalTokens===void 0?t.tokensUnknown:`${O(n.totalTokens,e)} tokens`})]})]}),(0,D.jsxs)(`div`,{className:`text-left tabular-nums text-fg sm:text-right`,children:[ie(n),(0,D.jsx)(`div`,{className:`mt-0.5 text-xs text-fg-subtle`,children:t.status[n.status]??n.status})]})]},n.id)):(0,D.jsx)(`p`,{className:`px-4 py-8 text-center text-sm text-fg-subtle`,children:t.empty}):(0,D.jsx)(`div`,{"aria-busy":`true`,className:`space-y-3 p-4`,children:[0,1,2,3].map(e=>(0,D.jsx)(d,{className:`h-16`},e))})}),(0,D.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-t border-edge px-4 py-3`,children:[(0,D.jsx)(`p`,{className:`text-xs text-fg-muted`,"aria-live":`polite`,children:t.eventPage.replace(`{{page}}`,String(X)).replace(`{{count}}`,String(z.data?.items.length??0))}),(0,D.jsxs)(`nav`,{className:`flex gap-2`,"aria-label":t.pagination,children:[X>1?(0,D.jsx)(u,{variant:`ghost`,onClick:()=>H(e=>e.delete(`cursor`)),children:t.firstPage}):null,(0,D.jsx)(u,{disabled:X===1,onClick:()=>H(e=>{e.delete(`cursor`),C.slice(0,-1).forEach(t=>e.append(`cursor`,t))}),children:t.previousPage}),(0,D.jsx)(u,{disabled:!z.data?.nextCursor||!!z.error,onClick:()=>H(e=>{z.data?.nextCursor&&e.append(`cursor`,z.data.nextCursor)}),children:t.nextPage})]})]})]}),(0,D.jsxs)(`details`,{className:`rounded-xl border border-edge bg-surface-panel p-4`,children:[(0,D.jsx)(`summary`,{className:`cursor-pointer text-sm font-medium text-fg focus-visible:outline-accent`,children:t.billingDetails}),(0,D.jsx)(`p`,{className:`mt-3 text-xs leading-5 text-fg-muted`,children:t.cloudBillingHint}),(0,D.jsx)(`a`,{className:`mt-2 inline-block text-xs text-accent-fg hover:underline`,href:`https://console.xopc.ai/models/billing`,target:`_blank`,rel:`noreferrer`,children:t.cloudCreditsLabel}),ne?(0,D.jsx)(`div`,{className:`mt-4`,children:(0,D.jsx)(x,{labels:o(e).capabilitiesSettings.xopcCloudAccount})}):null]})]}):null]})}export{P as UsageSettingsPage};
|
|
@@ -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"./check-DUBLcKHA.js";import{t as a}from"./loader-circle-CifKLtgG.js";import{t as o}from"./cn-0WouolD0.js";import{n as s}from"./locale-store-B7s2Hb35.js";import{jd as c}from"./index-Bys6njTY.js";var l=n(),u=r();function d(e){let t=(0,l.c)(21),{status:n,error:r,className:d}=e,p=s(f)===`zh`;if(n===`idle`)return null;let m=n===`saving`?p?`正在保存…`:`Saving…`:n===`saved`?p?`已自动保存`:`Saved automatically`:n===`error`?r||(p?`自动保存失败`:`Autosave failed`):n===`dirty`?p?`编辑中,将自动保存`:`Editing — autosave pending`:``,h=n===`error`?`text-danger`:n===`saved`?`text-success`:`text-fg-subtle`,g;t[0]!==d||t[1]!==h?(g=o(`inline-flex min-w-0 items-center gap-1.5 text-xs`,h,d),t[0]=d,t[1]=h,t[2]=g):g=t[2];let _;t[3]===n?_=t[4]:(_=n===`saving`?(0,u.jsx)(a,{className:`size-3.5 shrink-0 animate-spin`,"aria-hidden":!0}):null,t[3]=n,t[4]=_);let v;t[5]===n?v=t[6]:(v=n===`saved`?(0,u.jsx)(i,{className:`size-3.5 shrink-0`,"aria-hidden":!0}):null,t[5]=n,t[6]=v);let y;t[7]===n?y=t[8]:(y=n===`error`?(0,u.jsx)(c,{className:`size-3.5 shrink-0`,"aria-hidden":!0}):null,t[7]=n,t[8]=y);let b;t[9]===n?b=t[10]:(b=n===`dirty`?(0,u.jsx)(`span`,{className:`size-1.5 shrink-0 rounded-full bg-current`,"aria-hidden":!0}):null,t[9]=n,t[10]=b);let x;t[11]===m?x=t[12]:(x=(0,u.jsx)(`span`,{className:`truncate`,children:m}),t[11]=m,t[12]=x);let S;return t[13]!==m||t[14]!==g||t[15]!==_||t[16]!==v||t[17]!==y||t[18]!==b||t[19]!==x?(S=(0,u.jsxs)(`span`,{className:g,role:`status`,"aria-live":`polite`,title:m,children:[_,v,y,b,x]}),t[13]=m,t[14]=g,t[15]=_,t[16]=v,t[17]=y,t[18]=b,t[19]=x,t[20]=S):S=t[20],S}function f(e){return e.language}var p=e(t(),1);function m({value:e,dirty:t,onSave:n,enabled:r=!0,delayMs:i=700,validate:a,serialize:o=JSON.stringify}){let[s,c]=(0,p.useState)(`idle`),[l,u]=(0,p.useState)(null),d=(0,p.useRef)(e),f=(0,p.useRef)(n),m=(0,p.useRef)(a),h=(0,p.useRef)(o),g=(0,p.useRef)(null),_=(0,p.useRef)(!1),v=(0,p.useRef)(null),y=(0,p.useRef)(null),b=(0,p.useRef)(null),x=(0,p.useRef)(!0);d.current=e,f.current=n,m.current=a,h.current=o;let S=(0,p.useCallback)(()=>{g.current!==null&&(window.clearTimeout(g.current),g.current=null)},[]),C=(0,p.useCallback)(async e=>{S();let t=h.current(e);b.current=t;let n=m.current?.(e)??null;if(n){u(n),c(`error`);return}if(_.current){v.current=e;return}_.current=!0,u(null),c(`saving`);try{await f.current(e),y.current=t,x.current&&c(`saved`)}catch(e){x.current&&(u(e instanceof Error?e.message:String(e)),c(`error`))}finally{_.current=!1;let e=v.current;v.current=null,e&&h.current(e)!==y.current&&C(e)}},[S]),w=(0,p.useCallback)(()=>{let e=d.current;!r||!t||e===null||C(e)},[t,r,C]),T=(0,p.useCallback)(e=>{let t=e??d.current;!r||t===null||C(t)},[r,C]);return(0,p.useEffect)(()=>{if(!r||!t||e===null){S(),!t&&s===`dirty`&&c(`idle`);return}let n=o(e);if(n!==y.current&&!(s===`error`&&n===b.current))return c(e=>e===`saving`?e:`dirty`),S(),g.current=window.setTimeout(()=>void C(e),i),S},[S,i,t,r,C,o,s,e]),(0,p.useEffect)(()=>(x.current=!0,()=>{x.current=!1,S()}),[S]),(0,p.useEffect)(()=>{if(s!==`saved`)return;let e=window.setTimeout(()=>c(`idle`),1600);return()=>window.clearTimeout(e)},[s]),{status:s,error:l,flush:w,saveNow:T,retry:w,onBlurCapture:w}}export{d as n,m as t};
|
|
@@ -1,2 +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{l as i,m as a,t as o}from"./chunk-KS7C4IRE-BvcCCgTW.js";import{t as s}from"./check-DUBLcKHA.js";import{t as c}from"./chevron-down-ccbiQQz_.js";import{n as l,r as u,t as d}from"./popover-select-DGKUpVsz.js";import{t as f}from"./circle-check-C23XjkUj.js";import{t as p}from"./download-Dk-ZjtO6.js";import{t as m}from"./ellipsis-0k4rZLoy.js";import{t as h}from"./folder-open-CyzJ19I9.js";import{t as g}from"./loader-circle-CifKLtgG.js";import{t as _}from"./cn-0WouolD0.js";import{i as v,n as y,o as b}from"./locale-store-B7s2Hb35.js";import{i as x}from"./vendor-swr-BIWyz7Rc.js";import{t as S}from"./button-aIC072nz.js";import{t as C}from"./skeleton-BI5TyibZ.js";import{$ as w,$c as T,Al as E,Bc as ee,Bd as D,C as O,Cu as k,Fu as A,Ha as j,Hc as M,Hd as N,Ic as P,Id as F,Il as I,J as L,Jc as R,Lc as z,Ld as B,Md as V,Pd as H,Po as U,Q as W,Rc as te,Uc as G,Ul as K,Vc as ne,X as q,Xl as re,Xu as J,Y as ie,Yu as ae,Z as oe,_u as se,aa as ce,al as le,ao as ue,at as de,bu as fe,ca as pe,ct as me,dd as he,el as ge,et as _e,fd as ve,fl as ye,gu as be,it as xe,jd as Se,md as Ce,nt as we,oa as Te,ot as Ee,q as De,ro as Oe,rt as ke,sa as Ae,sd as je,st as Me,tl as Ne,tt as Pe,ua as Fe,vu as Ie,wl as Le,xd as Re,xl as ze,yl as Be,yo as Ve,zc as He}from"./index-Bys6njTY.js";import{t as Ue}from"./date-picker-DuyyD6jz.js";var Y=e(t(),1),X=n(),Z=r();function We(e){let t=(0,X.c)(15),{sourceId:n,disabled:r}=e,i=r===void 0?!1:r,a=y(Ke)===`zh`,{sources:o,starting:s,start:c}=O(),l;t[0]!==n||t[1]!==o?(l=n?o.filter(e=>e.grantId===n):o,t[0]=n,t[1]=o,t[2]=l):l=t[2];let u=l,d;t[3]===u?d=t[4]:(d=u.some(Q),t[3]=u,t[4]=d);let f=d,p=n&&u.some(Ge),m=f?a?`更新中`:`Updating`:p?a?`重试`:`Retry`:n?a?`更新理解`:`Update understanding`:a?`更新全部`:`Update all`,h=i||s||f,_;t[5]!==n||t[6]!==c?(_=()=>void c(n),t[5]=n,t[6]=c,t[7]=_):_=t[7];let v;t[8]===f?v=t[9]:(v=f?(0,Z.jsx)(g,{className:`size-3.5 animate-spin motion-reduce:animate-none`}):(0,Z.jsx)(I,{className:`size-3.5`}),t[8]=f,t[9]=v);let b;return t[10]!==m||t[11]!==h||t[12]!==_||t[13]!==v?(b=(0,Z.jsxs)(S,{variant:`ghost`,className:`h-8 shrink-0 gap-1.5 px-2 text-xs`,disabled:h,onClick:_,children:[v,m]}),t[10]=m,t[11]=h,t[12]=_,t[13]=v,t[14]=b):b=t[14],b}function Ge(e){return e.status===`failed`||e.status===`partial`||e.status===`canceled`}function Q(e){return e.status===`queued`||e.status===`running`}function Ke(e){return e.language}function qe(e){let t=(0,X.c)(22),{sourceId:n,lastCollectedAt:r}=e,i=y(Je),a=i===`zh`,o;t[0]===n?o=t[1]:(o=e=>e.sources.find(e=>e.grantId===n),t[0]=n,t[1]=o);let s=O(o);if(!s){let e;t[2]!==i||t[3]!==r||t[4]!==a?(e=r?`${a?`上次更新:`:`Last updated: `}${new Date(r).toLocaleString(i)}`:a?`尚未分析`:`Not analyzed yet`,t[2]=i,t[3]=r,t[4]=a,t[5]=e):e=t[5];let n;return t[6]===e?n=t[7]:(n=(0,Z.jsx)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:e}),t[6]=e,t[7]=n),n}let c;t[8]===a?c=t[9]:(c=a?{queued:`等待更新`,waiting_desktop:`等待桌面端读取资料`,reading:`正在读取资料`,analyzing:`正在更新理解`}:{queued:`Queued`,waiting_desktop:`Waiting for desktop collection`,reading:`Reading source`,analyzing:`Updating understanding`},t[8]=a,t[9]=c);let l=c,u=s.status===`running`||s.status===`queued`,d=s.status===`failed`||s.status===`partial`||s.status===`canceled`,f=s.metadata.added,p=u?l[s.metadata.phase??`queued`]??l.queued:d?a?`更新未完成,可重试`:`Update incomplete; retry available`:f===0?a?`更新完成,暂无新增理解`:`Updated; no new understanding`:f===void 0?a?`更新完成`:`Updated`:a?`更新完成,新增 ${f} 条`:`Updated; ${f} added`,m;t[10]===p?m=t[11]:(m=(0,Z.jsx)(`p`,{children:p}),t[10]=p,t[11]=m);let h;t[12]!==i||t[13]!==s.completedAt?(h=s.completedAt?(0,Z.jsx)(`p`,{children:new Date(s.completedAt).toLocaleString(i)}):null,t[12]=i,t[13]=s.completedAt,t[14]=h):h=t[14];let g;t[15]!==d||t[16]!==s.errorMessage?(g=d&&s.errorMessage?(0,Z.jsx)(`p`,{className:`text-danger`,children:s.errorMessage}):null,t[15]=d,t[16]=s.errorMessage,t[17]=g):g=t[17];let _;return t[18]!==m||t[19]!==h||t[20]!==g?(_=(0,Z.jsxs)(`div`,{className:`mt-1 text-xs leading-5 text-fg-subtle`,"aria-live":`polite`,children:[m,h,g]}),t[18]=m,t[19]=h,t[20]=g,t[21]=_):_=t[21],_}function Je(e){return e.language}function Ye(e){let t=(0,X.c)(64),{language:n,busy:r,statement:i,scope:a,onEdit:o,onDelete:s,onScopeChange:c}=e,[l,u]=(0,Y.useState)(!1),[d,f]=(0,Y.useState)(!1),p=n===`zh`,h=p?`修改或删除这条内容`:`Edit or delete this item`,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Z.jsx)(m,{className:`size-4`,"aria-hidden":`true`}),t[0]=g):g=t[0];let _;t[1]!==r||t[2]!==h?(_=(0,Z.jsx)(Fe,{asChild:!0,children:(0,Z.jsx)(S,{variant:`ghost`,className:`size-11 shrink-0 p-0`,disabled:r,"aria-label":h,children:g})}),t[1]=r,t[2]=h,t[3]=_):_=t[3];let v;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,Z.jsx)(re,{className:`size-4`,"aria-hidden":`true`}),t[4]=v):v=t[4];let y=p?`修改`:`Edit`,b;t[5]!==r||t[6]!==o||t[7]!==y?(b=(0,Z.jsxs)(Te,{className:`flex min-h-11 cursor-pointer items-center gap-2 rounded-lg px-3 text-sm text-fg outline-none focus:bg-surface-hover data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,disabled:r,onSelect:o,children:[v,y]}),t[5]=r,t[6]=o,t[7]=y,t[8]=b):b=t[8];let x;t[9]!==r||t[10]!==c||t[11]!==a||t[12]!==p?(x=a&&c?(0,Z.jsxs)(Te,{className:`flex min-h-11 cursor-pointer items-center gap-2 rounded-lg px-3 text-sm text-fg outline-none focus:bg-surface-hover data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,disabled:r,onSelect:()=>f(!0),children:[(0,Z.jsx)(ze,{className:`size-4`,"aria-hidden":`true`}),p?`作用范围`:`Where it applies`]}):null,t[9]=r,t[10]=c,t[11]=a,t[12]=p,t[13]=x):x=t[13];let C,w;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(C=()=>u(!0),w=(0,Z.jsx)(le,{className:`size-4`,"aria-hidden":`true`}),t[14]=C,t[15]=w):(C=t[14],w=t[15]);let T=p?`删除`:`Delete`,E;t[16]!==r||t[17]!==T?(E=(0,Z.jsxs)(Te,{className:`flex min-h-11 cursor-pointer items-center gap-2 rounded-lg px-3 text-sm text-fg outline-none focus:bg-surface-hover data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,disabled:r,onSelect:C,children:[w,T]}),t[16]=r,t[17]=T,t[18]=E):E=t[18];let O;t[19]!==E||t[20]!==b||t[21]!==x?(O=(0,Z.jsx)(Ae,{children:(0,Z.jsxs)(ce,{align:`end`,sideOffset:4,className:`z-[100] min-w-36 rounded-xl border border-edge bg-surface-overlay p-1 shadow-popover`,children:[b,x,E]})}),t[19]=E,t[20]=b,t[21]=x,t[22]=O):O=t[22];let k;t[23]!==O||t[24]!==_?(k=(0,Z.jsxs)(pe,{modal:!1,children:[_,O]}),t[23]=O,t[24]=_,t[25]=k):k=t[25];let A;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Z.jsx)(ee,{className:`fixed inset-0 z-[110] bg-scrim`}),t[26]=A):A=t[26];let j=p?`删除这条内容?`:`Delete this item?`,N;t[27]===j?N=t[28]:(N=(0,Z.jsx)(M,{className:`font-semibold text-fg`,children:j}),t[27]=j,t[28]=N);let F=p?`删除后将不再使用这条记忆,原始对话和文件会保留。`:`This memory will no longer be used. Original conversations and files are kept.`,I;t[29]===F?I=t[30]:(I=(0,Z.jsx)(He,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:F}),t[29]=F,t[30]=I);let L;t[31]!==N||t[32]!==I?(L=(0,Z.jsxs)(`header`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[N,I]}),t[31]=N,t[32]=I,t[33]=L):L=t[33];let R;t[34]===i?R=t[35]:(R=(0,Z.jsx)(`p`,{className:`min-h-0 flex-1 overflow-y-auto whitespace-pre-wrap break-words px-5 py-4 text-sm leading-6 text-fg`,children:i}),t[34]=i,t[35]=R);let B=p?`取消`:`Cancel`,V;t[36]===B?V=t[37]:(V=(0,Z.jsx)(z,{asChild:!0,children:(0,Z.jsx)(S,{variant:`ghost`,children:B})}),t[36]=B,t[37]=V);let H;t[38]===s?H=t[39]:(H=()=>{u(!1),s()},t[38]=s,t[39]=H);let U=p?`删除`:`Delete`,W;t[40]!==r||t[41]!==H||t[42]!==U?(W=(0,Z.jsx)(S,{disabled:r,onClick:H,children:U}),t[40]=r,t[41]=H,t[42]=U,t[43]=W):W=t[43];let G;t[44]!==V||t[45]!==W?(G=(0,Z.jsxs)(`footer`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-3`,children:[V,W]}),t[44]=V,t[45]=W,t[46]=G):G=t[46];let K;t[47]!==L||t[48]!==R||t[49]!==G?(K=(0,Z.jsxs)(ne,{children:[A,(0,Z.jsxs)(te,{className:`fixed left-1/2 top-1/2 z-[120] flex h-[min(22rem,calc(100dvh-2rem))] w-[min(28rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay shadow-popover`,children:[L,R,G]})]}),t[47]=L,t[48]=R,t[49]=G,t[50]=K):K=t[50];let q;t[51]!==l||t[52]!==k||t[53]!==K?(q=(0,Z.jsxs)(P,{open:l,onOpenChange:u,children:[k,K]}),t[51]=l,t[52]=k,t[53]=K,t[54]=q):q=t[54];let J;t[55]!==r||t[56]!==c||t[57]!==a||t[58]!==d||t[59]!==p?(J=a&&c?(0,Z.jsx)(P,{open:d,onOpenChange:f,children:(0,Z.jsxs)(ne,{children:[(0,Z.jsx)(ee,{className:`fixed inset-0 z-[110] bg-scrim`}),(0,Z.jsxs)(te,{className:`fixed left-1/2 top-1/2 z-[120] flex h-[min(25rem,calc(100dvh-2rem))] w-[min(28rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-overlay shadow-popover`,children:[(0,Z.jsxs)(`header`,{className:`shrink-0 border-b border-edge px-5 py-4`,children:[(0,Z.jsx)(M,{className:`font-semibold text-fg`,children:p?`这条记忆在哪里生效?`:`Where should this memory apply?`}),(0,Z.jsx)(He,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:p?`你可以让它用于所有协作,或只用于当前助手。`:`Use it across all work, or keep it only for this assistant.`})]}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto p-4`,children:[{value:{type:`global`},icon:he,title:p?`所有协作`:`All work`,detail:p?`任何助手和对话都可按需使用`:`Available when relevant in any assistant or conversation`},{value:{type:`agent`,id:a.type===`agent`?a.id??`main`:`main`},icon:D,title:p?`仅当前助手`:`This assistant only`,detail:p?`不会分享给其他助手`:`Not shared with other assistants`}].map(e=>{let{value:t,icon:n,title:i,detail:o}=e,s=a.type===t.type&&(a.id??``)===(t.id??``);return(0,Z.jsxs)(`button`,{type:`button`,className:`flex min-h-20 w-full items-center gap-3 rounded-xl px-4 py-3 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${s?`bg-surface-active`:`hover:bg-surface-hover`}`,disabled:r,onClick:()=>{f(!1),c(t)},children:[(0,Z.jsx)(n,{className:`size-5 shrink-0 text-fg-muted`,"aria-hidden":`true`}),(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:i}),(0,Z.jsx)(`span`,{className:`mt-1 block text-xs leading-5 text-fg-muted`,children:o})]}),s?(0,Z.jsx)(`span`,{className:`text-xs font-medium text-accent-fg`,children:p?`当前`:`Current`}):null]},t.type)})}),(0,Z.jsx)(`footer`,{className:`flex shrink-0 justify-end border-t border-edge px-5 py-3`,children:(0,Z.jsx)(z,{asChild:!0,children:(0,Z.jsx)(S,{variant:`ghost`,children:p?`取消`:`Cancel`})})})]})]})}):null,t[55]=r,t[56]=c,t[57]=a,t[58]=d,t[59]=p,t[60]=J):J=t[60];let ie;return t[61]!==q||t[62]!==J?(ie=(0,Z.jsxs)(Z.Fragment,{children:[q,J]}),t[61]=q,t[62]=J,t[63]=ie):ie=t[63],ie}function Xe(e,t){return e?new Intl.DateTimeFormat(t===`zh`?`zh-CN`:`en`,{dateStyle:`medium`}).format(e):null}function Ze(e,t,n=new Date){let r=new Date(n.getFullYear(),n.getMonth(),n.getDate()),i=new Date(r);i.setDate(r.getDate()-1);let a=new Map;for(let n of[...e].sort((e,t)=>t.recordedAt-e.recordedAt)){let e=n.recordedAt>=r.getTime()?t===`zh`?`今天`:`Today`:n.recordedAt>=i.getTime()?t===`zh`?`昨天`:`Yesterday`:Xe(n.recordedAt,t)??(t===`zh`?`更早`:`Earlier`),o=a.get(e)??[];o.push(n),a.set(e,o)}return[...a].map(([e,t])=>({label:e,items:t}))}function Qe(e,t){return(t===`zh`?{user_explicit:`你告诉我的`,user_observed:`从协作中观察到`,system_inferred:`我形成的判断`,external_untrusted:`来自连接的信息`}:{user_explicit:`You told me`,user_observed:`Observed while working together`,system_inferred:`My current read`,external_untrusted:`From connected information`})[e.authority]}function $e(e,t){if(e.validTo){let n=Xe(e.validTo,t);return t===`zh`?`适用至 ${n}`:`Applies until ${n}`}return(t===`zh`?{stable:`相对稳定`,slow:`会随时间复核`,dynamic:`近期状态`,event:`特定阶段`}:{stable:`Relatively stable`,slow:`Reviewed over time`,dynamic:`Current context`,event:`Specific period`})[e.volatility]}function et(e,t){return e.authority===`user_explicit`?null:e.confidence>=.85?t===`zh`?`把握较高`:`High confidence`:e.confidence>=.65?t===`zh`?`把握中等`:`Medium confidence`:t===`zh`?`证据较少`:`Limited evidence`}function tt(e,t){return(t===`zh`?{global:`所有协作`,agent:`当前智能体`,workspace:`当前工作区`,project:`当前项目`,session:`当前会话`}:{global:`All work`,agent:`This agent`,workspace:`This workspace`,project:`This project`,session:`This conversation`})[e.type]}function nt(e){let t=(0,X.c)(24),{item:n,language:r,busy:i,editing:a,draft:o,onDraftChange:s,onEdit:c,onCancel:l,onDelete:u,onCorrect:d,onScopeChange:f}=e,p=(0,Y.useId)(),m=r===`zh`,h;t[0]!==n||t[1]!==r?(h=et(n,r),t[0]=n,t[1]=r,t[2]=h):h=t[2];let g=h,_;t[3]===n.sources?_=t[4]:(_=new Set(n.sources?.map(it).filter(Boolean)),t[3]=n.sources,t[4]=_);let v;t[5]===_?v=t[6]:(v=[..._],t[5]=_,t[6]=v);let y=v,b=m?`修改`:`Edit`,x;return t[7]!==i||t[8]!==g||t[9]!==o||t[10]!==b||t[11]!==a||t[12]!==p||t[13]!==n||t[14]!==r||t[15]!==l||t[16]!==d||t[17]!==u||t[18]!==s||t[19]!==c||t[20]!==f||t[21]!==y||t[22]!==m?(x=(0,Z.jsx)(`article`,{className:`border-t border-edge-subtle px-4 py-3 first:border-t-0 sm:px-5 [content-visibility:auto] [contain-intrinsic-size:auto_100px]`,children:a?(0,Z.jsxs)(`div`,{className:`space-y-3`,children:[(0,Z.jsx)(`label`,{className:`text-sm font-medium text-fg`,htmlFor:p,children:m?`修改这条理解`:`Edit this understanding`}),(0,Z.jsx)(`textarea`,{id:p,value:o,disabled:i,onChange:e=>s(e.target.value),className:`mt-2 min-h-28 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2.5 text-base leading-7 text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`}),(0,Z.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Z.jsx)(S,{variant:`ghost`,disabled:i,onClick:l,children:m?`取消`:`Cancel`}),(0,Z.jsx)(S,{variant:`primary`,disabled:!o.trim()||i,onClick:d,children:i?m?`保存中…`:`Saving…`:m?`保存修改`:`Save changes`})]})]}):(0,Z.jsxs)(`div`,{className:`flex items-start gap-2 sm:gap-4`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1 pt-1.5`,children:[(0,Z.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-base leading-7 text-fg`,children:n.statement}),(0,Z.jsxs)(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs leading-5 text-fg-muted`,children:[(0,Z.jsx)(`span`,{children:Qe(n,r)}),n.usable===!1?(0,Z.jsx)(`span`,{children:m?`暂不使用`:`Not in use`}):null,n.validTo?(0,Z.jsx)(`span`,{children:$e(n,r)}):null,n.authority!==`user_explicit`&&n.confidence<.65?(0,Z.jsx)(`span`,{children:g}):null,(0,Z.jsxs)(`details`,{className:`open:basis-full`,children:[(0,Z.jsx)(`summary`,{className:`w-fit cursor-pointer rounded-md py-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:m?`查看依据`:`View sources`}),(0,Z.jsxs)(`div`,{className:`my-2 space-y-1 border-l-2 border-edge pl-3 text-sm leading-6`,children:[(0,Z.jsx)(`p`,{children:n.usable?m?`按需用于当前协作`:`Used when relevant`:m?`暂不使用,后台继续复核`:`Not in use; reviewed automatically`}),(0,Z.jsxs)(`p`,{children:[$e(n,r),` · `,tt(n.scope,r),g?` · ${g}`:``]}),(0,Z.jsxs)(`p`,{children:[m?`最近观察:`:`Last observed: `,Xe(n.observedAt,r)]}),(0,Z.jsxs)(`p`,{children:[m?`模型层:`:`Model layer: `,m?{fact:`事实`,pattern:`模式`,interpretation:`解释`}[n.layer]:n.layer,` · `,m?`${n.independentSourceCount} 个独立来源`:`${n.independentSourceCount} independent sources`]}),y.length?y.map(rt):(0,Z.jsx)(`p`,{children:m?`暂无更详细的来源记录`:`No further source details available`}),(0,Z.jsx)(S,{variant:`ghost`,className:`-ml-2 px-2`,disabled:i,onClick:c,children:b})]})]})]})]}),(0,Z.jsx)(Ye,{language:r,busy:i,statement:n.statement,scope:n.scope,onEdit:c,onDelete:u,onScopeChange:f})]})}),t[7]=i,t[8]=g,t[9]=o,t[10]=b,t[11]=a,t[12]=p,t[13]=n,t[14]=r,t[15]=l,t[16]=d,t[17]=u,t[18]=s,t[19]=c,t[20]=f,t[21]=y,t[22]=m,t[23]=x):x=t[23],x}function rt(e){return(0,Z.jsx)(`p`,{className:`break-words`,children:e},e)}function it(e){return e.label}var at={zh:{eyebrow:`全局用户理解`,title:`xopc 如何形成对你的理解`,subtitle:`这里汇总跨项目、跨对话形成的认识,并说明它们来自哪些渠道。项目事实不会混入你的个人画像。`,channels:`理解渠道`,channelHint:`查看来源及其最近更新。`,noChannels:`尚未通过任何渠道形成可展示的全局理解。`,activeCount:`{{count}} 条已在使用`,pendingCount:`{{count}} 条暂不使用`,noUnderstanding:`暂无来自此渠道的全局理解`,pending:`最近更新`,pendingHint:`自动整理并按需使用,你可以随时修改或删除。`,nothingPending:`尚未形成全局理解。`,showAll:`查看全部 {{count}} 条`,showLess:`收起`,done:`完成`,updating:`正在从已授权渠道更新理解;你可以先查看已有内容。`,sourceKinds:{user:`你明确告诉我的`,conversation:`对话与协作`,connector:`连接的服务`,work_folder:`工作目录`,local_source:`本机来源`,inference:`综合整理`}},en:{eyebrow:`Global user understanding`,title:`How xopc forms its understanding of you`,subtitle:`This brings together understanding formed across projects and conversations, with the channel behind each item. Project facts stay out of your personal portrait.`,channels:`Understanding channels`,channelHint:`View sources and their latest updates.`,noChannels:`No channel has formed displayable global understanding yet.`,activeCount:`{{count}} in use`,pendingCount:`{{count}} not in use`,noUnderstanding:`No usable global understanding has formed from this channel yet`,pending:`Recent updates`,pendingHint:`Organized automatically and used when relevant. Edit or delete anytime.`,nothingPending:`No understanding has formed yet.`,showAll:`View all {{count}}`,showLess:`Show less`,done:`Done`,updating:`Updating from authorized channels. You can review existing understanding now.`,sourceKinds:{user:`You told me`,conversation:`Conversations and work`,connector:`Connected services`,work_folder:`Work folders`,local_source:`On-device sources`,inference:`Synthesized understanding`}}},$={"local-recent-files":{en:`Recent files`,zh:`最近文件`},"chromium-bookmarks":{en:`Recent bookmarks`,zh:`最近书签`},"apple-notes":{en:`Apple Notes`,zh:`Apple 备忘录`},"apple-mail":{en:`Apple Mail`,zh:`Apple 邮件`},"apple-calendar":{en:`Apple Calendar`,zh:`Apple 日历`},"apple-reminders":{en:`Apple Reminders`,zh:`Apple 提醒事项`},"windows-recent-documents":{en:`Recent documents`,zh:`最近文档`},"linux-recent-documents":{en:`Recent documents`,zh:`最近文档`}},ot={user:T,conversation:be,connector:ve,work_folder:h,local_source:je,inference:ve},st={files:h,recent_documents:je,calendar:H,tasks:k,notes:ye,mail:Ie,messages:be,code_activity:J};function ct(e){let t=e.authority===`user_explicit`?`user`:e.authority===`user_observed`?`conversation`:e.authority===`external_untrusted`?`connector`:`inference`;return{id:t,kind:t,observedAt:e.observedAt}}function lt(e,t){return e.kind===`local_source`&&e.label?$[e.label]?.[t]??e.label:e.kind===`work_folder`&&e.label?t===`zh`?`工作目录 · ${e.label}`:`Work folder · ${e.label}`:e.label?e.label:at[t].sourceKinds[e.kind]}function ut(e){return`${e.kind}:${e.adapterId}:${e.displayName}`}function dt(e){let t=(0,X.c)(91),{assertions:n,configuredSources:r,activityRunning:i,language:a,busy:o,error:l,onReviewAssertion:u,onCompleted:d}=e,p=at[a],[m,h]=(0,Y.useState)(!1),[v,y]=(0,Y.useState)(null),[b,x]=(0,Y.useState)(``),C;t[0]===n?C=t[1]:(C=n.filter(vt),t[0]=n,t[1]=C);let w=C,T;t[2]===w?T=t[3]:(T=[...w].sort(_t),t[2]=w,t[3]=T);let E=T,ee;if(t[4]!==r||t[5]!==w||t[6]!==a){let e=new Map;for(let t of r){let n=t.kind===`local_source`?$[t.adapterId]?.[a]??t.displayName:t.displayName,r=ut(t);e.set(r,{key:r,grantId:t.id,kind:t.kind,category:t.category,label:t.kind===`work_folder`?a===`zh`?`工作目录 · ${n}`:`Work folder · ${n}`:n,assertions:[],lastObservedAt:t.lastCollectedAt})}for(let t of w)for(let n of t.sources?.length?t.sources:[ct(t)]){let r=lt(n,a),i=[...e.values()].find(e=>e.kind===n.kind&&e.label===r),o=i?.key??`${n.kind}:${r}`,s=i??e.get(o)??{key:o,kind:n.kind,category:n.category,label:r,assertions:[],lastObservedAt:n.observedAt};s.assertions.some(e=>e.id===t.id)||s.assertions.push(t),s.lastObservedAt=Math.max(s.lastObservedAt??0,n.observedAt),e.set(o,s)}ee=[...e.values()].sort(gt),t[4]=r,t[5]=w,t[6]=a,t[7]=ee}else ee=t[7];let D=ee,O;t[8]===u?O=t[9]:(O=async(e,t,n)=>{await u(e,t,n)&&y(null)},t[8]=u,t[9]=O);let k=O,A,j,M,N,P,F,I,L,R;if(t[10]!==i||t[11]!==o||t[12]!==b||t[13]!==v||t[14]!==a||t[15]!==E||t[16]!==k||t[17]!==m||t[18]!==p.eyebrow||t[19]!==p.nothingPending||t[20]!==p.pending||t[21]!==p.pendingHint||t[22]!==p.showAll||t[23]!==p.showLess||t[24]!==p.subtitle||t[25]!==p.title||t[26]!==p.updating){let e=m?E:E.slice(0,5);A=`mx-auto w-full max-w-[42rem] pb-2`,j=`polite`;let n;t[36]===p.eyebrow?n=t[37]:(n=(0,Z.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.18em] text-accent-fg`,children:p.eyebrow}),t[36]=p.eyebrow,t[37]=n);let r;t[38]===p.title?r=t[39]:(r=(0,Z.jsx)(`h2`,{className:`mt-3 text-2xl font-semibold tracking-tight text-fg sm:text-3xl`,children:p.title}),t[38]=p.title,t[39]=r);let s;t[40]===p.subtitle?s=t[41]:(s=(0,Z.jsx)(`p`,{className:`mx-auto mt-3 max-w-[38rem] text-sm leading-6 text-fg-muted`,children:p.subtitle}),t[40]=p.subtitle,t[41]=s),t[42]!==n||t[43]!==r||t[44]!==s?(M=(0,Z.jsxs)(`div`,{className:`text-center`,children:[n,r,s]}),t[42]=n,t[43]=r,t[44]=s,t[45]=M):M=t[45],t[46]!==i||t[47]!==p.updating?(N=i?(0,Z.jsxs)(`div`,{className:`mt-6 flex items-center gap-3 rounded-xl border border-accent/20 bg-accent-soft/55 px-4 py-3 text-sm text-accent-fg`,children:[(0,Z.jsx)(g,{className:`size-4 shrink-0 animate-spin motion-reduce:animate-none`}),(0,Z.jsx)(`p`,{children:p.updating})]}):null,t[46]=i,t[47]=p.updating,t[48]=N):N=t[48],P=`mt-8`,F=`understanding-updates-title`;let l=E.length?` · ${E.length}`:``;t[49]!==p.pending||t[50]!==l?(I=(0,Z.jsxs)(`h3`,{id:`understanding-updates-title`,className:`text-sm font-semibold text-fg`,children:[p.pending,l]}),t[49]=p.pending,t[50]=l,t[51]=I):I=t[51],t[52]===p.pendingHint?L=t[53]:(L=(0,Z.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:p.pendingHint}),t[52]=p.pendingHint,t[53]=L),R=E.length?(0,Z.jsxs)(`div`,{className:`mt-3`,children:[Ze(e,a).map(e=>{let{label:t,items:n}=e;return(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h4`,{className:`border-b border-edge-subtle px-4 pb-2 pt-3 text-xs font-medium text-fg-muted`,children:t}),(0,Z.jsx)(`div`,{children:n.map(e=>(0,Z.jsx)(nt,{item:e,language:a,busy:o,editing:v===e.id,draft:b,onDraftChange:x,onEdit:()=>{y(e.id),x(e.statement)},onCancel:()=>y(null),onCorrect:()=>void k(e,`edited`,b.trim()),onDelete:()=>void k(e,`deleted`)},e.id))})]},t)}),E.length>5?(0,Z.jsxs)(`button`,{type:`button`,className:`mx-auto flex items-center gap-1.5 px-3 py-2 text-xs font-medium text-accent-fg hover:underline`,onClick:()=>h(ht),children:[m?p.showLess:p.showAll.replace(`{{count}}`,String(E.length)),(0,Z.jsx)(c,{className:_(`size-3.5 transition-transform`,m&&`rotate-180`)})]}):null]}):(0,Z.jsxs)(`div`,{className:`mt-3 flex items-start gap-3 rounded-xl border border-edge bg-surface-base/55 p-4`,children:[(0,Z.jsx)(f,{className:`mt-0.5 size-5 shrink-0 text-success`}),(0,Z.jsx)(`p`,{className:`text-sm leading-6 text-fg-muted`,children:p.nothingPending})]}),t[10]=i,t[11]=o,t[12]=b,t[13]=v,t[14]=a,t[15]=E,t[16]=k,t[17]=m,t[18]=p.eyebrow,t[19]=p.nothingPending,t[20]=p.pending,t[21]=p.pendingHint,t[22]=p.showAll,t[23]=p.showLess,t[24]=p.subtitle,t[25]=p.title,t[26]=p.updating,t[27]=A,t[28]=j,t[29]=M,t[30]=N,t[31]=P,t[32]=F,t[33]=I,t[34]=L,t[35]=R}else A=t[27],j=t[28],M=t[29],N=t[30],P=t[31],F=t[32],I=t[33],L=t[34],R=t[35];let z;t[54]!==P||t[55]!==F||t[56]!==I||t[57]!==L||t[58]!==R?(z=(0,Z.jsxs)(`section`,{className:P,"aria-labelledby":F,children:[I,L,R]}),t[54]=P,t[55]=F,t[56]=I,t[57]=L,t[58]=R,t[59]=z):z=t[59];let B;t[60]!==D.length||t[61]!==p.channels?(B=(0,Z.jsxs)(`summary`,{className:`w-fit cursor-pointer rounded-md py-2 text-sm font-medium text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[p.channels,` · `,D.length]}),t[60]=D.length,t[61]=p.channels,t[62]=B):B=t[62];let V;t[63]===p.channelHint?V=t[64]:(V=(0,Z.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:p.channelHint}),t[63]=p.channelHint,t[64]=V);let H;t[65]!==D||t[66]!==p.activeCount||t[67]!==p.noChannels||t[68]!==p.noUnderstanding||t[69]!==p.pendingCount?(H=D.length?(0,Z.jsx)(`div`,{className:`mt-3 space-y-3`,children:D.map(e=>{let t=e.category?st[e.category]??ot[e.kind]:ot[e.kind],n=e.assertions.filter(mt).length,r=e.assertions.filter(pt).length;return(0,Z.jsxs)(`article`,{className:`rounded-xl border border-edge bg-surface-base/55 px-4 py-4`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,Z.jsx)(`div`,{className:`flex size-9 shrink-0 items-center justify-center rounded-xl bg-surface-hover text-fg-muted`,children:(0,Z.jsx)(t,{className:`size-4`})}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`h4`,{className:`truncate text-sm font-medium text-fg`,children:e.label}),e.grantId?(0,Z.jsx)(qe,{sourceId:e.grantId,lastCollectedAt:e.lastObservedAt}):null,e.assertions.length?(0,Z.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:[n?p.activeCount.replace(`{{count}}`,String(n)):``,r?p.pendingCount.replace(`{{count}}`,String(r)):``].filter(Boolean).join(` · `)}):(0,Z.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:p.noUnderstanding})]}),e.grantId?(0,Z.jsx)(We,{sourceId:e.grantId}):null]}),e.assertions.length?(0,Z.jsx)(`ul`,{className:`ml-12 mt-3 space-y-2 border-t border-edge-subtle pt-3 text-xs leading-5 text-fg-muted`,children:e.assertions.slice(0,5).map(ft)}):null]},e.key)})}):(0,Z.jsx)(`p`,{className:`mt-3 rounded-xl border border-edge bg-surface-base/55 p-4 text-sm text-fg-muted`,children:p.noChannels}),t[65]=D,t[66]=p.activeCount,t[67]=p.noChannels,t[68]=p.noUnderstanding,t[69]=p.pendingCount,t[70]=H):H=t[70];let U;t[71]!==B||t[72]!==V||t[73]!==H?(U=(0,Z.jsxs)(`details`,{className:`mt-6 border-t border-edge pt-4`,children:[B,V,H]}),t[71]=B,t[72]=V,t[73]=H,t[74]=U):U=t[74];let W;t[75]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,Z.jsx)(s,{className:`size-4`}),t[75]=W):W=t[75];let te;t[76]!==o||t[77]!==d||t[78]!==p.done?(te=(0,Z.jsx)(`div`,{className:`mt-6 flex justify-end`,children:(0,Z.jsxs)(S,{variant:`primary`,disabled:o,onClick:d,children:[W,p.done]})}),t[76]=o,t[77]=d,t[78]=p.done,t[79]=te):te=t[79];let G;t[80]===l?G=t[81]:(G=l?(0,Z.jsx)(`p`,{className:`mt-5 text-sm text-danger`,role:`alert`,children:l}):null,t[80]=l,t[81]=G);let K;return t[82]!==A||t[83]!==j||t[84]!==M||t[85]!==N||t[86]!==z||t[87]!==U||t[88]!==te||t[89]!==G?(K=(0,Z.jsxs)(`section`,{className:A,"aria-live":j,children:[M,N,z,U,te,G]}),t[82]=A,t[83]=j,t[84]=M,t[85]=N,t[86]=z,t[87]=U,t[88]=te,t[89]=G,t[90]=K):K=t[90],K}function ft(e){return(0,Z.jsxs)(`li`,{className:`flex gap-2`,children:[(0,Z.jsx)(`span`,{className:`mt-2 size-1 shrink-0 rounded-full bg-accent/60`}),(0,Z.jsx)(`span`,{children:e.statement})]},e.id)}function pt(e){return!e.usable}function mt(e){return e.usable}function ht(e){return!e}function gt(e,t){return t.assertions.length-e.assertions.length||(t.lastObservedAt??0)-(e.lastObservedAt??0)}function _t(e,t){return t.recordedAt-e.recordedAt}function vt(e){return e.scope.type===`global`&&e.status!==`archived`&&e.status!==`rejected`}function yt(){let{pathname:e,search:t}=i(),n=y(e=>e.language),r=De(),[a,o]=(0,Y.useState)(!1),[s,c]=(0,Y.useState)(null),l=e===`/user-model`,{data:u,mutate:d}=x(l?`/api/user-model`:null,Pe),f=O(e=>e.error),p=O(e=>e.sources.some(e=>e.status===`running`||e.status===`queued`)),m=n===`zh`;if((0,Y.useEffect)(()=>{l&&new URLSearchParams(t).get(`workDiscovery`)===`review`&&De.getState().setDrawerOpen(!0)},[l,t]),(0,Y.useEffect)(()=>{l&&r.status!==`running`&&d()},[d,l,r.directoryRun?.id,r.status]),!l)return null;let h=r.status===`running`||p,v=async(e,t,n)=>{o(!0),c(null);try{return t===`edited`&&n?await L(e.id,n):t===`deleted`&&await oe(e.id),await d(),!0}catch(e){return c(e instanceof Error?e.message:String(e)),!1}finally{o(!1)}},b=e=>{if(!e&&u&&r.status!==`running`){r.finish();return}r.setDrawerOpen(e)};return(0,Z.jsxs)(P,{open:r.drawerOpen,onOpenChange:b,children:[(0,Z.jsx)(G,{asChild:!0,children:(0,Z.jsx)(S,{type:`button`,variant:`ghost`,className:_(`relative size-8 rounded-xl p-0`,U),title:m?`查看 xopc 对你的理解`:`Review what xopc understands`,"aria-label":m?`查看 xopc 对你的理解`:`Review what xopc understands`,children:h?(0,Z.jsx)(g,{className:`size-4 animate-spin motion-reduce:animate-none`}):(0,Z.jsx)(Be,{className:`size-4 text-accent-fg`})})}),(0,Z.jsxs)(ne,{children:[(0,Z.jsx)(ee,{className:`fixed inset-0 z-[60] bg-scrim backdrop-blur-sm data-[state=closed]:animate-out data-[state=open]:animate-in motion-reduce:backdrop-blur-none`}),(0,Z.jsx)(`div`,{className:`pointer-events-none fixed inset-0 z-[61] flex items-center justify-center p-3 sm:p-6`,children:(0,Z.jsxs)(te,{className:`xopc-understanding-center pointer-events-auto flex h-[min(42rem,calc(100dvh-1.5rem))] w-[min(44rem,calc(100vw-1.5rem))] flex-col overflow-hidden rounded-xl border border-edge bg-surface-overlay shadow-float outline-none sm:h-[min(42rem,calc(100dvh-3rem))] sm:w-[min(44rem,calc(100vw-3rem))]`,children:[(0,Z.jsxs)(`header`,{className:`flex h-16 shrink-0 items-center justify-between border-b border-edge-subtle px-5 sm:px-6`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(M,{className:`text-sm font-semibold text-fg`,children:h?m?`正在更新用户理解`:`Updating user understanding`:m?`用户理解`:`User understanding`}),(0,Z.jsx)(He,{className:`mt-0.5 text-xs text-fg-muted`,children:h?m?`关闭窗口也会在后台继续`:`You can close this window; work continues in the background`:m?`自动更新,可随时修改或删除`:`Updated automatically. Edit or delete anytime`})]}),(0,Z.jsx)(We,{disabled:!u?.sources?.length}),(0,Z.jsx)(z,{asChild:!0,children:(0,Z.jsx)(S,{variant:`ghost`,className:`size-8 rounded-xl p-0`,"aria-label":m?`关闭`:`Close`,children:(0,Z.jsx)(R,{className:`size-4`})})})]}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-7 sm:px-9 sm:py-9`,children:u?(0,Z.jsx)(dt,{assertions:u.assertions,configuredSources:u.sources??[],activityRunning:h,language:n,busy:a,error:s??f??null,onReviewAssertion:v,onCompleted:()=>{b(!1)}}):(0,Z.jsxs)(`section`,{className:`space-y-4`,"aria-label":m?`正在加载用户理解`:`Loading user understanding`,children:[(0,Z.jsx)(C,{className:`h-8 w-2/3`}),(0,Z.jsx)(C,{className:`h-32 w-full`}),(0,Z.jsx)(C,{className:`h-32 w-full`})]})})]})})]})]})}function bt(e){let t=(0,X.c)(22),{language:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r={refreshInterval:15e3},t[0]=r):r=t[0];let{data:i,error:a,isLoading:o}=x(`memory-learning-status`,jt,r);if(o){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(C,{className:`h-14 w-full rounded-xl`}),t[1]=e):e=t[1],e}if(a||!i?.jobs||!i?.coverage)return null;let s;t[2]===i.jobs?s=t[3]:(s=i.jobs.filter(At).reduce(kt,0),t[2]=i.jobs,t[3]=s);let c=s,l;t[4]===i.coverage?l=t[5]:(l=i.coverage.filter(Ot).reduce(Dt,0),t[4]=i.coverage,t[5]=l);let u=l,d;t[6]===i.coverage?d=t[7]:(d=i.coverage.filter(Et).reduce(Tt,0),t[6]=i.coverage,t[7]=d);let f=d,p;t[8]===i.jobs?p=t[9]:(p=i.jobs.filter(wt).reduce(Ct,0),t[8]=i.jobs,t[9]=p);let m=p,h;t[10]===i.jobs?h=t[11]:(h=i.jobs.filter(St).reduce(xt,0),t[10]=i.jobs,t[11]=h);let g=h,_=n===`zh`?`已索引 ${f} 条资料 · 已整理 ${u} 条工作记忆 · ${c} 项正在处理`:`${f} source records · ${u} work memories · ${c} learning jobs pending`,v;t[12]!==m||t[13]!==n?(v=m>0?(0,Z.jsx)(`span`,{className:`ml-2`,children:n===`zh`?`${m} 项处理失败`:`${m} failed jobs`}):null,t[12]=m,t[13]=n,t[14]=v):v=t[14];let y;t[15]!==n||t[16]!==g?(y=g>0?(0,Z.jsx)(`span`,{className:`ml-2`,children:n===`zh`?`${g} 项等待配置本地模型`:`${g} jobs require a local model`}):null,t[15]=n,t[16]=g,t[17]=y):y=t[17];let b;return t[18]!==_||t[19]!==v||t[20]!==y?(b=(0,Z.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-base px-4 py-3 text-sm text-fg-muted`,role:`status`,children:[_,v,y]}),t[18]=_,t[19]=v,t[20]=y,t[21]=b):b=t[21],b}function xt(e,t){return e+t.count}function St(e){return e.errorCode===`local_model_required`}function Ct(e,t){return e+t.count}function wt(e){return e.state===`failed`}function Tt(e,t){return e+t.count}function Et(e){return e.recordClass===`source_index`}function Dt(e,t){return e+t.count}function Ot(e){return e.recordClass===`memory`&&e.status===`active`&&e.verification===`supported`}function kt(e,t){return e+t.count}function At(e){return[`queued`,`running`,`retry_wait`].includes(e.state)}function jt(){return b(v(`/api/memory-learning/status`))}function Mt(e){let t=(0,X.c)(12),{id:n,language:r}=e,i;t[0]===n?i=t[1]:(i=()=>b(v(`/api/knowledge-memory/${encodeURIComponent(n)}/evidence`)),t[0]=n,t[1]=i);let{data:a,error:o,isLoading:s}=x(`knowledge-evidence:${n}`,i);if(s){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Z.jsx)(C,{className:`mt-3 h-10 w-full rounded-lg`}),t[2]=e):e=t[2],e}if(o){let e=r===`zh`?`此条证据目前不可用于回答,请检查来源授权、有效期和读取范围。`:`Evidence is currently unavailable. Check source authorization, validity and read scope.`,n;return t[3]===e?n=t[4]:(n=(0,Z.jsx)(`p`,{className:`mt-3 text-xs text-fg-muted`,children:e}),t[3]=e,t[4]=n),n}if(!Array.isArray(a?.evidence)||!a.evidence.length)return null;let c;if(t[5]!==a.evidence||t[6]!==r){let e;t[8]===r?e=t[9]:(e=(e,t)=>(0,Z.jsxs)(`p`,{children:[r===`zh`?`证据`:`Evidence`,` · `,e.sourceType===`conversation`?r===`zh`?`对话`:`Conversation`:e.sourceType===`runtime`?r===`zh`?`执行记录`:`Execution receipt`:r===`zh`?`授权资料`:`Authorized source`,` · `,new Date(e.observedAt).toLocaleDateString(r),e.excerpt?(0,Z.jsx)(`span`,{className:`mt-1 block whitespace-pre-wrap break-words`,children:e.excerpt}):null]},t),t[8]=r,t[9]=e),c=a.evidence.map(e),t[5]=a.evidence,t[6]=r,t[7]=c}else c=t[7];let l;return t[10]===c?l=t[11]:(l=(0,Z.jsx)(`div`,{className:`mt-3 space-y-2 border-t border-edge-subtle pt-3 text-xs text-fg-muted`,children:c}),t[10]=c,t[11]=l),l}function Nt(e){let t=e.get(`tab`);return t===`understanding`||t===`privacy`?t:`overview`}var Pt={en:{pageTitle:`Me`,overview:`Overview`,understanding:`What xopc knows`,privacy:`Data & privacy`,knowledge:`Work memory`,editProfile:`Edit basics`,callName:`What should xopc call you?`,callNamePlaceholder:`For example: Alex, Joyce, or Dr. Chen`,role:`Your role`,rolePlaceholder:`For example: founder, designer, or engineer`,pronouns:`Pronouns (optional)`,pronounsPlaceholder:`For example: she/her, he/him, they/them`,timezone:`Timezone`,timezoneSearch:`Search timezones…`,timezoneNoMatch:`No matching timezone`,locale:`Language / locale`,useDeviceTimezone:`Use this device`,notProvided:`Not provided`,editProfileHint:`These are facts you provide directly. They remain separate from xopc’s observations and inferences.`,saveProfile:`Save`,saving:`Saving…`,explicit:`You told me`,explicitHint:`Facts and preferences you stated directly`,learned:`Learned together`,learnedHint:`Patterns formed from our work`,allUnderstanding:`All understanding`,understandingFilterHint:`Filter this view by how each item was formed.`,importantNow:`What matters now`,prioritySourceGoal:`From a goal you confirmed`,prioritySourceWork:`From your current work`,editPriority:`Edit focus`,addPriority:`Set current focus`,priorityTitle:`Current focus`,priorityTitlePlaceholder:`What matters most right now?`,priorityOutcome:`What a good outcome looks like`,priorityOutcomePlaceholder:`Describe the result you want…`,priorityUntil:`Focus through`,savePriority:`Save focus`,endPriority:`End focus`,endingPriority:`Ending…`,priorityHint:`This is used to keep xopc aligned with what deserves attention now.`,otherGoals:`Other active outcomes`,howWeWork:`How we work together`,noRules:`No collaboration preferences yet.`,seeAll:`See all`,workMemory:`What I remember from the work`,items:`items`,refresh:`Refresh`,refreshing:`Refreshing…`,refreshComplete:`Refreshed`,refreshFailed:`Refresh failed`,aboutYouTitle:`A view you can correct`,aboutYouHint:`xopc quietly maintains this working context from collaboration. You can edit or retire any item.`,identity:`Who you are`,preferences:`Preferences and working rhythm`,relationships:`People and relationships`,currentState:`Current context`,insights:`My current read`,emptyGroup:`No understanding has formed here yet.`,correct:`Correct`,save:`Save correction`,cancel:`Cancel`,correctionPlaceholder:`Write the accurate version…`,searchPlaceholder:`Search work memory…`,allMemory:`All work memory`,memoryFilterHint:`Filter by memory type`,memoryLibraryHint:`Only distilled facts, decisions, lessons, commitments, and open questions appear here. Source records stay with their connector.`,noKnowledge:`No work memory has formed yet.`,noKnowledgeMatch:`No work memory matches this search.`,showMore:`Show more`,expand:`Show details`,collapse:`Hide details`,disable:`Disable`,disabled:`Not in use`,enable:`Enable`,loadFailed:`Could not load your understanding.`,tryAgain:`Try again`,actionFailed:`The change could not be saved. Please try again.`},zh:{pageTitle:`我的`,overview:`总览`,understanding:`对我的了解`,privacy:`数据与隐私`,knowledge:`工作记忆`,editProfile:`编辑基本信息`,callName:`希望 xopc 如何称呼你?`,callNamePlaceholder:`例如:Mic、Joyce、张老师`,role:`你的角色`,rolePlaceholder:`例如:创业者、产品设计师、工程师`,pronouns:`代词(可选)`,pronounsPlaceholder:`例如:she/her、he/him、they/them`,timezone:`时区`,timezoneSearch:`搜索时区…`,timezoneNoMatch:`没有匹配的时区`,locale:`语言 / 地区`,useDeviceTimezone:`使用本机时区`,notProvided:`未填写`,editProfileHint:`这些是由你直接提供的事实,与 xopc 的观察和推断分开维护。`,saveProfile:`保存`,saving:`正在保存…`,explicit:`你告诉我的`,explicitHint:`你明确表达的事实与偏好`,learned:`协作中学到的`,learnedHint:`从实际协作中形成的认识`,allUnderstanding:`全部理解`,understandingFilterHint:`按内容来源筛选这份理解。`,importantNow:`此刻重要`,prioritySourceGoal:`来自你确认的当前目标`,prioritySourceWork:`来自当前工作上下文`,editPriority:`编辑`,addPriority:`设置当前关注`,priorityTitle:`当前关注`,priorityTitlePlaceholder:`现在最重要的是什么?`,priorityOutcome:`期待结果`,priorityOutcomePlaceholder:`描述你希望达成的结果…`,priorityUntil:`关注至`,savePriority:`保存关注`,endPriority:`结束关注`,endingPriority:`正在结束…`,priorityHint:`这项内容会帮助 xopc 在协作中优先关注当前最重要的事情。`,otherGoals:`其他进行中的目标`,howWeWork:`我们怎样协作`,noRules:`还没有形成协作偏好。`,seeAll:`查看全部`,workMemory:`我在工作中记住的`,items:`条`,refresh:`刷新`,refreshing:`正在刷新…`,refreshComplete:`已刷新`,refreshFailed:`刷新失败`,aboutYouTitle:`一份可以共同修正的理解`,aboutYouHint:`xopc 会在协作中安静地维护这份工作认知。你仍可随时修改或停止使用任何一条。`,identity:`关于你是谁`,preferences:`偏好与工作节奏`,relationships:`重要的人与关系`,currentState:`当前状态`,insights:`我形成的判断`,emptyGroup:`这里还没有形成理解。`,correct:`修正`,save:`保存修正`,cancel:`取消`,correctionPlaceholder:`写下更准确的说法…`,searchPlaceholder:`搜索工作记忆…`,allMemory:`全部工作记忆`,memoryFilterHint:`按记忆类型筛选`,memoryLibraryHint:`这里只显示提炼后的事实、决定、经验、承诺和待解问题;邮件、日历与文档原文保留在对应来源中。`,noKnowledge:`还没有形成工作记忆。`,noKnowledgeMatch:`没有符合搜索条件的工作记忆。`,showMore:`显示更多`,expand:`查看详情`,collapse:`收起详情`,disable:`停用`,disabled:`已停用`,enable:`启用`,loadFailed:`无法载入对你的理解。`,tryAgain:`重试`,actionFailed:`修改没有保存,请重试。`}},Ft=new Set([`identity.call_name`,`identity.role`,`identity.pronouns`,`preference.timezone`,`preference.locale`]),It=[`work_thread`,`project_fact`,`workspace_fact`,`decision`,`task_lesson`,`commitment`,`open_question`,`episode`,`note`],Lt=`UTC.Africa/Cairo.Africa/Johannesburg.America/Chicago.America/Denver.America/Los_Angeles.America/Mexico_City.America/New_York.America/Sao_Paulo.America/Toronto.America/Vancouver.Asia/Bangkok.Asia/Dubai.Asia/Hong_Kong.Asia/Jakarta.Asia/Kolkata.Asia/Seoul.Asia/Shanghai.Asia/Singapore.Asia/Taipei.Asia/Tokyo.Australia/Melbourne.Australia/Perth.Australia/Sydney.Europe/Amsterdam.Europe/Berlin.Europe/London.Europe/Madrid.Europe/Paris.Europe/Rome.Pacific/Auckland.Pacific/Honolulu`.split(`.`);function Rt(){try{let e=Intl.supportedValuesOf(`timeZone`);return[...new Set([`UTC`,...e])]}catch{return[...Lt]}}var zt=Rt();function Bt(e){return e.map(e=>({value:e,label:e.replaceAll(`_`,` `),group:e.includes(`/`)?e.split(`/`)[0]:`UTC`}))}function Vt(e,t,n=!1){return e?new Intl.DateTimeFormat(t===`zh`?`zh-CN`:`en`,{dateStyle:`medium`,...n?{timeStyle:`short`}:{}}).format(e):null}function Ht(e){return typeof e==`string`&&e.trim()?e.trim():void 0}function Ut(e){return{callName:Ht(e.profile.callName)??``,role:Ht(e.profile.role)??``,pronouns:Ht(e.profile.pronouns)??``,timezone:Ht(e.profile.timezone)??``,locale:Ht(e.profile.locale)??``}}function Wt(e,t){return{"zh-CN":{en:`Simplified Chinese`,zh:`简体中文`},"zh-TW":{en:`Traditional Chinese`,zh:`繁体中文`},"en-US":{en:`English (US)`,zh:`英语(美国)`},"en-GB":{en:`English (UK)`,zh:`英语(英国)`},"ja-JP":{en:`Japanese`,zh:`日语`}}[e]?.[t]??e}function Gt(e,t){let n=Vt(e,t);return t===`zh`?`当前安排至 ${n}`:`Current plan through ${n}`}function Kt(e){let t=new Date(e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}function qt(e){let[t,n,r]=e.split(`-`).map(Number);return new Date(t,n-1,r,23,59,59,999).getTime()}function Jt(e,t){return(t===`zh`?{global:`所有协作`,agent:`当前智能体`,workspace:`当前工作区`,project:`当前项目`,session:`当前会话`}:{global:`All work`,agent:`This agent`,workspace:`This workspace`,project:`This project`,session:`This conversation`})[e.type]}function Yt(e,t){return(t===`zh`?{work_thread:`工作主线`,project_fact:`项目事实`,workspace_fact:`工作区事实`,decision:`已经决定`,task_lesson:`工作经验`,commitment:`承诺与约定`,open_question:`待解问题`,episode:`重要经历`,note:`其他记录`}:{work_thread:`Work threads`,project_fact:`Project facts`,workspace_fact:`Workspace facts`,decision:`Decisions`,task_lesson:`Lessons`,commitment:`Commitments`,open_question:`Open questions`,episode:`Episodes`,note:`Notes`})[e]}function Xt(e,t,n){if(e)return e.targetType===`goal`?t.find(t=>t.id===e.targetId)?.title:/^[0-9a-f]{8}-[0-9a-f-]{20,}$/i.test(e.targetId)?(n===`zh`?{project:`当前项目`,task:`当前任务`,assertion:`一项待处理的理解`,topic:`当前主题`}:{project:`Current project`,task:`Current task`,assertion:`An understanding to address`,topic:`Current topic`})[e.targetType]:e.targetId}function Zt(e){let t=(0,X.c)(16),{title:n,hint:r,action:i,children:a,className:o}=e,s=o===void 0?``:o,c;t[0]===n?c=t[1]:(c=(0,Z.jsx)(`h2`,{className:`text-base font-semibold tracking-tight text-fg`,children:n}),t[0]=n,t[1]=c);let l;t[2]===r?l=t[3]:(l=r?(0,Z.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm leading-6 text-fg-muted`,children:r}):null,t[2]=r,t[3]=l);let u;t[4]!==c||t[5]!==l?(u=(0,Z.jsxs)(`div`,{children:[c,l]}),t[4]=c,t[5]=l,t[6]=u):u=t[6];let d;t[7]!==i||t[8]!==u?(d=(0,Z.jsxs)(`header`,{className:`flex items-end justify-between gap-4 px-1 pb-3`,children:[u,i]}),t[7]=i,t[8]=u,t[9]=d):d=t[9];let f;t[10]===a?f=t[11]:(f=(0,Z.jsx)(`div`,{className:`overflow-hidden rounded-2xl bg-surface-panel`,children:a}),t[10]=a,t[11]=f);let p;return t[12]!==s||t[13]!==d||t[14]!==f?(p=(0,Z.jsxs)(`section`,{className:s,children:[d,f]}),t[12]=s,t[13]=d,t[14]=f,t[15]=p):p=t[15],p}function Qt(e){let t=(0,X.c)(7),{icon:n,children:r}=e,i;t[0]===n?i=t[1]:(i=(0,Z.jsx)(`span`,{className:`text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,Z.jsx)(`p`,{children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,Z.jsxs)(`div`,{className:`flex items-center gap-3 px-5 py-5 text-sm text-fg-muted`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function $t({open:e,profile:t,language:n,saving:r,onOpenChange:i,onSave:a}){let o=Pt[n],[s,c]=(0,Y.useState)(t),[f,p]=(0,Y.useState)(``);(0,Y.useEffect)(()=>{e&&(c(t),p(``))},[e,t]);let m=e=>{e.preventDefault(),a({callName:s.callName.trim(),role:s.role.trim(),pronouns:s.pronouns.trim(),timezone:s.timezone.trim(),locale:s.locale.trim()})},h=(e,t,n)=>(0,Z.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[(0,Z.jsx)(`span`,{className:`font-medium text-fg`,children:t}),(0,Z.jsx)(`input`,{value:s[e],onChange:t=>c(n=>({...n,[e]:t.target.value})),placeholder:n,className:`h-10 w-full rounded-xl border border-edge bg-surface-base px-3 text-sm text-fg outline-none transition placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}),_=[`zh-CN`,`zh-TW`,`en-US`,`en-GB`,`ja-JP`];s.locale&&!_.includes(s.locale)&&_.push(s.locale);let v=w(),y=(0,Y.useMemo)(()=>[...new Set([...zt,v,s.timezone].filter(Boolean))].sort(),[v,s.timezone]),b=f.trim().toLocaleLowerCase(),x=(0,Y.useMemo)(()=>Bt(y.filter(e=>!b||e.toLocaleLowerCase().includes(b)||e.replaceAll(`_`,` `).toLocaleLowerCase().includes(b))),[y,b]);return(0,Z.jsx)(P,{open:e,onOpenChange:i,children:(0,Z.jsxs)(ne,{children:[(0,Z.jsx)(ee,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),(0,Z.jsx)(te,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] h-[min(40rem,calc(100vh-2rem))] w-[min(42rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 rounded-2xl border border-edge bg-surface-overlay shadow-popover outline-none`,children:(0,Z.jsxs)(`form`,{className:`flex h-full min-h-0 flex-col overflow-hidden [border-radius:inherit]`,onSubmit:m,children:[(0,Z.jsxs)(`header`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-edge px-5 py-4 sm:px-6`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(M,{className:`font-semibold text-fg`,children:o.editProfile}),(0,Z.jsx)(He,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:o.editProfileHint})]}),(0,Z.jsx)(z,{asChild:!0,children:(0,Z.jsx)(S,{variant:`ghost`,className:`size-8 shrink-0 p-0`,"aria-label":o.cancel,children:(0,Z.jsx)(R,{className:`size-4`})})})]}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-5 sm:p-6`,children:(0,Z.jsxs)(`div`,{className:`grid gap-5 sm:grid-cols-2`,children:[h(`callName`,o.callName,o.callNamePlaceholder),h(`role`,o.role,o.rolePlaceholder),h(`pronouns`,o.pronouns,o.pronounsPlaceholder),(0,Z.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[(0,Z.jsx)(`span`,{className:`font-medium text-fg`,children:o.locale}),(0,Z.jsxs)(l,{value:s.locale,onChange:e=>c(t=>({...t,locale:e.target.value})),children:[(0,Z.jsx)(u,{value:``,children:o.notProvided}),_.map(e=>(0,Z.jsx)(u,{value:e,children:Wt(e,n)},e))]})]}),(0,Z.jsxs)(`label`,{className:`grid gap-1.5 text-sm sm:col-span-2`,children:[(0,Z.jsx)(`span`,{className:`font-medium text-fg`,children:o.timezone}),(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(d,{value:s.timezone,options:x,placeholder:w(),emptyLabel:o.notProvided,ariaLabel:o.timezone,selectedLabel:s.timezone||o.notProvided,searchPlaceholder:o.timezoneSearch,searchValue:f,onSearchChange:p,statusMessage:x.length?void 0:o.timezoneNoMatch,triggerClassName:`min-w-0 flex-1 rounded-xl bg-surface-base`,onChange:e=>{c(t=>({...t,timezone:e})),p(``)}}),(0,Z.jsx)(S,{className:`shrink-0 whitespace-nowrap`,onClick:()=>c(e=>({...e,timezone:v})),children:o.useDeviceTimezone})]})]})]})}),(0,Z.jsxs)(`footer`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-5 py-3 sm:px-6`,children:[(0,Z.jsx)(z,{asChild:!0,children:(0,Z.jsx)(S,{disabled:r,children:o.cancel})}),(0,Z.jsxs)(S,{type:`submit`,variant:`primary`,disabled:r,children:[r?(0,Z.jsx)(g,{className:`size-4 animate-spin`}):null,r?o.saving:o.saveProfile]})]})]})})]})})}function en(e){let t=(0,X.c)(94),{open:n,priority:r,title:i,outcome:a,language:o,saving:s,onOpenChange:c,onSave:l,onEnd:u}=e,d=Pt[o],[f,p]=(0,Y.useState)(i),[m,h]=(0,Y.useState)(a??``),_=r?.validTo??Date.now()+6048e5,v;t[0]===_?v=t[1]:(v=Kt(_),t[0]=_,t[1]=v);let y=v,[b,x]=(0,Y.useState)(y),C,w;t[2]!==y||t[3]!==n||t[4]!==a||t[5]!==i?(C=()=>{n&&(p(i),h(a??``),x(y))},w=[y,n,a,i],t[2]=y,t[3]=n,t[4]=a,t[5]=i,t[6]=C,t[7]=w):(C=t[6],w=t[7]),(0,Y.useEffect)(C,w);let T;t[8]!==m||t[9]!==f||t[10]!==b||t[11]!==l||t[12]!==r?.targetType?(T=e=>{e.preventDefault(),l({title:f.trim(),...r?.targetType===`goal`?{desiredOutcome:m.trim()}:{},validTo:qt(b)})},t[8]=m,t[9]=f,t[10]=b,t[11]=l,t[12]=r?.targetType,t[13]=T):T=t[13];let E=T,D;t[14]!==m||t[15]!==f||t[16]!==b||t[17]!==r?.targetType?(D=f.trim()&&b&&(r?.targetType!==`goal`||m.trim()),t[14]=m,t[15]=f,t[16]=b,t[17]=r?.targetType,t[18]=D):D=t[18];let O=!!D,k;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Z.jsx)(ee,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),t[19]=k):k=t[19];let A=r?d.editPriority:d.addPriority,j;t[20]===A?j=t[21]:(j=(0,Z.jsx)(M,{className:`font-semibold text-fg`,children:A}),t[20]=A,t[21]=j);let N;t[22]===d.priorityHint?N=t[23]:(N=(0,Z.jsx)(He,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:d.priorityHint}),t[22]=d.priorityHint,t[23]=N);let F;t[24]!==N||t[25]!==j?(F=(0,Z.jsxs)(`div`,{children:[j,N]}),t[24]=N,t[25]=j,t[26]=F):F=t[26];let I;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,Z.jsx)(R,{className:`size-4`}),t[27]=I):I=t[27];let L;t[28]===d.cancel?L=t[29]:(L=(0,Z.jsx)(z,{asChild:!0,children:(0,Z.jsx)(S,{variant:`ghost`,className:`size-8 shrink-0 p-0`,"aria-label":d.cancel,children:I})}),t[28]=d.cancel,t[29]=L);let B;t[30]!==F||t[31]!==L?(B=(0,Z.jsxs)(`header`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-edge px-5 py-4 sm:px-6`,children:[F,L]}),t[30]=F,t[31]=L,t[32]=B):B=t[32];let V;t[33]===d.priorityTitle?V=t[34]:(V=(0,Z.jsx)(`span`,{className:`font-medium text-fg`,children:d.priorityTitle}),t[33]=d.priorityTitle,t[34]=V);let H;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(H=e=>p(e.target.value),t[35]=H):H=t[35];let U;t[36]!==f||t[37]!==d.priorityTitlePlaceholder?(U=(0,Z.jsx)(`input`,{autoFocus:!0,value:f,onChange:H,placeholder:d.priorityTitlePlaceholder,className:`h-10 w-full rounded-xl border border-edge bg-surface-base px-3 text-sm text-fg outline-none transition placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}),t[36]=f,t[37]=d.priorityTitlePlaceholder,t[38]=U):U=t[38];let W;t[39]!==V||t[40]!==U?(W=(0,Z.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[V,U]}),t[39]=V,t[40]=U,t[41]=W):W=t[41];let G;t[42]!==m||t[43]!==r?.targetType||t[44]!==d.priorityOutcome||t[45]!==d.priorityOutcomePlaceholder?(G=r?.targetType===`goal`?(0,Z.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[(0,Z.jsx)(`span`,{className:`font-medium text-fg`,children:d.priorityOutcome}),(0,Z.jsx)(`textarea`,{value:m,onChange:e=>h(e.target.value),placeholder:d.priorityOutcomePlaceholder,className:`min-h-28 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2.5 text-sm leading-6 text-fg outline-none transition placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}):null,t[42]=m,t[43]=r?.targetType,t[44]=d.priorityOutcome,t[45]=d.priorityOutcomePlaceholder,t[46]=G):G=t[46];let K;t[47]===d.priorityUntil?K=t[48]:(K=(0,Z.jsx)(`span`,{className:`font-medium text-fg`,children:d.priorityUntil}),t[47]=d.priorityUntil,t[48]=K);let q;t[49]===r?.validFrom?q=t[50]:(q=r?.validFrom??Date.now(),t[49]=r?.validFrom,t[50]=q);let re;t[51]===q?re=t[52]:(re=Kt(q),t[51]=q,t[52]=re);let J;t[53]!==b||t[54]!==d.priorityUntil||t[55]!==re?(J=(0,Z.jsx)(Ue,{min:re,value:b,onChange:x,ariaLabel:d.priorityUntil,className:`rounded-xl border border-edge bg-surface-base hover:border-edge-strong hover:bg-surface-base`}),t[53]=b,t[54]=d.priorityUntil,t[55]=re,t[56]=J):J=t[56];let ie;t[57]!==K||t[58]!==J?(ie=(0,Z.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[K,J]}),t[57]=K,t[58]=J,t[59]=ie):ie=t[59];let ae;t[60]!==W||t[61]!==G||t[62]!==ie?(ae=(0,Z.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-5 overflow-y-auto p-5 sm:p-6`,children:[W,G,ie]}),t[60]=W,t[61]=G,t[62]=ie,t[63]=ae):ae=t[63];let oe;t[64]!==u||t[65]!==r||t[66]!==s||t[67]!==d.endPriority||t[68]!==d.endingPriority?(oe=r&&u?(0,Z.jsxs)(S,{variant:`ghost`,className:`text-danger hover:text-danger`,disabled:s,onClick:u,children:[s?(0,Z.jsx)(g,{className:`size-4 animate-spin`}):null,s?d.endingPriority:d.endPriority]}):(0,Z.jsx)(`span`,{}),t[64]=u,t[65]=r,t[66]=s,t[67]=d.endPriority,t[68]=d.endingPriority,t[69]=oe):oe=t[69];let se;t[70]!==s||t[71]!==d.cancel?(se=(0,Z.jsx)(z,{asChild:!0,children:(0,Z.jsx)(S,{disabled:s,children:d.cancel})}),t[70]=s,t[71]=d.cancel,t[72]=se):se=t[72];let ce=!O||s,le;t[73]===s?le=t[74]:(le=s?(0,Z.jsx)(g,{className:`size-4 animate-spin`}):null,t[73]=s,t[74]=le);let ue;t[75]!==d.savePriority||t[76]!==ce||t[77]!==le?(ue=(0,Z.jsxs)(S,{type:`submit`,variant:`primary`,disabled:ce,children:[le,d.savePriority]}),t[75]=d.savePriority,t[76]=ce,t[77]=le,t[78]=ue):ue=t[78];let de;t[79]!==se||t[80]!==ue?(de=(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[se,ue]}),t[79]=se,t[80]=ue,t[81]=de):de=t[81];let fe;t[82]!==oe||t[83]!==de?(fe=(0,Z.jsxs)(`footer`,{className:`flex shrink-0 flex-wrap items-center justify-between gap-2 border-t border-edge px-5 py-3 sm:px-6`,children:[oe,de]}),t[82]=oe,t[83]=de,t[84]=fe):fe=t[84];let pe;t[85]!==E||t[86]!==B||t[87]!==ae||t[88]!==fe?(pe=(0,Z.jsxs)(ne,{children:[k,(0,Z.jsx)(te,{className:`xopc-dialog-content fixed left-1/2 top-1/2 z-[90] h-[min(34rem,calc(100vh-2rem))] w-[min(38rem,calc(100vw-2rem))] -translate-x-1/2 -translate-y-1/2 rounded-2xl border border-edge bg-surface-overlay shadow-popover outline-none`,children:(0,Z.jsxs)(`form`,{className:`flex h-full min-h-0 flex-col overflow-hidden [border-radius:inherit]`,onSubmit:E,children:[B,ae,fe]})})]}),t[85]=E,t[86]=B,t[87]=ae,t[88]=fe,t[89]=pe):pe=t[89];let me;return t[90]!==c||t[91]!==n||t[92]!==pe?(me=(0,Z.jsx)(P,{open:n,onOpenChange:c,children:pe}),t[90]=c,t[91]=n,t[92]=pe,t[93]=me):me=t[93],me}function tn(e){let t=(0,X.c)(16),{rule:n,language:r,busy:i,onToggle:a}=e,o=Pt[r],s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Z.jsx)(ae,{className:`mt-0.5 size-4 shrink-0 text-fg-subtle`}),t[0]=s):s=t[0];let c;t[1]===n.statement?c=t[2]:(c=(0,Z.jsx)(`p`,{className:`min-w-0 flex-1 text-sm leading-6 text-fg`,children:n.statement}),t[1]=n.statement,t[2]=c);let l;t[3]!==n.status||t[4]!==o.disabled?(l=n.status===`disabled`?(0,Z.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:o.disabled}):null,t[3]=n.status,t[4]=o.disabled,t[5]=l):l=t[5];let u=n.status===`active`?o.disable:o.enable,d;t[6]!==i||t[7]!==a||t[8]!==u?(d=(0,Z.jsx)(S,{variant:`ghost`,className:`h-8`,disabled:i,onClick:a,children:u}),t[6]=i,t[7]=a,t[8]=u,t[9]=d):d=t[9];let f;t[10]!==l||t[11]!==d?(f=(0,Z.jsxs)(`div`,{className:`flex shrink-0 flex-col items-end gap-1`,children:[l,d]}),t[10]=l,t[11]=d,t[12]=f):f=t[12];let p;return t[13]!==c||t[14]!==f?(p=(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 border-t border-edge-subtle px-5 py-3 first:border-t-0`,children:[s,c,f]}),t[13]=c,t[14]=f,t[15]=p):p=t[15],p}function nn(e){let t=(0,X.c)(15),{suggestion:n,language:r,busy:i,onConfirm:a}=e,o=r===`zh`,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Z.jsx)(Be,{className:`mt-0.5 size-4 shrink-0 text-accent-fg`}),t[0]=s):s=t[0];let c;t[1]===n.statement?c=t[2]:(c=(0,Z.jsx)(`p`,{className:`text-sm leading-6 text-fg`,children:n.statement}),t[1]=n.statement,t[2]=c);let l=o?`根据你已确认的模式生成;确认前不会生效`:`Suggested from a pattern you confirmed; inactive until you approve`,u;t[3]===l?u=t[4]:(u=(0,Z.jsx)(`p`,{className:`mt-0.5 text-xs text-fg-subtle`,children:l}),t[3]=l,t[4]=u);let d;t[5]!==c||t[6]!==u?(d=(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[c,u]}),t[5]=c,t[6]=u,t[7]=d):d=t[7];let f=i?o?`启用中…`:`Enabling…`:o?`确认启用`:`Approve`,p;t[8]!==i||t[9]!==a||t[10]!==f?(p=(0,Z.jsx)(S,{variant:`secondary`,className:`h-8 shrink-0`,disabled:i,onClick:a,children:f}),t[8]=i,t[9]=a,t[10]=f,t[11]=p):p=t[11];let m;return t[12]!==d||t[13]!==p?(m=(0,Z.jsxs)(`div`,{className:`flex items-start gap-3 border-t border-edge-subtle px-5 py-3 first:border-t-0`,children:[s,d,p]}),t[12]=d,t[13]=p,t[14]=m):m=t[14],m}function rn(e){let t=(0,X.c)(26),{item:n,language:r,busy:i,expanded:a,onToggle:o,editing:s,draft:l,onDraftChange:u,onEdit:d,onCancel:f,onReview:p,onDelete:m}=e,h=Pt[r],g=n.updatedAt??n.createdAt,_;t[0]!==r||t[1]!==g?(_=Vt(g,r),t[0]=r,t[1]=g,t[2]=_):_=t[2];let v=_,y;t[3]!==n.claimMode||t[4]!==n.content?(y=n.content.length>96||n.content.includes(`
|
|
2
|
-
`)||!!n.claimMode,t[3]=n.claimMode,t[4]=n.content,t[5]=y):y=t[5];let b=y,x;return t[6]!==i||t[7]!==b||t[8]!==v||t[9]!==l||t[10]!==s||t[11]!==a||t[12]!==n.claimMode||t[13]!==n.content||t[14]!==n.id||t[15]!==n.scope||t[16]!==n.verification||t[17]!==r||t[18]!==f||t[19]!==m||t[20]!==u||t[21]!==d||t[22]!==p||t[23]!==o||t[24]!==h?(x=(0,Z.jsx)(`article`,{className:`group border-t border-edge-subtle px-5 py-4 first:border-t-0 sm:px-6`,children:s?(0,Z.jsxs)(`div`,{className:`space-y-3`,children:[(0,Z.jsx)(`textarea`,{"aria-label":h.correctionPlaceholder,disabled:i,value:l,onChange:e=>u(e.target.value),className:`min-h-24 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2.5 text-sm leading-6 text-fg outline-none transition focus:border-accent focus:ring-2 focus:ring-accent/20`}),(0,Z.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,Z.jsx)(S,{variant:`ghost`,className:`h-8`,onClick:f,children:h.cancel}),(0,Z.jsx)(S,{variant:`primary`,className:`h-8`,disabled:!l.trim()||i,onClick:()=>p(`edit_and_approve`,l.trim()),children:h.save})]})]}):(0,Z.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,Z.jsx)(N,{className:`mt-1 size-4 shrink-0 text-fg-subtle`}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`p`,{className:`whitespace-pre-wrap break-words text-base leading-7 text-fg ${a?``:`line-clamp-2`}`,children:n.content}),(0,Z.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-fg-subtle`,children:[(0,Z.jsx)(`span`,{children:Jt(n.scope,r)}),n.claimMode===`reported`?(0,Z.jsx)(`span`,{children:r===`zh`?`来源报告`:`Source report`}):null,n.verification===`tentative`?(0,Z.jsx)(`span`,{children:r===`zh`?`证据待补充`:`Evidence pending`}):null,v?(0,Z.jsx)(`span`,{children:v}):null]}),a?(0,Z.jsx)(Mt,{id:n.id,language:r}):null]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[b?(0,Z.jsx)(S,{variant:`ghost`,className:`size-11 p-0`,"aria-expanded":a,"aria-label":a?h.collapse:h.expand,onClick:o,children:(0,Z.jsx)(c,{className:`size-3.5 transition-transform ${a?`rotate-180`:``}`})}):null,(0,Z.jsx)(Ye,{language:r,busy:i,statement:n.content,onEdit:d,onDelete:m})]})]})}),t[6]=i,t[7]=b,t[8]=v,t[9]=l,t[10]=s,t[11]=a,t[12]=n.claimMode,t[13]=n.content,t[14]=n.id,t[15]=n.scope,t[16]=n.verification,t[17]=r,t[18]=f,t[19]=m,t[20]=u,t[21]=d,t[22]=p,t[23]=o,t[24]=h,t[25]=x):x=t[25],x}function an(){let e=y(e=>e.language),t=Pt[e],n=ue(e=>e.setPageHeader),r=ue(e=>e.clearPageHeader),[i,c]=a(),{data:d,error:f,isLoading:m,isValidating:h,mutate:_}=x(`/api/user-model`,Pe),v=Nt(i),[b,w]=(0,Y.useState)(),[ee,D]=(0,Y.useState)(),[O,k]=(0,Y.useState)(``),[M,N]=(0,Y.useState)(),[P,z]=(0,Y.useState)(``),[U,te]=(0,Y.useState)(``),[G,ne]=(0,Y.useState)(24),[J,ce]=(0,Y.useState)(),[le,pe]=(0,Y.useState)(!1),[he,ye]=(0,Y.useState)(!1),[be,Te]=(0,Y.useState)(`all`),[De,Ae]=(0,Y.useState)(`personal`),[je,Fe]=(0,Y.useState)(`all`),[Ie,ze]=(0,Y.useState)(`idle`),He=(0,Y.useRef)(void 0),Ue=e=>{if(e===v)return;let t=document.getElementById(`app-main-content`);typeof t?.scrollTo==`function`&&t.scrollTo({top:0,behavior:`auto`}),c(t=>{let n=new URLSearchParams(t);return e===`overview`?n.delete(`tab`):n.set(`tab`,e),n})},X=(0,Y.useCallback)(async()=>{if(!(Ie===`refreshing`||h)){He.current&&window.clearTimeout(He.current),ze(`refreshing`),D(void 0),k(t.refreshing);try{await _(),ze(`success`),k(t.refreshComplete)}catch{ze(`error`),k(``),D(t.refreshFailed)}finally{He.current=window.setTimeout(()=>ze(`idle`),1600)}}},[h,_,Ie,t]);(0,Y.useEffect)(()=>()=>{He.current&&window.clearTimeout(He.current)},[]);let We=h||Ie===`refreshing`,Ge=We?t.refreshing:Ie===`success`?t.refreshComplete:Ie===`error`?t.refreshFailed:t.refresh;(0,Y.useEffect)(()=>(n({startExtra:null,main:(0,Z.jsx)(`h1`,{className:`text-base font-semibold text-fg`,children:t.pageTitle}),end:(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(yt,{}),(0,Z.jsx)(S,{variant:`secondary`,className:`size-9 p-0 ${Ie===`success`?`text-success`:Ie===`error`?`text-danger`:``}`,disabled:We,"aria-label":Ge,title:Ge,onClick:()=>void X(),children:We?(0,Z.jsx)(g,{className:`size-4 animate-spin motion-reduce:animate-none`,"aria-hidden":`true`}):Ie===`success`?(0,Z.jsx)(s,{className:`size-4`,"aria-hidden":`true`}):Ie===`error`?(0,Z.jsx)(Se,{className:`size-4`,"aria-hidden":`true`}):(0,Z.jsx)(I,{className:`size-4`,"aria-hidden":`true`})})]})}),r),[r,We,Ie,Ge,X,n,t]);let Q=async(n,r)=>{w(n),D(void 0),k(``);try{await r(),await _(),k(e===`zh`?`已更新`:`Updated`)}catch{D(t.actionFailed)}finally{w(void 0)}},Ke=e=>{Q(e.id,async()=>{await L(e.id,P.trim()),N(void 0),z(``)})},qe=async e=>{w(`profile`),D(void 0),k(``);try{await me(e),await _(),pe(!1)}catch{D(t.actionFailed)}finally{w(void 0)}},Je=async(n,r)=>{w(`priority:${n.id}`),D(void 0),k(``);try{await Me(n.id,r),await _(),ye(!1),k(e===`zh`?`当前关注已更新`:`Current focus updated`)}catch{D(t.actionFailed)}finally{w(void 0)}},Ye=async n=>{w(`priority:create`),D(void 0),k(``);try{await ie(n),await _(),ye(!1),k(e===`zh`?`当前关注已设置`:`Current focus set`)}catch{D(t.actionFailed)}finally{w(void 0)}},Xe=async n=>{w(`priority:${n.id}`),D(void 0),k(``);try{await Me(n.id,{status:`completed`}),await _(),ye(!1),k(e===`zh`?`当前关注已结束`:`Current focus ended`)}catch{D(t.actionFailed)}finally{w(void 0)}};if(m)return(0,Z.jsxs)(`div`,{className:`mx-auto w-full max-w-7xl space-y-5 px-4 pb-7 pt-3 sm:px-6 lg:px-8 lg:pb-9 lg:pt-4`,children:[(0,Z.jsx)(C,{className:`h-10 w-72 rounded-xl`}),(0,Z.jsx)(C,{className:`h-72 rounded-xl`}),(0,Z.jsxs)(`div`,{className:`grid gap-5 lg:grid-cols-2`,children:[(0,Z.jsx)(C,{className:`h-80 rounded-xl`}),(0,Z.jsx)(C,{className:`h-80 rounded-xl`})]})]});if(f||!d)return(0,Z.jsxs)(`div`,{className:`mx-auto flex min-h-72 max-w-xl flex-col items-center justify-center gap-3 p-6 text-center`,children:[(0,Z.jsx)(B,{className:`size-6 text-fg-subtle`}),(0,Z.jsx)(`p`,{className:`text-sm text-danger`,children:t.loadFailed}),(0,Z.jsx)(S,{onClick:()=>void _(),children:t.tryAgain})]});let Ze=d.assertions.filter(e=>e.usable&&!Ft.has(e.predicate)).sort((e,t)=>{let n=e.declaredImportance??e.inferredImportance;return(t.declaredImportance??t.inferredImportance)-n||t.recordedAt-e.recordedAt}),Qe=d.assertions.filter(e=>[`candidate`,`needs_review`,`conflicted`].includes(e.status)).sort((e,t)=>t.recordedAt-e.recordedAt),$e=Ut(d),et=$e.callName||(e===`zh`?`你`:`You`),tt=Ze.filter(e=>e.authority===`user_explicit`).length,rt=Ze.length-tt,it=Ze.filter(e=>be===`explicit`?e.authority===`user_explicit`:be===`learned`?e.authority!==`user_explicit`:!0),at=d.priorities.filter(e=>e.status===`active`&&e.validTo>Date.now()),$=at.find(e=>e.rank===`primary`)??at[0],ot=Xt($,d.goals,e),st=$?.targetType===`goal`?d.goals.find(e=>e.id===$.targetId):void 0,ct=d.goals.filter(e=>e.status===`active`||e.status===`paused`),lt=ct.filter(e=>$?.targetType!==`goal`||e.id!==$.targetId),ut=d.rules.filter(e=>e.status!==`archived`),dt=d.ruleSuggestions??[],ft=d.knowledge.filter(e=>e.status!==`archived`&&e.status!==`rejected`),pt=U.trim().toLocaleLowerCase(),mt=ft.filter(e=>je===`all`||e.kind===je),ht=mt.filter(t=>!pt||t.content.toLocaleLowerCase().includes(pt)||Yt(t.kind,e).toLocaleLowerCase().includes(pt)),gt=[{key:`identity`,title:t.identity,icon:T,items:it.filter(e=>e.kind===`identity`)},{key:`preferences`,title:t.preferences,icon:Ce,items:it.filter(e=>[`preference`,`value`,`routine`,`capability`].includes(e.kind))},{key:`relationships`,title:t.relationships,icon:ae,items:it.filter(e=>e.kind===`relationship`)},{key:`current`,title:t.currentState,icon:Re,items:it.filter(e=>e.kind===`current_state`)},{key:`insights`,title:t.insights,icon:Be,items:it.filter(e=>e.kind===`derived_insight`)}].filter(e=>e.items.length>0),_t=[{key:`about`,icon:T,label:e===`zh`?`关于我`:`About me`,hint:e===`zh`?`身份、背景与能力`:`Identity, background, and capabilities`,count:Ze.filter(e=>[`identity`,`capability`].includes(e.kind)).length},{key:`preferences`,icon:Ce,label:e===`zh`?`偏好与习惯`:`Preferences & habits`,hint:e===`zh`?`沟通方式与日常习惯`:`Communication and routines`,count:Ze.filter(e=>[`preference`,`value`,`routine`].includes(e.kind)).length},{key:`people`,icon:ae,label:e===`zh`?`重要的人`:`Important people`,hint:e===`zh`?`与你有关的人和关系`:`People and relationships`,count:Ze.filter(e=>e.kind===`relationship`).length},{key:`goals`,icon:Be,label:e===`zh`?`目标与计划`:`Goals & plans`,hint:e===`zh`?`正在推进的长期目标`:`Long-term outcomes in progress`,count:ct.length}],vt=It.map(e=>({kind:e,count:ft.filter(t=>t.kind===e).length})).filter(e=>e.count>0),xt=vt.slice(0,4),St=xt.length===1?`grid-cols-1`:`sm:grid-cols-2`,Ct=ht.slice(0,G),wt=It.map(e=>({kind:e,items:Ct.filter(t=>t.kind===e),totalCount:ht.filter(t=>t.kind===e).length})).filter(e=>e.items.length>0),Tt=[{id:`all`,label:t.allUnderstanding,count:Ze.length},{id:`explicit`,label:t.explicit,count:tt},{id:`learned`,label:t.learned,count:rt}],Et=e=>{Te(e),Ae(`personal`),Ue(`understanding`)},Dt=e=>{Fe(e),te(``),ne(24),Ae(`work`),Ue(`understanding`)},Ot=t=>(0,Z.jsx)(nt,{item:t,language:e,busy:!!b,editing:M===t.id,draft:M===t.id?P:``,onDraftChange:z,onEdit:()=>{N(t.id),z(t.statement)},onCancel:()=>{N(void 0),z(``)},onDelete:()=>void Q(t.id,()=>oe(t.id)),onCorrect:()=>Ke(t),onScopeChange:e=>void Q(t.id,()=>ke(t.id,e))},t.id);return(0,Z.jsxs)(`div`,{className:`mx-auto w-full max-w-6xl space-y-6 px-4 pb-4 pt-3 sm:space-y-8 sm:px-6 sm:pb-7 lg:px-8 lg:pb-10 lg:pt-4`,children:[(0,Z.jsx)(bt,{language:e}),(0,Z.jsx)(Ve,{items:[{id:`overview`,label:t.overview,icon:Be},{id:`understanding`,label:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`sm:hidden`,children:e===`zh`?`记忆`:`Memory`}),(0,Z.jsx)(`span`,{className:`hidden sm:inline`,children:t.understanding})]}),icon:T,count:Ze.length},{id:`privacy`,label:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`sm:hidden`,children:e===`zh`?`隐私`:`Privacy`}),(0,Z.jsx)(`span`,{className:`hidden sm:inline`,children:t.privacy})]}),icon:Le}],activeTab:v,onChange:Ue,ariaLabel:t.pageTitle,tabIdPrefix:`understanding-tab`,panelIdPrefix:`understanding-panel`,className:`w-full max-w-full gap-1 rounded-full bg-surface-panel p-1 shadow-surface sm:w-fit`,buttonClassName:`min-w-0 flex-1 justify-center rounded-full px-2 py-2 sm:flex-none sm:px-3.5`,selectedClassName:`bg-surface-active text-fg`,unselectedClassName:`text-fg-muted hover:bg-surface-hover hover:text-fg`}),(0,Z.jsx)(`p`,{role:`status`,className:`sr-only`,children:O}),ee?(0,Z.jsxs)(`div`,{role:`alert`,className:`flex items-center justify-between gap-3 rounded-xl border border-danger bg-danger-soft px-4 py-3 text-sm text-danger`,children:[(0,Z.jsx)(`span`,{children:ee}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>D(void 0),"aria-label":t.cancel,children:(0,Z.jsx)(R,{className:`size-4`})})]}):null,v===`overview`?(0,Z.jsxs)(`div`,{id:`understanding-panel-overview`,role:`tabpanel`,"aria-labelledby":`understanding-tab-overview`,className:`space-y-8 sm:space-y-10`,children:[(0,Z.jsxs)(`section`,{"data-testid":`overview-hero`,className:`grid gap-5 sm:gap-8 lg:grid-cols-[minmax(0,1fr)_minmax(20rem,24rem)] lg:gap-12`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 px-1 sm:py-2`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-3 sm:flex-wrap sm:gap-5`,children:[(0,Z.jsx)(Oe,{className:`size-16 sm:size-20`,mood:ee?`care`:We||b?`work`:`listen`}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`h2`,{className:`truncate text-xl font-semibold tracking-tight text-fg sm:text-3xl`,children:et}),(0,Z.jsx)(`p`,{className:`mt-1 break-words text-sm text-fg-muted`,children:$e.role||t.notProvided})]}),(0,Z.jsxs)(S,{variant:`ghost`,className:`size-11 shrink-0 px-0 sm:h-9 sm:w-auto sm:px-3`,onClick:()=>pe(!0),children:[(0,Z.jsx)(ge,{className:`size-4`,"aria-hidden":`true`}),(0,Z.jsx)(`span`,{className:`sr-only sm:not-sr-only`,children:t.editProfile})]})]}),(0,Z.jsx)(`dl`,{className:`mt-6 hidden gap-x-8 gap-y-5 sm:grid sm:grid-cols-3`,children:[{icon:A,label:t.locale,value:$e.locale?Wt($e.locale,e):t.notProvided},{icon:se,label:t.timezone,value:$e.timezone||t.notProvided},{icon:T,label:t.pronouns,value:$e.pronouns||t.notProvided}].map(({icon:e,label:t,value:n})=>(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsxs)(`dt`,{className:`flex items-center gap-1.5 text-xs text-fg-subtle`,children:[(0,Z.jsx)(e,{className:`size-3.5`,"aria-hidden":`true`}),t]}),(0,Z.jsx)(`dd`,{className:`mt-1.5 truncate text-sm font-medium text-fg`,children:n})]},t))})]}),(0,Z.jsxs)(`aside`,{"data-testid":`priority-panel`,className:`flex min-h-0 flex-col rounded-[1.4rem] bg-surface-panel p-5 shadow-surface sm:min-h-64 sm:p-6`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`p`,{className:`text-xs font-semibold tracking-wide text-fg-subtle`,children:t.importantNow}),$?(0,Z.jsxs)(`p`,{className:`mt-1.5 flex items-center gap-1.5 text-xs text-fg-muted`,children:[(0,Z.jsx)(F,{className:`size-3.5`,"aria-hidden":`true`}),$.targetType===`goal`?t.prioritySourceGoal:t.prioritySourceWork]}):null]}),$&&ot?(0,Z.jsxs)(S,{variant:`ghost`,className:`h-8 shrink-0 px-2.5`,onClick:()=>ye(!0),children:[(0,Z.jsx)(re,{className:`size-3.5`,"aria-hidden":`true`}),t.editPriority]}):null]}),ot?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`p`,{className:`mt-3 text-lg font-semibold leading-7 tracking-tight text-fg`,children:ot}),st?.desiredOutcome?(0,Z.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:st.desiredOutcome}):null,$?(0,Z.jsxs)(`p`,{className:`mt-auto flex items-center gap-1.5 pt-4 text-xs text-fg-subtle`,children:[(0,Z.jsx)(H,{className:`size-3.5`,"aria-hidden":`true`}),Gt($.validTo,e)]}):null]}):(0,Z.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3 py-6 text-center text-sm text-fg-muted`,children:[(0,Z.jsx)(F,{className:`size-5 text-fg-subtle`}),(0,Z.jsxs)(S,{variant:`primary`,onClick:()=>ye(!0),children:[(0,Z.jsx)(K,{className:`size-4`,"aria-hidden":`true`}),t.addPriority]})]}),lt.length?(0,Z.jsxs)(`div`,{className:`mt-5 hidden border-t border-edge-subtle pt-4 sm:block`,children:[(0,Z.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:t.otherGoals}),(0,Z.jsx)(`div`,{className:`mt-2 space-y-2`,children:lt.slice(0,3).map(e=>(0,Z.jsx)(`p`,{className:`text-sm text-fg`,children:e.title},e.id))})]}):null]})]}),Qe.length?(0,Z.jsxs)(`section`,{className:`overflow-hidden rounded-2xl bg-accent-soft/70 shadow-surface`,"aria-label":e===`zh`?`需要你确认`:`Needs your review`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-5 py-4 sm:px-6`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Z.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-full bg-surface-panel text-accent-fg`,children:(0,Z.jsx)(Be,{className:`size-4`,"aria-hidden":`true`})}),(0,Z.jsx)(`div`,{className:`min-w-0`,children:(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:e===`zh`?`需要你确认`:`Needs your review`})})]}),(0,Z.jsx)(`span`,{className:`rounded-full bg-surface-panel px-2.5 py-1 text-xs font-medium tabular-nums text-accent-fg`,children:Qe.length})]}),(0,Z.jsxs)(`div`,{className:`border-t border-accent/10 bg-surface-panel px-5 py-4 sm:flex sm:items-center sm:gap-4 sm:px-6`,children:[(0,Z.jsx)(`p`,{className:`min-w-0 flex-1 text-sm leading-6 text-fg`,children:Qe[0].statement}),(0,Z.jsxs)(`div`,{className:`mt-3 flex shrink-0 gap-2 sm:mt-0`,children:[(0,Z.jsx)(S,{variant:`ghost`,className:`min-h-11 flex-1 sm:flex-none`,disabled:b===Qe[0].id,onClick:()=>void Q(Qe[0].id,()=>xe(Qe[0].id,`rejected`)),children:e===`zh`?`不是`:`No`}),(0,Z.jsx)(S,{variant:`primary`,className:`min-h-11 flex-1 sm:flex-none`,disabled:b===Qe[0].id,onClick:()=>void Q(Qe[0].id,()=>xe(Qe[0].id,`active`)),children:e===`zh`?`是的`:`That’s right`})]})]})]}):null,(0,Z.jsx)(Zt,{title:e===`zh`?`xopc 对我的了解`:`What xopc knows about me`,action:(0,Z.jsx)(S,{variant:`ghost`,className:`h-8 shrink-0`,onClick:()=>Ue(`understanding`),children:t.seeAll}),children:(0,Z.jsx)(`div`,{className:`grid sm:grid-cols-2`,children:_t.map(({key:e,icon:t,label:n,hint:r,count:i})=>(0,Z.jsxs)(`button`,{type:`button`,className:`group flex min-h-24 w-full items-center gap-4 border-t border-edge-subtle px-5 py-4 text-left first:border-t-0 hover:bg-surface-hover focus-visible:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent sm:[&:nth-child(-n+2)]:border-t-0 sm:[&:nth-child(even)]:border-l`,onClick:()=>Et(`all`),"aria-label":`${n}: ${i}`,children:[(0,Z.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center rounded-xl bg-surface-base text-fg-muted`,children:(0,Z.jsx)(t,{className:`size-4.5`,"aria-hidden":`true`})}),(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:n}),(0,Z.jsx)(`span`,{className:`mt-0.5 block truncate text-xs text-fg-subtle`,children:r})]}),(0,Z.jsx)(`span`,{className:`text-sm tabular-nums text-fg-muted`,children:i}),(0,Z.jsx)(V,{className:`size-4 shrink-0 text-fg-subtle transition-transform group-hover:translate-x-0.5`,"aria-hidden":`true`})]},e))})}),(0,Z.jsxs)(`div`,{className:`grid items-start gap-8 lg:grid-cols-2`,children:[(0,Z.jsx)(Zt,{title:t.howWeWork,className:`min-w-0`,children:ut.length||dt.length?(0,Z.jsxs)(Z.Fragment,{children:[ut.slice(0,3).map(t=>(0,Z.jsx)(tn,{rule:t,language:e,busy:b===t.id,onToggle:()=>void Q(t.id,()=>de(t.id,t.status===`active`?`disabled`:`active`))},t.id)),dt.slice(0,2).map(t=>(0,Z.jsx)(nn,{suggestion:t,language:e,busy:b===t.id,onConfirm:()=>void Q(t.id,()=>q(t))},t.id))]}):(0,Z.jsx)(Qt,{icon:(0,Z.jsx)(ae,{className:`size-5`}),children:t.noRules})}),(0,Z.jsx)(Zt,{title:t.workMemory,className:`min-w-0`,action:(0,Z.jsx)(S,{variant:`ghost`,className:`h-8 shrink-0`,onClick:()=>Dt(`all`),children:t.seeAll}),children:vt.length?(0,Z.jsx)(`div`,{"data-testid":`memory-summary-grid`,className:`grid gap-3 bg-surface-base ${St}`,children:xt.map(({kind:t,count:n})=>(0,Z.jsxs)(`button`,{type:`button`,className:`group flex min-h-28 cursor-pointer items-start justify-between rounded-2xl bg-surface-panel px-5 py-5 text-left transition-colors hover:bg-surface-hover focus-visible:z-10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,onClick:()=>Dt(t),"aria-label":`${Yt(t,e)}: ${n}`,children:[(0,Z.jsxs)(`span`,{children:[(0,Z.jsx)(`span`,{className:`block text-2xl font-semibold tabular-nums text-fg`,children:n}),(0,Z.jsx)(`span`,{className:`mt-1 block text-sm text-fg-muted`,children:Yt(t,e)})]}),(0,Z.jsx)(V,{className:`mt-1 size-4 shrink-0 text-fg-subtle transition-transform group-hover:translate-x-0.5 group-hover:text-fg-muted motion-reduce:transform-none`,"aria-hidden":`true`})]},t))}):(0,Z.jsx)(Qt,{icon:(0,Z.jsx)(ve,{className:`size-5`}),children:t.noKnowledge})})]})]}):null,v===`understanding`?(0,Z.jsxs)(`div`,{id:`understanding-panel-understanding`,role:`tabpanel`,"aria-labelledby":`understanding-tab-understanding`,className:`space-y-10`,children:[(0,Z.jsx)(j,{className:`flex w-full gap-1 rounded-xl bg-surface-panel p-1 sm:w-fit`,role:`group`,"aria-label":e===`zh`?`记忆分类`:`Memory category`,children:[{id:`personal`,label:e===`zh`?`关于我`:`About me`,icon:T,count:Ze.length},{id:`work`,label:e===`zh`?`工作记忆`:`Work memory`,icon:F,count:ft.length}].map(({id:e,label:t,icon:n,count:r})=>(0,Z.jsxs)(`button`,{type:`button`,"aria-pressed":De===e,className:`touch-target flex min-h-10 flex-1 items-center justify-center gap-2 rounded-lg px-3 text-sm font-medium transition-colors sm:flex-none ${De===e?`bg-surface-active text-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`}`,onClick:()=>Ae(e),children:[(0,Z.jsx)(n,{className:`size-4`,"aria-hidden":`true`}),t,(0,Z.jsx)(`span`,{className:`text-xs tabular-nums text-fg-subtle`,children:r})]},e))}),De===`personal`?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`px-1 pt-1`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,Z.jsx)(B,{className:`mt-0.5 size-5 shrink-0 text-accent-fg`,"aria-hidden":`true`}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h2`,{className:`font-semibold text-fg`,children:t.aboutYouTitle}),(0,Z.jsx)(`p`,{className:`mt-1 max-w-3xl text-sm leading-6 text-fg-muted`,children:t.aboutYouHint})]})]}),(0,Z.jsx)(j,{className:`mt-4 flex flex-wrap gap-2`,role:`group`,"aria-label":t.understandingFilterHint,indicatorClassName:`rounded-full bg-surface-active`,children:Tt.map(e=>(0,Z.jsxs)(`button`,{type:`button`,"aria-pressed":be===e.id,className:`touch-target inline-flex min-h-9 cursor-pointer items-center gap-1.5 rounded-full px-3 py-1.5 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${be===e.id?`bg-surface-active text-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`}`,onClick:()=>Te(e.id),children:[e.label,(0,Z.jsx)(`span`,{className:`tabular-nums text-fg-subtle`,children:e.count})]},e.id))})]}),gt.length?gt.map(({key:e,title:t,icon:n,items:r})=>(0,Z.jsx)(Zt,{title:t,action:(0,Z.jsx)(n,{className:`size-4 text-fg-subtle`,"aria-hidden":`true`}),children:(0,Z.jsx)(`div`,{children:r.map(Ot)})},e)):(0,Z.jsx)(`div`,{className:`rounded-2xl bg-surface-panel`,children:(0,Z.jsx)(Qt,{icon:(0,Z.jsx)(B,{className:`size-5`}),children:t.emptyGroup})})]}):(0,Z.jsxs)(`div`,{className:`space-y-8`,children:[(0,Z.jsxs)(`div`,{className:`px-1 pt-1`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,children:[(0,Z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,Z.jsx)(`h2`,{className:`font-semibold text-fg`,children:je===`all`?t.allMemory:Yt(je,e)}),(0,Z.jsxs)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:[mt.length,` `,t.items,` · `,t.memoryLibraryHint]})]}),(0,Z.jsxs)(`label`,{className:`relative block sm:w-80`,children:[(0,Z.jsx)(E,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`}),(0,Z.jsx)(`span`,{className:`sr-only`,children:t.searchPlaceholder}),(0,Z.jsx)(`input`,{type:`search`,value:U,onChange:e=>{te(e.target.value),ne(24)},placeholder:t.searchPlaceholder,className:`h-10 w-full rounded-xl border border-edge bg-surface-base pl-9 pr-3 text-sm text-fg outline-none transition placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]})]}),(0,Z.jsxs)(j,{className:`mt-4 flex flex-wrap gap-2`,role:`group`,"aria-label":t.memoryFilterHint,indicatorClassName:`rounded-full bg-surface-active`,children:[(0,Z.jsxs)(`button`,{type:`button`,"aria-pressed":je===`all`,className:`touch-target inline-flex min-h-9 cursor-pointer items-center gap-1.5 rounded-full px-3 py-1.5 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${je===`all`?`bg-surface-active text-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`}`,onClick:()=>Fe(`all`),children:[t.allMemory,(0,Z.jsx)(`span`,{className:`tabular-nums text-fg-subtle`,children:ft.length})]}),vt.map(({kind:t,count:n})=>(0,Z.jsxs)(`button`,{type:`button`,"aria-pressed":je===t,className:`touch-target inline-flex min-h-9 cursor-pointer items-center gap-1.5 rounded-full px-3 py-1.5 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${je===t?`bg-surface-active text-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`}`,onClick:()=>Fe(t),children:[Yt(t,e),(0,Z.jsx)(`span`,{className:`tabular-nums text-fg-subtle`,children:n})]},t))]})]}),ht.length?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`space-y-8`,children:wt.map(({kind:t,items:n,totalCount:r})=>(0,Z.jsxs)(`section`,{className:`overflow-hidden rounded-2xl bg-surface-panel`,children:[(0,Z.jsxs)(`header`,{className:`flex items-center justify-between px-5 pb-1 pt-4 sm:px-6`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:Yt(t,e)}),(0,Z.jsx)(`span`,{className:`text-xs tabular-nums text-fg-subtle`,children:r})]}),(0,Z.jsx)(`div`,{children:n.map(t=>(0,Z.jsx)(rn,{item:t,language:e,busy:!!b,expanded:J===t.id,onToggle:()=>ce(e=>e===t.id?void 0:t.id),editing:M===`knowledge:${t.id}`,draft:P,onDraftChange:z,onEdit:()=>{N(`knowledge:${t.id}`),z(t.content)},onCancel:()=>{N(void 0),z(``)},onDelete:()=>void Q(t.id,()=>W(t.id)),onReview:(e,n)=>void Q(t.id,async()=>{await we(t,e,n),N(void 0),z(``)})},t.id))})]},t))}),ht.length>G?(0,Z.jsx)(`div`,{className:`flex justify-center pt-2`,children:(0,Z.jsx)(S,{onClick:()=>ne(e=>e+24),children:t.showMore})}):null]}):(0,Z.jsx)(`div`,{className:`rounded-2xl bg-surface-panel`,children:(0,Z.jsx)(Qt,{icon:(0,Z.jsx)(E,{className:`size-5`}),children:U.trim()?t.noKnowledgeMatch:t.noKnowledge})})]})]}):null,v===`privacy`?(0,Z.jsxs)(`div`,{id:`understanding-panel-privacy`,role:`tabpanel`,"aria-labelledby":`understanding-tab-privacy`,className:`space-y-8`,children:[(0,Z.jsx)(`div`,{className:`px-1 pt-1`,children:(0,Z.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,Z.jsx)(Le,{className:`mt-0.5 size-5 shrink-0 text-accent-fg`,"aria-hidden":`true`}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h2`,{className:`font-semibold text-fg`,children:e===`zh`?`你的信息,由你掌控`:`Your information, under your control`}),(0,Z.jsx)(`p`,{className:`mt-1 max-w-3xl text-sm leading-6 text-fg-muted`,children:e===`zh`?`决定 xopc 可以记住什么、从哪里了解你,以及如何迁移你的数据。`:`Decide what xopc can remember, where it learns from, and how your data moves.`})]})]})}),(0,Z.jsx)(Zt,{title:e===`zh`?`记忆与使用`:`Memory & use`,children:(0,Z.jsxs)(`div`,{className:`divide-y divide-edge-subtle`,children:[[{key:`memory`,icon:B,title:e===`zh`?`长期记忆`:`Long-term memory`,detail:e===`zh`?`记住长期有用的信息,减少重复说明。`:`Remember useful information so you do not have to repeat yourself.`,enabled:d.settings.memoryEnabled},{key:`references`,icon:Be,title:e===`zh`?`回答中的记忆引用`:`Memory references in answers`,detail:e===`zh`?`当个人信息影响回答时,显示本次参考内容。`:`Show what personal context was referenced when it shapes an answer.`,enabled:d.settings.showMemoryReferences}].map(({key:e,icon:t,title:n,detail:r,enabled:i})=>(0,Z.jsxs)(`button`,{type:`button`,role:`switch`,"aria-checked":i,disabled:!!b,className:`flex min-h-20 w-full items-center gap-4 px-5 py-4 text-left hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent disabled:opacity-60 sm:px-6`,onClick:()=>void Q(`setting:${e}`,()=>Ee(e===`memory`?{memoryEnabled:!i}:{showMemoryReferences:!i})),children:[(0,Z.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center rounded-xl bg-surface-base text-fg-muted`,children:(0,Z.jsx)(t,{className:`size-4.5`,"aria-hidden":`true`})}),(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:n}),(0,Z.jsx)(`span`,{className:`mt-1 block text-xs leading-5 text-fg-muted`,children:r})]}),(0,Z.jsx)(`span`,{className:`relative h-6 w-11 shrink-0 rounded-full transition-colors ${i?`bg-accent`:`bg-surface-active`}`,"aria-hidden":`true`,children:(0,Z.jsx)(`span`,{className:`absolute top-0.5 size-5 rounded-full bg-white shadow-sm transition-transform ${i?`translate-x-5`:`translate-x-0.5`}`})})]},e)),(0,Z.jsxs)(`div`,{className:`flex min-h-20 items-center gap-4 px-5 py-4 sm:px-6`,children:[(0,Z.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center rounded-xl bg-surface-base text-fg-muted`,children:(0,Z.jsx)(fe,{className:`size-4.5`,"aria-hidden":`true`})}),(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:e===`zh`?`敏感信息`:`Sensitive information`}),(0,Z.jsx)(`span`,{className:`mt-1 block text-xs leading-5 text-fg-muted`,children:e===`zh`?`控制健康、财务等信息是否可以保存。`:`Control whether health, financial, and similar information can be saved.`})]}),(0,Z.jsxs)(l,{"aria-label":e===`zh`?`敏感信息策略`:`Sensitive information policy`,value:d.settings.sensitiveWritePolicy,disabled:!!b,onChange:e=>void Q(`setting:sensitive`,()=>Ee({sensitiveWritePolicy:e.target.value})),children:[(0,Z.jsx)(u,{value:`confirm`,children:e===`zh`?`先询问`:`Ask first`}),(0,Z.jsx)(u,{value:`deny`,children:e===`zh`?`不保存`:`Never save`}),(0,Z.jsx)(u,{value:`allow`,children:e===`zh`?`允许`:`Allow`})]})]})]})}),(0,Z.jsx)(Zt,{title:e===`zh`?`数据管理`:`Data management`,children:(0,Z.jsxs)(`div`,{className:`divide-y divide-edge-subtle`,children:[(0,Z.jsxs)(o,{to:`/settings/imports`,className:`flex min-h-20 items-center gap-4 px-5 py-4 hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent sm:px-6`,children:[(0,Z.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center rounded-xl bg-surface-base text-fg-muted`,children:(0,Z.jsx)(Ne,{className:`size-4.5`,"aria-hidden":`true`})}),(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:e===`zh`?`从其他 AI 导入`:`Import from another AI`}),(0,Z.jsx)(`span`,{className:`mt-1 block text-xs leading-5 text-fg-muted`,children:e===`zh`?`导入前预览新增、重复和冲突内容。`:`Preview new, duplicate, and conflicting items before import.`})]}),(0,Z.jsx)(V,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":`true`})]}),(0,Z.jsxs)(`button`,{type:`button`,disabled:!!b,className:`flex min-h-20 w-full items-center gap-4 px-5 py-4 text-left hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-accent disabled:opacity-60 sm:px-6`,onClick:()=>void Q(`export`,_e),children:[(0,Z.jsx)(`span`,{className:`flex size-10 shrink-0 items-center justify-center rounded-xl bg-surface-base text-fg-muted`,children:(0,Z.jsx)(p,{className:`size-4.5`,"aria-hidden":`true`})}),(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`span`,{className:`block text-sm font-medium text-fg`,children:e===`zh`?`下载我的记忆`:`Download my memory`}),(0,Z.jsx)(`span`,{className:`mt-1 block text-xs leading-5 text-fg-muted`,children:e===`zh`?`导出为可阅读、可迁移的数据包。`:`Export a readable, portable archive.`})]}),(0,Z.jsx)(V,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":`true`})]})]})}),(0,Z.jsxs)(`section`,{className:`rounded-2xl bg-surface-panel px-5 py-5 sm:px-6`,children:[(0,Z.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:e===`zh`?`纠正与忘记`:`Correct and forget`}),(0,Z.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:e===`zh`?`在“记忆”中打开任意一条内容的菜单,即可修改、调整作用范围或彻底删除。`:`Open any item in Memory to edit it, change where it applies, or delete it permanently.`}),(0,Z.jsx)(S,{variant:`ghost`,className:`mt-3`,onClick:()=>{Ae(`personal`),Ue(`understanding`)},children:e===`zh`?`管理记忆`:`Manage memory`})]})]}):null,(0,Z.jsx)($t,{open:le,profile:$e,language:e,saving:b===`profile`,onOpenChange:pe,onSave:e=>void qe(e)}),(0,Z.jsx)(en,{open:he,priority:$,title:ot??``,outcome:st?.desiredOutcome,language:e,saving:b===($?`priority:${$.id}`:`priority:create`),onOpenChange:ye,onSave:e=>$?void Je($,e):void Ye(e),onEnd:$?()=>void Xe($):void 0})]})}export{an as UserModelPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-aKtaBQYM.js";import{a as e,n as t,t as n}from"./vendor-react-BOUWij0V.js";import{t as r}from"./cn-0WouolD0.js";import{Do as i}from"./index-Bys6njTY.js";import{d as a}from"./voice-config-api-BkUlN7GH.js";var o=t();e();var s=n();function c(e){let t=(0,o.c)(15),{kind:n,providerId:c,fieldId:u,value:d,onChange:f,labels:p,placeholder:m,className:h}=e,g=m===void 0?`sk-...`:m,_;t[0]!==n||t[1]!==c?(_=()=>a({kind:n,provider:c}).then(l),t[0]=n,t[1]=c,t[2]=_):_=t[2];let v=_,y;t[3]===h?y=t[4]:(y=r(`flex min-w-0 flex-col gap-1.5`,h),t[3]=h,t[4]=y);let b;t[5]!==u||t[6]!==p||t[7]!==f||t[8]!==g||t[9]!==v||t[10]!==d?(b=(0,s.jsx)(i,{id:u,value:d,onChange:f,placeholder:g,labels:p,reveal:v,loadFailedLabel:p.loadFailed,maskedHelp:p.maskedHelp,notInConfigFile:p.notInConfigFile,inputClassName:`text-xs`}),t[5]=u,t[6]=p,t[7]=f,t[8]=g,t[9]=v,t[10]=d,t[11]=b):b=t[11];let x;return t[12]!==y||t[13]!==b?(x=(0,s.jsx)(`div`,{className:y,children:b}),t[12]=y,t[13]=b,t[14]=x):x=t[14],x}function l(e){return e.apiKey??null}export{c 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"./messages-BYq0cPbn.js";import{n as a}from"./locale-store-B7s2Hb35.js";import{t as o}from"./button-aIC072nz.js";import{Bc as s,Hc as c,Ic as l,Jc as u,No as d,Rc as f,Vc as p,q as m,w as h,zc as g}from"./index-Bys6njTY.js";var _=n(),v=e(t(),1),y=r(),b=180;function x(e){let t=(0,_.c)(40),{requestedOpen:n,onExited:r}=e,x=a(C),w=m(S),[T,E]=(0,v.useState)(!0),D=(0,v.useRef)(!1),O=(0,v.useRef)(null),k;t[0]===x?k=t[1]:(k=i(x),t[0]=x,t[1]=k);let A=k.onboarding.workDiscovery,j=w?x===`zh`?`在后台继续`:`Continue in background`:x===`zh`?`稍后再说`:`Maybe later`,M;t[2]===r?M=t[3]:(M=()=>{if(D.current)return;D.current=!0,E(!1);let e=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches?0:b;O.current=window.setTimeout(r,e)},t[2]=r,t[3]=M);let N=M,P,F;t[4]!==N||t[5]!==n?(P=()=>{n||N()},F=[N,n],t[4]=N,t[5]=n,t[6]=P,t[7]=F):(P=t[6],F=t[7]),(0,v.useEffect)(P,F);let I,L;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(I=()=>()=>{O.current!==null&&window.clearTimeout(O.current)},L=[],t[8]=I,t[9]=L):(I=t[8],L=t[9]),(0,v.useEffect)(I,L);let R;t[10]===N?R=t[11]:(R=e=>{e||N()},t[10]=N,t[11]=R);let z;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,y.jsx)(s,{className:`xopc-dialog-overlay fixed inset-0 z-[75] bg-scrim backdrop-blur-[1px]`}),t[12]=z):z=t[12];let B;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,y.jsx)(d,{className:`size-7 shrink-0`,"aria-hidden":!0}),t[13]=B):B=t[13];let V;t[14]===A.title?V=t[15]:(V=(0,y.jsx)(c,{className:`truncate text-sm font-semibold text-fg`,children:A.title}),t[14]=A.title,t[15]=V);let H;t[16]===A.subtitle?H=t[17]:(H=(0,y.jsx)(g,{className:`sr-only`,children:A.subtitle}),t[16]=A.subtitle,t[17]=H);let U;t[18]!==V||t[19]!==H?(U=(0,y.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2.5`,children:[B,V,H]}),t[18]=V,t[19]=H,t[20]=U):U=t[20];let W;t[21]===j?W=t[22]:(W=(0,y.jsx)(`span`,{className:`hidden text-xs sm:inline`,children:j}),t[21]=j,t[22]=W);let G;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,y.jsx)(u,{className:`size-4`,"aria-hidden":!0}),t[23]=G):G=t[23];let K;t[24]!==j||t[25]!==N||t[26]!==W?(K=(0,y.jsxs)(o,{type:`button`,variant:`ghost`,className:`h-9 shrink-0 gap-1.5 px-2.5 text-fg-muted`,title:j,"aria-label":j,onClick:N,children:[W,G]}),t[24]=j,t[25]=N,t[26]=W,t[27]=K):K=t[27];let q;t[28]!==U||t[29]!==K?(q=(0,y.jsxs)(`header`,{className:`flex h-14 shrink-0 items-center justify-between gap-4 border-b border-edge bg-surface-panel px-4 sm:px-5`,children:[U,K]}),t[28]=U,t[29]=K,t[30]=q):q=t[30];let J;t[31]===N?J=t[32]:(J=(0,y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:(0,y.jsx)(h,{embedded:!0,onRequestClose:N})}),t[31]=N,t[32]=J);let Y;t[33]!==q||t[34]!==J?(Y=(0,y.jsxs)(p,{children:[z,(0,y.jsx)(f,{className:`xopc-work-discovery-dialog pointer-events-none fixed inset-0 z-[76] flex items-center justify-center p-3 outline-none sm:p-6`,children:(0,y.jsxs)(`section`,{className:`xopc-work-discovery-panel pointer-events-auto flex h-[min(47.5rem,calc(100dvh-1.5rem))] w-[min(45rem,calc(100vw-1.5rem))] flex-col overflow-hidden rounded-xl border border-edge bg-surface-base shadow-float sm:h-[min(47.5rem,calc(100dvh-3rem))] sm:w-[min(45rem,calc(100vw-3rem))]`,children:[q,J]})})]}),t[33]=q,t[34]=J,t[35]=Y):Y=t[35];let X;return t[36]!==T||t[37]!==Y||t[38]!==R?(X=(0,y.jsx)(l,{open:T,onOpenChange:R,children:Y}),t[36]=T,t[37]=Y,t[38]=R,t[39]=X):X=t[39],X}function S(e){return e.status===`running`}function C(e){return e.language}export{x as WorkDiscoveryOverlay};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./vendor-react-BOUWij0V.js";import{t as n}from"./external-link-DjqjBmc3.js";import{i as r,n as i,o as a}from"./locale-store-B7s2Hb35.js";import{n as o,t as s}from"./cloud-credits-BMYMiiNn.js";import{i as c}from"./vendor-swr-BIWyz7Rc.js";import{t as l}from"./button-aIC072nz.js";import{t as u}from"./skeleton-BI5TyibZ.js";import{Il as d,il as f,yd as p}from"./index-Bys6njTY.js";var m=e(),h=t();function g(e){let t=(BigInt(e)+500n)/1000n*1000n;return o(String(t))}async function _(){let e=await a(r(`/api/models/xopc-cloud/account-summary`));return s.parse(e.payload)}function v(e){let t=(0,m.c)(148),{labels:r}=e,a=i(y)===`zh`?`zh-CN`:`en-US`,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o={refreshInterval:6e4,revalidateOnFocus:!0},t[0]=o):o=t[0];let{data:s,error:v,isLoading:b,isValidating:x,mutate:S}=c(`/api/models/xopc-cloud/account-summary`,_,o);if(b){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,h.jsx)(u,{className:`h-40 w-full rounded-xl`}),t[1]=e):e=t[1],e}if(v||!s){let e;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,h.jsx)(f,{className:`mt-0.5 size-4 shrink-0 text-amber-500`,"aria-hidden":!0}),t[2]=e):e=t[2];let n;t[3]===r.title?n=t[4]:(n=(0,h.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:r.title}),t[3]=r.title,t[4]=n);let i;t[5]===r.unavailable?i=t[6]:(i=(0,h.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:r.unavailable}),t[5]=r.unavailable,t[6]=i);let a;t[7]!==n||t[8]!==i?(a=(0,h.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[e,(0,h.jsxs)(`div`,{children:[n,i]})]}),t[7]=n,t[8]=i,t[9]=a):a=t[9];let o;t[10]===S?o=t[11]:(o=()=>void S(),t[10]=S,t[11]=o);let s=x?`size-4 animate-spin`:`size-4`,c;t[12]===s?c=t[13]:(c=(0,h.jsx)(d,{className:s,"aria-hidden":!0}),t[12]=s,t[13]=c);let u;t[14]!==x||t[15]!==r.retry||t[16]!==o||t[17]!==c?(u=(0,h.jsxs)(l,{type:`button`,variant:`secondary`,disabled:x,onClick:o,children:[c,r.retry]}),t[14]=x,t[15]=r.retry,t[16]=o,t[17]=c,t[18]=u):u=t[18];let p;return t[19]!==a||t[20]!==u?(p=(0,h.jsx)(`section`,{className:`rounded-xl bg-surface-hover/25 p-4`,children:(0,h.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[a,u]})}),t[19]=a,t[20]=u,t[21]=p):p=t[21],p}let C,w,T,E,D,O,k,A,j,M;if(t[22]!==s.balance.availableCreditMicro||t[23]!==s.balance.expiring[0]||t[24]!==s.balance.grantedCreditMicro||t[25]!==s.balance.purchasedCreditMicro||t[26]!==s.balance.refundReservedCreditMicro||t[27]!==s.balance.usageReservedCreditMicro||t[28]!==s.links.details||t[29]!==s.links.purchase||t[30]!==s.usage.chargedCreditMicro||t[31]!==s.usage.requests||t[32]!==s.usage.totalTokens||t[33]!==r.availableCredits||t[34]!==r.connected||t[35]!==r.details||t[36]!==r.expiring||t[37]!==r.granted||t[38]!==r.purchase||t[39]!==r.purchased||t[40]!==r.recentUsage||t[41]!==r.reserved||t[42]!==r.title||t[43]!==r.tokenUsage||t[44]!==r.usageSummary||t[45]!==r.zeroBalance||t[46]!==a){let e=new Intl.NumberFormat(a),i=r.usageSummary.replace(`{{credits}}`,g(s.usage.chargedCreditMicro)).replace(`{{requests}}`,e.format(s.usage.requests));C=`rounded-xl bg-surface-hover/40 p-4 sm:p-5`;let o;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,h.jsx)(p,{className:`size-4 text-accent-fg`,"aria-hidden":!0}),t[57]=o):o=t[57];let c;t[58]===r.title?c=t[59]:(c=(0,h.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:r.title}),t[58]=r.title,t[59]=c);let u;t[60]===r.connected?u=t[61]:(u=(0,h.jsx)(`span`,{className:`rounded-full bg-emerald-500/10 px-2 py-0.5 text-xs font-medium text-emerald-700 dark:text-emerald-300`,children:r.connected}),t[60]=r.connected,t[61]=u);let d;t[62]!==c||t[63]!==u?(d=(0,h.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[o,c,u]}),t[62]=c,t[63]=u,t[64]=d):d=t[64];let f;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,h.jsx)(n,{className:`size-3.5`,"aria-hidden":!0}),t[65]=f):f=t[65];let m;t[66]!==s.links.purchase||t[67]!==r.purchase?(m=(0,h.jsx)(l,{asChild:!0,variant:`primary`,children:(0,h.jsxs)(`a`,{href:s.links.purchase,target:`_blank`,rel:`noreferrer`,children:[r.purchase,f]})}),t[66]=s.links.purchase,t[67]=r.purchase,t[68]=m):m=t[68];let _;t[69]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,h.jsx)(n,{className:`size-3.5`,"aria-hidden":!0}),t[69]=_):_=t[69];let v;t[70]!==s.links.details||t[71]!==r.details?(v=(0,h.jsx)(l,{asChild:!0,variant:`secondary`,children:(0,h.jsxs)(`a`,{href:s.links.details,target:`_blank`,rel:`noreferrer`,children:[r.details,_]})}),t[70]=s.links.details,t[71]=r.details,t[72]=v):v=t[72];let y;t[73]!==m||t[74]!==v?(y=(0,h.jsxs)(`div`,{className:`flex shrink-0 flex-wrap gap-2`,children:[m,v]}),t[73]=m,t[74]=v,t[75]=y):y=t[75],t[76]!==d||t[77]!==y?(w=(0,h.jsxs)(`div`,{className:`flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between`,children:[d,y]}),t[76]=d,t[77]=y,t[78]=w):w=t[78],j=`mt-4 grid gap-4 rounded-lg bg-surface-base/45 p-3 sm:grid-cols-[minmax(12rem,0.7fr)_minmax(0,1.3fr)] sm:gap-6`;let b;t[79]===r.availableCredits?b=t[80]:(b=(0,h.jsx)(`p`,{className:`text-xs font-medium text-fg-subtle`,children:r.availableCredits}),t[79]=r.availableCredits,t[80]=b);let x;t[81]===s.balance.availableCreditMicro?x=t[82]:(x=g(s.balance.availableCreditMicro),t[81]=s.balance.availableCreditMicro,t[82]=x);let S;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,h.jsx)(`span`,{className:`ml-2 text-sm font-medium text-fg-muted`,children:`Credits`}),t[83]=S):S=t[83];let N;t[84]===x?N=t[85]:(N=(0,h.jsxs)(`p`,{className:`mt-1 text-2xl font-semibold tracking-tight text-fg`,children:[x,S]}),t[84]=x,t[85]=N);let P;t[86]!==s.balance.availableCreditMicro||t[87]!==r.zeroBalance?(P=s.balance.availableCreditMicro===`0`?(0,h.jsx)(`p`,{className:`mt-1 text-sm font-medium text-danger`,children:r.zeroBalance}):null,t[86]=s.balance.availableCreditMicro,t[87]=r.zeroBalance,t[88]=P):P=t[88];let F=r.purchased,I;t[89]===s.balance.purchasedCreditMicro?I=t[90]:(I=g(s.balance.purchasedCreditMicro),t[89]=s.balance.purchasedCreditMicro,t[90]=I);let L;t[91]!==r.purchased||t[92]!==I?(L=(0,h.jsxs)(`div`,{children:[F,`: `,I,` Credits`]}),t[91]=r.purchased,t[92]=I,t[93]=L):L=t[93];let R=r.granted,z;t[94]===s.balance.grantedCreditMicro?z=t[95]:(z=g(s.balance.grantedCreditMicro),t[94]=s.balance.grantedCreditMicro,t[95]=z);let B;t[96]!==r.granted||t[97]!==z?(B=(0,h.jsxs)(`div`,{children:[R,`: `,z,` Credits`]}),t[96]=r.granted,t[97]=z,t[98]=B):B=t[98];let V=r.reserved,H=String(BigInt(s.balance.usageReservedCreditMicro)+BigInt(s.balance.refundReservedCreditMicro)),U;t[99]===H?U=t[100]:(U=g(H),t[99]=H,t[100]=U);let W;t[101]!==r.reserved||t[102]!==U?(W=(0,h.jsxs)(`div`,{children:[V,`: `,U,` Credits`]}),t[101]=r.reserved,t[102]=U,t[103]=W):W=t[103];let G;t[104]!==L||t[105]!==B||t[106]!==W?(G=(0,h.jsxs)(`div`,{className:`mt-2 space-y-1 text-xs text-fg-muted`,children:[L,B,W]}),t[104]=L,t[105]=B,t[106]=W,t[107]=G):G=t[107];let K;t[108]!==s.balance.expiring[0]||t[109]!==r.expiring||t[110]!==a?(K=s.balance.expiring[0]?(0,h.jsx)(`p`,{className:`mt-2 text-xs text-amber-600 dark:text-amber-400`,children:r.expiring.replace(`{{credits}}`,g(s.balance.expiring[0].creditMicro)).replace(`{{date}}`,new Date(s.balance.expiring[0].expiresAt).toLocaleDateString(a))}):null,t[108]=s.balance.expiring[0],t[109]=r.expiring,t[110]=a,t[111]=K):K=t[111],t[112]!==b||t[113]!==N||t[114]!==P||t[115]!==G||t[116]!==K?(M=(0,h.jsxs)(`div`,{children:[b,N,P,G,K]}),t[112]=b,t[113]=N,t[114]=P,t[115]=G,t[116]=K,t[117]=M):M=t[117],t[118]===r.recentUsage?k=t[119]:(k=(0,h.jsx)(`p`,{className:`text-xs font-medium text-fg-subtle`,children:r.recentUsage}),t[118]=r.recentUsage,t[119]=k),A=(0,h.jsx)(`p`,{className:`mt-1 text-sm leading-relaxed text-fg-muted`,children:i}),D=`mt-2 text-xs text-fg-subtle`,t[120]===r.tokenUsage?O=t[121]:(O=(0,h.jsx)(`summary`,{className:`cursor-pointer`,children:r.tokenUsage}),t[120]=r.tokenUsage,t[121]=O),T=`mt-1`,E=e.format(s.usage.totalTokens),t[22]=s.balance.availableCreditMicro,t[23]=s.balance.expiring[0],t[24]=s.balance.grantedCreditMicro,t[25]=s.balance.purchasedCreditMicro,t[26]=s.balance.refundReservedCreditMicro,t[27]=s.balance.usageReservedCreditMicro,t[28]=s.links.details,t[29]=s.links.purchase,t[30]=s.usage.chargedCreditMicro,t[31]=s.usage.requests,t[32]=s.usage.totalTokens,t[33]=r.availableCredits,t[34]=r.connected,t[35]=r.details,t[36]=r.expiring,t[37]=r.granted,t[38]=r.purchase,t[39]=r.purchased,t[40]=r.recentUsage,t[41]=r.reserved,t[42]=r.title,t[43]=r.tokenUsage,t[44]=r.usageSummary,t[45]=r.zeroBalance,t[46]=a,t[47]=C,t[48]=w,t[49]=T,t[50]=E,t[51]=D,t[52]=O,t[53]=k,t[54]=A,t[55]=j,t[56]=M}else C=t[47],w=t[48],T=t[49],E=t[50],D=t[51],O=t[52],k=t[53],A=t[54],j=t[55],M=t[56];let N;t[122]!==T||t[123]!==E?(N=(0,h.jsxs)(`p`,{className:T,children:[E,` tokens`]}),t[122]=T,t[123]=E,t[124]=N):N=t[124];let P;t[125]!==N||t[126]!==D||t[127]!==O?(P=(0,h.jsxs)(`details`,{className:D,children:[O,N]}),t[125]=N,t[126]=D,t[127]=O,t[128]=P):P=t[128];let F;t[129]!==s.balance.updatedAt||t[130]!==r.updatedAt||t[131]!==a?(F=r.updatedAt.replace(`{{time}}`,new Date(s.balance.updatedAt).toLocaleString(a)),t[129]=s.balance.updatedAt,t[130]=r.updatedAt,t[131]=a,t[132]=F):F=t[132];let I;t[133]===F?I=t[134]:(I=(0,h.jsx)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:F}),t[133]=F,t[134]=I);let L;t[135]!==P||t[136]!==I||t[137]!==k||t[138]!==A?(L=(0,h.jsxs)(`div`,{children:[k,A,P,I]}),t[135]=P,t[136]=I,t[137]=k,t[138]=A,t[139]=L):L=t[139];let R;t[140]!==L||t[141]!==j||t[142]!==M?(R=(0,h.jsxs)(`div`,{className:j,children:[M,L]}),t[140]=L,t[141]=j,t[142]=M,t[143]=R):R=t[143];let z;return t[144]!==C||t[145]!==w||t[146]!==R?(z=(0,h.jsxs)(`section`,{className:C,children:[w,R]}),t[144]=C,t[145]=w,t[146]=R,t[147]=z):z=t[147],z}function y(e){return e.language}export{v as t};
|