@xopcai/xopc 0.0.385 → 0.0.387
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/dist/browser-ext/dist/sidepanel.js +1 -1
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Cb9eaXxR.js → agent-avatar-dicebear-Bv8M5ygD.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-defaults-settings-panel-DEV-xtgm.js → agent-defaults-settings-panel-UBy01-65.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-plugin-dialog-DXKc3Luj.js → agent-plugin-dialog-Q9guA8kU.js} +1 -1
- package/dist/gateway/static/root/assets/{agents-DcNxwpJQ.js → agents-yfJFubD0.js} +3 -3
- package/dist/gateway/static/root/assets/{app-management-settings-panel-X5i0Tz7_.js → app-management-settings-panel-Cdyad8c1.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-CmHHzquT.js → appearance-settings-DPPvnKH_.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-ChFA4Zp0.js → apps-page-Bn_jwaeA.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-BFqsIqOI.js → automations-page-CAB2sLJ5.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-workspace-Blfak-fT.js → automations-workspace-CYRUhhH4.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-CpOLG3Co.js → block-editor-B9DmMEa8.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-BSbTJ9j2.js → browser-automations-page-BHAWpZE2.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-settings-page-BUlILJrB.js → browser-settings-page-BG_17NcQ.js} +2 -2
- package/dist/gateway/static/root/assets/{capabilities-2Do3eKMM.js → capabilities-BX1rCiVm.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-XFwwUNU3.js → capabilities-CW389yo6.js} +1 -1
- package/dist/gateway/static/root/assets/{capabilities-page-CeRdkwRf.js → capabilities-page-BAnBYWlY.js} +2 -2
- package/dist/gateway/static/root/assets/{capabilities-settings-panel-S-cKsGja.js → capabilities-settings-panel-Ca-d6lXk.js} +3 -3
- package/dist/gateway/static/root/assets/{capability-header-actions-6w8pQhnn.js → capability-header-actions-B3TL8TcF.js} +1 -1
- package/dist/gateway/static/root/assets/{channels-DfNTGBmp.js → channels-BadpS-nq.js} +1 -1
- package/dist/gateway/static/root/assets/{chat-terminal-dock-DnoQHpDc.js → chat-terminal-dock-C_vntFpP.js} +1 -1
- package/dist/gateway/static/root/assets/{chunk-KS7C4IRE-BMYIfy9x.js → chunk-KS7C4IRE--EKdQGRF.js} +1 -1
- package/dist/gateway/static/root/assets/{computer-settings-page-7yliE7sG.js → computer-settings-page-B-5kxk70.js} +1 -1
- package/dist/gateway/static/root/assets/{connector-service-page-DOLAUFSW.js → connector-service-page-DTnfpLHL.js} +1 -1
- package/dist/gateway/static/root/assets/{connectors-page-DAsn97XG.js → connectors-page-CmJV7gqj.js} +1 -1
- package/dist/gateway/static/root/assets/constants-DeXt1mV-.js +1 -0
- package/dist/gateway/static/root/assets/{date-picker-DNDqr4Fk.js → date-picker-D5zYeC8q.js} +1 -1
- package/dist/gateway/static/root/assets/{dependency-picker-B5oG7RgE.js → dependency-picker-D72vT-tb.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-K7kUCX1O.js → desktop-pet-DvoeVPf_.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-KgOAuqSh.js → desktop-pet-settings-Dfb392hs.js} +1 -1
- package/dist/gateway/static/root/assets/{device-pairing-wizard-DvqniZDm.js → device-pairing-wizard-B06Sqn5D.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-BmOguLDl.js → directory-picker-path-field-CA3H3bc-.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-DtHNy4TE.js → extension-debug-page-B0wTBCx4.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-DSSuMQxp.js → extension-page-BeHiXhB1.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-nbgU7xBS.js → extension-provider-CJZ5EVpQ.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-DSd__mNd.js → extension-settings-page-Q88-LFCJ.js} +1 -1
- package/dist/gateway/static/root/assets/{fallback-models-D7bjbiwZ.js → fallback-models-BXoPCvzq.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-hSXGWumL.js → gateway-settings-IICLMGDI.js} +1 -1
- package/dist/gateway/static/root/assets/{highlighted-body-KQOG7T2V-C7xJwE61.js → highlighted-body-KQOG7T2V-D336so8z.js} +1 -1
- package/dist/gateway/static/root/assets/home-page--MvqsFhQ.js +2 -0
- package/dist/gateway/static/root/assets/{imports-page-BufZPzGE.js → imports-page-muV1SduS.js} +1 -1
- package/dist/gateway/static/root/assets/index-D0qMv3jf.js +260 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-B8pPP5RF.js → keyboard-shortcuts-settings-i1sDWcwl.js} +1 -1
- package/dist/gateway/static/root/assets/{local-app-workbench-page-zEtvE7pJ.js → local-app-workbench-page-DY9tXEO6.js} +1 -1
- package/dist/gateway/static/root/assets/{local-apps-page-Bli7e_eg.js → local-apps-page-BHD73STy.js} +1 -1
- package/dist/gateway/static/root/assets/local-session-drafts-Be4BGM4Z.js +1 -0
- package/dist/gateway/static/root/assets/{logs-page-BimZk3R4.js → logs-page-DsPpe8Ws.js} +1 -1
- package/dist/gateway/static/root/assets/{management-settings-5Y4COyU9.js → management-settings-Buwi2wQE.js} +1 -1
- package/dist/gateway/static/root/assets/{markdown-view-DHfQAvZQ.js → markdown-view-CBjl-XEc.js} +2 -2
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-D2mip-f9.js +1 -0
- package/dist/gateway/static/root/assets/{note-detail-panel-KLDPLVg7.js → note-detail-panel-D8n80Gbr.js} +3 -3
- package/dist/gateway/static/root/assets/{notes-api-nqN2wKYc.js → notes-api-BlGP533W.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-DST0oPXD.js → notes-page-Btf-jSS_.js} +5 -5
- package/dist/gateway/static/root/assets/{page-context-capture-button-Bmed83-6.js → page-context-capture-button-97RL8Gc7.js} +1 -1
- package/dist/gateway/static/root/assets/{personal-page-BG4Ystrm.js → personal-page-B04L8Oz5.js} +1 -1
- package/dist/gateway/static/root/assets/product-open-page-9zEDvZa7.js +1 -0
- package/dist/gateway/static/root/assets/{product-preview-content-DjmupQSq.js → product-preview-content-DynBrIXq.js} +1 -1
- package/dist/gateway/static/root/assets/{project-detail-page-CzBmV0P6.js → project-detail-page-BM7MsoVA.js} +1 -1
- package/dist/gateway/static/root/assets/{projects-page-DByqe5Em.js → projects-page-pcyeEJnz.js} +1 -1
- package/dist/gateway/static/root/assets/{remote-access-hub-DTjj-odF.js → remote-access-hub-CphyTu22.js} +1 -1
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-B_ptn3T8.js → runtime-tools-settings-panel-DPafoO0G.js} +1 -1
- package/dist/gateway/static/root/assets/{scenes-page-wkua4l5y.js → scenes-page-j97FrDRW.js} +2 -2
- package/dist/gateway/static/root/assets/{schema-form-VvOSM84Y.js → schema-form-CuJNwKHO.js} +1 -1
- package/dist/gateway/static/root/assets/{send-session-input-BCAF-Ikt.js → send-session-input-C293-Hbx.js} +1 -1
- package/dist/gateway/static/root/assets/session-manager-COd9RECl.js +16 -0
- package/dist/gateway/static/root/assets/{sessions-page-D06XwYAT.js → sessions-page-D8t_8fMl.js} +1 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-CDkitNHA.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-C-6BJdb1.js → settings-page-DS9DMYUe.js} +1 -1
- package/dist/gateway/static/root/assets/{setup-status-panel-L0JSG0K-.js → setup-status-panel-DRDvm9yZ.js} +1 -1
- package/dist/gateway/static/root/assets/{share-link-dialog-C47Xgzta.js → share-link-dialog-BKGI8Kr0.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-nJ2FWAEP.js → share-preview-page-BF2WaO43.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-BbgAUM3v.js → shares-settings-DQTQZu6V.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-api-BFU1tPyw.js → skill-api-DzVa7G-O.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-DZw6el4o.js → skills-page-CfJIjRdS.js} +1 -1
- package/dist/gateway/static/root/assets/{system-settings-panel-DshSGWNg.js → system-settings-panel-Bzhqed-a.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-BYQFC0-U.js +2 -0
- package/dist/gateway/static/root/assets/task-expandable-content-C9ohICpw.js +1 -0
- package/dist/gateway/static/root/assets/{tasks-DJIeIk9C.js → tasks-PuIUgF9L.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-DFDXwWnU.js → tunnel-api-DrgpZ81I.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-2RJLg54s.js → usage-page-Drk8FWnj.js} +1 -1
- package/dist/gateway/static/root/assets/{use-composer-attachments-BFP3k6oC.js → use-composer-attachments-rgW7h4sD.js} +1 -1
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-B1BiTQNS.js → use-file-preview-expanded-DSKIxfz9.js} +1 -1
- package/dist/gateway/static/root/assets/{user-model-page-y1gjGYPI.js → user-model-page-07t2-nFE.js} +2 -2
- package/dist/gateway/static/root/assets/{work-discovery-overlay-Ch-KfpCF.js → work-discovery-overlay-TQ5bjVot.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-CTu297Hc.js → workflow-run-setup-panel-C9HP2uGG.js} +1 -1
- package/dist/gateway/static/root/assets/{workflows-page-CRZXG_rm.js → workflows-page-DK01JRI1.js} +3 -3
- package/dist/gateway/static/root/assets/{workspace-api-Xr3wz8T3.js → workspace-api-JWHOFos6.js} +2 -2
- package/dist/gateway/static/root/assets/{xopc-cloud-account-card-hEfjVjnc.js → xopc-cloud-account-card-B-BhQdAf.js} +1 -1
- package/dist/gateway/static/root/index.html +16 -16
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/index.js +4 -0
- package/dist/packages/gateway-contract/src/result-reference.js +25 -0
- package/dist/packages/gateway-contract/src/session-input-command.js +2 -1
- package/dist/packages/gateway-contract/src/task-research-result.js +90 -0
- package/dist/packages/gateway-contract/src/task-result-delivery.js +21 -0
- package/dist/packages/gateway-contract/src/tasks.js +7 -1
- package/dist/packages/gateway-contract/src/turn-outcome.js +4 -0
- package/dist/src/agent/agent-manager.js +3 -3
- package/dist/src/agent/background-review/run-background-review.js +1 -1
- package/dist/src/agent/child-agent-factory.d.ts +4 -1
- package/dist/src/agent/child-agent-factory.js +86 -12
- package/dist/src/agent/context/connection-objective-context.d.ts +1 -0
- package/dist/src/agent/context/connection-objective-context.js +33 -0
- package/dist/src/agent/data-acquisition/service.js +41 -6
- package/dist/src/agent/data-acquisition/types.d.ts +2 -0
- package/dist/src/agent/embedded/agent-profile-context.d.ts +7 -0
- package/dist/src/agent/embedded/agent-profile-context.js +92 -0
- package/dist/src/agent/embedded/run-for-session.js +5 -2
- package/dist/src/agent/embedded/run-turn.js +19 -6
- package/dist/src/agent/embedded/runs.d.ts +9 -2
- package/dist/src/agent/embedded/runs.js +30 -7
- package/dist/src/agent/embedded/session-runner.js +5 -2
- package/dist/src/agent/embedded/types.d.ts +4 -0
- package/dist/src/agent/embedded/xopc-tools-bridge.js +13 -2
- package/dist/src/agent/external-tools/cliProvider.js +1 -1
- package/dist/src/agent/external-tools/composio-provider.js +2 -2
- package/dist/src/agent/external-tools/endpoint-provider.js +2 -2
- package/dist/src/agent/external-tools/gateway-tools.js +8 -4
- package/dist/src/agent/inbound/attachment-pipeline.js +1 -1
- package/dist/src/agent/orchestration/agent-run-supervisor.js +2 -1
- package/dist/src/agent/orchestration/agent-turn-policy.js +5 -1
- package/dist/src/agent/orchestration/delegation-budget.d.ts +7 -1
- package/dist/src/agent/orchestration/delegation-budget.js +17 -9
- package/dist/src/agent/orchestration/research-checkpoint.d.ts +56 -0
- package/dist/src/agent/orchestration/research-checkpoint.js +64 -0
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +3 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +15 -2
- package/dist/src/agent/orchestration/run-termination.d.ts +12 -0
- package/dist/src/agent/orchestration/run-termination.js +24 -0
- package/dist/src/agent/orchestration/turn-recovery.d.ts +4 -1
- package/dist/src/agent/orchestration/turn-recovery.js +19 -3
- package/dist/src/agent/prompt/sections/agent-identity.js +12 -7
- package/dist/src/agent/prompt/sections/messaging-runtime.js +1 -1
- package/dist/src/agent/prompt/sections/project-context.js +1 -1
- package/dist/src/agent/prompt/sections/response-language.d.ts +1 -1
- package/dist/src/agent/prompt/sections/response-language.js +6 -2
- package/dist/src/agent/prompt/subagent-context.js +1 -1
- package/dist/src/agent/prompt/system-prompt.js +4 -6
- package/dist/src/agent/service/direct-turn-helpers.d.ts +2 -0
- package/dist/src/agent/service/direct-turn-helpers.js +4 -0
- package/dist/src/agent/service/process-direct-one-shot.js +4 -1
- package/dist/src/agent/service/process-direct-streaming.js +3 -2
- package/dist/src/agent/service.js +2 -2
- 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/source-context/index.js +1 -1
- package/dist/src/agent/source-context/result-context.d.ts +2 -0
- package/dist/src/agent/source-context/result-context.js +32 -0
- package/dist/src/agent/source-context/types.d.ts +2 -2
- package/dist/src/agent/source-context/types.js +1 -1
- package/dist/src/agent/tasks/task-judge-service.js +3 -1
- package/dist/src/agent/tools/apply-patch.js +1 -1
- package/dist/src/agent/tools/delegate-tool.js +216 -121
- package/dist/src/agent/tools/delegation-policy.js +13 -1
- package/dist/src/agent/tools/exec-command.js +47 -2
- package/dist/src/agent/tools/factory.js +19 -10
- package/dist/src/agent/tools/index.d.ts +1 -0
- package/dist/src/agent/tools/index.js +2 -1
- package/dist/src/agent/tools/language-diagnostics.js +1 -1
- package/dist/src/agent/tools/personal-performance.d.ts +2 -0
- package/dist/src/agent/tools/personal-performance.js +82 -0
- package/dist/src/agent/tools/personal-read-tool.js +1 -1
- package/dist/src/agent/tools/personal-request-tool.js +9 -14
- package/dist/src/agent/tools/personal-result-tool.d.ts +2 -0
- package/dist/src/agent/tools/personal-result-tool.js +106 -0
- package/dist/src/agent/tools/personal-task-tool.d.ts +12 -3
- package/dist/src/agent/tools/personal-task-tool.js +115 -10
- package/dist/src/agent/tools/publish-artifacts.js +1 -1
- package/dist/src/agent/tools/research-checkpoint-tool.d.ts +3 -0
- package/dist/src/agent/tools/research-checkpoint-tool.js +28 -0
- package/dist/src/agent/tools/review-workspace.js +21 -2
- package/dist/src/agent/tools/search/cache.d.ts +20 -0
- package/dist/src/agent/tools/search/cache.js +19 -0
- package/dist/src/agent/tools/search/errors.d.ts +19 -0
- package/dist/src/agent/tools/search/errors.js +69 -0
- package/dist/src/agent/tools/search/providers/bing-api.js +2 -1
- package/dist/src/agent/tools/search/providers/bing-html.js +2 -1
- package/dist/src/agent/tools/search/providers/brave.js +2 -1
- package/dist/src/agent/tools/search/providers/duckduckgo-html.js +2 -1
- package/dist/src/agent/tools/search/providers/searxng.js +2 -1
- package/dist/src/agent/tools/search/providers/tavily.js +2 -1
- package/dist/src/agent/tools/search/providers/xopc-cloud.d.ts +1 -0
- package/dist/src/agent/tools/search/providers/xopc-cloud.js +7 -2
- package/dist/src/agent/tools/search/registry.d.ts +21 -5
- package/dist/src/agent/tools/search/registry.js +252 -25
- package/dist/src/agent/tools/search/types.d.ts +25 -0
- package/dist/src/agent/tools/send-media.js +1 -1
- package/dist/src/agent/tools/task-collaboration-tool.d.ts +9 -1
- package/dist/src/agent/tools/task-collaboration-tool.js +121 -2
- package/dist/src/agent/tools/task-evidence.d.ts +3 -0
- package/dist/src/agent/tools/task-evidence.js +71 -0
- package/dist/src/agent/tools/task-result-tool.d.ts +2 -0
- package/dist/src/agent/tools/task-result-tool.js +93 -0
- package/dist/src/agent/tools/tool-media.js +1 -1
- package/dist/src/agent/tools/web.d.ts +16 -2
- package/dist/src/agent/tools/web.js +74 -29
- package/dist/src/agent/tools/xopc-use-tool.js +27 -6
- package/dist/src/agent/workspace-runtime/registry.js +1 -1
- package/dist/src/agent-catalog/capabilities.js +2 -2
- package/dist/src/automations/capabilities/drafts.js +1 -1
- package/dist/src/automations/capabilities/write.d.ts +4 -4
- package/dist/src/automations/domain/validation.d.ts +8 -8
- package/dist/src/automations/draft/automation-draft-validator.d.ts +2 -2
- package/dist/src/automations/service/action-executor.js +1 -1
- package/dist/src/bootstrap/application-state.js +1 -1
- package/dist/src/browser/automations/schema.d.ts +2 -2
- package/dist/src/browser/automations/service.d.ts +2 -2
- package/dist/src/capabilities/runtime/dispatcher.js +1 -1
- package/dist/src/capabilities/runtime/product.js +1 -1
- package/dist/src/chat-commands/agent-edit.js +1 -1
- package/dist/src/cli/commands/agent.js +1 -1
- package/dist/src/cli/commands/agents.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard/model.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +1 -1
- package/dist/src/config/agent-profile.js +2 -2
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/loader.js +1 -1
- package/dist/src/config/models-json.js +1 -1
- package/dist/src/config/schema.d.ts +1 -0
- package/dist/src/config/schema.js +5 -2
- package/dist/src/connectors/connection-recovery-service.d.ts +3 -1
- package/dist/src/connectors/connection-recovery-service.js +67 -6
- package/dist/src/discussions/action-tasks.d.ts +2 -2
- package/dist/src/extensions/agent-plugins/validation.js +1 -1
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agents-admin.js +2 -2
- package/dist/src/gateway/hono/lib/config-payload.js +1 -1
- package/dist/src/gateway/hono/routes/agent-stream.js +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +2 -2
- package/dist/src/gateway/hono/routes/connectors.js +1 -1
- package/dist/src/gateway/hono/routes/context-sources.js +1 -1
- package/dist/src/gateway/hono/routes/notes.js +2 -2
- package/dist/src/gateway/hono/routes/projects.js +3 -3
- package/dist/src/gateway/hono/routes/session-input-handler.d.ts +18 -2
- package/dist/src/gateway/hono/routes/session-input-handler.js +2 -2
- package/dist/src/gateway/hono/routes/tasks.js +2 -2
- package/dist/src/gateway/image-generation-setup.js +1 -1
- package/dist/src/gateway/lock.js +1 -1
- package/dist/src/gateway/media-access.js +1 -1
- package/dist/src/gateway/service/agent-runner.d.ts +2 -0
- package/dist/src/gateway/service/agent-runner.js +30 -17
- package/dist/src/gateway/service/run-gateway-agent.js +32 -2
- package/dist/src/gateway/service/session-input-coordinator.d.ts +10 -1
- package/dist/src/gateway/service/session-input-coordinator.js +214 -27
- package/dist/src/gateway/service.d.ts +1 -0
- package/dist/src/gateway/service.js +49 -16
- package/dist/src/gateway/session-context-summary.js +1 -1
- package/dist/src/gateway/xopc-cloud-capability-setup.js +1 -1
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/local-apps/service.js +1 -1
- package/dist/src/media/session-references.js +1 -1
- package/dist/src/personal-agent/communication.js +1 -0
- package/dist/src/personal-agent/performance.d.ts +83 -0
- package/dist/src/personal-agent/performance.js +65 -0
- package/dist/src/personal-agent/policy.d.ts +1 -1
- package/dist/src/personal-agent/policy.js +1 -0
- package/dist/src/personal-agent/proactivity/service.js +1 -1
- package/dist/src/personal-agent/prompt-context.js +3 -1
- package/dist/src/personal-agent/prompts.js +10 -4
- package/dist/src/personal-agent/reply-composer.d.ts +1 -0
- package/dist/src/personal-agent/reply-composer.js +149 -20
- package/dist/src/personal-agent/reply-style.d.ts +1 -1
- package/dist/src/personal-agent/reply-style.js +1 -0
- package/dist/src/personal-agent/repository.d.ts +1 -1
- package/dist/src/personal-agent/repository.js +1 -1
- package/dist/src/personal-agent/request-delivery.js +3 -1
- package/dist/src/personal-agent/request-repository.d.ts +2 -0
- package/dist/src/personal-agent/request-service.d.ts +4 -0
- package/dist/src/personal-agent/request-service.js +91 -20
- package/dist/src/personal-agent/result-extraction.d.ts +42 -0
- package/dist/src/personal-agent/result-extraction.js +209 -0
- package/dist/src/personal-agent/result-file-links.d.ts +3 -0
- package/dist/src/personal-agent/result-file-links.js +21 -0
- package/dist/src/personal-agent/result-read-continuations.d.ts +13 -0
- package/dist/src/personal-agent/result-read-continuations.js +78 -0
- package/dist/src/personal-agent/result-reader.d.ts +43 -0
- package/dist/src/personal-agent/result-reader.js +461 -0
- package/dist/src/personal-agent/service.js +2 -2
- package/dist/src/personal-agent/task-cancel.js +85 -35
- package/dist/src/providers/model-catalog-persistence.js +1 -1
- package/dist/src/routing/resolve-route.js +1 -1
- package/dist/src/routing/resolve-tui-session-key.js +1 -1
- package/dist/src/scenes/taskFollowUp/service.d.ts +15 -5
- package/dist/src/session/client-history.d.ts +1 -1
- package/dist/src/session/client-history.js +1 -1
- package/dist/src/session/session-context-for-llm.js +4 -2
- package/dist/src/session/store.d.ts +3 -1
- package/dist/src/session/store.js +13 -3
- package/dist/src/share/hosted-session-share.js +1 -1
- package/dist/src/storage/sqlite/connection-wait-repository.d.ts +5 -2
- package/dist/src/storage/sqlite/connection-wait-repository.js +42 -17
- package/dist/src/storage/sqlite/index.d.ts +1 -0
- package/dist/src/storage/sqlite/index.js +3 -1
- package/dist/src/storage/sqlite/migrations/250_research_checkpoints.sql +15 -0
- package/dist/src/storage/sqlite/migrations/251_personal_result_reads.sql +40 -0
- package/dist/src/storage/sqlite/migrations/252_task_work_revisions.sql +15 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/research-checkpoint-repository.d.ts +24 -0
- package/dist/src/storage/sqlite/research-checkpoint-repository.js +91 -0
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/session-creation-repository.js +3 -2
- package/dist/src/storage/sqlite/session-input-repository.d.ts +16 -0
- package/dist/src/storage/sqlite/session-input-repository.js +41 -7
- package/dist/src/tasks/capabilities/management.d.ts +2 -2
- package/dist/src/tasks/capabilities/read.js +2 -2
- package/dist/src/tasks/capabilities/relations.d.ts +7 -7
- package/dist/src/tasks/capabilities/write.d.ts +2 -2
- package/dist/src/tasks/capabilities/write.js +1 -1
- package/dist/src/tasks/index.js +1 -1
- package/dist/src/tasks/task-allocation-service.d.ts +2 -0
- package/dist/src/tasks/task-allocation-service.js +100 -8
- package/dist/src/tasks/task-application-service.d.ts +18 -0
- package/dist/src/tasks/task-application-service.js +133 -2
- package/dist/src/tasks/task-context-assembler.js +13 -5
- package/dist/src/tasks/task-continuation.d.ts +1 -0
- package/dist/src/tasks/task-continuation.js +1 -0
- package/dist/src/tasks/task-contract-definition.d.ts +3 -0
- package/dist/src/tasks/task-contract-planner.d.ts +1 -0
- package/dist/src/tasks/task-contract-planner.js +61 -20
- package/dist/src/tasks/task-conversation-repository.js +1 -1
- package/dist/src/tasks/task-evidence-ranges.d.ts +7 -0
- package/dist/src/tasks/task-evidence-ranges.js +20 -0
- package/dist/src/tasks/task-execution-capabilities.d.ts +26 -0
- package/dist/src/tasks/task-execution-capabilities.js +117 -0
- package/dist/src/tasks/task-handoff-service.js +1 -1
- package/dist/src/tasks/task-handoff.d.ts +56 -0
- package/dist/src/tasks/task-handoff.js +510 -0
- package/dist/src/tasks/task-model-call.d.ts +7 -0
- package/dist/src/tasks/task-model-call.js +35 -0
- package/dist/src/tasks/task-read-model-projector.d.ts +6 -0
- package/dist/src/tasks/task-read-model-projector.js +12 -1
- package/dist/src/tasks/task-research-repair.d.ts +19 -0
- package/dist/src/tasks/task-research-repair.js +79 -0
- package/dist/src/tasks/task-research-result.d.ts +99 -0
- package/dist/src/tasks/task-research-result.js +478 -0
- package/dist/src/tasks/task-result-delivery-repository.js +37 -3
- package/dist/src/tasks/task-result-delivery-service.js +38 -10
- package/dist/src/tasks/task-run-coordinator.js +71 -15
- package/dist/src/tasks/task-run-dispatcher.d.ts +1 -0
- package/dist/src/tasks/task-run-dispatcher.js +3 -1
- package/dist/src/tasks/task-run-repository.d.ts +5 -0
- package/dist/src/tasks/task-run-repository.js +88 -1
- package/dist/src/tui/backends/embedded-backend.js +2 -2
- package/dist/src/voice/realtime/persona-context.js +1 -1
- package/package.json +12 -6
- package/dist/gateway/static/root/assets/constants-Dy8Gw0sF.js +0 -1
- package/dist/gateway/static/root/assets/home-page-DJNmlMfH.js +0 -2
- package/dist/gateway/static/root/assets/index-K8SXDtxr.js +0 -260
- package/dist/gateway/static/root/assets/local-session-drafts-D_tYFy7d.js +0 -1
- package/dist/gateway/static/root/assets/mermaid-MCJ5UELQ-DBRj4-1-.js +0 -1
- package/dist/gateway/static/root/assets/product-open-page-CXkYP9xE.js +0 -1
- package/dist/gateway/static/root/assets/session-manager-_yy4bxhT.js +0 -16
- package/dist/gateway/static/root/assets/settings-advanced-gate-DoAHy1wj.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-CfZhq4XZ.js +0 -2
- package/dist/gateway/static/root/assets/task-expandable-content-CF6Bj-Qa.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{g as i}from"./chunk-KS7C4IRE-BMYIfy9x.js";import{t as a}from"./activity-YogQEteU.js";import{t as o}from"./chevron-left-DqFhpbvK.js";import{t as s}from"./chevron-right-BweFrslA.js";import{t as c}from"./popover-select-DHC7J4lG.js";import{t as l}from"./plus-Q2yW6OE7.js";import{t as u}from"./search-DA7gz22f.js";import{t as d}from"./x-B_N4OPjy.js";import{t as ee}from"./messages-DTqbfje6.js";import{t as f}from"./cn-0WouolD0.js";import{i as p,n as m,r as h}from"./locale-store-uRu_DsWm.js";import{a as g,n as _,o as v,r as y,s as b,t as x}from"./dist-BGTk37IG.js";import{s as S}from"./session-api-CzVTrG8n.js";import{i as C}from"./vendor-swr-BIWyz7Rc.js";import{t as w}from"./button-aIC072nz.js";import{t as T}from"./skeleton-BI5TyibZ.js";import{i as te,o as ne}from"./settings-shell-dialog-layer-BU3UuiJr.js";import{n as E}from"./index.module-Cd9ENXfk.js";import{Ro as D,Vo as re,li as O,ui as ie,ys as k,zs as A}from"./index-K8SXDtxr.js";import{t as j}from"./page-tabs-HLrKIjXH.js";import{n as M,r as N,t as P}from"./settings-page-layout-Dx5S-Msc.js";import{t as F}from"./device-pairing-wizard-DvqniZDm.js";import{n as I}from"./settings-loading-skeleton-BTqvr_Fw.js";var L=n(),R=e(t(),1),z=r();async function B(e=`GET`,t,n){let r=await p(h(`/api/endpoint-tools/target-authorizations`+(n?`/`+encodeURIComponent(n):``)),{method:e,...t?{body:JSON.stringify(t)}:{}});if(!r.ok)throw Error(r.status===403?`owner`:`unavailable`);return(await r.json()).payload}function ae({devices:e,zh:t}){let n=C(`device-single-call-grants`,()=>B(),{refreshInterval:5e3,shouldRetryOnError:!1}),r=C(n.error?null:`device-grant-conversations`,()=>S({limit:100}),{shouldRetryOnError:!1}),[i,a]=(0,R.useState)(``),[o,s]=(0,R.useState)(``),[l,u]=(0,R.useState)(``),[d,ee]=(0,R.useState)(`weather`),[f,p]=(0,R.useState)(`approximate`),[m,h]=(0,R.useState)(`restaurant`),[g,_]=(0,R.useState)(!1),[v,y]=(0,R.useState)(!1);if(n.error)return null;let b=e.flatMap(e=>e.endpoints.map(t=>({...t,label:e.displayName+` · `+e.platform+` · `+e.id.slice(-8)}))),x=b.find(e=>e.endpointId===l)?.tools.find(e=>e.descriptor.name.endsWith(`.device.get_location`))?.descriptor.name,te=async()=>{if(!(!x||!i||!o)){_(!0),y(!1);try{await B(`POST`,{conversationId:i,requestorPrincipalId:o,targetEndpointId:l,toolName:x,arguments:{purpose:d,precision:f,...d===`nearby`?{category:m}:{}}}),await n.mutate()}catch{y(!0)}finally{_(!1)}}};return(0,z.jsxs)(`section`,{className:`mb-5 rounded-xl border border-edge bg-surface-base p-4`,children:[(0,z.jsx)(`h3`,{className:`font-semibold text-fg`,children:t?`跨设备单次授权`:`Single-call device authorization`}),(0,z.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:t?`为指定会话和来源设备授权一次定位查询,60 秒后失效。目标设备仍需确认;授权后请在来源设备继续请求。`:`Authorize one location query for a conversation and source device. Expires in 60 seconds; target-device consent is still required. Continue the request from the source device.`}),n.isLoading||r.isLoading?(0,z.jsx)(T,{className:`mt-3 h-28`}):(0,z.jsxs)(`div`,{className:`mt-3 grid gap-3 sm:grid-cols-2`,children:[(0,z.jsx)(c,{value:i,onChange:a,placeholder:t?`选择会话`:`Conversation`,ariaLabel:t?`会话`:`Conversation`,options:(r.data?.items??[]).map(e=>({value:e.key,label:e.name||e.key}))}),(0,z.jsx)(c,{value:o,onChange:s,placeholder:t?`消息来源设备`:`Source device`,ariaLabel:t?`消息来源设备`:`Source device`,options:e.filter(e=>e.endpoints.length>0).map(e=>({value:e.id,label:e.displayName+` · `+e.platform+` · `+e.id.slice(-8)}))}),(0,z.jsx)(c,{value:l,onChange:u,placeholder:t?`使用哪台设备的位置`:`Location device`,ariaLabel:t?`目标设备`:`Target device`,options:b.filter(e=>e.tools.some(e=>e.descriptor.name.endsWith(`.device.get_location`))).map(e=>({value:e.endpointId,label:e.label}))}),(0,z.jsx)(c,{placeholder:t?`用途`:`Purpose`,value:d,onChange:e=>ee(e),ariaLabel:t?`用途`:`Purpose`,options:[{value:`weather`,label:t?`查询天气`:`Weather`},{value:`nearby`,label:t?`附近地点`:`Nearby places`}],allowEmpty:!1}),(0,z.jsx)(c,{placeholder:t?`精度`:`Precision`,value:f,onChange:e=>p(e),ariaLabel:t?`精度`:`Precision`,options:[{value:`approximate`,label:t?`大致位置`:`Approximate`},{value:`precise`,label:t?`精确位置`:`Precise`}],allowEmpty:!1}),d===`nearby`?(0,z.jsx)(c,{placeholder:t?`地点类型`:`Category`,value:m,onChange:h,ariaLabel:t?`附近地点类型`:`Place category`,options:[`restaurant`,`cafe`,`pharmacy`,`park`].map((e,n)=>({value:e,label:t?[`餐厅`,`咖啡馆`,`药店`,`公园`][n]:e})),allowEmpty:!1}):null,(0,z.jsx)(w,{variant:`primary`,disabled:g||!i||!o||!x,onClick:()=>void te(),children:t?`允许一次`:`Allow once`})]}),v?(0,z.jsx)(`p`,{role:`alert`,className:`mt-2 text-sm text-fg-muted`,children:t?`授权失败,请检查设备连接后重试。`:`Authorization failed. Check the device connection.`}):null,(0,z.jsx)(`div`,{className:`mt-3 space-y-2`,children:n.data?.map(r=>(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-sm text-fg-muted`,children:[(0,z.jsxs)(`span`,{children:[e.find(e=>e.endpoints.some(e=>e.endpointId===r.targetEndpointId))?.displayName??(t?`设备`:`Device`),` · `,r.state===`running`?t?`执行中`:`Running`:t?`等待本次调用`:`Awaiting one call`]}),(0,z.jsx)(w,{disabled:g,onClick:()=>{_(!0),B(`DELETE`,void 0,r.id).then(()=>n.mutate()).catch(()=>y(!0)).finally(()=>_(!1))},children:t?`撤销`:`Revoke`})]},r.id))})]})}var V=720*60*60*1e3;function H(e){let t=[e.access,e.principal].filter(e=>e!==null);return t.length>0&&t.every(e=>e.revokedAt!==void 0)}function U(e){return H(e)?`revoked`:e.endpoints.length>0?`online`:`offline`}function oe(e){return new Set(e.endpoints.flatMap(e=>e.tools.map(({descriptor:e})=>e.name))).size}function se(e,t=Date.now()){return U(e)===`offline`?(e.lastSeenAt??e.createdAt)<t-V:!1}function ce(e,t,n=Date.now()){let r=t.query.trim().toLocaleLowerCase();return e.filter(e=>{let i=U(e),a=t.status===`all`||(t.status===`active`?i!==`revoked`:t.status===`stale`?se(e,n):i===t.status),o=!t.platform||e.platform===t.platform,s=!r||[e.displayName,e.id,e.kind,e.platform].some(e=>e.toLocaleLowerCase().includes(r));return a&&o&&s})}function le(e){return e.length>8?e.slice(-8):e}function ue(e){let t=(0,L.c)(61),{device:n,busy:r,onClose:i,onRevoke:a,onRename:o}=e,s=m(de),c;t[0]===s?c=t[1]:(c=ee(s),t[0]=s,t[1]=c);let l=c.endpointToolsSettings,u=s===`zh`?`zh-CN`:`en`,p;t[2]===u?p=t[3]:(p=new Intl.DateTimeFormat(u,{dateStyle:`medium`,timeStyle:`short`}),t[2]=u,t[3]=p);let h=p,S;t[4]===n?S=t[5]:(S=n?U(n):`offline`,t[4]=n,t[5]=S);let C=S,T=n!==null,E;t[6]===i?E=t[7]:(E=e=>!e&&i(),t[6]=i,t[7]=E);let D;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,z.jsx)(g,{className:f(`xopc-dialog-overlay fixed inset-0 bg-scrim`,ne)}),t[8]=D):D=t[8];let O;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(O=f(`xopc-drawer-right fixed right-0 top-0 flex size-full max-w-lg flex-col border-l border-edge bg-surface-overlay shadow-popover outline-none`,te),t[9]=O):O=t[9];let ie=n?.displayName??l.deviceDetails,k;t[10]===ie?k=t[11]:(k=(0,z.jsx)(b,{className:`truncate text-base font-semibold text-fg`,children:ie}),t[10]=ie,t[11]=k);let A;t[12]===n?A=t[13]:(A=n?(0,z.jsxs)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:[n.kind,` · `,n.platform,` · `,le(n.id)]}):null,t[12]=n,t[13]=A);let j;t[14]!==k||t[15]!==A?(j=(0,z.jsxs)(`div`,{className:`min-w-0`,children:[k,A]}),t[14]=k,t[15]=A,t[16]=j):j=t[16];let M;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,z.jsx)(d,{className:`size-5`,"aria-hidden":!0}),t[17]=M):M=t[17];let N;t[18]===l.close?N=t[19]:(N=(0,z.jsx)(_,{asChild:!0,children:(0,z.jsx)(w,{variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":l.close,children:M})}),t[18]=l.close,t[19]=N);let P;t[20]!==j||t[21]!==N?(P=(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[j,N]}),t[20]=j,t[21]=N,t[22]=P):P=t[22];let F;t[23]!==l.accessActive||t[24]!==l.accessRevoked||t[25]!==l.accessTitle||t[26]!==l.createdAt||t[27]!==l.endpointCount||t[28]!==l.endpointsTitle||t[29]!==l.identityId||t[30]!==l.identityTitle||t[31]!==l.lastSeen||t[32]!==l.never||t[33]!==l.noAccessIdentity||t[34]!==l.noOnlineEndpoints||t[35]!==l.noPermissions||t[36]!==l.permissions||t[37]!==l.status||t[38]!==l.statusLabel||t[39]!==l.toolCount||t[40]!==n||t[41]!==h||t[42]!==s||t[43]!==o||t[44]!==C?(F=n?(0,z.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-5 overflow-y-auto p-4`,children:[n.principal&&C!==`revoked`&&o?(0,z.jsx)(fe,{device:n,zh:s===`zh`,onRename:o},`${n.id}:${n.settingsRevision??0}`):null,(0,z.jsxs)(`dl`,{className:`grid grid-cols-2 gap-3 rounded-xl bg-surface-hover/40 p-4`,children:[(0,z.jsx)(W,{label:l.statusLabel,value:l.status[C]}),(0,z.jsx)(W,{label:l.lastSeen,value:n.lastSeenAt?h.format(n.lastSeenAt):l.never}),(0,z.jsx)(W,{label:l.endpointCount,value:String(n.endpoints.length)}),(0,z.jsx)(W,{label:l.toolCount,value:String(oe(n))})]}),(0,z.jsxs)(`section`,{children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:l.accessTitle}),(0,z.jsx)(`div`,{className:`mt-2 rounded-xl border border-edge-subtle bg-surface-base p-3 text-xs text-fg-muted`,children:n.access?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`p`,{children:n.access.revokedAt?l.accessRevoked:l.accessActive}),(0,z.jsx)(`p`,{className:`mt-1`,children:n.access.requestProofVersion===1?s===`zh`?`设备请求签名已启用`:`Device request signing enabled`:s===`zh`?`旧版兼容:尚未启用请求签名`:`Legacy compatibility: request signing not enabled`}),(0,z.jsxs)(`p`,{className:`mt-1 break-words`,children:[l.permissions,`: `,n.access.scopes.join(`, `)||l.noPermissions]})]}):(0,z.jsx)(`p`,{children:l.noAccessIdentity})})]}),(0,z.jsxs)(`section`,{children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:l.endpointsTitle}),(0,z.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[n.endpoints.length===0?(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:l.noOnlineEndpoints}):null,n.endpoints.map(e=>(0,z.jsxs)(`article`,{className:`rounded-xl border border-edge-subtle bg-surface-base p-3`,children:[(0,z.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,z.jsx)(`p`,{className:`min-w-0 break-all text-xs font-medium text-fg`,children:e.endpointId}),(0,z.jsxs)(`span`,{className:`text-xs text-fg-muted`,children:[l.status[e.availability],` · v`,e.appVersion]})]}),(0,z.jsx)(`div`,{className:`mt-3 space-y-2`,children:e.tools.map(e=>{let{descriptor:t}=e;return(0,z.jsxs)(`div`,{className:`rounded-lg bg-surface-hover/50 px-3 py-2`,children:[(0,z.jsx)(`p`,{className:`break-all text-xs font-medium text-fg`,children:t.title}),(0,z.jsxs)(`p`,{className:`mt-0.5 break-words text-xs text-fg-subtle`,children:[t.requiresForeground?s===`zh`?`需要设备在前台 · `:`Requires foreground · `:``,t.confirmation===`always`?s===`zh`?`每次确认`:`Confirm each time`:s===`zh`?`按已授权范围调用`:`Uses the authorized scope`]})]},t.name)})})]},e.connectionId))]})]}),(0,z.jsxs)(`section`,{children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:l.identityTitle}),n.principal&&C!==`revoked`&&o?(0,z.jsx)(fe,{device:n,zh:s===`zh`,onRename:o},`${n.id}:${n.settingsRevision??0}`):null,(0,z.jsxs)(`dl`,{className:`mt-2 rounded-xl border border-edge-subtle bg-surface-base p-3 text-xs`,children:[(0,z.jsx)(W,{label:l.identityId,value:n.id,breakAll:!0}),(0,z.jsx)(`div`,{className:`mt-3`,children:(0,z.jsx)(W,{label:l.createdAt,value:h.format(n.createdAt)})})]})]})]}):null,t[23]=l.accessActive,t[24]=l.accessRevoked,t[25]=l.accessTitle,t[26]=l.createdAt,t[27]=l.endpointCount,t[28]=l.endpointsTitle,t[29]=l.identityId,t[30]=l.identityTitle,t[31]=l.lastSeen,t[32]=l.never,t[33]=l.noAccessIdentity,t[34]=l.noOnlineEndpoints,t[35]=l.noPermissions,t[36]=l.permissions,t[37]=l.status,t[38]=l.statusLabel,t[39]=l.toolCount,t[40]=n,t[41]=h,t[42]=s,t[43]=o,t[44]=C,t[45]=F):F=t[45];let I;t[46]!==r||t[47]!==l.removeDevice||t[48]!==l.revoking||t[49]!==n||t[50]!==a||t[51]!==C?(I=n&&C!==`revoked`?(0,z.jsx)(`div`,{className:`shrink-0 border-t border-edge px-4 py-3`,children:(0,z.jsxs)(w,{variant:`secondary`,className:`w-full text-danger`,disabled:r,onClick:()=>a(n),children:[(0,z.jsx)(re,{className:`size-4`,"aria-hidden":!0}),r?l.revoking:l.removeDevice]})}):null,t[46]=r,t[47]=l.removeDevice,t[48]=l.revoking,t[49]=n,t[50]=a,t[51]=C,t[52]=I):I=t[52];let R;t[53]!==P||t[54]!==F||t[55]!==I?(R=(0,z.jsxs)(v,{children:[D,(0,z.jsxs)(y,{className:O,"aria-describedby":void 0,children:[P,F,I]})]}),t[53]=P,t[54]=F,t[55]=I,t[56]=R):R=t[56];let B;return t[57]!==R||t[58]!==T||t[59]!==E?(B=(0,z.jsx)(x,{open:T,onOpenChange:E,children:R}),t[57]=R,t[58]=T,t[59]=E,t[60]=B):B=t[60],B}function de(e){return e.language}function W(e){let t=(0,L.c)(10),{label:n,value:r,breakAll:i}=e,a=i===void 0?!1:i,o;t[0]===n?o=t[1]:(o=(0,z.jsx)(`dt`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=o);let s=a&&`break-all font-mono text-xs`,c;t[2]===s?c=t[3]:(c=f(`mt-1 text-sm text-fg`,s),t[2]=s,t[3]=c);let l;t[4]!==c||t[5]!==r?(l=(0,z.jsx)(`dd`,{className:c,children:r}),t[4]=c,t[5]=r,t[6]=l):l=t[6];let u;return t[7]!==o||t[8]!==l?(u=(0,z.jsxs)(`div`,{className:`min-w-0`,children:[o,l]}),t[7]=o,t[8]=l,t[9]=u):u=t[9],u}function fe({device:e,zh:t,onRename:n}){let[r,i]=(0,R.useState)(e.displayName),[a,o]=(0,R.useState)(!1),[s,c]=(0,R.useState)(!1);return(0,z.jsxs)(`form`,{className:`space-y-2`,onSubmit:async t=>{if(t.preventDefault(),!(a||!r.trim())){o(!0),c(!1);try{await n(e,r.trim())}catch{c(!0)}finally{o(!1)}}},children:[(0,z.jsxs)(`label`,{className:`block text-sm text-fg`,children:[t?`设备名称`:`Device name`,(0,z.jsx)(`input`,{value:r,maxLength:80,onChange:e=>i(e.target.value),className:`mt-2 h-10 w-full rounded-lg border border-edge bg-surface-inset px-3 text-fg`})]}),(0,z.jsx)(w,{type:`submit`,variant:`secondary`,disabled:a||!r.trim()||r.trim()===e.displayName,children:a?t?`保存中…`:`Saving…`:t?`保存名称`:`Save name`}),s?(0,z.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:t?`保存失败,请刷新设备信息后重试。`:`Unable to save. Refresh device information and retry.`}):null]})}function pe(e){let t=(0,L.c)(19),{onPaired:n}=e,[r,a]=i(),o=m(he),s;t[0]===o?s=t[1]:(s=ee(o),t[0]=o,t[1]=s);let c=s.endpointToolsSettings.deviceAccess,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u={open:!1},t[2]=u):u=t[2];let[d,f]=(0,R.useState)(u),p,h;t[3]!==r||t[4]!==a?(p=()=>{let e=r.get(`startDevicePairing`);e!==`mobile`&&e!==`browser`||(f({open:!0,target:e}),a(me,{replace:!0}))},h=[r,a],t[3]=r,t[4]=a,t[5]=p,t[6]=h):(p=t[5],h=t[6]),(0,R.useEffect)(p,h);let g,_;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>f({open:!0}),_=(0,z.jsx)(l,{className:`size-4`,"aria-hidden":!0}),t[7]=g,t[8]=_):(g=t[7],_=t[8]);let v;t[9]===c.addDevice?v=t[10]:(v=(0,z.jsxs)(w,{variant:`primary`,onClick:g,children:[_,c.addDevice]}),t[9]=c.addDevice,t[10]=v);let y;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>f(t=>({...t,open:e})),t[11]=y):y=t[11];let b;t[12]!==d.open||t[13]!==d.target||t[14]!==n?(b=(0,z.jsx)(F,{open:d.open,onOpenChange:y,onPaired:n,targetKind:d.target}),t[12]=d.open,t[13]=d.target,t[14]=n,t[15]=b):b=t[15];let x;return t[16]!==v||t[17]!==b?(x=(0,z.jsxs)(z.Fragment,{children:[v,b]}),t[16]=v,t[17]=b,t[18]=x):x=t[18],x}function me(e){let t=new URLSearchParams(e);return t.delete(`startDevicePairing`),t}function he(e){return e.language}async function G(e){let t=await e.json().catch(()=>null);if(!e.ok||t?.payload===void 0)throw Error(t?.error?.message??`Endpoint management request failed: ${e.status}`);return t.payload}function ge(){return h(`/api/endpoint-tools/devices`)}function _e(e){let t=new URLSearchParams({page:String(e.page),pageSize:String(e.pageSize)});return e.query.trim()&&t.set(`query`,e.query.trim()),e.principalId&&t.set(`principalId`,e.principalId),e.status&&t.set(`status`,e.status),e.effect&&t.set(`effect`,e.effect),h(`/api/endpoint-tools/invocations?${t}`)}async function ve(){return G(await p(ge()))}async function ye(e){let t=Array.from({length:Math.ceil(e.length/100)},(t,n)=>e.slice(n*100,(n+1)*100));await Promise.all(t.map(async e=>{await G(await p(h(`/api/endpoint-tools/devices/revoke`),{method:`POST`,body:JSON.stringify({ids:e})}))}))}async function be(e){return G(await p(_e(e)))}async function xe(e,t,n){await G(await p(h(`/api/endpoint-tools/devices/${encodeURIComponent(e)}`),{method:`PATCH`,body:JSON.stringify({nickname:t,expectedRevision:n})}))}var Se=5e3,K=20,Ce=20;function we(e){return e===`online`||e===`succeeded`?`bg-success-soft text-success`:e===`running`?`bg-accent-soft text-accent-fg`:e===`failed`||e===`revoked`?`bg-danger-soft text-danger`:`bg-surface-hover text-fg-muted`}function Te(e){let t=(0,L.c)(5),{status:n,label:r}=e,i;t[0]===n?i=t[1]:(i=f(`rounded-full px-2 py-0.5 text-xs font-medium`,we(n)),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i?(a=(0,z.jsx)(`span`,{className:i,children:r}),t[2]=r,t[3]=i,t[4]=a):a=t[4],a}function Ee(){let e=m(e=>e.language),t=ee(e).endpointToolsSettings,[n,r]=i(),l=n.get(`view`)===`activity`?`activity`:`devices`,[d,p]=(0,R.useState)(null),[h,g]=(0,R.useState)([]),[_,v]=(0,R.useState)(!1),[y,b]=(0,R.useState)(!1),[x,S]=(0,R.useState)(``),[T,te]=(0,R.useState)(`active`),[ne,F]=(0,R.useState)(``),[L,B]=(0,R.useState)(1),[V,H]=(0,R.useState)(()=>new Set),[de,W]=(0,R.useState)(``),[fe]=E(de,250),[me,he]=(0,R.useState)(``),[G,we]=(0,R.useState)(``),[Ee,De]=(0,R.useState)(``),[Oe,q]=(0,R.useState)(1),ke={page:Oe,pageSize:Ce,query:fe,principalId:me,status:G,effect:Ee},J=C(ge(),ve,{refreshInterval:Se}),Y=C(l===`activity`?_e(ke):null,()=>be(ke),{refreshInterval:Se,keepPreviousData:!0}),Ae=(0,R.useMemo)(()=>new Intl.DateTimeFormat(e===`zh`?`zh-CN`:`en`,{dateStyle:`medium`,timeStyle:`short`}),[e]);if(J.isLoading&&!J.data)return(0,z.jsx)(N,{children:(0,z.jsx)(I,{sections:2})});let X=J.data??[],je=Y.data?.items??[],Me=X.filter(e=>U(e)===`online`).length,Ne=X.filter(e=>U(e)!==`revoked`).length,Pe=X.filter(e=>se(e)).length,Fe=[...new Set(X.map(e=>e.platform))].toSorted(),Z=ce(X,{query:x,status:T,platform:ne}),Ie=Math.max(1,Math.ceil(Z.length/K)),Q=Math.min(L,Ie),Le=Z.slice((Q-1)*K,Q*K),$=Le.reduce((e,t)=>(U(t)!==`revoked`&&e.push(t.id),e),[]),Re=$.length>0&&$.every(e=>V.has(e)),ze=e=>{r(t=>{let n=new URLSearchParams(t);return e===`devices`?n.delete(`view`):n.set(`view`,e),n},{replace:!0})},Be=async()=>{await Promise.all([J.mutate(),l===`activity`?Y.mutate():Promise.resolve()])},Ve=async()=>{if(!(h.length===0||_)){v(!0),b(!1);try{await ye(h.map(e=>e.id)),g([]),H(new Set),await J.mutate()}catch{b(!0)}finally{v(!1)}}},He=e=>{e(),B(1),H(new Set)};return(0,z.jsxs)(N,{children:[(0,z.jsx)(M,{title:t.title,subtitle:t.subtitle,actions:(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(O,{className:`size-9 shrink-0 p-0`,label:t.refresh,onClick:Be}),(0,z.jsx)(pe,{onPaired:()=>void J.mutate()})]})}),J.error||Y.error?(0,z.jsx)(`div`,{className:`rounded-xl bg-danger-soft px-4 py-3 text-sm text-danger`,children:t.loadError}):null,(0,z.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-3`,children:[{label:t.activeDevices,value:Ne,filter:`active`},{label:t.onlineDevices,value:Me,filter:`online`},{label:t.staleDevices,value:Pe,filter:`stale`}].map(({label:e,value:t,filter:n})=>(0,z.jsxs)(`button`,{type:`button`,className:f(`touch-target rounded-xl px-4 py-3 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,T===n?`bg-surface-active`:`bg-surface-hover/20 hover:bg-surface-hover/50`),"aria-pressed":T===n,onClick:()=>{He(()=>te(n)),ze(`devices`)},children:[(0,z.jsx)(`span`,{className:`text-xs text-fg-muted`,children:e}),(0,z.jsx)(`span`,{className:`mt-1 block text-2xl font-semibold text-fg`,children:t})]},n))}),(0,z.jsx)(j,{items:[{id:`devices`,label:t.devicesTab,icon:k,count:Ne},{id:`activity`,label:t.activityTab,icon:a,count:Y.data?.total}],activeTab:l,onChange:ze,ariaLabel:t.viewsAria,tabIdPrefix:`endpoint-management-tab`,panelIdPrefix:`endpoint-management-panel`}),(0,z.jsxs)(P,{id:`devices`,activeTab:l,tabIdPrefix:`endpoint-management-tab`,panelIdPrefix:`endpoint-management-panel`,title:t.devicesTitle,hint:t.devicesHint,children:[(0,z.jsx)(ae,{devices:X,zh:e===`zh`}),(0,z.jsxs)(`div`,{className:`mb-4 grid gap-2 sm:grid-cols-[minmax(0,1fr)_11rem_11rem]`,children:[(0,z.jsxs)(`label`,{className:`relative block`,children:[(0,z.jsx)(`span`,{className:`sr-only`,children:t.searchDevices}),(0,z.jsx)(u,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,z.jsx)(`input`,{type:`search`,"aria-label":t.searchDevices,value:x,placeholder:t.searchDevices,className:`h-10 w-full rounded-lg border border-edge bg-surface-inset pl-9 pr-3 text-base text-fg placeholder:text-fg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent sm:text-sm`,onChange:e=>He(()=>S(e.target.value))})]}),(0,z.jsx)(c,{value:T,options:[{value:`active`,label:t.filterActive},{value:`online`,label:t.status.online},{value:`offline`,label:t.status.offline},{value:`stale`,label:t.filterStale},{value:`revoked`,label:t.status.revoked},{value:`all`,label:t.filterAll}],placeholder:t.statusLabel,allowEmpty:!1,ariaLabel:t.statusLabel,onChange:e=>He(()=>te(e))}),(0,z.jsx)(c,{value:ne,options:Fe.map(e=>({value:e,label:e})),placeholder:t.allPlatforms,emptyLabel:t.allPlatforms,ariaLabel:t.platformLabel,onChange:e=>He(()=>F(e))})]}),V.size>0?(0,z.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center justify-between gap-3 rounded-xl bg-accent-soft px-3 py-2`,children:[(0,z.jsx)(`p`,{className:`text-sm font-medium text-accent-fg`,children:t.selectedCount.replace(`{{count}}`,String(V.size))}),(0,z.jsxs)(w,{variant:`secondary`,className:`text-danger`,onClick:()=>{b(!1),g(X.filter(e=>V.has(e.id)))},children:[(0,z.jsx)(re,{className:`size-4`,"aria-hidden":!0}),t.removeSelected]})]}):null,X.length===0?(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.noDevices}):Z.length===0?(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.noMatchingDevices}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:`flex min-h-10 items-center gap-3 border-b border-edge-subtle px-1`,children:(0,z.jsxs)(`label`,{className:f(`touch-target flex items-center gap-2 text-xs text-fg-muted`,$.length>0?`cursor-pointer`:`cursor-not-allowed opacity-50`),children:[(0,z.jsx)(`input`,{type:`checkbox`,"aria-label":t.selectPage,checked:Re,disabled:$.length===0,className:`size-4 accent-accent`,onChange:e=>{H(t=>{let n=new Set(t);for(let t of $)e.target.checked?n.add(t):n.delete(t);return n})}}),t.selectPage]})}),(0,z.jsx)(`ul`,{className:`divide-y divide-edge-subtle`,children:Le.map(e=>{let n=U(e),r=e.kind===`mobile`?D:A;return(0,z.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,z.jsx)(`label`,{className:f(`touch-target flex size-10 shrink-0 items-center justify-center`,n===`revoked`?`cursor-not-allowed opacity-40`:`cursor-pointer`),children:(0,z.jsx)(`input`,{type:`checkbox`,checked:V.has(e.id),disabled:n===`revoked`,"aria-label":t.selectDevice.replace(`{{name}}`,e.displayName),className:`size-4 accent-accent`,onChange:t=>{H(n=>{let r=new Set(n);return t.target.checked?r.add(e.id):r.delete(e.id),r})}})}),(0,z.jsxs)(`button`,{type:`button`,className:`touch-target flex min-w-0 flex-1 items-center gap-3 py-3 text-left hover:bg-surface-hover/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,onClick:()=>p(e),children:[(0,z.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-lg bg-surface-inset text-fg-muted`,children:(0,z.jsx)(r,{className:`size-4`,"aria-hidden":!0})}),(0,z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,z.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,z.jsx)(`span`,{className:`truncate text-sm font-medium text-fg`,children:e.displayName}),(0,z.jsx)(Te,{status:n,label:t.status[n]})]}),(0,z.jsxs)(`span`,{className:`mt-1 block text-xs text-fg-muted`,children:[e.platform,` · `,le(e.id),` · `,t.lastSeen,`: `,e.lastSeenAt?Ae.format(e.lastSeenAt):t.never]})]}),(0,z.jsx)(`span`,{className:`hidden shrink-0 text-right text-xs text-fg-muted sm:block`,children:t.endpointSummary.replace(`{{endpoints}}`,String(e.endpoints.length)).replace(`{{tools}}`,String(oe(e)))}),(0,z.jsx)(s,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":!0})]})]},e.id)})}),(0,z.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center justify-between gap-3 border-t border-edge-subtle pt-3`,children:[(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:t.paginationSummary.replace(`{{from}}`,String((Q-1)*K+1)).replace(`{{to}}`,String(Math.min(Q*K,Z.length))).replace(`{{total}}`,String(Z.length))}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsx)(w,{variant:`ghost`,className:`size-9 p-0`,"aria-label":t.previousPage,disabled:Q<=1,onClick:()=>B(e=>Math.max(1,e-1)),children:(0,z.jsx)(o,{className:`size-4`,"aria-hidden":!0})}),(0,z.jsx)(w,{variant:`ghost`,className:`size-9 p-0`,"aria-label":t.nextPage,disabled:Q>=Ie,onClick:()=>B(e=>Math.min(Ie,e+1)),children:(0,z.jsx)(s,{className:`size-4`,"aria-hidden":!0})})]})]})]})]}),(0,z.jsxs)(P,{id:`activity`,activeTab:l,tabIdPrefix:`endpoint-management-tab`,panelIdPrefix:`endpoint-management-panel`,title:t.callsTitle,hint:t.callsHint,children:[(0,z.jsxs)(`div`,{className:`mb-4 grid gap-2 sm:grid-cols-2 lg:grid-cols-4`,children:[(0,z.jsxs)(`label`,{className:`relative block sm:col-span-2 lg:col-span-1`,children:[(0,z.jsx)(`span`,{className:`sr-only`,children:t.searchActivity}),(0,z.jsx)(u,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,z.jsx)(`input`,{type:`search`,"aria-label":t.searchActivity,value:de,placeholder:t.searchActivity,className:`h-10 w-full rounded-lg border border-edge bg-surface-inset pl-9 pr-3 text-base text-fg placeholder:text-fg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent sm:text-sm`,onChange:e=>{W(e.target.value),q(1)}})]}),(0,z.jsx)(c,{value:me,options:X.map(e=>({value:e.id,label:`${e.displayName} · ${le(e.id)}`})),placeholder:t.allDevices,emptyLabel:t.allDevices,ariaLabel:t.deviceLabel,onChange:e=>{he(e),q(1)}}),(0,z.jsx)(c,{value:G,options:[{value:`running`,label:t.status.running},{value:`succeeded`,label:t.status.succeeded},{value:`failed`,label:t.status.failed}],placeholder:t.allStatuses,emptyLabel:t.allStatuses,ariaLabel:t.statusLabel,onChange:e=>{we(e),q(1)}}),(0,z.jsx)(c,{value:Ee,options:[{value:`read`,label:t.effects.read},{value:`write`,label:t.effects.write},{value:`destructive`,label:t.effects.destructive}],placeholder:t.allEffects,emptyLabel:t.allEffects,ariaLabel:t.effectLabel,onChange:e=>{De(e),q(1)}})]}),Y.isLoading&&!Y.data?(0,z.jsx)(I,{sections:1}):null,je.length===0&&!Y.isLoading?(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.noMatchingCalls}):null,(0,z.jsx)(`div`,{className:`space-y-2`,children:je.map(e=>(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-lg bg-surface-base/55 px-3 py-2.5`,children:[(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`p`,{className:`break-all text-sm font-medium text-fg`,children:e.toolName}),(0,z.jsxs)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:[Ae.format(e.startedAt),` · `,t.effects[e.effect],` · `,e.endpointId]}),e.errorMessage?(0,z.jsx)(`p`,{className:`mt-1 text-xs text-danger`,children:e.errorMessage}):null]}),(0,z.jsx)(Te,{status:e.status,label:t.status[e.status]})]},e.id))}),Y.data&&Y.data.total>0?(0,z.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center justify-between gap-3 border-t border-edge-subtle pt-3`,children:[(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:t.paginationSummary.replace(`{{from}}`,String((Y.data.page-1)*Y.data.pageSize+1)).replace(`{{to}}`,String(Math.min(Y.data.page*Y.data.pageSize,Y.data.total))).replace(`{{total}}`,String(Y.data.total))}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsx)(w,{variant:`ghost`,className:`size-9 p-0`,"aria-label":t.previousPage,disabled:Y.data.page<=1,onClick:()=>q(e=>Math.max(1,e-1)),children:(0,z.jsx)(o,{className:`size-4`,"aria-hidden":!0})}),(0,z.jsx)(w,{variant:`ghost`,className:`size-9 p-0`,"aria-label":t.nextPage,disabled:Y.data.page>=Y.data.totalPages,onClick:()=>q(e=>Math.min(Y.data.totalPages,e+1)),children:(0,z.jsx)(s,{className:`size-4`,"aria-hidden":!0})})]})]}):null]}),(0,z.jsx)(ue,{device:d,busy:_,onRename:async(e,t)=>{await xe(e.id,t,e.settingsRevision??0),p((await J.mutate())?.find(t=>t.id===e.id)??null)},onClose:()=>p(null),onRevoke:e=>{p(null),b(!1),g([e])}}),(0,z.jsx)(ie,{open:h.length>0,title:h.length>1?t.removeManyTitle:t.removeTitle,description:`${h.length>1?t.removeManyDescription.replace(`{{count}}`,String(h.length)):t.removeDescription.replace(`{{name}}`,h[0]?.displayName??``)}${y?`\n\n${t.revokeError}`:``}`,confirmLabel:_?t.revoking:t.removeDevice,cancelLabel:t.cancel,destructive:!0,onConfirm:()=>void Ve(),onCancel:()=>{_||g([])}})]})}export{Ee as EndpointToolsManagementSettings};
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{_ as i}from"./chunk-KS7C4IRE--EKdQGRF.js";import{t as a}from"./activity-YogQEteU.js";import{t as o}from"./chevron-left-DqFhpbvK.js";import{t as s}from"./chevron-right-BweFrslA.js";import{t as c}from"./popover-select-DHC7J4lG.js";import{t as l}from"./plus-Q2yW6OE7.js";import{t as u}from"./search-DA7gz22f.js";import{t as d}from"./x-B_N4OPjy.js";import{t as ee}from"./messages-DTqbfje6.js";import{t as f}from"./cn-0WouolD0.js";import{i as p,n as m,r as h}from"./locale-store-uRu_DsWm.js";import{a as g,n as _,o as v,r as y,s as b,t as x}from"./dist-BGTk37IG.js";import{s as S}from"./session-api-CzVTrG8n.js";import{i as C}from"./vendor-swr-BIWyz7Rc.js";import{t as w}from"./button-aIC072nz.js";import{t as T}from"./skeleton-BI5TyibZ.js";import{i as te,o as ne}from"./settings-shell-dialog-layer-BU3UuiJr.js";import{n as E}from"./index.module-Cd9ENXfk.js";import{Ro as D,Vo as re,li as O,ui as ie,ys as k,zs as A}from"./index-D0qMv3jf.js";import{t as j}from"./page-tabs-HLrKIjXH.js";import{n as M,r as N,t as P}from"./settings-page-layout-Dx5S-Msc.js";import{t as F}from"./device-pairing-wizard-B06Sqn5D.js";import{n as I}from"./settings-loading-skeleton-BTqvr_Fw.js";var L=n(),R=e(t(),1),z=r();async function B(e=`GET`,t,n){let r=await p(h(`/api/endpoint-tools/target-authorizations`+(n?`/`+encodeURIComponent(n):``)),{method:e,...t?{body:JSON.stringify(t)}:{}});if(!r.ok)throw Error(r.status===403?`owner`:`unavailable`);return(await r.json()).payload}function ae({devices:e,zh:t}){let n=C(`device-single-call-grants`,()=>B(),{refreshInterval:5e3,shouldRetryOnError:!1}),r=C(n.error?null:`device-grant-conversations`,()=>S({limit:100}),{shouldRetryOnError:!1}),[i,a]=(0,R.useState)(``),[o,s]=(0,R.useState)(``),[l,u]=(0,R.useState)(``),[d,ee]=(0,R.useState)(`weather`),[f,p]=(0,R.useState)(`approximate`),[m,h]=(0,R.useState)(`restaurant`),[g,_]=(0,R.useState)(!1),[v,y]=(0,R.useState)(!1);if(n.error)return null;let b=e.flatMap(e=>e.endpoints.map(t=>({...t,label:e.displayName+` · `+e.platform+` · `+e.id.slice(-8)}))),x=b.find(e=>e.endpointId===l)?.tools.find(e=>e.descriptor.name.endsWith(`.device.get_location`))?.descriptor.name,te=async()=>{if(!(!x||!i||!o)){_(!0),y(!1);try{await B(`POST`,{conversationId:i,requestorPrincipalId:o,targetEndpointId:l,toolName:x,arguments:{purpose:d,precision:f,...d===`nearby`?{category:m}:{}}}),await n.mutate()}catch{y(!0)}finally{_(!1)}}};return(0,z.jsxs)(`section`,{className:`mb-5 rounded-xl border border-edge bg-surface-base p-4`,children:[(0,z.jsx)(`h3`,{className:`font-semibold text-fg`,children:t?`跨设备单次授权`:`Single-call device authorization`}),(0,z.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:t?`为指定会话和来源设备授权一次定位查询,60 秒后失效。目标设备仍需确认;授权后请在来源设备继续请求。`:`Authorize one location query for a conversation and source device. Expires in 60 seconds; target-device consent is still required. Continue the request from the source device.`}),n.isLoading||r.isLoading?(0,z.jsx)(T,{className:`mt-3 h-28`}):(0,z.jsxs)(`div`,{className:`mt-3 grid gap-3 sm:grid-cols-2`,children:[(0,z.jsx)(c,{value:i,onChange:a,placeholder:t?`选择会话`:`Conversation`,ariaLabel:t?`会话`:`Conversation`,options:(r.data?.items??[]).map(e=>({value:e.key,label:e.name||e.key}))}),(0,z.jsx)(c,{value:o,onChange:s,placeholder:t?`消息来源设备`:`Source device`,ariaLabel:t?`消息来源设备`:`Source device`,options:e.filter(e=>e.endpoints.length>0).map(e=>({value:e.id,label:e.displayName+` · `+e.platform+` · `+e.id.slice(-8)}))}),(0,z.jsx)(c,{value:l,onChange:u,placeholder:t?`使用哪台设备的位置`:`Location device`,ariaLabel:t?`目标设备`:`Target device`,options:b.filter(e=>e.tools.some(e=>e.descriptor.name.endsWith(`.device.get_location`))).map(e=>({value:e.endpointId,label:e.label}))}),(0,z.jsx)(c,{placeholder:t?`用途`:`Purpose`,value:d,onChange:e=>ee(e),ariaLabel:t?`用途`:`Purpose`,options:[{value:`weather`,label:t?`查询天气`:`Weather`},{value:`nearby`,label:t?`附近地点`:`Nearby places`}],allowEmpty:!1}),(0,z.jsx)(c,{placeholder:t?`精度`:`Precision`,value:f,onChange:e=>p(e),ariaLabel:t?`精度`:`Precision`,options:[{value:`approximate`,label:t?`大致位置`:`Approximate`},{value:`precise`,label:t?`精确位置`:`Precise`}],allowEmpty:!1}),d===`nearby`?(0,z.jsx)(c,{placeholder:t?`地点类型`:`Category`,value:m,onChange:h,ariaLabel:t?`附近地点类型`:`Place category`,options:[`restaurant`,`cafe`,`pharmacy`,`park`].map((e,n)=>({value:e,label:t?[`餐厅`,`咖啡馆`,`药店`,`公园`][n]:e})),allowEmpty:!1}):null,(0,z.jsx)(w,{variant:`primary`,disabled:g||!i||!o||!x,onClick:()=>void te(),children:t?`允许一次`:`Allow once`})]}),v?(0,z.jsx)(`p`,{role:`alert`,className:`mt-2 text-sm text-fg-muted`,children:t?`授权失败,请检查设备连接后重试。`:`Authorization failed. Check the device connection.`}):null,(0,z.jsx)(`div`,{className:`mt-3 space-y-2`,children:n.data?.map(r=>(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-sm text-fg-muted`,children:[(0,z.jsxs)(`span`,{children:[e.find(e=>e.endpoints.some(e=>e.endpointId===r.targetEndpointId))?.displayName??(t?`设备`:`Device`),` · `,r.state===`running`?t?`执行中`:`Running`:t?`等待本次调用`:`Awaiting one call`]}),(0,z.jsx)(w,{disabled:g,onClick:()=>{_(!0),B(`DELETE`,void 0,r.id).then(()=>n.mutate()).catch(()=>y(!0)).finally(()=>_(!1))},children:t?`撤销`:`Revoke`})]},r.id))})]})}var V=720*60*60*1e3;function H(e){let t=[e.access,e.principal].filter(e=>e!==null);return t.length>0&&t.every(e=>e.revokedAt!==void 0)}function U(e){return H(e)?`revoked`:e.endpoints.length>0?`online`:`offline`}function oe(e){return new Set(e.endpoints.flatMap(e=>e.tools.map(({descriptor:e})=>e.name))).size}function se(e,t=Date.now()){return U(e)===`offline`?(e.lastSeenAt??e.createdAt)<t-V:!1}function ce(e,t,n=Date.now()){let r=t.query.trim().toLocaleLowerCase();return e.filter(e=>{let i=U(e),a=t.status===`all`||(t.status===`active`?i!==`revoked`:t.status===`stale`?se(e,n):i===t.status),o=!t.platform||e.platform===t.platform,s=!r||[e.displayName,e.id,e.kind,e.platform].some(e=>e.toLocaleLowerCase().includes(r));return a&&o&&s})}function le(e){return e.length>8?e.slice(-8):e}function ue(e){let t=(0,L.c)(61),{device:n,busy:r,onClose:i,onRevoke:a,onRename:o}=e,s=m(de),c;t[0]===s?c=t[1]:(c=ee(s),t[0]=s,t[1]=c);let l=c.endpointToolsSettings,u=s===`zh`?`zh-CN`:`en`,p;t[2]===u?p=t[3]:(p=new Intl.DateTimeFormat(u,{dateStyle:`medium`,timeStyle:`short`}),t[2]=u,t[3]=p);let h=p,S;t[4]===n?S=t[5]:(S=n?U(n):`offline`,t[4]=n,t[5]=S);let C=S,T=n!==null,E;t[6]===i?E=t[7]:(E=e=>!e&&i(),t[6]=i,t[7]=E);let D;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,z.jsx)(g,{className:f(`xopc-dialog-overlay fixed inset-0 bg-scrim`,ne)}),t[8]=D):D=t[8];let O;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(O=f(`xopc-drawer-right fixed right-0 top-0 flex size-full max-w-lg flex-col border-l border-edge bg-surface-overlay shadow-popover outline-none`,te),t[9]=O):O=t[9];let ie=n?.displayName??l.deviceDetails,k;t[10]===ie?k=t[11]:(k=(0,z.jsx)(b,{className:`truncate text-base font-semibold text-fg`,children:ie}),t[10]=ie,t[11]=k);let A;t[12]===n?A=t[13]:(A=n?(0,z.jsxs)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:[n.kind,` · `,n.platform,` · `,le(n.id)]}):null,t[12]=n,t[13]=A);let j;t[14]!==k||t[15]!==A?(j=(0,z.jsxs)(`div`,{className:`min-w-0`,children:[k,A]}),t[14]=k,t[15]=A,t[16]=j):j=t[16];let M;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,z.jsx)(d,{className:`size-5`,"aria-hidden":!0}),t[17]=M):M=t[17];let N;t[18]===l.close?N=t[19]:(N=(0,z.jsx)(_,{asChild:!0,children:(0,z.jsx)(w,{variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":l.close,children:M})}),t[18]=l.close,t[19]=N);let P;t[20]!==j||t[21]!==N?(P=(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-3 border-b border-edge px-4 py-3`,children:[j,N]}),t[20]=j,t[21]=N,t[22]=P):P=t[22];let F;t[23]!==l.accessActive||t[24]!==l.accessRevoked||t[25]!==l.accessTitle||t[26]!==l.createdAt||t[27]!==l.endpointCount||t[28]!==l.endpointsTitle||t[29]!==l.identityId||t[30]!==l.identityTitle||t[31]!==l.lastSeen||t[32]!==l.never||t[33]!==l.noAccessIdentity||t[34]!==l.noOnlineEndpoints||t[35]!==l.noPermissions||t[36]!==l.permissions||t[37]!==l.status||t[38]!==l.statusLabel||t[39]!==l.toolCount||t[40]!==n||t[41]!==h||t[42]!==s||t[43]!==o||t[44]!==C?(F=n?(0,z.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-5 overflow-y-auto p-4`,children:[n.principal&&C!==`revoked`&&o?(0,z.jsx)(fe,{device:n,zh:s===`zh`,onRename:o},`${n.id}:${n.settingsRevision??0}`):null,(0,z.jsxs)(`dl`,{className:`grid grid-cols-2 gap-3 rounded-xl bg-surface-hover/40 p-4`,children:[(0,z.jsx)(W,{label:l.statusLabel,value:l.status[C]}),(0,z.jsx)(W,{label:l.lastSeen,value:n.lastSeenAt?h.format(n.lastSeenAt):l.never}),(0,z.jsx)(W,{label:l.endpointCount,value:String(n.endpoints.length)}),(0,z.jsx)(W,{label:l.toolCount,value:String(oe(n))})]}),(0,z.jsxs)(`section`,{children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:l.accessTitle}),(0,z.jsx)(`div`,{className:`mt-2 rounded-xl border border-edge-subtle bg-surface-base p-3 text-xs text-fg-muted`,children:n.access?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`p`,{children:n.access.revokedAt?l.accessRevoked:l.accessActive}),(0,z.jsx)(`p`,{className:`mt-1`,children:n.access.requestProofVersion===1?s===`zh`?`设备请求签名已启用`:`Device request signing enabled`:s===`zh`?`旧版兼容:尚未启用请求签名`:`Legacy compatibility: request signing not enabled`}),(0,z.jsxs)(`p`,{className:`mt-1 break-words`,children:[l.permissions,`: `,n.access.scopes.join(`, `)||l.noPermissions]})]}):(0,z.jsx)(`p`,{children:l.noAccessIdentity})})]}),(0,z.jsxs)(`section`,{children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:l.endpointsTitle}),(0,z.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[n.endpoints.length===0?(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:l.noOnlineEndpoints}):null,n.endpoints.map(e=>(0,z.jsxs)(`article`,{className:`rounded-xl border border-edge-subtle bg-surface-base p-3`,children:[(0,z.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,z.jsx)(`p`,{className:`min-w-0 break-all text-xs font-medium text-fg`,children:e.endpointId}),(0,z.jsxs)(`span`,{className:`text-xs text-fg-muted`,children:[l.status[e.availability],` · v`,e.appVersion]})]}),(0,z.jsx)(`div`,{className:`mt-3 space-y-2`,children:e.tools.map(e=>{let{descriptor:t}=e;return(0,z.jsxs)(`div`,{className:`rounded-lg bg-surface-hover/50 px-3 py-2`,children:[(0,z.jsx)(`p`,{className:`break-all text-xs font-medium text-fg`,children:t.title}),(0,z.jsxs)(`p`,{className:`mt-0.5 break-words text-xs text-fg-subtle`,children:[t.requiresForeground?s===`zh`?`需要设备在前台 · `:`Requires foreground · `:``,t.confirmation===`always`?s===`zh`?`每次确认`:`Confirm each time`:s===`zh`?`按已授权范围调用`:`Uses the authorized scope`]})]},t.name)})})]},e.connectionId))]})]}),(0,z.jsxs)(`section`,{children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:l.identityTitle}),n.principal&&C!==`revoked`&&o?(0,z.jsx)(fe,{device:n,zh:s===`zh`,onRename:o},`${n.id}:${n.settingsRevision??0}`):null,(0,z.jsxs)(`dl`,{className:`mt-2 rounded-xl border border-edge-subtle bg-surface-base p-3 text-xs`,children:[(0,z.jsx)(W,{label:l.identityId,value:n.id,breakAll:!0}),(0,z.jsx)(`div`,{className:`mt-3`,children:(0,z.jsx)(W,{label:l.createdAt,value:h.format(n.createdAt)})})]})]})]}):null,t[23]=l.accessActive,t[24]=l.accessRevoked,t[25]=l.accessTitle,t[26]=l.createdAt,t[27]=l.endpointCount,t[28]=l.endpointsTitle,t[29]=l.identityId,t[30]=l.identityTitle,t[31]=l.lastSeen,t[32]=l.never,t[33]=l.noAccessIdentity,t[34]=l.noOnlineEndpoints,t[35]=l.noPermissions,t[36]=l.permissions,t[37]=l.status,t[38]=l.statusLabel,t[39]=l.toolCount,t[40]=n,t[41]=h,t[42]=s,t[43]=o,t[44]=C,t[45]=F):F=t[45];let I;t[46]!==r||t[47]!==l.removeDevice||t[48]!==l.revoking||t[49]!==n||t[50]!==a||t[51]!==C?(I=n&&C!==`revoked`?(0,z.jsx)(`div`,{className:`shrink-0 border-t border-edge px-4 py-3`,children:(0,z.jsxs)(w,{variant:`secondary`,className:`w-full text-danger`,disabled:r,onClick:()=>a(n),children:[(0,z.jsx)(re,{className:`size-4`,"aria-hidden":!0}),r?l.revoking:l.removeDevice]})}):null,t[46]=r,t[47]=l.removeDevice,t[48]=l.revoking,t[49]=n,t[50]=a,t[51]=C,t[52]=I):I=t[52];let R;t[53]!==P||t[54]!==F||t[55]!==I?(R=(0,z.jsxs)(v,{children:[D,(0,z.jsxs)(y,{className:O,"aria-describedby":void 0,children:[P,F,I]})]}),t[53]=P,t[54]=F,t[55]=I,t[56]=R):R=t[56];let B;return t[57]!==R||t[58]!==T||t[59]!==E?(B=(0,z.jsx)(x,{open:T,onOpenChange:E,children:R}),t[57]=R,t[58]=T,t[59]=E,t[60]=B):B=t[60],B}function de(e){return e.language}function W(e){let t=(0,L.c)(10),{label:n,value:r,breakAll:i}=e,a=i===void 0?!1:i,o;t[0]===n?o=t[1]:(o=(0,z.jsx)(`dt`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=o);let s=a&&`break-all font-mono text-xs`,c;t[2]===s?c=t[3]:(c=f(`mt-1 text-sm text-fg`,s),t[2]=s,t[3]=c);let l;t[4]!==c||t[5]!==r?(l=(0,z.jsx)(`dd`,{className:c,children:r}),t[4]=c,t[5]=r,t[6]=l):l=t[6];let u;return t[7]!==o||t[8]!==l?(u=(0,z.jsxs)(`div`,{className:`min-w-0`,children:[o,l]}),t[7]=o,t[8]=l,t[9]=u):u=t[9],u}function fe({device:e,zh:t,onRename:n}){let[r,i]=(0,R.useState)(e.displayName),[a,o]=(0,R.useState)(!1),[s,c]=(0,R.useState)(!1);return(0,z.jsxs)(`form`,{className:`space-y-2`,onSubmit:async t=>{if(t.preventDefault(),!(a||!r.trim())){o(!0),c(!1);try{await n(e,r.trim())}catch{c(!0)}finally{o(!1)}}},children:[(0,z.jsxs)(`label`,{className:`block text-sm text-fg`,children:[t?`设备名称`:`Device name`,(0,z.jsx)(`input`,{value:r,maxLength:80,onChange:e=>i(e.target.value),className:`mt-2 h-10 w-full rounded-lg border border-edge bg-surface-inset px-3 text-fg`})]}),(0,z.jsx)(w,{type:`submit`,variant:`secondary`,disabled:a||!r.trim()||r.trim()===e.displayName,children:a?t?`保存中…`:`Saving…`:t?`保存名称`:`Save name`}),s?(0,z.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:t?`保存失败,请刷新设备信息后重试。`:`Unable to save. Refresh device information and retry.`}):null]})}function pe(e){let t=(0,L.c)(19),{onPaired:n}=e,[r,a]=i(),o=m(he),s;t[0]===o?s=t[1]:(s=ee(o),t[0]=o,t[1]=s);let c=s.endpointToolsSettings.deviceAccess,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u={open:!1},t[2]=u):u=t[2];let[d,f]=(0,R.useState)(u),p,h;t[3]!==r||t[4]!==a?(p=()=>{let e=r.get(`startDevicePairing`);e!==`mobile`&&e!==`browser`||(f({open:!0,target:e}),a(me,{replace:!0}))},h=[r,a],t[3]=r,t[4]=a,t[5]=p,t[6]=h):(p=t[5],h=t[6]),(0,R.useEffect)(p,h);let g,_;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(g=()=>f({open:!0}),_=(0,z.jsx)(l,{className:`size-4`,"aria-hidden":!0}),t[7]=g,t[8]=_):(g=t[7],_=t[8]);let v;t[9]===c.addDevice?v=t[10]:(v=(0,z.jsxs)(w,{variant:`primary`,onClick:g,children:[_,c.addDevice]}),t[9]=c.addDevice,t[10]=v);let y;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>f(t=>({...t,open:e})),t[11]=y):y=t[11];let b;t[12]!==d.open||t[13]!==d.target||t[14]!==n?(b=(0,z.jsx)(F,{open:d.open,onOpenChange:y,onPaired:n,targetKind:d.target}),t[12]=d.open,t[13]=d.target,t[14]=n,t[15]=b):b=t[15];let x;return t[16]!==v||t[17]!==b?(x=(0,z.jsxs)(z.Fragment,{children:[v,b]}),t[16]=v,t[17]=b,t[18]=x):x=t[18],x}function me(e){let t=new URLSearchParams(e);return t.delete(`startDevicePairing`),t}function he(e){return e.language}async function G(e){let t=await e.json().catch(()=>null);if(!e.ok||t?.payload===void 0)throw Error(t?.error?.message??`Endpoint management request failed: ${e.status}`);return t.payload}function ge(){return h(`/api/endpoint-tools/devices`)}function _e(e){let t=new URLSearchParams({page:String(e.page),pageSize:String(e.pageSize)});return e.query.trim()&&t.set(`query`,e.query.trim()),e.principalId&&t.set(`principalId`,e.principalId),e.status&&t.set(`status`,e.status),e.effect&&t.set(`effect`,e.effect),h(`/api/endpoint-tools/invocations?${t}`)}async function ve(){return G(await p(ge()))}async function ye(e){let t=Array.from({length:Math.ceil(e.length/100)},(t,n)=>e.slice(n*100,(n+1)*100));await Promise.all(t.map(async e=>{await G(await p(h(`/api/endpoint-tools/devices/revoke`),{method:`POST`,body:JSON.stringify({ids:e})}))}))}async function be(e){return G(await p(_e(e)))}async function xe(e,t,n){await G(await p(h(`/api/endpoint-tools/devices/${encodeURIComponent(e)}`),{method:`PATCH`,body:JSON.stringify({nickname:t,expectedRevision:n})}))}var Se=5e3,K=20,Ce=20;function we(e){return e===`online`||e===`succeeded`?`bg-success-soft text-success`:e===`running`?`bg-accent-soft text-accent-fg`:e===`failed`||e===`revoked`?`bg-danger-soft text-danger`:`bg-surface-hover text-fg-muted`}function Te(e){let t=(0,L.c)(5),{status:n,label:r}=e,i;t[0]===n?i=t[1]:(i=f(`rounded-full px-2 py-0.5 text-xs font-medium`,we(n)),t[0]=n,t[1]=i);let a;return t[2]!==r||t[3]!==i?(a=(0,z.jsx)(`span`,{className:i,children:r}),t[2]=r,t[3]=i,t[4]=a):a=t[4],a}function Ee(){let e=m(e=>e.language),t=ee(e).endpointToolsSettings,[n,r]=i(),l=n.get(`view`)===`activity`?`activity`:`devices`,[d,p]=(0,R.useState)(null),[h,g]=(0,R.useState)([]),[_,v]=(0,R.useState)(!1),[y,b]=(0,R.useState)(!1),[x,S]=(0,R.useState)(``),[T,te]=(0,R.useState)(`active`),[ne,F]=(0,R.useState)(``),[L,B]=(0,R.useState)(1),[V,H]=(0,R.useState)(()=>new Set),[de,W]=(0,R.useState)(``),[fe]=E(de,250),[me,he]=(0,R.useState)(``),[G,we]=(0,R.useState)(``),[Ee,De]=(0,R.useState)(``),[Oe,q]=(0,R.useState)(1),ke={page:Oe,pageSize:Ce,query:fe,principalId:me,status:G,effect:Ee},J=C(ge(),ve,{refreshInterval:Se}),Y=C(l===`activity`?_e(ke):null,()=>be(ke),{refreshInterval:Se,keepPreviousData:!0}),Ae=(0,R.useMemo)(()=>new Intl.DateTimeFormat(e===`zh`?`zh-CN`:`en`,{dateStyle:`medium`,timeStyle:`short`}),[e]);if(J.isLoading&&!J.data)return(0,z.jsx)(N,{children:(0,z.jsx)(I,{sections:2})});let X=J.data??[],je=Y.data?.items??[],Me=X.filter(e=>U(e)===`online`).length,Ne=X.filter(e=>U(e)!==`revoked`).length,Pe=X.filter(e=>se(e)).length,Fe=[...new Set(X.map(e=>e.platform))].toSorted(),Z=ce(X,{query:x,status:T,platform:ne}),Ie=Math.max(1,Math.ceil(Z.length/K)),Q=Math.min(L,Ie),Le=Z.slice((Q-1)*K,Q*K),$=Le.reduce((e,t)=>(U(t)!==`revoked`&&e.push(t.id),e),[]),Re=$.length>0&&$.every(e=>V.has(e)),ze=e=>{r(t=>{let n=new URLSearchParams(t);return e===`devices`?n.delete(`view`):n.set(`view`,e),n},{replace:!0})},Be=async()=>{await Promise.all([J.mutate(),l===`activity`?Y.mutate():Promise.resolve()])},Ve=async()=>{if(!(h.length===0||_)){v(!0),b(!1);try{await ye(h.map(e=>e.id)),g([]),H(new Set),await J.mutate()}catch{b(!0)}finally{v(!1)}}},He=e=>{e(),B(1),H(new Set)};return(0,z.jsxs)(N,{children:[(0,z.jsx)(M,{title:t.title,subtitle:t.subtitle,actions:(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(O,{className:`size-9 shrink-0 p-0`,label:t.refresh,onClick:Be}),(0,z.jsx)(pe,{onPaired:()=>void J.mutate()})]})}),J.error||Y.error?(0,z.jsx)(`div`,{className:`rounded-xl bg-danger-soft px-4 py-3 text-sm text-danger`,children:t.loadError}):null,(0,z.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-3`,children:[{label:t.activeDevices,value:Ne,filter:`active`},{label:t.onlineDevices,value:Me,filter:`online`},{label:t.staleDevices,value:Pe,filter:`stale`}].map(({label:e,value:t,filter:n})=>(0,z.jsxs)(`button`,{type:`button`,className:f(`touch-target rounded-xl px-4 py-3 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,T===n?`bg-surface-active`:`bg-surface-hover/20 hover:bg-surface-hover/50`),"aria-pressed":T===n,onClick:()=>{He(()=>te(n)),ze(`devices`)},children:[(0,z.jsx)(`span`,{className:`text-xs text-fg-muted`,children:e}),(0,z.jsx)(`span`,{className:`mt-1 block text-2xl font-semibold text-fg`,children:t})]},n))}),(0,z.jsx)(j,{items:[{id:`devices`,label:t.devicesTab,icon:k,count:Ne},{id:`activity`,label:t.activityTab,icon:a,count:Y.data?.total}],activeTab:l,onChange:ze,ariaLabel:t.viewsAria,tabIdPrefix:`endpoint-management-tab`,panelIdPrefix:`endpoint-management-panel`}),(0,z.jsxs)(P,{id:`devices`,activeTab:l,tabIdPrefix:`endpoint-management-tab`,panelIdPrefix:`endpoint-management-panel`,title:t.devicesTitle,hint:t.devicesHint,children:[(0,z.jsx)(ae,{devices:X,zh:e===`zh`}),(0,z.jsxs)(`div`,{className:`mb-4 grid gap-2 sm:grid-cols-[minmax(0,1fr)_11rem_11rem]`,children:[(0,z.jsxs)(`label`,{className:`relative block`,children:[(0,z.jsx)(`span`,{className:`sr-only`,children:t.searchDevices}),(0,z.jsx)(u,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,z.jsx)(`input`,{type:`search`,"aria-label":t.searchDevices,value:x,placeholder:t.searchDevices,className:`h-10 w-full rounded-lg border border-edge bg-surface-inset pl-9 pr-3 text-base text-fg placeholder:text-fg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent sm:text-sm`,onChange:e=>He(()=>S(e.target.value))})]}),(0,z.jsx)(c,{value:T,options:[{value:`active`,label:t.filterActive},{value:`online`,label:t.status.online},{value:`offline`,label:t.status.offline},{value:`stale`,label:t.filterStale},{value:`revoked`,label:t.status.revoked},{value:`all`,label:t.filterAll}],placeholder:t.statusLabel,allowEmpty:!1,ariaLabel:t.statusLabel,onChange:e=>He(()=>te(e))}),(0,z.jsx)(c,{value:ne,options:Fe.map(e=>({value:e,label:e})),placeholder:t.allPlatforms,emptyLabel:t.allPlatforms,ariaLabel:t.platformLabel,onChange:e=>He(()=>F(e))})]}),V.size>0?(0,z.jsxs)(`div`,{className:`mb-3 flex flex-wrap items-center justify-between gap-3 rounded-xl bg-accent-soft px-3 py-2`,children:[(0,z.jsx)(`p`,{className:`text-sm font-medium text-accent-fg`,children:t.selectedCount.replace(`{{count}}`,String(V.size))}),(0,z.jsxs)(w,{variant:`secondary`,className:`text-danger`,onClick:()=>{b(!1),g(X.filter(e=>V.has(e.id)))},children:[(0,z.jsx)(re,{className:`size-4`,"aria-hidden":!0}),t.removeSelected]})]}):null,X.length===0?(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.noDevices}):Z.length===0?(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.noMatchingDevices}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:`flex min-h-10 items-center gap-3 border-b border-edge-subtle px-1`,children:(0,z.jsxs)(`label`,{className:f(`touch-target flex items-center gap-2 text-xs text-fg-muted`,$.length>0?`cursor-pointer`:`cursor-not-allowed opacity-50`),children:[(0,z.jsx)(`input`,{type:`checkbox`,"aria-label":t.selectPage,checked:Re,disabled:$.length===0,className:`size-4 accent-accent`,onChange:e=>{H(t=>{let n=new Set(t);for(let t of $)e.target.checked?n.add(t):n.delete(t);return n})}}),t.selectPage]})}),(0,z.jsx)(`ul`,{className:`divide-y divide-edge-subtle`,children:Le.map(e=>{let n=U(e),r=e.kind===`mobile`?D:A;return(0,z.jsxs)(`li`,{className:`flex items-center gap-3`,children:[(0,z.jsx)(`label`,{className:f(`touch-target flex size-10 shrink-0 items-center justify-center`,n===`revoked`?`cursor-not-allowed opacity-40`:`cursor-pointer`),children:(0,z.jsx)(`input`,{type:`checkbox`,checked:V.has(e.id),disabled:n===`revoked`,"aria-label":t.selectDevice.replace(`{{name}}`,e.displayName),className:`size-4 accent-accent`,onChange:t=>{H(n=>{let r=new Set(n);return t.target.checked?r.add(e.id):r.delete(e.id),r})}})}),(0,z.jsxs)(`button`,{type:`button`,className:`touch-target flex min-w-0 flex-1 items-center gap-3 py-3 text-left hover:bg-surface-hover/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,onClick:()=>p(e),children:[(0,z.jsx)(`span`,{className:`flex size-9 shrink-0 items-center justify-center rounded-lg bg-surface-inset text-fg-muted`,children:(0,z.jsx)(r,{className:`size-4`,"aria-hidden":!0})}),(0,z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,z.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2`,children:[(0,z.jsx)(`span`,{className:`truncate text-sm font-medium text-fg`,children:e.displayName}),(0,z.jsx)(Te,{status:n,label:t.status[n]})]}),(0,z.jsxs)(`span`,{className:`mt-1 block text-xs text-fg-muted`,children:[e.platform,` · `,le(e.id),` · `,t.lastSeen,`: `,e.lastSeenAt?Ae.format(e.lastSeenAt):t.never]})]}),(0,z.jsx)(`span`,{className:`hidden shrink-0 text-right text-xs text-fg-muted sm:block`,children:t.endpointSummary.replace(`{{endpoints}}`,String(e.endpoints.length)).replace(`{{tools}}`,String(oe(e)))}),(0,z.jsx)(s,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":!0})]})]},e.id)})}),(0,z.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center justify-between gap-3 border-t border-edge-subtle pt-3`,children:[(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:t.paginationSummary.replace(`{{from}}`,String((Q-1)*K+1)).replace(`{{to}}`,String(Math.min(Q*K,Z.length))).replace(`{{total}}`,String(Z.length))}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsx)(w,{variant:`ghost`,className:`size-9 p-0`,"aria-label":t.previousPage,disabled:Q<=1,onClick:()=>B(e=>Math.max(1,e-1)),children:(0,z.jsx)(o,{className:`size-4`,"aria-hidden":!0})}),(0,z.jsx)(w,{variant:`ghost`,className:`size-9 p-0`,"aria-label":t.nextPage,disabled:Q>=Ie,onClick:()=>B(e=>Math.min(Ie,e+1)),children:(0,z.jsx)(s,{className:`size-4`,"aria-hidden":!0})})]})]})]})]}),(0,z.jsxs)(P,{id:`activity`,activeTab:l,tabIdPrefix:`endpoint-management-tab`,panelIdPrefix:`endpoint-management-panel`,title:t.callsTitle,hint:t.callsHint,children:[(0,z.jsxs)(`div`,{className:`mb-4 grid gap-2 sm:grid-cols-2 lg:grid-cols-4`,children:[(0,z.jsxs)(`label`,{className:`relative block sm:col-span-2 lg:col-span-1`,children:[(0,z.jsx)(`span`,{className:`sr-only`,children:t.searchActivity}),(0,z.jsx)(u,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),(0,z.jsx)(`input`,{type:`search`,"aria-label":t.searchActivity,value:de,placeholder:t.searchActivity,className:`h-10 w-full rounded-lg border border-edge bg-surface-inset pl-9 pr-3 text-base text-fg placeholder:text-fg-subtle focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent sm:text-sm`,onChange:e=>{W(e.target.value),q(1)}})]}),(0,z.jsx)(c,{value:me,options:X.map(e=>({value:e.id,label:`${e.displayName} · ${le(e.id)}`})),placeholder:t.allDevices,emptyLabel:t.allDevices,ariaLabel:t.deviceLabel,onChange:e=>{he(e),q(1)}}),(0,z.jsx)(c,{value:G,options:[{value:`running`,label:t.status.running},{value:`succeeded`,label:t.status.succeeded},{value:`failed`,label:t.status.failed}],placeholder:t.allStatuses,emptyLabel:t.allStatuses,ariaLabel:t.statusLabel,onChange:e=>{we(e),q(1)}}),(0,z.jsx)(c,{value:Ee,options:[{value:`read`,label:t.effects.read},{value:`write`,label:t.effects.write},{value:`destructive`,label:t.effects.destructive}],placeholder:t.allEffects,emptyLabel:t.allEffects,ariaLabel:t.effectLabel,onChange:e=>{De(e),q(1)}})]}),Y.isLoading&&!Y.data?(0,z.jsx)(I,{sections:1}):null,je.length===0&&!Y.isLoading?(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.noMatchingCalls}):null,(0,z.jsx)(`div`,{className:`space-y-2`,children:je.map(e=>(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 rounded-lg bg-surface-base/55 px-3 py-2.5`,children:[(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`p`,{className:`break-all text-sm font-medium text-fg`,children:e.toolName}),(0,z.jsxs)(`p`,{className:`mt-0.5 text-xs text-fg-muted`,children:[Ae.format(e.startedAt),` · `,t.effects[e.effect],` · `,e.endpointId]}),e.errorMessage?(0,z.jsx)(`p`,{className:`mt-1 text-xs text-danger`,children:e.errorMessage}):null]}),(0,z.jsx)(Te,{status:e.status,label:t.status[e.status]})]},e.id))}),Y.data&&Y.data.total>0?(0,z.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center justify-between gap-3 border-t border-edge-subtle pt-3`,children:[(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:t.paginationSummary.replace(`{{from}}`,String((Y.data.page-1)*Y.data.pageSize+1)).replace(`{{to}}`,String(Math.min(Y.data.page*Y.data.pageSize,Y.data.total))).replace(`{{total}}`,String(Y.data.total))}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsx)(w,{variant:`ghost`,className:`size-9 p-0`,"aria-label":t.previousPage,disabled:Y.data.page<=1,onClick:()=>q(e=>Math.max(1,e-1)),children:(0,z.jsx)(o,{className:`size-4`,"aria-hidden":!0})}),(0,z.jsx)(w,{variant:`ghost`,className:`size-9 p-0`,"aria-label":t.nextPage,disabled:Y.data.page>=Y.data.totalPages,onClick:()=>q(e=>Math.min(Y.data.totalPages,e+1)),children:(0,z.jsx)(s,{className:`size-4`,"aria-hidden":!0})})]})]}):null]}),(0,z.jsx)(ue,{device:d,busy:_,onRename:async(e,t)=>{await xe(e.id,t,e.settingsRevision??0),p((await J.mutate())?.find(t=>t.id===e.id)??null)},onClose:()=>p(null),onRevoke:e=>{p(null),b(!1),g([e])}}),(0,z.jsx)(ie,{open:h.length>0,title:h.length>1?t.removeManyTitle:t.removeTitle,description:`${h.length>1?t.removeManyDescription.replace(`{{count}}`,String(h.length)):t.removeDescription.replace(`{{name}}`,h[0]?.displayName??``)}${y?`\n\n${t.revokeError}`:``}`,confirmLabel:_?t.revoking:t.removeDevice,cancelLabel:t.cancel,destructive:!0,onConfirm:()=>void Ve(),onCancel:()=>{_||g([])}})]})}export{Ee as EndpointToolsManagementSettings};
|
package/dist/gateway/static/root/assets/{markdown-view-DHfQAvZQ.js → markdown-view-CBjl-XEc.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{d as i,p as a}from"./chunk-KS7C4IRE--EKdQGRF.js";import{t as o}from"./createLucideIcon-DPHK1VkS.js";import{t as s}from"./download-Dk-ZjtO6.js";import{t as c}from"./plus-Q2yW6OE7.js";import{t as l}from"./x-B_N4OPjy.js";import{t as u}from"./messages-DTqbfje6.js";import{t as d}from"./cn-0WouolD0.js";import{n as f}from"./locale-store-uRu_DsWm.js";import{a as p,n as m,o as h,r as g,s as _,t as v}from"./dist-BGTk37IG.js";import{n as y,r as b,t as x}from"./app-link-4gpFbdsr.js";import{t as S}from"./copy-to-clipboard-HOJ79TWv.js";import{a as C,c as ee,i as te,l as w,n as ne,o as re,r as T,s as ie,t as ae}from"./xml-_d7dTN2Q.js";import{n as oe}from"./mermaid-render-604gISVe.js";var se=o(`file-image`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`circle`,{cx:`10`,cy:`12`,r:`2`,key:`737tya`}],[`path`,{d:`m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22`,key:`wt3hpn`}]]),ce=o(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),le=o(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]);function ue(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function de(e){if(Array.isArray(e))return e}function fe(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t!==0)for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function pe(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
2
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function me(e,t){return de(e)||fe(e,t)||he(e,t)||pe()}function he(e,t){if(e){if(typeof e==`string`)return ue(e,t);var n={}.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ue(e,t):void 0}}var ge=Object.entries,_e=Object.setPrototypeOf,E=Object.isFrozen,ve=Object.getPrototypeOf,ye=Object.getOwnPropertyDescriptor,be=Object.freeze,xe=Object.seal,Se=Object.create,Ce=typeof Reflect<`u`&&Reflect,we=Ce.apply,Te=Ce.construct;be||=function(e){return e},xe||=function(e){return e},we||=function(e,t){var n=[...arguments].slice(2);return e.apply(t,n)},Te||=function(e){return new e(...[...arguments].slice(1))};var Ee=Ke(Array.prototype.forEach),De=Ke(Array.prototype.lastIndexOf),Oe=Ke(Array.prototype.pop),ke=Ke(Array.prototype.push),Ae=Ke(Array.prototype.splice),je=Array.isArray,Me=Ke(String.prototype.toLowerCase),Ne=Ke(String.prototype.toString),Pe=Ke(String.prototype.match),Fe=Ke(String.prototype.replace),Ie=Ke(String.prototype.indexOf),Le=Ke(String.prototype.trim),Re=Ke(Number.prototype.toString),ze=Ke(Boolean.prototype.toString),Be=typeof BigInt>`u`?null:Ke(BigInt.prototype.toString),Ve=typeof Symbol>`u`?null:Ke(Symbol.prototype.toString),He=Ke(Object.prototype.hasOwnProperty),Ue=Ke(Object.prototype.toString),We=Ke(RegExp.prototype.test),Ge=qe(TypeError);function Ke(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);var n=[...arguments].slice(1);return we(e,t,n)}}function qe(e){return function(){return Te(e,[...arguments])}}function D(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Me;if(_e&&_e(e,null),!je(t))return e;let r=t.length;for(;r--;){let i=t[r];if(typeof i==`string`){let e=n(i);e!==i&&(E(t)||(t[r]=e),i=e)}e[i]=!0}return e}function Je(e){for(let t=0;t<e.length;t++)He(e,t)||(e[t]=null);return e}function Ye(e){let t=Se(null);for(let r of ge(e)){var n=me(r,2);let i=n[0],a=n[1];He(e,i)&&(je(a)?t[i]=Je(a):a&&typeof a==`object`&&a.constructor===Object?t[i]=Ye(a):t[i]=a)}return t}function Xe(e){switch(typeof e){case`string`:return e;case`number`:return Re(e);case`boolean`:return ze(e);case`bigint`:return Be?Be(e):`0`;case`symbol`:return Ve?Ve(e):`Symbol()`;case`undefined`:return Ue(e);case`function`:case`object`:{if(e===null)return Ue(e);let t=e,n=Ze(t,`toString`);if(typeof n==`function`){let e=n(t);return typeof e==`string`?e:Ue(e)}return Ue(e)}default:return Ue(e)}}function Ze(e,t){for(;e!==null;){let n=ye(e,t);if(n){if(n.get)return Ke(n.get);if(typeof n.value==`function`)return Ke(n.value)}e=ve(e)}function n(){return null}return n}function Qe(e){try{return We(e,``),!0}catch{return!1}}var $e=be(`a.abbr.acronym.address.area.article.aside.audio.b.bdi.bdo.big.blink.blockquote.body.br.button.canvas.caption.center.cite.code.col.colgroup.content.data.datalist.dd.decorator.del.details.dfn.dialog.dir.div.dl.dt.element.em.fieldset.figcaption.figure.font.footer.form.h1.h2.h3.h4.h5.h6.head.header.hgroup.hr.html.i.img.input.ins.kbd.label.legend.li.main.map.mark.marquee.menu.menuitem.meter.nav.nobr.ol.optgroup.option.output.p.picture.pre.progress.q.rp.rt.ruby.s.samp.search.section.select.shadow.slot.small.source.spacer.span.strike.strong.style.sub.summary.sup.table.tbody.td.template.textarea.tfoot.th.thead.time.tr.track.tt.u.ul.var.video.wbr`.split(`.`)),et=be(`svg.a.altglyph.altglyphdef.altglyphitem.animatecolor.animatemotion.animatetransform.circle.clippath.defs.desc.ellipse.enterkeyhint.exportparts.filter.font.g.glyph.glyphref.hkern.image.inputmode.line.lineargradient.marker.mask.metadata.mpath.part.path.pattern.polygon.polyline.radialgradient.rect.stop.style.switch.symbol.text.textpath.title.tref.tspan.view.vkern`.split(`.`)),tt=be([`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feDistantLight`,`feDropShadow`,`feFlood`,`feFuncA`,`feFuncB`,`feFuncG`,`feFuncR`,`feGaussianBlur`,`feImage`,`feMerge`,`feMergeNode`,`feMorphology`,`feOffset`,`fePointLight`,`feSpecularLighting`,`feSpotLight`,`feTile`,`feTurbulence`]),nt=be([`animate`,`color-profile`,`cursor`,`discard`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`foreignobject`,`hatch`,`hatchpath`,`mesh`,`meshgradient`,`meshpatch`,`meshrow`,`missing-glyph`,`script`,`set`,`solidcolor`,`unknown`,`use`]),rt=be(`math.menclose.merror.mfenced.mfrac.mglyph.mi.mlabeledtr.mmultiscripts.mn.mo.mover.mpadded.mphantom.mroot.mrow.ms.mspace.msqrt.mstyle.msub.msup.msubsup.mtable.mtd.mtext.mtr.munder.munderover.mprescripts`.split(`.`)),it=be([`maction`,`maligngroup`,`malignmark`,`mlongdiv`,`mscarries`,`mscarry`,`msgroup`,`mstack`,`msline`,`msrow`,`semantics`,`annotation`,`annotation-xml`,`mprescripts`,`none`]),at=be([`#text`]),ot=be(`accept.action.align.alt.autocapitalize.autocomplete.autopictureinpicture.autoplay.background.bgcolor.border.capture.cellpadding.cellspacing.checked.cite.class.clear.color.cols.colspan.command.commandfor.controls.controlslist.coords.crossorigin.datetime.decoding.default.dir.disabled.disablepictureinpicture.disableremoteplayback.download.draggable.enctype.enterkeyhint.exportparts.face.for.headers.height.hidden.high.href.hreflang.id.inert.inputmode.integrity.ismap.kind.label.lang.list.loading.loop.low.max.maxlength.media.method.min.minlength.multiple.muted.name.nonce.noshade.novalidate.nowrap.open.optimum.part.pattern.placeholder.playsinline.popover.popovertarget.popovertargetaction.poster.preload.pubdate.radiogroup.readonly.rel.required.rev.reversed.role.rows.rowspan.spellcheck.scope.selected.shape.size.sizes.slot.span.srclang.start.src.srcset.step.style.summary.tabindex.title.translate.type.usemap.valign.value.width.wrap.xmlns`.split(`.`)),st=be(`accent-height.accumulate.additive.alignment-baseline.amplitude.ascent.attributename.attributetype.azimuth.basefrequency.baseline-shift.begin.bias.by.class.clip.clippathunits.clip-path.clip-rule.color.color-interpolation.color-interpolation-filters.color-profile.color-rendering.cx.cy.d.dx.dy.diffuseconstant.direction.display.divisor.dur.edgemode.elevation.end.exponent.fill.fill-opacity.fill-rule.filter.filterunits.flood-color.flood-opacity.font-family.font-size.font-size-adjust.font-stretch.font-style.font-variant.font-weight.fx.fy.g1.g2.glyph-name.glyphref.gradientunits.gradienttransform.height.href.id.image-rendering.in.in2.intercept.k.k1.k2.k3.k4.kerning.keypoints.keysplines.keytimes.lang.lengthadjust.letter-spacing.kernelmatrix.kernelunitlength.lighting-color.local.marker-end.marker-mid.marker-start.markerheight.markerunits.markerwidth.maskcontentunits.maskunits.max.mask.mask-type.media.method.mode.min.name.numoctaves.offset.operator.opacity.order.orient.orientation.origin.overflow.paint-order.path.pathlength.patterncontentunits.patterntransform.patternunits.points.preservealpha.preserveaspectratio.primitiveunits.r.rx.ry.radius.refx.refy.repeatcount.repeatdur.restart.result.rotate.scale.seed.shape-rendering.slope.specularconstant.specularexponent.spreadmethod.startoffset.stddeviation.stitchtiles.stop-color.stop-opacity.stroke-dasharray.stroke-dashoffset.stroke-linecap.stroke-linejoin.stroke-miterlimit.stroke-opacity.stroke.stroke-width.style.surfacescale.systemlanguage.tabindex.tablevalues.targetx.targety.transform.transform-origin.text-anchor.text-decoration.text-rendering.textlength.type.u1.u2.unicode.values.viewbox.visibility.version.vert-adv-y.vert-origin-x.vert-origin-y.width.word-spacing.wrap.writing-mode.xchannelselector.ychannelselector.x.x1.x2.xmlns.y.y1.y2.z.zoomandpan`.split(`.`)),ct=be(`accent.accentunder.align.bevelled.close.columnalign.columnlines.columnspacing.columnspan.denomalign.depth.dir.display.displaystyle.encoding.fence.frame.height.href.id.largeop.length.linethickness.lquote.lspace.mathbackground.mathcolor.mathsize.mathvariant.maxsize.minsize.movablelimits.notation.numalign.open.rowalign.rowlines.rowspacing.rowspan.rspace.rquote.scriptlevel.scriptminsize.scriptsizemultiplier.selection.separator.separators.stretchy.subscriptshift.supscriptshift.symmetric.voffset.width.xmlns`.split(`.`)),lt=be([`xlink:href`,`xml:id`,`xlink:title`,`xml:space`,`xmlns:xlink`]),ut=xe(/{{[\w\W]*|^[\w\W]*}}/g),dt=xe(/<%[\w\W]*|^[\w\W]*%>/g),ft=xe(/\${[\w\W]*/g),pt=xe(/^data-[\-\w.\u00B7-\uFFFF]+$/),mt=xe(/^aria-[\-\w]+$/),ht=xe(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),gt=xe(/^(?:\w+script|data):/i),_t=xe(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),vt=xe(/^html$/i),yt=xe(/^[a-z][.\w]*(-[.\w]+)+$/i),bt={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},xt=function(){return typeof window>`u`?null:window},St=function(e,t){if(typeof e!=`object`||typeof e.createPolicy!=`function`)return null;let n=null,r=`data-tt-policy-suffix`;t&&t.hasAttribute(r)&&(n=t.getAttribute(r));let i=`dompurify`+(n?`#`+n:``);try{return e.createPolicy(i,{createHTML(e){return e},createScriptURL(e){return e}})}catch{return console.warn(`TrustedTypes policy `+i+` could not be created.`),null}},Ct=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function wt(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:xt(),t=e=>wt(e);if(t.version=`3.4.7`,t.removed=[],!e||!e.document||e.document.nodeType!==bt.document||!e.Element)return t.isSupported=!1,t;let n=e.document,r=n,i=r.currentScript;e.DocumentFragment;let a=e.HTMLTemplateElement,o=e.Node,s=e.Element,c=e.NodeFilter;e.NamedNodeMap===void 0&&(e.NamedNodeMap||e.MozNamedAttrMap),e.HTMLFormElement;let l=e.DOMParser,u=e.trustedTypes,d=s.prototype,f=Ze(d,`cloneNode`),p=Ze(d,`remove`),m=Ze(d,`nextSibling`),h=Ze(d,`childNodes`),g=Ze(d,`parentNode`),_=Ze(d,`shadowRoot`),v=Ze(d,`attributes`),y=o&&o.prototype?Ze(o.prototype,`nodeType`):null,b=o&&o.prototype?Ze(o.prototype,`nodeName`):null;if(typeof a==`function`){let e=n.createElement(`template`);e.content&&e.content.ownerDocument&&(n=e.content.ownerDocument)}let x,S=``,C=n,ee=C.implementation,te=C.createNodeIterator,w=C.createDocumentFragment,ne=C.getElementsByTagName,re=r.importNode,T=Ct();t.isSupported=typeof ge==`function`&&typeof g==`function`&&ee&&ee.createHTMLDocument!==void 0;let ie=ut,ae=dt,oe=ft,se=pt,ce=mt,le=gt,ue=_t,de=yt,fe=ht,pe=null,me=D({},[...$e,...et,...tt,...rt,...at]),he=null,_e=D({},[...ot,...st,...ct,...lt]),E=Object.seal(Se(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ve=null,ye=null,xe=Object.seal(Se(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),Ce=!0,we=!0,Te=!1,Re=!0,ze=!1,Be=!0,Ve=!1,Ue=!1,Ke=!1,qe=!1,Je=!1,Tt=!1,Et=!0,Dt=!1,Ot=`user-content-`,kt=!0,O=!1,At={},jt=null,Mt=D({},[`annotation-xml`,`audio`,`colgroup`,`desc`,`foreignobject`,`head`,`iframe`,`math`,`mi`,`mn`,`mo`,`ms`,`mtext`,`noembed`,`noframes`,`noscript`,`plaintext`,`script`,`style`,`svg`,`template`,`thead`,`title`,`video`,`xmp`]),Nt=null,Pt=D({},[`audio`,`video`,`img`,`source`,`image`,`track`]),Ft=null,It=D({},[`alt`,`class`,`for`,`id`,`label`,`name`,`pattern`,`placeholder`,`role`,`summary`,`title`,`value`,`style`,`xmlns`]),Lt=`http://www.w3.org/1998/Math/MathML`,Rt=`http://www.w3.org/2000/svg`,zt=`http://www.w3.org/1999/xhtml`,Bt=zt,Vt=!1,Ht=null,Ut=D({},[Lt,Rt,zt],Ne),Wt=D({},[`mi`,`mo`,`mn`,`ms`,`mtext`]),Gt=D({},[`annotation-xml`]),Kt=D({},[`title`,`style`,`font`,`a`,`script`]),qt=null,Jt=[`application/xhtml+xml`,`text/html`],Yt=null,Xt=null,Zt=n.createElement(`form`),Qt=function(e){return e instanceof RegExp||e instanceof Function},$t=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(Xt&&Xt===e)return;(!e||typeof e!=`object`)&&(e={}),e=Ye(e),qt=Jt.indexOf(e.PARSER_MEDIA_TYPE)===-1?`text/html`:e.PARSER_MEDIA_TYPE,Yt=qt===`application/xhtml+xml`?Ne:Me,pe=He(e,`ALLOWED_TAGS`)&&je(e.ALLOWED_TAGS)?D({},e.ALLOWED_TAGS,Yt):me,he=He(e,`ALLOWED_ATTR`)&&je(e.ALLOWED_ATTR)?D({},e.ALLOWED_ATTR,Yt):_e,Ht=He(e,`ALLOWED_NAMESPACES`)&&je(e.ALLOWED_NAMESPACES)?D({},e.ALLOWED_NAMESPACES,Ne):Ut,Ft=He(e,`ADD_URI_SAFE_ATTR`)&&je(e.ADD_URI_SAFE_ATTR)?D(Ye(It),e.ADD_URI_SAFE_ATTR,Yt):It,Nt=He(e,`ADD_DATA_URI_TAGS`)&&je(e.ADD_DATA_URI_TAGS)?D(Ye(Pt),e.ADD_DATA_URI_TAGS,Yt):Pt,jt=He(e,`FORBID_CONTENTS`)&&je(e.FORBID_CONTENTS)?D({},e.FORBID_CONTENTS,Yt):Mt,ve=He(e,`FORBID_TAGS`)&&je(e.FORBID_TAGS)?D({},e.FORBID_TAGS,Yt):Ye({}),ye=He(e,`FORBID_ATTR`)&&je(e.FORBID_ATTR)?D({},e.FORBID_ATTR,Yt):Ye({}),At=He(e,`USE_PROFILES`)?e.USE_PROFILES&&typeof e.USE_PROFILES==`object`?Ye(e.USE_PROFILES):e.USE_PROFILES:!1,Ce=e.ALLOW_ARIA_ATTR!==!1,we=e.ALLOW_DATA_ATTR!==!1,Te=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Re=e.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ze=e.SAFE_FOR_TEMPLATES||!1,Be=e.SAFE_FOR_XML!==!1,Ve=e.WHOLE_DOCUMENT||!1,qe=e.RETURN_DOM||!1,Je=e.RETURN_DOM_FRAGMENT||!1,Tt=e.RETURN_TRUSTED_TYPE||!1,Ke=e.FORCE_BODY||!1,Et=e.SANITIZE_DOM!==!1,Dt=e.SANITIZE_NAMED_PROPS||!1,kt=e.KEEP_CONTENT!==!1,O=e.IN_PLACE||!1,fe=Qe(e.ALLOWED_URI_REGEXP)?e.ALLOWED_URI_REGEXP:ht,Bt=typeof e.NAMESPACE==`string`?e.NAMESPACE:zt,Wt=He(e,`MATHML_TEXT_INTEGRATION_POINTS`)&&e.MATHML_TEXT_INTEGRATION_POINTS&&typeof e.MATHML_TEXT_INTEGRATION_POINTS==`object`?Ye(e.MATHML_TEXT_INTEGRATION_POINTS):D({},[`mi`,`mo`,`mn`,`ms`,`mtext`]),Gt=He(e,`HTML_INTEGRATION_POINTS`)&&e.HTML_INTEGRATION_POINTS&&typeof e.HTML_INTEGRATION_POINTS==`object`?Ye(e.HTML_INTEGRATION_POINTS):D({},[`annotation-xml`]);let t=He(e,`CUSTOM_ELEMENT_HANDLING`)&&e.CUSTOM_ELEMENT_HANDLING&&typeof e.CUSTOM_ELEMENT_HANDLING==`object`?Ye(e.CUSTOM_ELEMENT_HANDLING):Se(null);if(E=Se(null),He(t,`tagNameCheck`)&&Qt(t.tagNameCheck)&&(E.tagNameCheck=t.tagNameCheck),He(t,`attributeNameCheck`)&&Qt(t.attributeNameCheck)&&(E.attributeNameCheck=t.attributeNameCheck),He(t,`allowCustomizedBuiltInElements`)&&typeof t.allowCustomizedBuiltInElements==`boolean`&&(E.allowCustomizedBuiltInElements=t.allowCustomizedBuiltInElements),ze&&(we=!1),Je&&(qe=!0),At&&(pe=D({},at),he=Se(null),At.html===!0&&(D(pe,$e),D(he,ot)),At.svg===!0&&(D(pe,et),D(he,st),D(he,lt)),At.svgFilters===!0&&(D(pe,tt),D(he,st),D(he,lt)),At.mathMl===!0&&(D(pe,rt),D(he,ct),D(he,lt))),xe.tagCheck=null,xe.attributeCheck=null,He(e,`ADD_TAGS`)&&(typeof e.ADD_TAGS==`function`?xe.tagCheck=e.ADD_TAGS:je(e.ADD_TAGS)&&(pe===me&&(pe=Ye(pe)),D(pe,e.ADD_TAGS,Yt))),He(e,`ADD_ATTR`)&&(typeof e.ADD_ATTR==`function`?xe.attributeCheck=e.ADD_ATTR:je(e.ADD_ATTR)&&(he===_e&&(he=Ye(he)),D(he,e.ADD_ATTR,Yt))),He(e,`ADD_URI_SAFE_ATTR`)&&je(e.ADD_URI_SAFE_ATTR)&&D(Ft,e.ADD_URI_SAFE_ATTR,Yt),He(e,`FORBID_CONTENTS`)&&je(e.FORBID_CONTENTS)&&(jt===Mt&&(jt=Ye(jt)),D(jt,e.FORBID_CONTENTS,Yt)),He(e,`ADD_FORBID_CONTENTS`)&&je(e.ADD_FORBID_CONTENTS)&&(jt===Mt&&(jt=Ye(jt)),D(jt,e.ADD_FORBID_CONTENTS,Yt)),kt&&(pe[`#text`]=!0),Ve&&D(pe,[`html`,`head`,`body`]),pe.table&&(D(pe,[`tbody`]),delete ve.tbody),e.TRUSTED_TYPES_POLICY){if(typeof e.TRUSTED_TYPES_POLICY.createHTML!=`function`)throw Ge(`TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.`);if(typeof e.TRUSTED_TYPES_POLICY.createScriptURL!=`function`)throw Ge(`TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.`);x=e.TRUSTED_TYPES_POLICY,S=x.createHTML(``)}else x===void 0&&(x=St(u,i)),x!==null&&typeof S==`string`&&(S=x.createHTML(``));(T.uponSanitizeElement.length>0||T.uponSanitizeAttribute.length>0)&&pe===me&&(pe=Ye(pe)),T.uponSanitizeAttribute.length>0&&he===_e&&(he=Ye(he)),be&&be(e),Xt=e},en=D({},[...et,...tt,...nt]),tn=D({},[...rt,...it]),nn=function(e){let t=g(e);(!t||!t.tagName)&&(t={namespaceURI:Bt,tagName:`template`});let n=Me(e.tagName),r=Me(t.tagName);return Ht[e.namespaceURI]?e.namespaceURI===Rt?t.namespaceURI===zt?n===`svg`:t.namespaceURI===Lt?n===`svg`&&(r===`annotation-xml`||Wt[r]):!!en[n]:e.namespaceURI===Lt?t.namespaceURI===zt?n===`math`:t.namespaceURI===Rt?n===`math`&&Gt[r]:!!tn[n]:e.namespaceURI===zt?t.namespaceURI===Rt&&!Gt[r]||t.namespaceURI===Lt&&!Wt[r]?!1:!tn[n]&&(Kt[n]||!en[n]):!!(qt===`application/xhtml+xml`&&Ht[e.namespaceURI]):!1},rn=function(e){ke(t.removed,{element:e});try{g(e).removeChild(e)}catch{p(e)}},an=function(e,n){try{ke(t.removed,{attribute:n.getAttributeNode(e),from:n})}catch{ke(t.removed,{attribute:null,from:n})}if(n.removeAttribute(e),e===`is`)if(qe||Je)try{rn(n)}catch{}else try{n.setAttribute(e,``)}catch{}},on=function(e){let t=null,r=null;if(Ke)e=`<remove></remove>`+e;else{let t=Pe(e,/^[\r\n\t ]+/);r=t&&t[0]}qt===`application/xhtml+xml`&&Bt===zt&&(e=`<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>`+e+`</body></html>`);let i=x?x.createHTML(e):e;if(Bt===zt)try{t=new l().parseFromString(i,qt)}catch{}if(!t||!t.documentElement){t=ee.createDocument(Bt,`template`,null);try{t.documentElement.innerHTML=Vt?S:i}catch{}}let a=t.body||t.documentElement;return e&&r&&a.insertBefore(n.createTextNode(r),a.childNodes[0]||null),Bt===zt?ne.call(t,Ve?`html`:`body`)[0]:Ve?t.documentElement:a},sn=function(e){return te.call(e.ownerDocument||e,e,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},cn=function(e){e.normalize();let t=te.call(e.ownerDocument||e,e,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),n=t.nextNode();for(;n;){let e=n.data;Ee([ie,ae,oe],t=>{e=Fe(e,t,` `)}),n.data=e,n=t.nextNode()}},ln=function(e){let t=b?b(e):null;return typeof t!=`string`||Yt(t)!==`form`?!1:typeof e.nodeName!=`string`||typeof e.textContent!=`string`||typeof e.removeChild!=`function`||e.attributes!==v(e)||typeof e.removeAttribute!=`function`||typeof e.setAttribute!=`function`||typeof e.namespaceURI!=`string`||typeof e.insertBefore!=`function`||typeof e.hasChildNodes!=`function`||e.nodeType!==y(e)||e.childNodes!==h(e)},un=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return y(e)===bt.documentFragment}catch{return!1}},dn=function(e){if(!y||typeof e!=`object`||!e)return!1;try{return typeof y(e)==`number`}catch{return!1}};function fn(e,n,r){Ee(e,e=>{e.call(t,n,r,Xt)})}let pn=function(e){let n=null;if(fn(T.beforeSanitizeElements,e,null),ln(e))return rn(e),!0;let r=Yt(e.nodeName);if(fn(T.uponSanitizeElement,e,{tagName:r,allowedTags:pe}),Be&&e.hasChildNodes()&&!dn(e.firstElementChild)&&We(/<[/\w!]/g,e.innerHTML)&&We(/<[/\w!]/g,e.textContent)||Be&&e.namespaceURI===zt&&r===`style`&&dn(e.firstElementChild)||e.nodeType===bt.progressingInstruction||Be&&e.nodeType===bt.comment&&We(/<[/\w]/g,e.data))return rn(e),!0;if(ve[r]||!(xe.tagCheck instanceof Function&&xe.tagCheck(r))&&!pe[r]){if(!ve[r]&&hn(r)&&(E.tagNameCheck instanceof RegExp&&We(E.tagNameCheck,r)||E.tagNameCheck instanceof Function&&E.tagNameCheck(r)))return!1;if(kt&&!jt[r]){let t=g(e),n=h(e);if(n&&t){let r=n.length;for(let i=r-1;i>=0;--i){let r=f(n[i],!0);t.insertBefore(r,m(e))}}}return rn(e),!0}return(y?y(e):e.nodeType)===bt.element&&!nn(e)||(r===`noscript`||r===`noembed`||r===`noframes`)&&We(/<\/no(script|embed|frames)/i,e.innerHTML)?(rn(e),!0):(ze&&e.nodeType===bt.text&&(n=e.textContent,Ee([ie,ae,oe],e=>{n=Fe(n,e,` `)}),e.textContent!==n&&(ke(t.removed,{element:e.cloneNode()}),e.textContent=n)),fn(T.afterSanitizeElements,e,null),!1)},k=function(e,t,r){if(ye[t]||Et&&(t===`id`||t===`name`)&&(r in n||r in Zt))return!1;let i=he[t]||xe.attributeCheck instanceof Function&&xe.attributeCheck(t,e);if(!(we&&!ye[t]&&We(se,t))&&!(Ce&&We(ce,t))){if(!i||ye[t]){if(!(hn(e)&&(E.tagNameCheck instanceof RegExp&&We(E.tagNameCheck,e)||E.tagNameCheck instanceof Function&&E.tagNameCheck(e))&&(E.attributeNameCheck instanceof RegExp&&We(E.attributeNameCheck,t)||E.attributeNameCheck instanceof Function&&E.attributeNameCheck(t,e))||t===`is`&&E.allowCustomizedBuiltInElements&&(E.tagNameCheck instanceof RegExp&&We(E.tagNameCheck,r)||E.tagNameCheck instanceof Function&&E.tagNameCheck(r))))return!1}else if(!Ft[t]&&!We(fe,Fe(r,ue,``))&&!((t===`src`||t===`xlink:href`||t===`href`)&&e!==`script`&&Ie(r,`data:`)===0&&Nt[e])&&!(Te&&!We(le,Fe(r,ue,``)))&&r)return!1}return!0},mn=D({},[`annotation-xml`,`color-profile`,`font-face`,`font-face-format`,`font-face-name`,`font-face-src`,`font-face-uri`,`missing-glyph`]),hn=function(e){return!mn[Me(e)]&&We(de,e)},gn=function(e){fn(T.beforeSanitizeAttributes,e,null);let n=e.attributes;if(!n||ln(e))return;let r={attrName:``,attrValue:``,keepAttr:!0,allowedAttributes:he,forceKeepAttr:void 0},i=n.length;for(;i--;){let a=n[i],o=a.name,s=a.namespaceURI,c=a.value,l=Yt(o),d=c,f=o===`value`?d:Le(d);if(r.attrName=l,r.attrValue=f,r.keepAttr=!0,r.forceKeepAttr=void 0,fn(T.uponSanitizeAttribute,e,r),f=r.attrValue,Dt&&(l===`id`||l===`name`)&&Ie(f,Ot)!==0&&(an(o,e),f=Ot+f),Be&&We(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,f)){an(o,e);continue}if(l===`attributename`&&Pe(f,`href`)){an(o,e);continue}if(r.forceKeepAttr)continue;if(!r.keepAttr){an(o,e);continue}if(!Re&&We(/\/>/i,f)){an(o,e);continue}ze&&Ee([ie,ae,oe],e=>{f=Fe(f,e,` `)});let p=Yt(e.nodeName);if(!k(p,l,f)){an(o,e);continue}if(x&&typeof u==`object`&&typeof u.getAttributeType==`function`&&!s)switch(u.getAttributeType(p,l)){case`TrustedHTML`:f=x.createHTML(f);break;case`TrustedScriptURL`:f=x.createScriptURL(f);break}if(f!==d)try{s?e.setAttributeNS(s,o,f):e.setAttribute(o,f),ln(e)?rn(e):Oe(t.removed)}catch{an(o,e)}}fn(T.afterSanitizeAttributes,e,null)},_n=function(e){let t=null,n=sn(e);for(fn(T.beforeSanitizeShadowDOM,e,null);t=n.nextNode();)if(fn(T.uponSanitizeShadowNode,t,null),pn(t),gn(t),un(t.content)&&_n(t.content),(y?y(t):t.nodeType)===bt.element){let e=_?_(t):t.shadowRoot;un(e)&&(vn(e),_n(e))}fn(T.afterSanitizeShadowDOM,e,null)},vn=function(e){let t=y?y(e):e.nodeType;if(t===bt.element){let t=_?_(e):e.shadowRoot;un(t)&&(vn(t),_n(t))}let n=h?h(e):e.childNodes;if(!n)return;let r=[];Ee(n,e=>{ke(r,e)});for(let e of r)vn(e);if(t===bt.element){let t=b?b(e):null;if(typeof t==`string`&&Yt(t)===`template`){let t=e.content;un(t)&&vn(t)}}};return t.sanitize=function(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=null,a=null,o=null,s=null;if(Vt=!e,Vt&&(e=`<!-->`),typeof e!=`string`&&!dn(e)&&(e=Xe(e),typeof e!=`string`))throw Ge(`dirty is not a string, aborting`);if(!t.isSupported)return e;if(Ue||$t(n),t.removed=[],typeof e==`string`&&(O=!1),O){let t=b?b(e):e.nodeName;if(typeof t==`string`){let e=Yt(t);if(!pe[e]||ve[e])throw Ge(`root node is forbidden and cannot be sanitized in-place`)}if(ln(e))throw Ge(`root node is clobbered and cannot be sanitized in-place`);vn(e)}else if(dn(e))i=on(`<!---->`),a=i.ownerDocument.importNode(e,!0),a.nodeType===bt.element&&a.nodeName===`BODY`||a.nodeName===`HTML`?i=a:i.appendChild(a),vn(a);else{if(!qe&&!ze&&!Ve&&e.indexOf(`<`)===-1)return x&&Tt?x.createHTML(e):e;if(i=on(e),!i)return qe?null:Tt?S:``}i&&Ke&&rn(i.firstChild);let c=sn(O?e:i);for(;o=c.nextNode();)pn(o),gn(o),un(o.content)&&_n(o.content);if(O)return ze&&cn(e),e;if(qe){if(ze&&cn(i),Je)for(s=w.call(i.ownerDocument);i.firstChild;)s.appendChild(i.firstChild);else s=i;return(he.shadowroot||he.shadowrootmode)&&(s=re.call(r,s,!0)),s}let l=Ve?i.outerHTML:i.innerHTML;return Ve&&pe[`!doctype`]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&We(vt,i.ownerDocument.doctype.name)&&(l=`<!DOCTYPE `+i.ownerDocument.doctype.name+`>
|
|
3
|
-
`+l),ze&&Ee([ie,ae,oe],e=>{l=Fe(l,e,` `)}),x&&Tt?x.createHTML(l):l},t.setConfig=function(){$t(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}),Ue=!0},t.clearConfig=function(){Xt=null,Ue=!1},t.isValidAttribute=function(e,t,n){return Xt||$t({}),k(Yt(e),Yt(t),n)},t.addHook=function(e,t){typeof t==`function`&&ke(T[e],t)},t.removeHook=function(e,t){if(t!==void 0){let n=De(T[e],t);return n===-1?void 0:Ae(T[e],n,1)[0]}return Oe(T[e])},t.removeHooks=function(e){T[e]=[]},t.removeAllHooks=function(){T=Ct()},t}var Tt=wt(),Et=[`base`,`button`,`embed`,`form`,`iframe`,`input`,`link`,`meta`,`object`,`option`,`select`,`style`,`template`,`textarea`],Dt=[`action`,`formaction`,`id`,`name`,`srcdoc`,`style`];function Ot(e){return Tt.sanitize(e,{USE_PROFILES:{html:!0},FORBID_TAGS:Et,FORBID_ATTR:Dt})}function kt(e){let t=e.replace(/@import\s+url\([^)]*\)\s*;?/gi,``);return Tt.sanitize(t,{USE_PROFILES:{html:!0,svg:!0,svgFilters:!0},FORBID_TAGS:[`foreignObject`,`script`],FORBID_ATTR:[`href`,`xlink:href`]})}var O=e(t(),1),At=n();function jt(e){return e===`/personal`||e===`/chat`||e.startsWith(`/chat/`)}function Mt(e,t,n){let r=e?.trim();if(!r||!r.startsWith(`/`)||r.startsWith(`//`)||r.includes(`://`)||r.includes(`\\`))return t;let i=r.split(/[?#]/,1)[0]||`/`;return n.some(e=>i===e||i.startsWith(`${e}/`))?r:t}function Nt(e,t){let n=t?.trim();if(!n)return e;let r=e.indexOf(`#`),i=r>=0?e.slice(0,r):e,a=r>=0?e.slice(r):``;return`${i}${i.includes(`?`)?`&`:`?`}returnTo=${encodeURIComponent(n)}${a}`}var Pt=[`/notes/`,`/tasks/`,`/projects/`];function Ft(e,t){let n=e.split(/[?#]/,1)[0]??``;if(!Pt.some(e=>n.startsWith(e)))return e;let r=e.slice(n.length).split(`#`,1)[0];return new URLSearchParams(r.startsWith(`?`)?r.slice(1):r).has(`returnTo`)?e:Nt(e,t)}var It=`note`;function Lt(e,t){let n=new URLSearchParams(t);n.delete(It);let r=n.toString();return r?`${e}?${r}`:e}function Rt(e,t){let[n,r=``]=e.split(`?`);if(!jt(n))return Ft(`/notes/${encodeURIComponent(t)}`,e);let i=new URLSearchParams(r);return i.delete(`task`),i.delete(`preview`),i.set(It,t),`${n}?${i.toString()}`}function zt(e,t){let n=/^\/notes\/([^/?#]+)(?:\?.*)?$/.exec(t);if(!n)return t;let r=new URLSearchParams(t.split(`?`)[1]??``);if(r.has(`edit`)||r.has(`action`))return t;try{return Rt(e,decodeURIComponent(n[1]))}catch{return Rt(e,n[1])}}var Bt=`task`;function Vt(e){return`/chat/task/${encodeURIComponent(e)}`}function Ht(e,t){let[n,r=``]=e.split(`?`),i=new URLSearchParams(r);return i.delete(`note`),i.delete(`preview`),i.set(Bt,t),`${n}?${i.toString()}`}function Ut(e,t){return e.split(`?`)[0]?.startsWith(`/tasks/`)?`/tasks/${encodeURIComponent(t)}`:Ht(e,t)}function Wt(e,t){let n=/^\/tasks\/([^/?#]+)/.exec(t);if(!n)return t;try{return Ut(e,decodeURIComponent(n[1]))}catch{return Ut(e,n[1])}}function Gt(e,t){let n=new URLSearchParams(t);n.delete(Bt);let r=n.toString();return r?`${e}?${r}`:e}var Kt=`preview`;function qt(e){if(!e.startsWith(`/`)||e.startsWith(`//`)||e.includes(`\\`)||e.includes(`#`))return null;let t=new URL(e,`https://xopc.local`);if([`edit`,`copy`,`action`,`draft`,`add`,`autogenerate`].some(e=>t.searchParams.has(e)))return null;let n,r,i;if(i=/^\/projects\/([^/]+)$/.exec(t.pathname))n=`project`,r=i[1];else if(i=/^\/workflows\/runs\/([^/]+)$/.exec(t.pathname))n=`workflow_run`,r=i[1];else if(i=/^\/workflows\/([^/]+)$/.exec(t.pathname))n=`workflow_definition`,r=i[1];else if(t.pathname===`/workflows`&&t.searchParams.get(`run`))n=`workflow_run`,r=encodeURIComponent(t.searchParams.get(`run`));else if(t.pathname===`/workflows`&&t.searchParams.get(`def`))n=`workflow_definition`,r=encodeURIComponent(t.searchParams.get(`def`));else if(t.pathname===`/automations`&&t.searchParams.get(`automation`))n=`automation`,r=encodeURIComponent(t.searchParams.get(`automation`));else if(i=/^\/local-apps\/([^/]+)$/.exec(t.pathname))n=`local_app`,r=i[1];else if(t.pathname===`/open`&&t.searchParams.get(`kind`)===`local_app`&&t.searchParams.get(`id`))n=`local_app`,r=encodeURIComponent(t.searchParams.get(`id`));else return null;let a;try{a=decodeURIComponent(r)}catch{return null}if(!a.trim()||n===`workflow_definition`&&a===`new`)return null;let o=t.searchParams.get(`agentId`)||t.searchParams.get(`agent`)||void 0,s=t.searchParams.get(`sourceHash`)||void 0,c=new URLSearchParams(t.searchParams);for(let e of[`run`,`def`,`agent`,`returnTo`])c.delete(e);o&&c.set(`agentId`,o);let l=n===`project`?`/projects/${encodeURIComponent(a)}`:n===`workflow_run`?`/workflows/runs/${encodeURIComponent(a)}`:n===`workflow_definition`?`/workflows/${encodeURIComponent(a)}`:n===`automation`?`/automations`:`/local-apps/${encodeURIComponent(a)}`;return n===`automation`&&c.set(`automation`,a),n===`local_app`&&(c.delete(`kind`),c.delete(`id`)),l+=c.size?`?${c.toString()}`:``,{kind:n,id:a,href:l,ownerAgentId:o,sourceHash:s}}function Jt(e,t){let n=new URLSearchParams(t);return n.delete(Kt),`${e}${n.size?`?${n.toString()}`:``}`}function Yt(e,t){let[n,r=``]=e.split(`?`),i=jt(n)?qt(t):null;if(!i)return zt(e,Wt(e,t));let a=new URLSearchParams(r);return a.delete(`note`),a.delete(`task`),a.set(Kt,i.href),`${n}?${a.toString()}`}function Xt(){let e=(0,At.c)(4),t=
|
|
3
|
+
`+l),ze&&Ee([ie,ae,oe],e=>{l=Fe(l,e,` `)}),x&&Tt?x.createHTML(l):l},t.setConfig=function(){$t(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}),Ue=!0},t.clearConfig=function(){Xt=null,Ue=!1},t.isValidAttribute=function(e,t,n){return Xt||$t({}),k(Yt(e),Yt(t),n)},t.addHook=function(e,t){typeof t==`function`&&ke(T[e],t)},t.removeHook=function(e,t){if(t!==void 0){let n=De(T[e],t);return n===-1?void 0:Ae(T[e],n,1)[0]}return Oe(T[e])},t.removeHooks=function(e){T[e]=[]},t.removeAllHooks=function(){T=Ct()},t}var Tt=wt(),Et=[`base`,`button`,`embed`,`form`,`iframe`,`input`,`link`,`meta`,`object`,`option`,`select`,`style`,`template`,`textarea`],Dt=[`action`,`formaction`,`id`,`name`,`srcdoc`,`style`];function Ot(e){return Tt.sanitize(e,{USE_PROFILES:{html:!0},FORBID_TAGS:Et,FORBID_ATTR:Dt})}function kt(e){let t=e.replace(/@import\s+url\([^)]*\)\s*;?/gi,``);return Tt.sanitize(t,{USE_PROFILES:{html:!0,svg:!0,svgFilters:!0},FORBID_TAGS:[`foreignObject`,`script`],FORBID_ATTR:[`href`,`xlink:href`]})}var O=e(t(),1),At=n();function jt(e){return e===`/personal`||e===`/chat`||e.startsWith(`/chat/`)}function Mt(e,t,n){let r=e?.trim();if(!r||!r.startsWith(`/`)||r.startsWith(`//`)||r.includes(`://`)||r.includes(`\\`))return t;let i=r.split(/[?#]/,1)[0]||`/`;return n.some(e=>i===e||i.startsWith(`${e}/`))?r:t}function Nt(e,t){let n=t?.trim();if(!n)return e;let r=e.indexOf(`#`),i=r>=0?e.slice(0,r):e,a=r>=0?e.slice(r):``;return`${i}${i.includes(`?`)?`&`:`?`}returnTo=${encodeURIComponent(n)}${a}`}var Pt=[`/notes/`,`/tasks/`,`/projects/`];function Ft(e,t){let n=e.split(/[?#]/,1)[0]??``;if(!Pt.some(e=>n.startsWith(e)))return e;let r=e.slice(n.length).split(`#`,1)[0];return new URLSearchParams(r.startsWith(`?`)?r.slice(1):r).has(`returnTo`)?e:Nt(e,t)}var It=`note`;function Lt(e,t){let n=new URLSearchParams(t);n.delete(It);let r=n.toString();return r?`${e}?${r}`:e}function Rt(e,t){let[n,r=``]=e.split(`?`);if(!jt(n))return Ft(`/notes/${encodeURIComponent(t)}`,e);let i=new URLSearchParams(r);return i.delete(`task`),i.delete(`preview`),i.set(It,t),`${n}?${i.toString()}`}function zt(e,t){let n=/^\/notes\/([^/?#]+)(?:\?.*)?$/.exec(t);if(!n)return t;let r=new URLSearchParams(t.split(`?`)[1]??``);if(r.has(`edit`)||r.has(`action`))return t;try{return Rt(e,decodeURIComponent(n[1]))}catch{return Rt(e,n[1])}}var Bt=`task`;function Vt(e){return`/chat/task/${encodeURIComponent(e)}`}function Ht(e,t){let[n,r=``]=e.split(`?`),i=new URLSearchParams(r);return i.delete(`note`),i.delete(`preview`),i.set(Bt,t),`${n}?${i.toString()}`}function Ut(e,t){return e.split(`?`)[0]?.startsWith(`/tasks/`)?`/tasks/${encodeURIComponent(t)}`:Ht(e,t)}function Wt(e,t){let n=/^\/tasks\/([^/?#]+)/.exec(t);if(!n)return t;try{return Ut(e,decodeURIComponent(n[1]))}catch{return Ut(e,n[1])}}function Gt(e,t){let n=new URLSearchParams(t);n.delete(Bt);let r=n.toString();return r?`${e}?${r}`:e}var Kt=`preview`;function qt(e){if(!e.startsWith(`/`)||e.startsWith(`//`)||e.includes(`\\`)||e.includes(`#`))return null;let t=new URL(e,`https://xopc.local`);if([`edit`,`copy`,`action`,`draft`,`add`,`autogenerate`].some(e=>t.searchParams.has(e)))return null;let n,r,i;if(i=/^\/projects\/([^/]+)$/.exec(t.pathname))n=`project`,r=i[1];else if(i=/^\/workflows\/runs\/([^/]+)$/.exec(t.pathname))n=`workflow_run`,r=i[1];else if(i=/^\/workflows\/([^/]+)$/.exec(t.pathname))n=`workflow_definition`,r=i[1];else if(t.pathname===`/workflows`&&t.searchParams.get(`run`))n=`workflow_run`,r=encodeURIComponent(t.searchParams.get(`run`));else if(t.pathname===`/workflows`&&t.searchParams.get(`def`))n=`workflow_definition`,r=encodeURIComponent(t.searchParams.get(`def`));else if(t.pathname===`/automations`&&t.searchParams.get(`automation`))n=`automation`,r=encodeURIComponent(t.searchParams.get(`automation`));else if(i=/^\/local-apps\/([^/]+)$/.exec(t.pathname))n=`local_app`,r=i[1];else if(t.pathname===`/open`&&t.searchParams.get(`kind`)===`local_app`&&t.searchParams.get(`id`))n=`local_app`,r=encodeURIComponent(t.searchParams.get(`id`));else return null;let a;try{a=decodeURIComponent(r)}catch{return null}if(!a.trim()||n===`workflow_definition`&&a===`new`)return null;let o=t.searchParams.get(`agentId`)||t.searchParams.get(`agent`)||void 0,s=t.searchParams.get(`sourceHash`)||void 0,c=new URLSearchParams(t.searchParams);for(let e of[`run`,`def`,`agent`,`returnTo`])c.delete(e);o&&c.set(`agentId`,o);let l=n===`project`?`/projects/${encodeURIComponent(a)}`:n===`workflow_run`?`/workflows/runs/${encodeURIComponent(a)}`:n===`workflow_definition`?`/workflows/${encodeURIComponent(a)}`:n===`automation`?`/automations`:`/local-apps/${encodeURIComponent(a)}`;return n===`automation`&&c.set(`automation`,a),n===`local_app`&&(c.delete(`kind`),c.delete(`id`)),l+=c.size?`?${c.toString()}`:``,{kind:n,id:a,href:l,ownerAgentId:o,sourceHash:s}}function Jt(e,t){let n=new URLSearchParams(t);return n.delete(Kt),`${e}${n.size?`?${n.toString()}`:``}`}function Yt(e,t){let[n,r=``]=e.split(`?`),i=jt(n)?qt(t):null;if(!i)return zt(e,Wt(e,t));let a=new URLSearchParams(r);return a.delete(`note`),a.delete(`task`),a.set(Kt,i.href),`${n}?${a.toString()}`}function Xt(){let e=(0,At.c)(4),t=i(),n=a(),r;return e[0]!==t.pathname||e[1]!==t.search||e[2]!==n?(r=async e=>{let r=b(e);if(r.kind===`internal-route`){let e=`${t.pathname}${t.search}`;return n(Ft(Yt(e,r.route),e)),{ok:!0,kind:r.kind}}if(r.kind===`external-http`){let e=await y(r.url);return e.ok?{ok:!0,kind:r.kind}:e}return{ok:!1,error:`Unsupported link`}},e[0]=t.pathname,e[1]=t.search,e[2]=n,e[3]=r):r=e[3],r}function Zt(e,t){let n=0;for(;t>0&&e[--t]===`\\`;)n++;return n%2==1}function Qt(e,t,n,r){let i=!1;for(let a=t;a<e.length;a++){if(e[a]===`
|
|
4
4
|
`||e[a]===`\r`){if(r)return-1;i=!1}if(!i){if(e[a]===`%`&&!Zt(e,a)){i=!0;continue}if(e.startsWith(n,a)&&!Zt(e,a))return a}}return-1}function $t(e,t=0){if(Zt(e,t))return;let n=e.startsWith(`\\(`,t);if(!n&&(e[t]!==`$`||e[t+1]===`$`||e[t-1]===`$`))return;let r=n?2:1,i=t+r;if(n&&/^xopc:\/\//i.test(e.slice(i))||!n&&(!e[i]||/\s/.test(e[i])))return;let a=Qt(e,i,n?`\\)`:`$`,!0);if(a===-1){if(!n)return;let r=e.slice(i).search(/[\r\n]/),a=r<0?e.length:i+r;return{raw:e.slice(t,a),latex:e.slice(i,a),display:!1,delimiter:`paren`,state:`pending`,range:{start:t,end:a}}}let o=e.slice(i,a);if(!n&&(!o||/\s$/.test(o)||/\d/.test(e[a+1]??``)||e[a+1]===`$`||/^[\d\s.,+\-€£¥¥]+$/.test(o)))return;let s=a+r;return{raw:e.slice(t,s),latex:o,display:!1,delimiter:n?`paren`:`dollar`,state:`complete`,range:{start:t,end:s}}}function en(e,t=0){let n=/^( {0,3})(\\\[|\$\$)/.exec(e.slice(t));if(!n)return;let r=t+n[0].length,i=n[2]===`\\[`,a=Qt(e,r,i?`\\]`:`$$`,!1);if(a>=0){let n=a+2,o=e.slice(n).match(/^[^\r\n]*/)?.[0]??``;return o.trim()?void 0:{raw:e.slice(t,n+o.length),latex:e.slice(r,a),display:!0,delimiter:i?`bracket`:`double-dollar`,state:`complete`,range:{start:t,end:n+o.length}}}if(!(!i&&/^\S.*\$\$/.test(e.slice(r).split(/\r?\n/,1)[0])))return{raw:e.slice(t),latex:e.slice(r),display:!0,delimiter:i?`bracket`:`double-dollar`,state:`pending`,range:{start:t,end:e.length}}}function tn(e,t,n=!0){return{raw:e,latex:t,display:!0,delimiter:`math-fence`,state:n?`complete`:`pending`,range:{start:0,end:e.length}}}function nn(e){let t=/^ {0,3}(`{3,}|~{3,})math[^\S\r\n]*(?:\r?\n|$)/.exec(e);if(!t)return;let n=t[1],r=t[0].length;for(;r<e.length;){let i=e.indexOf(`
|
|
5
5
|
`,r),a=i<0?e.length:i,o=e.slice(r,a).replace(/\r$/,``),s=/^ {0,3}(`{3,}|~{3,})\s*$/.exec(o);if(s&&s[1][0]===n[0]&&s[1].length>=n.length)return tn(e.slice(0,a),e.slice(t[0].length,r).replace(/\r?\n$/,``));if(i<0)break;r=i+1}return tn(e,e.slice(t[0].length),!1)}function rn(e){return e.replace(/[&<>"']/g,e=>({"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`})[e])}function an(e){return encodeURIComponent(JSON.stringify(e))}function on(e){try{let t=JSON.parse(decodeURIComponent(e));return typeof t.raw!=`string`||typeof t.latex!=`string`||typeof t.display!=`boolean`||![`pending`,`complete`].includes(t.state)||![`paren`,`dollar`,`bracket`,`double-dollar`,`math-fence`].includes(t.delimiter)?void 0:t}catch{return}}function sn(e){let t=`<code class="${e.display?`math-display`:`math-inline`}" data-xopc-math-source="${rn(an(e))}">${rn(e.raw)}</code>`;return e.display?`<pre>${t}</pre>\n`:t}var cn={walkTokens(e){if(e.type!==`image`)return;function t(e){e.type===`xopcMathInline`&&(e.type=`text`,e.text=e.source.raw,e.escaped=!1);for(let n of e.tokens??[])t(n)}for(let n of e.tokens??[])t(n)},extensions:[{name:`xopcMathBlock`,level:`block`,start:e=>{let t=e.search(/(?:^|\n) {0,3}(?:\\\[|\$\$)/);return t<0?void 0:t},tokenizer(e){let t=en(e);if(t)return{type:`xopcMathBlock`,raw:t.raw,source:t}},renderer(e){return sn(e.source)}},{name:`xopcMathInline`,level:`inline`,start:e=>{let t=e.search(/\\\(|\$/);return t<0?void 0:t},tokenizer(e){let t=$t(e);if(t)return{type:`xopcMathInline`,raw:t.raw,source:t}},renderer(e){return sn(e.source)}}]};function ln(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var un=ln();function dn(e){un=e}var fn={exec:()=>null};function pn(e){let t=[];return n=>{let r=Math.max(0,Math.min(3,n-1)),i=t[r];return i||(i=e(r),t[r]=i),i}}function k(e,t=``){let n=typeof e==`string`?e:e.source,r={replace:(e,t)=>{let i=typeof t==`string`?t:t.source;return i=i.replace(hn.caret,`$1`),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var mn=((e=``)=>{try{return!!RegExp(`(?<=1)(?<!1)`+e)}catch{return!1}})(),hn={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:pn(e=>RegExp(`^ {0,${e}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`)),hrRegex:pn(e=>RegExp(`^ {0,${e}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`)),fencesBeginRegex:pn(e=>RegExp(`^ {0,${e}}(?:\`\`\`|~~~)`)),headingBeginRegex:pn(e=>RegExp(`^ {0,${e}}#`)),htmlBeginRegex:pn(e=>RegExp(`^ {0,${e}}<(?:[a-z].*>|!--)`,`i`)),blockquoteBeginRegex:pn(e=>RegExp(`^ {0,${e}}>`))},gn=/^(?:[ \t]*(?:\n|$))+/,_n=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,vn=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,yn=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,bn=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,xn=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,Sn=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Cn=k(Sn).replace(/bull/g,xn).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,``).getRegex(),wn=k(Sn).replace(/bull/g,xn).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Tn=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,En=/^[^\n]+/,Dn=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,On=k(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace(`label`,Dn).replace(`title`,/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),kn=k(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,xn).getRegex(),An=`address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul`,jn=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,Mn=k(`^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))`,`i`).replace(`comment`,jn).replace(`tag`,An).replace(`attribute`,/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Nn=k(Tn).replace(`hr`,yn).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,An).getRegex(),Pn={blockquote:k(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace(`paragraph`,Nn).getRegex(),code:_n,def:On,fences:vn,heading:bn,hr:yn,html:Mn,lheading:Cn,list:kn,newline:gn,paragraph:Nn,table:fn,text:En},Fn=k(`^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)`).replace(`hr`,yn).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`blockquote`,` {0,3}>`).replace(`code`,`(?: {4}| {0,3} )[^\\n]`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,An).getRegex(),In={...Pn,lheading:wn,table:Fn,paragraph:k(Tn).replace(`hr`,yn).replace(`heading`,` {0,3}#{1,6}(?:\\s|$)`).replace(`|lheading`,``).replace(`table`,Fn).replace(`blockquote`,` {0,3}>`).replace(`fences`," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace(`list`,` {0,3}(?:[*+-]|1[.)])[ \\t]`).replace(`html`,`</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)`).replace(`tag`,An).getRegex()},Ln={...Pn,html:k(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace(`comment`,jn).replace(/tag/g,`(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b`).getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:fn,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:k(Tn).replace(`hr`,yn).replace(`heading`,` *#{1,6} *[^
|
|
6
6
|
]`).replace(`lheading`,Cn).replace(`|table`,``).replace(`blockquote`,` {0,3}>`).replace(`|fences`,``).replace(`|list`,``).replace(`|html`,``).replace(`|tag`,``).getRegex()},Rn=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,zn=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Bn=/^( {2,}|\\)\n(?!\s*$)/,Vn=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Hn=/[\p{P}\p{S}]/u,Un=/[\s\p{P}\p{S}]/u,Wn=/[^\s\p{P}\p{S}]/u,Gn=k(/^((?![*_])punctSpace)/,`u`).replace(/punctSpace/g,Un).getRegex(),Kn=/(?!~)[\p{P}\p{S}]/u,qn=/(?!~)[\s\p{P}\p{S}]/u,Jn=/(?:[^\s\p{P}\p{S}]|~)/u,Yn=k(/link|precode-code|html/,`g`).replace(`link`,/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace(`precode-`,mn?"(?<!`)()":"(^^|[^`])").replace(`code`,/(?<b>`+)[^`]+\k<b>(?!`)/).replace(`html`,/<(?! )[^<>]*?>/).getRegex(),Xn=/^(?:\*+(?:((?!\*)punct)|([^\s*]))?)|^_+(?:((?!_)punct)|([^\s_]))?/,Zn=k(Xn,`u`).replace(/punct/g,Hn).getRegex(),Qn=k(Xn,`u`).replace(/punct/g,Kn).getRegex(),$n=`^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)`,er=k($n,`gu`).replace(/notPunctSpace/g,Wn).replace(/punctSpace/g,Un).replace(/punct/g,Hn).getRegex(),tr=k($n,`gu`).replace(/notPunctSpace/g,Jn).replace(/punctSpace/g,qn).replace(/punct/g,Kn).getRegex(),nr=k(`^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)`,`gu`).replace(/notPunctSpace/g,Wn).replace(/punctSpace/g,Un).replace(/punct/g,Hn).getRegex(),rr=k(/^~~?(?:((?!~)punct)|[^\s~])/,`u`).replace(/punct/g,Hn).getRegex(),ir=k(`^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)`,`gu`).replace(/notPunctSpace/g,Wn).replace(/punctSpace/g,Un).replace(/punct/g,Hn).getRegex(),ar=k(/\\(punct)/,`gu`).replace(/punct/g,Hn).getRegex(),or=k(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace(`scheme`,/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(`email`,/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),sr=k(jn).replace(`(?:-->|$)`,`-->`).getRegex(),cr=k(`^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>`).replace(`comment`,sr).replace(`attribute`,/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),lr=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\])|[^\[\]\\`])*?/,ur=k(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]+(?:\n[ \t]*)?|\n[ \t]*)(title))?\s*\)/).replace(`label`,lr).replace(`href`,/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace(`title`,/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),dr=k(/^!?\[(label)\]\[(ref)\]/).replace(`label`,lr).replace(`ref`,Dn).getRegex(),fr=k(/^!?\[(ref)\](?:\[\])?/).replace(`ref`,Dn).getRegex(),pr=k(`reflink|nolink(?!\\()`,`g`).replace(`reflink`,dr).replace(`nolink`,fr).getRegex(),mr=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,hr={_backpedal:fn,anyPunctuation:ar,autolink:or,blockSkip:Yn,br:Bn,code:zn,del:fn,delLDelim:fn,delRDelim:fn,emStrongLDelim:Zn,emStrongRDelimAst:er,emStrongRDelimUnd:nr,escape:Rn,link:ur,nolink:fr,punctuation:Gn,reflink:dr,reflinkSearch:pr,tag:cr,text:Vn,url:fn},gr={...hr,link:k(/^!?\[(label)\]\((.*?)\)/).replace(`label`,lr).getRegex(),reflink:k(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace(`label`,lr).getRegex()},_r={...hr,emStrongRDelimAst:tr,emStrongLDelim:Qn,delLDelim:rr,delRDelim:ir,url:k(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace(`protocol`,mr).replace(`email`,/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:k(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace(`protocol`,mr).getRegex()},vr={..._r,br:k(Bn).replace(`{2,}`,`*`).getRegex(),text:k(_r.text).replace(`\\b_`,`\\b_| {2,}\\n`).replace(/\{2,\}/g,`*`).getRegex()},yr={normal:Pn,gfm:In,pedantic:Ln},br={normal:hr,gfm:_r,breaks:vr,pedantic:gr},xr={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`},Sr=e=>xr[e];function Cr(e,t){if(t){if(hn.escapeTest.test(e))return e.replace(hn.escapeReplace,Sr)}else if(hn.escapeTestNoEncode.test(e))return e.replace(hn.escapeReplaceNoEncode,Sr);return e}function wr(e){try{e=encodeURI(e).replace(hn.percentDecode,`%`)}catch{return null}return e}function Tr(e,t){let n=e.replace(hn.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&n[i]===`\\`;)r=!r;return r?`|`:` |`}).split(hn.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length<t;)n.push(``);for(;r<n.length;r++)n[r]=n[r].trim().replace(hn.slashPipe,`|`);return n}function Er(e,t,n){let r=e.length;if(r===0)return``;let i=0;for(;i<r;){let a=e.charAt(r-i-1);if(a===t&&!n)i++;else if(a!==t&&n)i++;else break}return e.slice(0,r-i)}function Dr(e){let t=e.split(`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{oo as e}from"./index-D0qMv3jf.js";export{e as Mermaid};
|