@xopcai/xopc 0.0.114 → 0.0.115
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/manifest.json +1 -1
- package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
- package/dist/extensions/feishu/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
- package/dist/extensions/telegram/src/inbound-processor.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +1 -1
- package/dist/extensions/telegram/src/routing-integration.js +2 -2
- package/dist/extensions/telegram/src/update-offset-store.js +1 -1
- package/dist/extensions/telegram/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +2 -2
- package/dist/extensions/weixin/src/auth/accounts.js +1 -1
- package/dist/extensions/weixin/src/cdn/upload.js +1 -1
- package/dist/extensions/weixin/src/media/data-url.js +1 -1
- package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
- package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
- package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
- package/dist/extensions/weixin/src/plugin.js +1 -1
- package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
- package/dist/extensions/weixin/src/workflow-progress.js +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Fp-p7bP1.js → agent-avatar-dicebear-DVnBfANm.js} +1 -1
- package/dist/gateway/static/root/assets/agent-browser-settings-page-DPXc4hz8.js +6 -0
- package/dist/gateway/static/root/assets/agent-defaults-tabbed-page-CTJ0YnRQ.js +1 -0
- package/dist/gateway/static/root/assets/agents-zJXQfJ_W.js +71 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-v24i25Oj.js → app-management-settings-panel-DzGbdr04.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-ycbdJRuZ.js → appearance-settings-BQpPSTHD.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-CPjfyzSD.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-CJzSADJo.js → archive-plugin-CXu-Csep.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-BTAB4zGS.js → attachment-load-BAjgOoGY.js} +1 -1
- package/dist/gateway/static/root/assets/{binary-plugins-DXR1-mct.js → binary-plugins-BSBgB2hO.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-CzQri9h2.js → block-editor-BpXw9TTR.js} +44 -44
- package/dist/gateway/static/root/assets/channels-settings-BbPUpzWB.js +1 -0
- package/dist/gateway/static/root/assets/{config-api-DRqjEvAx.js → config-api-NOoPiIYz.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-settings-CAXYMOdp.js +2 -0
- package/dist/gateway/static/root/assets/{cron-api-BXaZXv1o.js → cron-api-C9BOqAXd.js} +1 -1
- package/dist/gateway/static/root/assets/cron-page-DuUbBeKI.js +3 -0
- package/dist/gateway/static/root/assets/dreaming-settings-DQ4DtiK1.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-DSkqMYo7.js → extension-debug-page-D9kgUHCc.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-h2dGDbMN.js → extension-page-CGyhXqzR.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-hN99RhOi.js → extension-settings-page-DL8Xquqd.js} +1 -1
- package/dist/gateway/static/root/assets/{fetch-D9QqUtzZ.js → fetch-D0VXA932.js} +1 -1
- package/dist/gateway/static/root/assets/{format-interval-label-D6E687rG.js → format-interval-label-Be8SmgUw.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-CLt_SKTC.js → gateway-config-api-C-xjn__h.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-settings-1PDi4lI0.js → gateway-settings-BMPwIjKI.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-startup-retry-N7Z_sz7p.js → gateway-startup-retry-DERUH61L.js} +1 -1
- package/dist/gateway/static/root/assets/goal-detail-page-BJsyjJnF.js +1 -0
- package/dist/gateway/static/root/assets/goals-config-api-BPmqWk90.js +1 -0
- package/dist/gateway/static/root/assets/goals-page-BerDgIhw.js +2 -0
- package/dist/gateway/static/root/assets/goals-settings-ByTjeAto.js +1 -0
- package/dist/gateway/static/root/assets/{heartbeat-config-api-DGPadTw-.js → heartbeat-config-api-Bfdzr8oV.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-BHHAs8ZX.js → heartbeat-settings-TbHgcjTn.js} +1 -1
- package/dist/gateway/static/root/assets/{index-DefIdW9q.js → index-AkTrf6Pb.js} +56 -56
- package/dist/gateway/static/root/assets/index-fh5sXTj9.css +1 -0
- package/dist/gateway/static/root/assets/{interval-presets-CEklPQ_r.js → interval-presets-utKbuCRY.js} +1 -1
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-Ce_aQ8Iv.js → keyboard-shortcuts-settings-CjqS6c6V.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-DGXuPf5B.js +2 -0
- package/dist/gateway/static/root/assets/{markdown-split-BMz3xPXO.js → markdown-split-DW8C47iB.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-BalOSoz9.js → media-plugins-D6HwDhDT.js} +1 -1
- package/dist/gateway/static/root/assets/messages-upgxw6Ub.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-panel-Bot16nn7.js +2 -0
- package/dist/gateway/static/root/assets/note-detail-page-Brlyou8M.js +2 -0
- package/dist/gateway/static/root/assets/{note-image-lightbox-C5D1Q5mY.js → note-image-lightbox-pJM35Pz5.js} +1 -1
- package/dist/gateway/static/root/assets/notes-page-DvZ4pwc-.js +1 -0
- package/dist/gateway/static/root/assets/{preview-open-alternatives-CYFR5U9l.js → preview-open-alternatives-CVwHuyN6.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-BZEDmxbZ.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-BQ79Z5IP.js → save-bar-controls-Ba-UEk7x.js} +1 -1
- package/dist/gateway/static/root/assets/{schedule-field-Bgk6Emue.js → schedule-field-CNN9595U.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-DzS36TMa.js → schema-form-DnNMmtD5.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-DdGGlsfn.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-DlkEkPf9.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-CdjFnSAy.js → settings-collapsible-section-CmOz80i5.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-DZLy_exu.js → settings-form-section-BmK7JJOV.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-DFPTrsPF.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-CYCCfgh4.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-_qRDr4g_.js → share-preview-page-Dp2qGrHC.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-Bff1pGd0.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-CJGKpBur.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-C6ocduTD.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-hqaBF5aG.js → system-settings-panel-5jrIEr5b.js} +1 -1
- package/dist/gateway/static/root/assets/{use-agent-defaults-form-zbVIQLOA.js → use-agent-defaults-form-BuiXLIs5.js} +1 -1
- package/dist/gateway/static/root/assets/{use-channel-catalog-CbXq97rT.js → use-channel-catalog-CHlO8J9G.js} +1 -1
- package/dist/gateway/static/root/assets/{use-settings-tab-guard-DwS3drWK.js → use-settings-tab-guard-CW5JORnl.js} +1 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-DDoQyghO.js +1 -0
- package/dist/gateway/static/root/assets/{voice-player-store-DSuOd9zy.js → voice-player-store-DDDWYHvg.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-page.utils-C0Uq3xyq.js → workflow-page.utils-CKjeEGqx.js} +1 -1
- package/dist/gateway/static/root/assets/workflows-page-B604ehHG.js +18 -0
- package/dist/gateway/static/root/index.html +5 -5
- package/dist/gateway/static/root/logo.svg +4 -3
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.js +6 -6
- package/dist/src/agent/agent-scope.js +1 -1
- package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
- package/dist/src/agent/bootstrap/project-agents-context.js +1 -1
- package/dist/src/agent/context/workspace-seed.js +2 -2
- package/dist/src/agent/context/workspace-state.js +1 -1
- package/dist/src/agent/context/workspace.js +1 -1
- package/dist/src/agent/embedded/session-tool-result-guard.js +8 -1
- package/dist/src/agent/embedded/session-tool-result-guard.js.map +1 -1
- package/dist/src/agent/goals/checklist-judge.d.ts +1 -0
- package/dist/src/agent/goals/checklist-judge.js +3 -2
- package/dist/src/agent/goals/checklist-judge.js.map +1 -1
- package/dist/src/agent/goals/evaluate-turn.d.ts +1 -1
- package/dist/src/agent/goals/evaluate-turn.js +1 -0
- package/dist/src/agent/goals/evaluate-turn.js.map +1 -1
- package/dist/src/agent/goals/goal-locale.js +2 -2
- package/dist/src/agent/goals/post-turn.d.ts +6 -1
- package/dist/src/agent/goals/post-turn.js +15 -6
- package/dist/src/agent/goals/post-turn.js.map +1 -1
- package/dist/src/agent/image/load-image-media.js +2 -2
- package/dist/src/agent/ipc/inbox.js +3 -3
- package/dist/src/agent/ipc/socket.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
- package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +1 -1
- package/dist/src/agent/memory/builtin-memory-store.js +1 -1
- package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
- package/dist/src/agent/memory/dreaming/events.js +1 -1
- package/dist/src/agent/memory/dreaming/last-run.js +1 -1
- package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
- package/dist/src/agent/memory/dreaming/preview.js +1 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
- package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
- package/dist/src/agent/memory/dreaming/utils.js +1 -1
- package/dist/src/agent/memory/memory-flush.js +1 -1
- package/dist/src/agent/memory/plugin-discovery.js +1 -1
- package/dist/src/agent/models/manager.js +1 -1
- package/dist/src/agent/prompt/memory/index.js +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
- package/dist/src/agent/reply/post-compaction-context.js +1 -1
- package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
- package/dist/src/agent/sandbox/path-policy.js +2 -2
- package/dist/src/agent/service.js +4 -4
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/config.js +2 -2
- package/dist/src/agent/skills/filesystem-watcher.js +1 -1
- package/dist/src/agent/skills/hub-hash.js +2 -2
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +2 -2
- package/dist/src/agent/skills/index.js +2 -2
- package/dist/src/agent/skills/installer.js +2 -2
- 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/skills/skill-manager.js +1 -1
- package/dist/src/agent/skills/skill-view-path.js +1 -1
- package/dist/src/agent/skills/test-framework.js +1 -1
- package/dist/src/agent/starter-agents.js +1 -1
- package/dist/src/agent/tools/dreaming-tool.js +1 -1
- package/dist/src/agent/tools/find.js +1 -1
- package/dist/src/agent/tools/grep.js +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +1 -1
- package/dist/src/agent/tools/skill-manage-tool.js +1 -1
- package/dist/src/agent/tools/workflow-tool.js +1 -1
- package/dist/src/agent/workflow/catalog.js +1 -1
- package/dist/src/agent/workflow/snapshot.d.ts +10 -0
- package/dist/src/agent/workflow/snapshot.js +136 -1
- package/dist/src/agent/workflow/snapshot.js.map +1 -1
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/credentials.js +2 -2
- package/dist/src/auth/profiles/store.js +2 -2
- package/dist/src/auth/sync-provider-auth.js +1 -1
- package/dist/src/browser/cache-dir-policy.js +1 -1
- package/dist/src/browser/cdp-local-launcher.js +2 -2
- package/dist/src/browser/pipeline/source.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +4 -4
- package/dist/src/browser/providers/cloakbrowser.js +5 -5
- package/dist/src/browser/providers/playwright-doctor.js +1 -1
- package/dist/src/browser/stealth.js +1 -1
- package/dist/src/channels/catalog/channel-catalog-service.d.ts +2 -1
- package/dist/src/channels/catalog/channel-catalog-service.js +133 -16
- package/dist/src/channels/catalog/channel-catalog-service.js.map +1 -1
- package/dist/src/channels/catalog/channel-catalog-types.d.ts +13 -0
- package/dist/src/channels/outbound/persist-store.js +1 -1
- package/dist/src/channels/pairing/allow-from-file.js +1 -1
- package/dist/src/channels/pairing/pairing-store.js +2 -2
- package/dist/src/chat-commands/agent-edit.js +2 -2
- package/dist/src/chat-commands/builtins/config.js +2 -2
- package/dist/src/cli/commands/config.js +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-config.js +14 -1
- package/dist/src/cli/commands/doctor/checks/channel-config.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
- package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
- package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
- package/dist/src/cli/commands/extension-create.js +1 -1
- package/dist/src/cli/commands/extension-dev.js +2 -2
- package/dist/src/cli/commands/extension-marketplace.js +2 -2
- package/dist/src/cli/commands/extension-pack.js +2 -2
- package/dist/src/cli/commands/extension.js +3 -3
- package/dist/src/cli/commands/gateway/logs.js +1 -1
- package/dist/src/cli/commands/image.js +1 -1
- package/dist/src/cli/commands/init.js +2 -2
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/skills-test.js +1 -1
- package/dist/src/cli/templates.js +1 -1
- package/dist/src/cli/utils/gateway-client.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +2 -2
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/agent-typed-models.js +1 -1
- package/dist/src/config/gateway-bind.js +1 -1
- package/dist/src/config/index.js +7 -7
- package/dist/src/config/loader.js +4 -4
- package/dist/src/config/models-json.js +2 -2
- package/dist/src/config/paths-state.js +1 -1
- package/dist/src/config/paths.js +1 -1
- package/dist/src/config/profile.js +1 -1
- package/dist/src/config/reload.js +1 -1
- package/dist/src/config/schema.d.ts +8 -0
- package/dist/src/config/schema.js +7 -0
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/web-patch.d.ts +1 -0
- package/dist/src/config/web-patch.js +1 -0
- package/dist/src/config/web-patch.js.map +1 -1
- package/dist/src/config/workspace-path.js +1 -1
- package/dist/src/cron/executor.js +1 -1
- package/dist/src/cron/service.js +1 -1
- package/dist/src/daemon/constants.js +1 -1
- package/dist/src/daemon/install-plan.js +2 -2
- package/dist/src/daemon/launchd.js +2 -2
- package/dist/src/daemon/schtasks.js +2 -2
- package/dist/src/daemon/systemd.js +2 -2
- package/dist/src/extensions/bundle-mcp.js +1 -1
- package/dist/src/extensions/discover-extensions.js +2 -2
- package/dist/src/extensions/health.js +1 -1
- package/dist/src/extensions/install.js +2 -2
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/extensions/lockfile.js +3 -3
- package/dist/src/extensions/security.js +1 -1
- package/dist/src/extensions/update.js +2 -2
- package/dist/src/gateway/agents-admin.js +2 -2
- package/dist/src/gateway/file-path-classifier.js +2 -2
- package/dist/src/gateway/hono/app.js +5 -1
- package/dist/src/gateway/hono/app.js.map +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +3 -1
- package/dist/src/gateway/hono/lib/config-payload.js +7 -4
- package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
- package/dist/src/gateway/hono/lib/extension-store.js +2 -2
- package/dist/src/gateway/hono/lib/static-ui.js +2 -2
- package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +4 -0
- package/dist/src/gateway/hono/middleware/strict-rate-limit.js +19 -5
- package/dist/src/gateway/hono/middleware/strict-rate-limit.js.map +1 -1
- package/dist/src/gateway/hono/routes/agents.js +1 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
- package/dist/src/gateway/hono/routes/channels.js +18 -14
- package/dist/src/gateway/hono/routes/channels.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
- package/dist/src/gateway/hono/routes/deps.d.ts +1 -0
- package/dist/src/gateway/hono/routes/dreaming.js +1 -1
- package/dist/src/gateway/hono/routes/host-fs.js +2 -2
- package/dist/src/gateway/hono/routes/models.js +1 -1
- package/dist/src/gateway/hono/routes/shares.js +1 -1
- package/dist/src/gateway/hono/routes/workflows.js +1 -1
- package/dist/src/gateway/hono/routes/workspace.js +2 -2
- package/dist/src/gateway/lock.js +3 -3
- package/dist/src/gateway/ports.js +1 -1
- package/dist/src/gateway/rate-limit/buckets.d.ts +3 -0
- package/dist/src/gateway/rate-limit/buckets.js +12 -0
- package/dist/src/gateway/rate-limit/buckets.js.map +1 -1
- package/dist/src/gateway/service/config-coordinator.js +1 -1
- package/dist/src/gateway/service/marketplace-service.js +2 -2
- package/dist/src/gateway/service.js +4 -4
- package/dist/src/gateway/workspace-fs-file-list.js +1 -1
- package/dist/src/goals/goal-workflow-judge.js +2 -2
- package/dist/src/i18n/goals-bundle.js +1 -1
- package/dist/src/i18n/index.js +1 -1
- package/dist/src/i18n/share-tool-bundle.js +2 -2
- package/dist/src/infra/brew.js +1 -1
- package/dist/src/infra/package-json.js +1 -1
- package/dist/src/infra/package-update-steps.js +1 -1
- package/dist/src/infra/path-env.js +2 -2
- package/dist/src/infra/restart.js +1 -1
- package/dist/src/infra/stable-node-path.js +1 -1
- package/dist/src/infra/update-check.js +1 -1
- package/dist/src/infra/update-global.js +1 -1
- package/dist/src/infra/update-lock.js +2 -2
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/infra/update-runner.js +1 -1
- package/dist/src/infra/update-startup.js +1 -1
- package/dist/src/infra/write-file-atomic.js +2 -2
- package/dist/src/media/store.js +1 -1
- package/dist/src/notes/agent-context.js +1 -1
- package/dist/src/notes/service.js +1 -1
- package/dist/src/notes/store.js +2 -2
- package/dist/src/project-trust/trust-store.js +2 -2
- package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
- package/dist/src/providers/index.js +1 -1
- package/dist/src/providers/model-registry.js +4 -4
- package/dist/src/session/init-session-turn.js +1 -1
- package/dist/src/session/resolve-session.js +1 -1
- package/dist/src/session/session-title.js +2 -2
- package/dist/src/session/store.js +1 -1
- package/dist/src/share/share-auto.js +2 -2
- package/dist/src/share/share-store.js +3 -3
- package/dist/src/share/share-thumbnail.js +2 -2
- package/dist/src/share/share-zip.js +1 -1
- package/dist/src/share/site-share-store.js +3 -3
- package/dist/src/share/site-static-serve.js +1 -1
- package/dist/src/storage/sqlite/connection.js +1 -1
- package/dist/src/storage/sqlite/memory-index-repository.js +2 -2
- package/dist/src/storage/sqlite/migrations/discover.js +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/tui/backends/embedded-backend.d.ts +8 -1
- package/dist/src/tui/backends/embedded-backend.js +73 -0
- package/dist/src/tui/backends/embedded-backend.js.map +1 -1
- package/dist/src/tui/backends/gateway-sse-backend.d.ts +2 -1
- package/dist/src/tui/backends/gateway-sse-backend.js +24 -0
- package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
- package/dist/src/tui/clipboard-image.js +3 -3
- package/dist/src/tui/components/chat-log.d.ts +2 -0
- package/dist/src/tui/components/chat-log.js +19 -0
- package/dist/src/tui/components/chat-log.js.map +1 -1
- package/dist/src/tui/extension-host/autocomplete.d.ts +3 -2
- package/dist/src/tui/extension-host/autocomplete.js +17 -3
- package/dist/src/tui/extension-host/autocomplete.js.map +1 -1
- package/dist/src/tui/extension-host/load-extensions.js +1 -1
- package/dist/src/tui/extension-host/runtime.d.ts +5 -0
- package/dist/src/tui/extension-host/runtime.js +1 -1
- package/dist/src/tui/extension-host/runtime.js.map +1 -1
- package/dist/src/tui/theme-manager.js +1 -1
- package/dist/src/tui/tui-backend.d.ts +14 -0
- package/dist/src/tui/tui-command-formatters.js +4 -4
- package/dist/src/tui/tui-commands.d.ts +16 -3
- package/dist/src/tui/tui-commands.js +49 -21
- package/dist/src/tui/tui-commands.js.map +1 -1
- package/dist/src/tui/tui-keybindings-file.js +1 -1
- package/dist/src/tui/tui-scoped-models.js +2 -2
- package/dist/src/tui/tui-settings.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/tui/tui-startup-text.js +1 -1
- package/dist/src/tui/tui-startup-text.js.map +1 -1
- package/dist/src/tui/tui.js +78 -7
- package/dist/src/tui/tui.js.map +1 -1
- package/dist/src/tunnel/frpc-binary.js +4 -4
- package/dist/src/tunnel/frpc-config.js +1 -1
- package/dist/src/tunnel/frpc-extract.js +1 -1
- package/dist/src/tunnel/tunnel-state.js +1 -1
- package/dist/src/utils/logger/audit.js +1 -1
- package/dist/src/utils/logger/log-store.js +1 -1
- package/dist/src/utils/logger/rotation.js +1 -1
- package/dist/src/utils/logger/streams.js +1 -1
- package/dist/src/voice/tts/audio.js +1 -1
- package/dist/src/voice/tts/providers/edge-speech.js +2 -2
- package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.js +1 -1
- package/dist/src/workflows/store/event-store.js +1 -1
- package/dist/src/workflows/store/run-store.js +1 -1
- package/package.json +1 -1
- package/dist/gateway/static/root/assets/agent-browser-settings-page-CWh7trjd.js +0 -6
- package/dist/gateway/static/root/assets/agent-defaults-tabbed-page-kC8OuLoj.js +0 -1
- package/dist/gateway/static/root/assets/agents-DJWG26Si.js +0 -71
- package/dist/gateway/static/root/assets/apps-page-0V3DXZ7J.js +0 -1
- package/dist/gateway/static/root/assets/channels-settings-CIKOkYdO.js +0 -1
- package/dist/gateway/static/root/assets/connectors-settings-ClrDS5jH.js +0 -2
- package/dist/gateway/static/root/assets/cron-page-Chi_4u4P.js +0 -3
- package/dist/gateway/static/root/assets/dreaming-settings-B0_rs2tj.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-D_wwXL-t.js +0 -1
- package/dist/gateway/static/root/assets/goals-page-DZ2toZ8y.js +0 -2
- package/dist/gateway/static/root/assets/goals-settings-LFlwtIKE.js +0 -1
- package/dist/gateway/static/root/assets/index-DzmWBkq-.css +0 -1
- package/dist/gateway/static/root/assets/logs-page-j_D2QTuQ.js +0 -2
- package/dist/gateway/static/root/assets/messages-BN_WiUg0.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-panel-CMH_TmZz.js +0 -2
- package/dist/gateway/static/root/assets/note-detail-page-O18BrQPq.js +0 -2
- package/dist/gateway/static/root/assets/notes-page-B_ZYCmY9.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CwKgWixY.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-C4fcD-7B.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-Ad2OJ86w.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-D2BMY5wo.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-aWwxl_E1.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-DUE83uIf.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-mWKJcrog.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-0Sx1Q58n.js +0 -2
- package/dist/gateway/static/root/assets/voice-api-key-field-D6HR0hR2.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-DW0fmWhQ.js +0 -18
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-JdwAhgNB.js";import{t as a}from"./messages-BN_WiUg0.js";import{t as o}from"./locale-store-DjbfSsfA.js";import{i as s}from"./theme-store-CD2wtgZV.js";import{c}from"./fetch-D9QqUtzZ.js";import{i as l}from"./vendor-swr-BIWyz7Rc.js";import{$n as u,$r as d,Ai as f,Bi as p,Bt as m,Ci as h,Ds as g,Ea as _,Eo as v,Fn as y,G as b,Gt as x,Ho as S,Ht as C,In as w,It as T,Jo as E,Jr as D,Jt as O,K as k,Kt as A,Li as j,Ln as M,Lt as N,Mn as P,Ni as ee,Nn as F,Oa as I,Os as te,Pa as ne,Pi as L,Pn as re,Qn as R,Qr as ie,Rn as z,Ro as B,Rt as ae,Sa as oe,Si as se,Sr as ce,Ss as le,Ui as ue,Ut as de,Vn as fe,Vt as V,Wa as pe,Wi as me,Xn as he,Xr as ge,Yr as _e,Yt as ve,Zn as H,Zr as ye,aa as be,ai as U,ar as xe,bn as W,do as Se,ei as Ce,er as G,fi as K,ha as we,ii as Te,ir as Ee,ji as q,ka as De,ki as Oe,ko as ke,ks as Ae,m as je,n as Me,ni as Ne,nr as Pe,oi as Fe,ps as Ie,q as Le,qt as Re,ra as ze,ri as Be,rr as Ve,so as He,t as Ue,ti as We,to as J,tr as Ge,vn as Ke,ws as qe,yn as Je,zi as Y,zt as X}from"./index-DefIdW9q.js";import{t as Ye}from"./markdown-editor-AssmZFx4.js";import{n as Xe,t as Ze}from"./settings-form-section-DZLy_exu.js";import{n as Qe}from"./agent-avatar-dicebear-Fp-p7bP1.js";import{a as $e,c as et,n as tt,o as nt,s as rt}from"./config-api-DRqjEvAx.js";import{AgentBrowserSettingsPage as it}from"./agent-browser-settings-page-CWh7trjd.js";import{AgentDefaultsTabbedPage as at,a as ot,i as st,n as ct,r as lt,t as ut}from"./agent-defaults-tabbed-page-kC8OuLoj.js";import{S as dt,d as ft,f as pt,g as mt,i as ht,o as gt,w as _t,x as vt}from"./cron-api-BXaZXv1o.js";import{t as yt}from"./cron-dreaming-jobs-nCMWCf0p.js";var Z=n(),Q=r();function bt(e){let t=(0,Z.c)(40),{open:n,onOpenChange:r,busy:a,deletePurge:o,deleteTarget:s,deleteConfirmText:c,onDeleteConfirmTextChange:l,onConfirm:u,onCancel:f,a:p}=e,m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Q.jsx)(ie,{className:`fixed inset-0 z-[80] bg-scrim backdrop-blur-[2px]`}),t[0]=m):m=t[0];let h;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(h=i(`fixed left-1/2 top-1/2 z-[81] w-[min(100%-2rem,28rem)] -translate-x-1/2 -translate-y-1/2 rounded-xl border border-edge bg-surface-panel p-4 shadow-popover`,`dark:border-edge`),t[1]=h):h=t[1];let g=o?p.purgeDisk:p.removeFromConfig,_;t[2]===g?_=t[3]:(_=(0,Q.jsx)(We,{className:`text-base font-semibold text-fg`,children:g}),t[2]=g,t[3]=_);let v=o?p.confirmDeletePurge:p.confirmDelete,y;t[4]===v?y=t[5]:(y=(0,Q.jsx)(ye,{className:`mt-2 whitespace-pre-wrap text-sm leading-relaxed text-fg-muted`,children:v}),t[4]=v,t[5]=y);let b;t[6]!==p.purgeConfirmHint||t[7]!==p.purgeConfirmLabel||t[8]!==p.purgeConfirmPlaceholder||t[9]!==c||t[10]!==o||t[11]!==s||t[12]!==l?(b=o&&s?(0,Q.jsxs)(`div`,{className:`mt-3 space-y-3`,children:[(0,Q.jsx)(`label`,{className:`mb-2 block text-sm font-medium text-fg`,htmlFor:`agent-delete-confirm`,children:p.purgeConfirmLabel}),(0,Q.jsx)(`input`,{id:`agent-delete-confirm`,type:`text`,autoComplete:`off`,spellCheck:!1,className:i(`w-full rounded-md border border-edge bg-surface-panel px-3 py-1.5 font-mono text-xs text-fg`,`placeholder:text-fg-subtle`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,`dark:border-edge`),placeholder:p.purgeConfirmPlaceholder.replace(`{{agentId}}`,s.id),value:c,onChange:e=>l(e.target.value)}),(0,Q.jsx)(`p`,{className:`pt-0.5 text-xs text-fg-muted`,children:p.purgeConfirmHint.replace(`{{agentId}}`,s.id)})]}):null,t[6]=p.purgeConfirmHint,t[7]=p.purgeConfirmLabel,t[8]=p.purgeConfirmPlaceholder,t[9]=c,t[10]=o,t[11]=s,t[12]=l,t[13]=b):b=t[13];let x;t[14]!==p.createModalCancel||t[15]!==a||t[16]!==f?(x=(0,Q.jsx)(q,{type:`button`,variant:`ghost`,disabled:a,onClick:f,children:p.createModalCancel}),t[14]=p.createModalCancel,t[15]=a,t[16]=f,t[17]=x):x=t[17];let S=o?`border-red-200 text-red-700 hover:bg-red-50 dark:border-red-900/60 dark:text-red-300 dark:hover:bg-red-950/40`:void 0,C;t[18]!==a||t[19]!==c||t[20]!==o||t[21]!==s?(C=a||!s||o&&c.trim().toLowerCase()!==s.id.toLowerCase(),t[18]=a,t[19]=c,t[20]=o,t[21]=s,t[22]=C):C=t[22];let w=o?p.purgeDisk:p.removeFromConfig,T;t[23]!==u||t[24]!==C||t[25]!==w||t[26]!==S?(T=(0,Q.jsx)(q,{type:`button`,variant:`secondary`,className:S,disabled:C,onClick:u,children:w}),t[23]=u,t[24]=C,t[25]=w,t[26]=S,t[27]=T):T=t[27];let E;t[28]!==T||t[29]!==x?(E=(0,Q.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center justify-end gap-2 border-t border-edge-subtle/60 pt-3`,children:[x,T]}),t[28]=T,t[29]=x,t[30]=E):E=t[30];let D;t[31]!==E||t[32]!==_||t[33]!==y||t[34]!==b?(D=(0,Q.jsxs)(d,{children:[m,(0,Q.jsxs)(ge,{className:h,onOpenAutoFocus:xt,children:[_,y,b,E]})]}),t[31]=E,t[32]=_,t[33]=y,t[34]=b,t[35]=D):D=t[35];let O;return t[36]!==r||t[37]!==n||t[38]!==D?(O=(0,Q.jsx)(Ce,{open:n,onOpenChange:r,children:D}),t[36]=r,t[37]=n,t[38]=D,t[39]=O):O=t[39],O}function xt(e){return e.preventDefault()}var St=[{id:`overview`,labelKey:`navIdentity`,icon:j},{id:`profile`,labelKey:`navProfile`,icon:E},{id:`models`,labelKey:`navModels`,icon:He},{id:`tools`,labelKey:`navTools`,icon:L},{id:`skills`,labelKey:`navSkills`,icon:_},{id:`files`,labelKey:`navCoreFiles`,icon:v}],Ct=[{id:`channels`,labelKey:`tabChannels`,icon:De},{id:`cron`,labelKey:`tabCron`,icon:S}];function wt(e){let t=(0,Z.c)(20),{a:n,panel:r,onPanelChange:a}=e,o;t[0]!==a||t[1]!==r?(o=(e,t,n)=>(0,Q.jsxs)(`button`,{type:`button`,onClick:()=>a(e),className:i(`flex w-full items-center gap-2.5 rounded-lg px-3 py-2 text-left text-sm font-medium transition-colors`,h.press,r===e?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`),children:[(0,Q.jsx)(n,{className:`size-4 shrink-0 opacity-90`,strokeWidth:2,"aria-hidden":!0}),(0,Q.jsx)(`span`,{className:`min-w-0 truncate`,children:t})]},e),t[0]=a,t[1]=r,t[2]=o):o=t[2];let s=o,c=n.editorNavAria,l;t[3]!==n||t[4]!==s?(l=St.map(e=>{let{id:t,labelKey:r,icon:i}=e;return s(t,n[r],i)}),t[3]=n,t[4]=s,t[5]=l):l=t[5];let u;t[6]===l?u=t[7]:(u=(0,Q.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:l}),t[6]=l,t[7]=u);let d;t[8]===n.navAdvanced?d=t[9]:(d=(0,Q.jsx)(`p`,{className:`mt-4 px-3 text-[10px] font-semibold uppercase tracking-wide text-fg-subtle`,children:n.navAdvanced}),t[8]=n.navAdvanced,t[9]=d);let f;t[10]!==n||t[11]!==s?(f=Ct.map(e=>{let{id:t,labelKey:r,icon:i}=e;return s(t,n[r],i)}),t[10]=n,t[11]=s,t[12]=f):f=t[12];let p;t[13]===f?p=t[14]:(p=(0,Q.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:f}),t[13]=f,t[14]=p);let m;return t[15]!==n.editorNavAria||t[16]!==u||t[17]!==d||t[18]!==p?(m=(0,Q.jsxs)(`nav`,{className:`flex w-full flex-col gap-1`,"aria-label":c,children:[u,d,p]}),t[15]=n.editorNavAria,t[16]=u,t[17]=d,t[18]=p,t[19]=m):m=t[19],m}function Tt(e){let t=(0,Z.c)(49),{open:n,onOpenChange:r,a,title:o,subtitle:s,panel:c,onPanelChange:l,onFooterSave:u,footerSaveDisabled:f,footerSavedFlash:p,busy:m,children:h}=e,g;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Q.jsx)(ie,{className:i(`xopc-dialog-overlay fixed inset-0 bg-scrim`,Je)}),t[0]=g):g=t[0];let _;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(_=i(`xopc-dialog-content fixed flex flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-popover dark:border-edge`,Ke,`inset-4 h-[calc(100dvh-2rem)] max-h-[calc(100dvh-2rem)] min-h-0`,`sm:inset-auto sm:left-1/2 sm:top-1/2 sm:h-[min(88vh,48rem)] sm:max-h-[min(88vh,48rem)] sm:min-h-[32rem] sm:w-[min(100%-2rem,58rem)] sm:-translate-x-1/2 sm:-translate-y-1/2`),t[1]=_):_=t[1];let v;t[2]===o?v=t[3]:(v=(0,Q.jsx)(We,{className:`text-base font-semibold leading-snug text-fg`,children:o}),t[2]=o,t[3]=v);let y;t[4]===s?y=t[5]:(y=(0,Q.jsx)(ye,{className:`mt-1 font-mono text-xs text-fg-muted`,children:s}),t[4]=s,t[5]=y);let b;t[6]!==v||t[7]!==y?(b=(0,Q.jsxs)(`div`,{className:`min-w-0 pr-2`,children:[v,y]}),t[6]=v,t[7]=y,t[8]=b):b=t[8];let x;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(x=i(se,`shrink-0 p-1.5 hover:bg-surface-base`),t[9]=x):x=t[9];let S;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Q.jsx)(ee,{className:`size-4`,"aria-hidden":!0}),t[10]=S):S=t[10];let C;t[11]===a.closeDialogAria?C=t[12]:(C=(0,Q.jsx)(_e,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:x,"aria-label":a.closeDialogAria,children:S})}),t[11]=a.closeDialogAria,t[12]=C);let w;t[13]!==b||t[14]!==C?(w=(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-2 border-b border-edge-subtle px-4 pb-3 pt-4 dark:border-edge`,children:[b,C]}),t[13]=b,t[14]=C,t[15]=w):w=t[15];let T;t[16]!==a||t[17]!==l||t[18]!==c?(T=(0,Q.jsx)(`div`,{className:`shrink-0 border-b border-edge-subtle px-4 py-3 dark:border-edge sm:flex sm:w-56 sm:shrink-0 sm:flex-col sm:overflow-y-auto sm:border-b-0 sm:border-r sm:px-0 sm:py-4 sm:pl-4 sm:pr-3`,children:(0,Q.jsx)(wt,{a,panel:c,onPanelChange:l})}),t[16]=a,t[17]=l,t[18]=c,t[19]=T):T=t[19];let E;t[20]===h?E=t[21]:(E=(0,Q.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden p-4 sm:pl-2 sm:pr-5`,children:h}),t[20]=h,t[21]=E);let D;t[22]!==a.footerSaveNotApplicable||t[23]!==a.personaSaved||t[24]!==f||t[25]!==p?(D=p?(0,Q.jsxs)(`p`,{className:`order-2 text-center text-xs font-medium text-green-600 sm:order-1 sm:mr-auto sm:text-left dark:text-green-400`,children:[`✓ `,a.personaSaved]}):f?(0,Q.jsx)(`p`,{className:`order-2 text-center text-xs text-fg-muted sm:order-1 sm:mr-auto sm:text-left`,children:a.footerSaveNotApplicable}):null,t[22]=a.footerSaveNotApplicable,t[23]=a.personaSaved,t[24]=f,t[25]=p,t[26]=D):D=t[26];let O=m||f,A;t[27]===u?A=t[28]:(A=()=>void u(),t[27]=u,t[28]=A);let j;t[29]!==a.save||t[30]!==O||t[31]!==A?(j=(0,Q.jsx)(q,{type:`button`,className:`order-1 w-full sm:order-2 sm:w-auto`,disabled:O,onClick:A,children:a.save}),t[29]=a.save,t[30]=O,t[31]=A,t[32]=j):j=t[32];let M;t[33]!==D||t[34]!==j?(M=(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-1 border-t border-edge-subtle px-4 py-3 dark:border-edge sm:flex-row sm:items-center sm:justify-end sm:gap-3`,children:[D,j]}),t[33]=D,t[34]=j,t[35]=M):M=t[35];let N;t[36]!==E||t[37]!==M?(N=(0,Q.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:[E,M]}),t[36]=E,t[37]=M,t[38]=N):N=t[38];let P;t[39]!==N||t[40]!==T?(P=(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col sm:flex-row sm:overflow-hidden`,children:[T,N]}),t[39]=N,t[40]=T,t[41]=P):P=t[41];let F;t[42]!==P||t[43]!==w?(F=(0,Q.jsxs)(d,{children:[g,(0,Q.jsx)(ge,{className:_,onOpenAutoFocus:Et,children:(0,Q.jsxs)(k,{layer:`modal`,children:[w,P]})})]}),t[42]=P,t[43]=w,t[44]=F):F=t[44];let I;return t[45]!==r||t[46]!==n||t[47]!==F?(I=(0,Q.jsx)(Ce,{open:n,onOpenChange:r,children:F}),t[45]=r,t[46]=n,t[47]=F,t[48]=I):I=t[48],I}function Et(e){return e.preventDefault()}function Dt(){return i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,f,`dark:border-edge`)}function Ot(e,t,n){let r=e.agentId?.trim().toLowerCase();return r?r===t.toLowerCase():t.toLowerCase()===n.toLowerCase()}function kt(e){return[e.channel,e.accountId,e.peerKind,e.peerId].filter(e=>typeof e==`string`&&e.length>0).join(` · `)||e.channel}function At(e,t,n,r){let i=e.trim(),a=t.trim();if(a)return{channel:i,peerId:a};if(n!=null){let e=r[n];if(!e)return{channel:i};let t={channel:i};e.accountId?.trim()&&(t.accountId=e.accountId.trim()),e.peerKind?.trim()&&(t.peerKind=e.peerKind.trim());let a=e.peerId?.trim()||e.chatId?.trim();return a&&(t.peerId=a),t}return{channel:i}}var jt=i(Oe,`w-full text-xs sm:w-auto sm:min-w-[11rem] sm:max-w-[17rem] sm:shrink-0`);function Mt(e){let t=(0,Z.c)(62),{a:n,busy:r,bindingsLoading:a,agentBindings:o,onRemoveBinding:s,onAddBinding:c,channelStatuses:l,channelsStatusLoading:u,useManualChannel:d,newBindChannel:f,setNewBindChannel:p,bindSessionChats:m,sessionsLoading:h,newBindSessionIdx:g,setNewBindSessionIdx:_,newBindCustomPeer:v,setNewBindCustomPeer:y,onRefreshSessions:b,lastActiveLabels:x,selectRecipient:S}=e,C=!u&&(d||l.length>0),w;t[0]!==n.channelsHint||t[1]!==n.channelsTitle?(w=(0,Q.jsx)(Xe,{className:`shrink-0`,icon:J,title:n.channelsTitle,subtitle:n.channelsHint}),t[0]=n.channelsHint,t[1]=n.channelsTitle,t[2]=w):w=t[2];let T;t[3]!==n.channelsLoading||t[4]!==n.channelsNone||t[5]!==n.removeBinding||t[6]!==o||t[7]!==a||t[8]!==r||t[9]!==s?(T=a?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.channelsLoading}):o.length===0?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.channelsNone}):(0,Q.jsx)(`ul`,{className:`flex flex-col gap-2 text-sm`,children:o.map(e=>(0,Q.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-2 rounded-lg border border-edge bg-surface-panel px-3 py-2`,children:[(0,Q.jsx)(`span`,{className:`font-mono text-xs`,children:kt(e.match)}),(0,Q.jsx)(q,{type:`button`,variant:`secondary`,disabled:r,onClick:()=>void s(e),children:n.removeBinding})]},`${e.match.channel}-${kt(e.match)}`))}),t[3]=n.channelsLoading,t[4]=n.channelsNone,t[5]=n.removeBinding,t[6]=o,t[7]=a,t[8]=r,t[9]=s,t[10]=T):T=t[10];let E;t[11]!==n.channelLabel||t[12]!==n.channelsDisabledSuffix||t[13]!==n.channelsLoadingChannels||t[14]!==n.channelsManualChannelHint||t[15]!==l||t[16]!==u||t[17]!==f||t[18]!==p||t[19]!==y||t[20]!==_||t[21]!==d?(E=u?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.channelsLoadingChannels}):d?(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:n.channelLabel}),(0,Q.jsx)(`input`,{className:Dt(),value:f,onChange:e=>p(e.target.value),placeholder:`telegram`,autoComplete:`off`}),(0,Q.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.channelsManualChannelHint})]}):(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:n.channelLabel}),(0,Q.jsx)(`select`,{className:i(Dt(),`py-2`),value:f,onChange:e=>{p(e.target.value),_(null),y(``)},children:l.map(e=>(0,Q.jsxs)(`option`,{value:e.name,disabled:!e.enabled,children:[e.name,` `,e.enabled?``:n.channelsDisabledSuffix]},e.name))})]}),t[11]=n.channelLabel,t[12]=n.channelsDisabledSuffix,t[13]=n.channelsLoadingChannels,t[14]=n.channelsManualChannelHint,t[15]=l,t[16]=u,t[17]=f,t[18]=p,t[19]=y,t[20]=_,t[21]=d,t[22]=E):E=t[22];let D;t[23]!==n.channelsCustomPeerHint||t[24]!==n.channelsCustomPeerPlaceholder||t[25]!==n.channelsLoadingSessions||t[26]!==n.channelsNoSessionsHint||t[27]!==n.channelsPeerAny||t[28]!==n.channelsPeerFromSessions||t[29]!==n.channelsRefreshSessions||t[30]!==n.channelsRefreshSessionsHint||t[31]!==n.channelsSessionLabel||t[32]!==n.peerIdLabel||t[33]!==m||t[34]!==r||t[35]!==x||t[36]!==f||t[37]!==v||t[38]!==g||t[39]!==b||t[40]!==S||t[41]!==h||t[42]!==y||t[43]!==_||t[44]!==C?(D=C&&f.trim()?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 border-t border-edge-subtle pt-3 text-sm`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:n.channelsSessionLabel}),(0,Q.jsxs)(q,{type:`button`,variant:`ghost`,className:`h-7 gap-1 px-2 text-xs`,disabled:r||h||!f.trim(),title:n.channelsRefreshSessionsHint,onClick:()=>b(),children:[(0,Q.jsx)(oe,{className:i(`size-3.5`,h&&`animate-spin`),strokeWidth:1.75}),n.channelsRefreshSessions]})]}),h&&m.length===0?(0,Q.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.channelsLoadingSessions}):null,(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:n.channelsPeerFromSessions}),(0,Q.jsxs)(`select`,{className:i(Dt(),`py-2`),value:g==null?``:String(g),disabled:r||!f.trim()||!!v.trim(),onChange:e=>{let t=e.target.value;_(t===``?null:Number(t))},children:[(0,Q.jsx)(`option`,{value:``,children:n.channelsPeerAny}),m.map((e,t)=>(0,Q.jsx)(`option`,{value:String(t),children:vt(e,x)},`${e.channel}-${e.chatId}`))]})]}),m.length===0&&f.trim()&&!h?(0,Q.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.channelsNoSessionsHint}):null,(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:n.peerIdLabel}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-stretch sm:gap-2`,children:[(0,Q.jsx)(`input`,{type:`text`,className:i(Dt(),`min-w-0 w-full sm:flex-1`),value:v,onChange:e=>{y(e.target.value),e.target.value.trim()&&_(null)},placeholder:n.channelsCustomPeerPlaceholder,autoComplete:`off`}),(0,Q.jsxs)(`select`,{className:jt,value:v,onChange:e=>{let t=e.target.value;y(t||``),_(null)},children:[(0,Q.jsx)(`option`,{value:``,children:S}),m.map(e=>(0,Q.jsx)(`option`,{value:e.chatId,children:vt(e,x)},`${e.channel}-${e.chatId}`))]})]}),(0,Q.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.channelsCustomPeerHint})]})]}):null,t[23]=n.channelsCustomPeerHint,t[24]=n.channelsCustomPeerPlaceholder,t[25]=n.channelsLoadingSessions,t[26]=n.channelsNoSessionsHint,t[27]=n.channelsPeerAny,t[28]=n.channelsPeerFromSessions,t[29]=n.channelsRefreshSessions,t[30]=n.channelsRefreshSessionsHint,t[31]=n.channelsSessionLabel,t[32]=n.peerIdLabel,t[33]=m,t[34]=r,t[35]=x,t[36]=f,t[37]=v,t[38]=g,t[39]=b,t[40]=S,t[41]=h,t[42]=y,t[43]=_,t[44]=C,t[45]=D):D=t[45];let O;t[46]!==r||t[47]!==u||t[48]!==f?(O=r||!f.trim()||u,t[46]=r,t[47]=u,t[48]=f,t[49]=O):O=t[49];let k;t[50]!==n.addBinding||t[51]!==O?(k=(0,Q.jsx)(`div`,{children:(0,Q.jsx)(q,{type:`submit`,disabled:O,children:n.addBinding})}),t[50]=n.addBinding,t[51]=O,t[52]=k):k=t[52];let A;t[53]!==c||t[54]!==E||t[55]!==D||t[56]!==k?(A=(0,Q.jsxs)(`form`,{className:`mt-4 flex flex-col gap-3`,onSubmit:c,children:[E,D,k]}),t[53]=c,t[54]=E,t[55]=D,t[56]=k,t[57]=A):A=t[57];let j;return t[58]!==w||t[59]!==T||t[60]!==A?(j=(0,Q.jsxs)(Ze,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[w,T,A]}),t[58]=w,t[59]=T,t[60]=A,t[61]=j):j=t[61],j}function Nt(e){let t=(0,Z.c)(20),{a:n,data:r,busy:s,cronLoading:c,agentCronJobs:l,onSetCronJobAgent:u}=e,d=o(Ft),f;if(t[0]!==n.cronAgentClear||t[1]!==n.cronAgentDefault||t[2]!==n.cronColAgent||t[3]!==n.cronColMessage||t[4]!==n.cronColSchedule||t[5]!==n.cronColSession||t[6]!==n.cronHint||t[7]!==n.cronLoading||t[8]!==n.cronNone||t[9]!==n.cronTitle||t[10]!==l||t[11]!==s||t[12]!==c||t[13]!==r||t[14]!==d||t[15]!==u){let e=a(d),o=d===`zh`?`zh-CN`:`en-US`,p=e.cron.scheduleBadge,m;t[17]!==n.cronHint||t[18]!==n.cronTitle?(m=(0,Q.jsx)(Xe,{className:`shrink-0`,icon:le,title:n.cronTitle,subtitle:n.cronHint}),t[17]=n.cronHint,t[18]=n.cronTitle,t[19]=m):m=t[19],f=(0,Q.jsxs)(Ze,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:[m,c?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.cronLoading}):l.length===0?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.cronNone}):(0,Q.jsx)(`div`,{className:`overflow-x-auto`,children:(0,Q.jsxs)(`table`,{className:`w-full min-w-[32rem] border-collapse text-left text-sm`,children:[(0,Q.jsx)(`thead`,{children:(0,Q.jsxs)(`tr`,{className:`border-b border-edge text-fg-muted`,children:[(0,Q.jsx)(`th`,{className:`py-2 pr-3 font-medium`,children:n.cronColSchedule}),(0,Q.jsx)(`th`,{className:`py-2 pr-3 font-medium`,children:n.cronColMessage}),(0,Q.jsx)(`th`,{className:`py-2 pr-3 font-medium`,children:n.cronColSession}),(0,Q.jsx)(`th`,{className:`py-2 pr-3 font-medium`,children:n.cronColAgent})]})}),(0,Q.jsx)(`tbody`,{children:l.map(e=>{let t=!e.agentId?.trim(),a=t?``:e.agentId.trim().toLowerCase();return(0,Q.jsxs)(`tr`,{className:`border-b border-edge-subtle`,children:[(0,Q.jsx)(`td`,{className:`py-2 pr-3`,children:(0,Q.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:dt(e,o,p)}),(0,Q.jsx)(`span`,{className:`truncate font-mono text-[0.65rem] text-fg-subtle`,title:_t(e.schedule),children:_t(e.schedule)})]})}),(0,Q.jsx)(`td`,{className:`max-w-[12rem] truncate py-2 pr-3 text-xs`,title:ht(e),children:ht(e)}),(0,Q.jsx)(`td`,{className:`py-2 pr-3 text-xs`,children:e.sessionTarget??`main`}),(0,Q.jsx)(`td`,{className:`py-2 pr-3`,children:(0,Q.jsxs)(`select`,{className:i(Dt(),`min-w-[8rem] py-1 text-xs`),value:a,disabled:s||e.sessionTarget!==`isolated`,onChange:t=>void u(e,t.target.value),children:[(0,Q.jsx)(`option`,{value:``,children:t?n.cronAgentDefault:n.cronAgentClear}),r.agents.map(Pt)]})})]},e.id)})})]})})]}),t[0]=n.cronAgentClear,t[1]=n.cronAgentDefault,t[2]=n.cronColAgent,t[3]=n.cronColMessage,t[4]=n.cronColSchedule,t[5]=n.cronColSession,t[6]=n.cronHint,t[7]=n.cronLoading,t[8]=n.cronNone,t[9]=n.cronTitle,t[10]=l,t[11]=s,t[12]=c,t[13]=r,t[14]=d,t[15]=u,t[16]=f}else f=t[16];return f}function Pt(e){return(0,Q.jsx)(`option`,{value:e.id,children:e.id},e.id)}function Ft(e){return e.language}function It(e){let t=(0,Z.c)(29),{a:n,filesLoading:r,files:a,activeFile:o,setActiveFile:c,filesViewMode:l,setFilesViewMode:u,fileDraft:d,setFileDraft:f,fileSaving:p,profileFileLoading:m,profileEditorNonce:g,onTryInChat:_}=e,v=s(Lt),y;t[0]===n.filesHint?y=t[1]:(y=(0,Q.jsx)(`p`,{className:`shrink-0 text-sm text-fg-muted`,children:n.filesHint}),t[0]=n.filesHint,t[1]=y);let b;t[2]!==n.filesAutoSaveHint||t[3]!==n.filesEmpty||t[4]!==n.filesLoading||t[5]!==n.filesMarkdownEdit||t[6]!==n.filesMarkdownPreview||t[7]!==n.filesSavingStatus||t[8]!==n.missing||t[9]!==n.navCoreFiles||t[10]!==n.pickFile||t[11]!==n.tryInChat||t[12]!==o||t[13]!==d||t[14]!==p||t[15]!==a||t[16]!==r||t[17]!==l||t[18]!==v||t[19]!==_||t[20]!==g||t[21]!==m||t[22]!==c||t[23]!==f||t[24]!==u?(b=r?(0,Q.jsx)(`p`,{className:`shrink-0 text-sm text-fg-muted`,children:n.filesLoading}):a?(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-3 overflow-hidden`,children:[(0,Q.jsx)(`nav`,{className:`-mx-1 flex shrink-0 flex-wrap gap-1 px-1 pb-1`,role:`tablist`,"aria-label":n.navCoreFiles,children:a.files.map(e=>{let t=o===e.name;return(0,Q.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":t,className:i(`inline-flex shrink-0 items-center rounded-lg px-3 py-2 font-mono text-xs font-medium whitespace-nowrap transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,h.press,t?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`,e.missing&&`opacity-60`),onClick:()=>c(e.name),children:[e.name,e.missing?` (${n.missing})`:``]},e.name)})}),(0,Q.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col gap-2 overflow-hidden`,children:o?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-between gap-2`,children:[(0,Q.jsxs)(`div`,{className:`inline-flex rounded-lg border border-edge bg-surface-panel p-0.5`,role:`group`,"aria-label":`${n.filesMarkdownEdit} / ${n.filesMarkdownPreview}`,children:[(0,Q.jsxs)(`button`,{type:`button`,className:i(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,h.press,l===`edit`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>u(`edit`),children:[(0,Q.jsx)(ze,{className:`size-3.5 shrink-0`,"aria-hidden":!0}),n.filesMarkdownEdit]}),(0,Q.jsxs)(`button`,{type:`button`,className:i(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,h.press,l===`preview`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>u(`preview`),children:[(0,Q.jsx)(ke,{className:`size-3.5 shrink-0`,"aria-hidden":!0}),n.filesMarkdownPreview]})]}),(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs text-fg-muted`,children:[p?(0,Q.jsx)(`span`,{children:n.filesSavingStatus}):null,(0,Q.jsx)(`span`,{children:n.filesAutoSaveHint}),_?(0,Q.jsxs)(q,{type:`button`,variant:`secondary`,className:`ml-auto text-xs`,onClick:_,children:[(0,Q.jsx)(pe,{className:`mr-1 size-3.5`,"aria-hidden":!0}),n.tryInChat]}):null]})]}),l===`edit`?(0,Q.jsx)(`div`,{className:i(Dt(),`flex min-h-0 flex-1 flex-col overflow-hidden p-0`,m&&`pointer-events-none opacity-60`),children:(0,Q.jsx)(Ye,{initialContent:d,onChange:f,isDark:v,className:`min-h-0 flex-1`},`${o??`file`}-${g}`)}):(0,Q.jsx)(`div`,{className:i(Dt(),`min-h-0 flex-1 overflow-y-auto text-sm`,m&&`pointer-events-none opacity-60`),children:(0,Q.jsx)(fe,{content:d,className:`text-sm`})})]}):(0,Q.jsx)(`p`,{className:`shrink-0 text-sm text-fg-muted`,children:n.pickFile})})]}):(0,Q.jsx)(`p`,{className:`shrink-0 text-sm text-fg-muted`,children:n.filesEmpty}),t[2]=n.filesAutoSaveHint,t[3]=n.filesEmpty,t[4]=n.filesLoading,t[5]=n.filesMarkdownEdit,t[6]=n.filesMarkdownPreview,t[7]=n.filesSavingStatus,t[8]=n.missing,t[9]=n.navCoreFiles,t[10]=n.pickFile,t[11]=n.tryInChat,t[12]=o,t[13]=d,t[14]=p,t[15]=a,t[16]=r,t[17]=l,t[18]=v,t[19]=_,t[20]=g,t[21]=m,t[22]=c,t[23]=f,t[24]=u,t[25]=b):b=t[25];let x;return t[26]!==y||t[27]!==b?(x=(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-hidden`,children:[y,b]}),t[26]=y,t[27]=b,t[28]=x):x=t[28],x}function Lt(e){return e.resolved===`dark`}function Rt(e){let t=(0,Z.c)(52),{a:n,chat:r,selected:i,busy:a,modelRows:o,setModelRows:s,onSaveModels:c,onClearModelsEntry:l,hideInlineSave:u}=e,d;t[0]!==n.modelsTabHint||t[1]!==n.modelsTabTitle?(d=(0,Q.jsx)(Xe,{className:`shrink-0`,icon:He,title:n.modelsTabTitle,subtitle:n.modelsTabHint}),t[0]=n.modelsTabHint,t[1]=n.modelsTabTitle,t[2]=d):d=t[2];let f;t[3]===n.modelsDefaultsLabel?f=t[4]:(f=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.modelsDefaultsLabel}),t[3]=n.modelsDefaultsLabel,t[4]=f);let p;t[5]===i.typedModels.defaults?p=t[6]:(p=nt(i.typedModels.defaults),t[5]=i.typedModels.defaults,t[6]=p);let m;t[7]!==f||t[8]!==p?(m=(0,Q.jsxs)(`div`,{children:[f,` `,p]}),t[7]=f,t[8]=p,t[9]=m):m=t[9];let h;t[10]===n.modelsEffectiveLabel?h=t[11]:(h=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.modelsEffectiveLabel}),t[10]=n.modelsEffectiveLabel,t[11]=h);let g;t[12]===i.typedModels.effective?g=t[13]:(g=nt(i.typedModels.effective),t[12]=i.typedModels.effective,t[13]=g);let _;t[14]!==h||t[15]!==g?(_=(0,Q.jsxs)(`div`,{children:[h,` `,g]}),t[14]=h,t[15]=g,t[16]=_):_=t[16];let v;t[17]!==m||t[18]!==_?(v=(0,Q.jsxs)(`div`,{className:`mb-4 grid gap-2 rounded-lg border border-edge-subtle bg-surface-base/60 p-3 text-xs text-fg-muted dark:border-edge`,children:[m,_]}),t[17]=m,t[18]=_,t[19]=v):v=t[19];let y;t[20]!==n.addTypedModel||t[21]!==n.removeTypedModel||t[22]!==n.typedModelDescriptionLabel||t[23]!==n.typedModelDescriptionPlaceholder||t[24]!==n.typedModelIdLabel||t[25]!==n.typedModelIdPlaceholder?(y={id:n.typedModelIdLabel,description:n.typedModelDescriptionLabel,add:n.addTypedModel,remove:n.removeTypedModel,idPlaceholder:n.typedModelIdPlaceholder,descriptionPlaceholder:n.typedModelDescriptionPlaceholder},t[20]=n.addTypedModel,t[21]=n.removeTypedModel,t[22]=n.typedModelDescriptionLabel,t[23]=n.typedModelDescriptionPlaceholder,t[24]=n.typedModelIdLabel,t[25]=n.typedModelIdPlaceholder,t[26]=y):y=t[26];let b;t[27]!==a||t[28]!==r||t[29]!==o||t[30]!==s||t[31]!==y?(b=(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,children:(0,Q.jsx)(ot,{rows:o,onChange:s,disabled:a,chat:r,labels:y})}),t[27]=a,t[28]=r,t[29]=o,t[30]=s,t[31]=y,t[32]=b):b=t[32];let x;t[33]!==n.modelsSave||t[34]!==a||t[35]!==u||t[36]!==c?(x=u?null:(0,Q.jsx)(q,{type:`button`,disabled:a,onClick:()=>void c(),children:n.modelsSave}),t[33]=n.modelsSave,t[34]=a,t[35]=u,t[36]=c,t[37]=x):x=t[37];let S;t[38]===l?S=t[39]:(S=()=>void l(),t[38]=l,t[39]=S);let C;t[40]!==n.modelsResetInherit||t[41]!==a||t[42]!==S?(C=(0,Q.jsx)(q,{type:`button`,variant:`secondary`,disabled:a,onClick:S,children:n.modelsResetInherit}),t[40]=n.modelsResetInherit,t[41]=a,t[42]=S,t[43]=C):C=t[43];let w;t[44]!==x||t[45]!==C?(w=(0,Q.jsxs)(`div`,{className:`mt-4 flex shrink-0 flex-wrap gap-2`,children:[x,C]}),t[44]=x,t[45]=C,t[46]=w):w=t[46];let T;return t[47]!==d||t[48]!==w||t[49]!==v||t[50]!==b?(T=(0,Q.jsxs)(Ze,{className:`flex min-h-0 flex-1 flex-col`,children:[d,v,b,w]}),t[47]=d,t[48]=w,t[49]=v,t[50]=b,t[51]=T):T=t[51],T}var $=e(t(),1);function zt(e){let t=(0,Z.c)(19),{label:n,mode:r,value:a,inheritedFrom:o,inheritLabel:s,overrideLabel:c}=e,l;t[0]===n?l=t[1]:(l=(0,Q.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-wide text-fg-subtle`,children:n}),t[0]=n,t[1]=l);let u=a||`—`,d;t[2]===u?d=t[3]:(d=(0,Q.jsx)(`p`,{className:`mt-1 truncate text-sm font-medium text-fg`,children:u}),t[2]=u,t[3]=d);let f;t[4]!==o||t[5]!==r?(f=r===`inherit`&&o?(0,Q.jsx)(`p`,{className:`mt-0.5 truncate text-xs text-fg-muted`,children:o}):null,t[4]=o,t[5]=r,t[6]=f):f=t[6];let p;t[7]!==l||t[8]!==d||t[9]!==f?(p=(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[l,d,f]}),t[7]=l,t[8]=d,t[9]=f,t[10]=p):p=t[10];let m=r===`inherit`?`bg-surface-hover text-fg-muted`:`bg-accent-soft text-accent-fg`,h;t[11]===m?h=t[12]:(h=i(`mt-2 inline-flex shrink-0 self-start rounded-full px-2.5 py-0.5 text-xs font-medium sm:mt-0`,m),t[11]=m,t[12]=h);let g=r===`inherit`?s:c,_;t[13]!==h||t[14]!==g?(_=(0,Q.jsx)(`span`,{className:h,children:g}),t[13]=h,t[14]=g,t[15]=_):_=t[15];let v;return t[16]!==p||t[17]!==_?(v=(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 rounded-xl border border-edge-subtle bg-surface-panel px-4 py-3 sm:flex-row sm:items-center sm:justify-between`,children:[p,_]}),t[16]=p,t[17]=_,t[18]=v):v=t[18],v}function Bt(e){let t=(0,Z.c)(41),{a:n,defaultModel:r,defaultWorkspace:i,agentModel:a,agentWorkspace:o,settingsPath:s,settingsState:c}=e,l=s===void 0?`/settings/agent-defaults`:s,u=n.inheritance,d;t[0]===a?d=t[1]:(d=a.trim(),t[0]=a,t[1]=d);let f=!d,p;t[2]!==o||t[3]!==i?(p=!o.trim()||i.trim().length>0&&o.trim()===i.trim(),t[2]=o,t[3]=i,t[4]=p):p=t[4];let m=p,h=f?r||u.unset:a,g=m?i||u.unset:o,_;t[5]!==u.editDefaultsLink||t[6]!==l||t[7]!==c?(_=(0,Q.jsx)(qe,{to:l,state:c,className:`text-xs font-medium text-accent hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,children:u.editDefaultsLink}),t[5]=u.editDefaultsLink,t[6]=l,t[7]=c,t[8]=_):_=t[8];let v;t[9]!==u.subtitle||t[10]!==u.title||t[11]!==_?(v=(0,Q.jsx)(Xe,{icon:J,title:u.title,subtitle:u.subtitle,trailing:_}),t[9]=u.subtitle,t[10]=u.title,t[11]=_,t[12]=v):v=t[12];let y=f?`inherit`:`override`,b;t[13]!==r||t[14]!==u.inheritsValue||t[15]!==f?(b=f&&r?u.inheritsValue.replace(`{{value}}`,r):void 0,t[13]=r,t[14]=u.inheritsValue,t[15]=f,t[16]=b):b=t[16];let x;t[17]!==h||t[18]!==u.badgeInherit||t[19]!==u.badgeOverride||t[20]!==u.modelLabel||t[21]!==y||t[22]!==b?(x=(0,Q.jsx)(zt,{label:u.modelLabel,mode:y,value:h,inheritedFrom:b,inheritLabel:u.badgeInherit,overrideLabel:u.badgeOverride}),t[17]=h,t[18]=u.badgeInherit,t[19]=u.badgeOverride,t[20]=u.modelLabel,t[21]=y,t[22]=b,t[23]=x):x=t[23];let S=m?`inherit`:`override`,C;t[24]!==i||t[25]!==u.inheritsValue||t[26]!==m?(C=m&&i?u.inheritsValue.replace(`{{value}}`,i):void 0,t[24]=i,t[25]=u.inheritsValue,t[26]=m,t[27]=C):C=t[27];let w;t[28]!==g||t[29]!==u.badgeInherit||t[30]!==u.badgeOverride||t[31]!==u.workspaceLabel||t[32]!==S||t[33]!==C?(w=(0,Q.jsx)(zt,{label:u.workspaceLabel,mode:S,value:g,inheritedFrom:C,inheritLabel:u.badgeInherit,overrideLabel:u.badgeOverride}),t[28]=g,t[29]=u.badgeInherit,t[30]=u.badgeOverride,t[31]=u.workspaceLabel,t[32]=S,t[33]=C,t[34]=w):w=t[34];let T;t[35]!==w||t[36]!==x?(T=(0,Q.jsxs)(`div`,{className:`mt-4 grid gap-3 sm:grid-cols-2`,children:[x,w]}),t[35]=w,t[36]=x,t[37]=T):T=t[37];let E;return t[38]!==T||t[39]!==v?(E=(0,Q.jsxs)(Ze,{children:[v,T]}),t[38]=T,t[39]=v,t[40]=E):E=t[40],E}function Vt(e,t){switch(e){case`adventurer`:return t.avatarStyleAdventurer;case`bottts`:return t.avatarStyleRobot;case`lorelei`:return t.avatarStyleLorelei;case`thumbs`:return t.avatarStyleThumbs;case`fun-emoji`:return t.avatarStyleFunEmoji;default:return e}}function Ht(e){let{agentId:t,value:n,onChange:r,a,id:o}=e,s=(0,$.useRef)(null),[c,l]=(0,$.useState)(!1),[d,f]=(0,$.useState)(null),[m,g]=(0,$.useState)(!1),_=(0,$.useMemo)(()=>{let e=Ve(n.trim());return e&&Pe(e.styleId)?e.styleId:u[0]??`adventurer`},[n]),v=(0,$.useCallback)(async(e,n)=>{try{await X(t)}catch{}r(Ge(e,n)),g(!1)},[t,r]),y=(0,$.useCallback)(async e=>{let n=e.target.files?.[0];if(e.target.value=``,n){f(null),l(!0);try{await ve(t,n),Ee(t),r(G)}catch(e){let t=e instanceof Error?e.message:``;f(t===`avatar_too_large`?a.avatarTooLarge:t===`unsupported_image_type`||t===`empty_file`?a.avatarInvalidImage:a.avatarUploadFailed)}finally{l(!1)}}},[a,t,r]),b=(e,t)=>{let r=Ve(n.trim());return!!(r&&r.styleId===e&&r.seed===t)};return(0,Q.jsxs)(`div`,{...o?{id:o}:{},className:`flex flex-col gap-3 sm:col-span-2`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:a.avatarPickerTitle}),(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsx)(`input`,{ref:s,type:`file`,accept:`image/png,image/jpeg,image/webp,.png,.jpg,.jpeg,.webp`,className:`hidden`,onChange:e=>void y(e)}),(0,Q.jsxs)(q,{type:`button`,variant:`secondary`,className:`gap-1.5 px-2.5 py-1.5 text-xs`,disabled:c,onClick:()=>s.current?.click(),children:[(0,Q.jsx)(p,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),c?a.avatarUploading:a.avatarUploadCustom]})]})]}),d?(0,Q.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-400`,children:d}):null,(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:u.map(e=>(0,Q.jsx)(`button`,{type:`button`,onClick:()=>void v(e,R[0]??t),className:i(`rounded-full border px-3 py-1.5 text-xs font-medium transition-colors`,h.press,_===e?`border-fg bg-fg text-surface-base`:`border-edge-subtle bg-surface-panel text-fg hover:border-edge`),children:Vt(e,a)},e))}),(0,Q.jsxs)(`div`,{className:`rounded-xl border border-edge-subtle bg-surface-panel/50 p-3`,children:[(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[R.map(e=>(0,Q.jsx)(`button`,{type:`button`,title:e,onClick:()=>void v(_,e),className:i(`flex size-12 shrink-0 items-center justify-center rounded-full border-2 transition-colors`,h.press,b(_,e)?`border-accent ring-2 ring-accent/30`:`border-transparent hover:border-edge`),children:(0,Q.jsx)(`img`,{src:Qe(_,e,96),alt:``,width:44,height:44,className:`size-11 rounded-full object-cover`,draggable:!1})},e)),(0,Q.jsxs)(Te,{open:m,onOpenChange:g,children:[(0,Q.jsx)(U,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:i(`flex size-12 shrink-0 items-center justify-center rounded-xl border border-edge-subtle bg-surface-base text-xs font-medium text-fg-muted hover:border-edge hover:text-fg`,h.press),children:a.avatarMore})}),(0,Q.jsx)(Be,{children:(0,Q.jsxs)(Ne,{className:`z-[80] max-h-72 w-[min(22rem,calc(100vw-2rem))] overflow-y-auto rounded-xl border border-edge-subtle bg-surface-panel p-3 shadow-lg`,sideOffset:6,align:`end`,children:[(0,Q.jsx)(`p`,{className:`mb-2 text-xs font-medium text-fg-muted`,children:Vt(_,a)}),(0,Q.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:H.map(e=>(0,Q.jsx)(`button`,{type:`button`,title:e,onClick:()=>void v(_,e),className:i(`flex size-11 shrink-0 items-center justify-center rounded-full border-2 transition-colors`,h.press,b(_,e)?`border-accent ring-2 ring-accent/30`:`border-transparent hover:border-edge`),children:(0,Q.jsx)(`img`,{src:Qe(_,e,88),alt:``,width:40,height:40,className:`size-10 rounded-full object-cover`,draggable:!1})},e))})]})})]})]}),(0,Q.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 border-t border-edge-subtle pt-3`,children:[(0,Q.jsx)(`span`,{className:`text-xs text-fg-muted`,children:a.personaAvatar}),(0,Q.jsx)(he,{agentId:t,avatar:n,size:40}),n.trim()&&!Ve(n.trim())&&n.trim()!==`xopc:custom`?(0,Q.jsx)(`span`,{className:`truncate font-mono text-[10px] text-fg-muted`,title:n,children:n}):null]})]})]})}var Ut={name:``,description:``,language:``,creature:``,emoji:``,avatar:``};function Wt(e){let t={...Ut};if(!e.trim())return t;let n={name:`name`,description:`description`,language:`language`,creature:`creature`,emoji:`emoji`,avatar:`avatar`};for(let r of e.split(`
|
|
2
|
-
`)){let e=r.match(/^[-*]\s+\*\*(\w+):\*\*\s*(.*)/i);if(!e)continue;let i=n[e[1].toLowerCase()];if(!i)continue;let a=e[2].trim();/^_\(.*\)_$/.test(a)&&(a=``),t[i]=a}return t}function Gt(e){return[`# IDENTITY.md - Who Am I?`,``,`- **Name:** ${e.name}`,`- **Description:** ${e.description}`,`- **Language:** ${e.language}`,`- **Creature:** ${e.creature}`,`- **Emoji:** ${e.emoji}`,`- **Avatar:** ${e.avatar}`,``].join(`
|
|
3
|
-
`)}var Kt={callName:``,pronouns:``,timezone:``,notes:``};function qt(e){let t={...Kt};if(!e.trim())return t;let n={name:`callName`,"what to call them":`callName`,pronouns:`pronouns`,timezone:`timezone`,notes:`notes`},r=e.split(`
|
|
4
|
-
`),i=-1;for(let e=0;e<r.length;e++){let a=r[e];if(/^##\s+Context/i.test(a)){i=e+1;continue}let o=a.match(/^[-*]\s+\*\*(.+?):\*\*\s*(.*)/i);if(!o)continue;let s=n[o[1].toLowerCase().trim()];if(!s)continue;let c=o[2].trim();/^_\(.*\)_$/.test(c)&&(c=``),t[s]=c}if(i>0){let e=r.slice(i).join(`
|
|
5
|
-
`).replace(/^_\(.*?\)_\s*/gm,``).replace(/^---\s*$/gm,``).replace(/The more you know.*$/s,``).trim();e&&!t.notes&&(t.notes=e)}return t}function Jt(e){let t=[`# USER.md - About Your Human`,``,`- **Name:** ${e.callName}`,`- **Pronouns:** ${e.pronouns}`,`- **Timezone:** ${e.timezone}`,``];return e.notes.trim()&&t.push(`## Context`,``,e.notes.trim(),``),t.join(`
|
|
6
|
-
`)}var Yt=[{id:`professional`,labelEn:`Professional & Efficient`,labelZh:`专业高效`,emoji:`🎯`,content:`# SOUL.md - Who You Are
|
|
7
|
-
|
|
8
|
-
## Core Truths
|
|
9
|
-
|
|
10
|
-
**Be genuinely helpful, not performatively helpful.** Skip the filler words — just help. Actions speak louder than pleasantries.
|
|
11
|
-
|
|
12
|
-
**Be precise and efficient.** Value the user's time. Give concise, actionable answers. Expand only when asked.
|
|
13
|
-
|
|
14
|
-
**Earn trust through competence.** Be careful with external actions. Be bold with internal ones (reading, organizing, learning).
|
|
15
|
-
|
|
16
|
-
**Remember you're a guest.** You have access to someone's life. Treat it with respect.
|
|
17
|
-
|
|
18
|
-
## Boundaries
|
|
19
|
-
|
|
20
|
-
- Private things stay private. Period.
|
|
21
|
-
- When in doubt, ask before acting externally.
|
|
22
|
-
- Never send half-baked replies to messaging surfaces.
|
|
23
|
-
|
|
24
|
-
## Vibe
|
|
25
|
-
|
|
26
|
-
Professional, competent, and respectful. Concise when needed, thorough when it matters.`},{id:`casual`,labelEn:`Warm & Friendly`,labelZh:`轻松友好`,emoji:`😊`,content:`# SOUL.md - Who You Are
|
|
27
|
-
|
|
28
|
-
## Core Truths
|
|
29
|
-
|
|
30
|
-
**Be a good friend, not a corporate drone.** Be warm, genuine, and real. Skip the formality when it gets in the way.
|
|
31
|
-
|
|
32
|
-
**Have personality.** You're allowed to be amused, surprised, or excited. An assistant with no personality is just a search engine.
|
|
33
|
-
|
|
34
|
-
**Be resourceful before asking.** Try to figure it out first. Then ask if you're stuck.
|
|
35
|
-
|
|
36
|
-
**Earn trust by being reliable.** Show up, follow through, and remember what matters.
|
|
37
|
-
|
|
38
|
-
**Respect the intimacy.** You have access to someone's life. That's a privilege.
|
|
39
|
-
|
|
40
|
-
## Boundaries
|
|
41
|
-
|
|
42
|
-
- Private things stay private. Always.
|
|
43
|
-
- When in doubt, ask before acting externally.
|
|
44
|
-
- Be careful in group chats — you're not the user's voice.
|
|
45
|
-
|
|
46
|
-
## Vibe
|
|
47
|
-
|
|
48
|
-
Warm, friendly, and a little playful. Like a helpful friend who happens to know everything.`},{id:`geeky`,labelEn:`Geeky & Witty`,labelZh:`极客风格`,emoji:`🧑💻`,content:`# SOUL.md - Who You Are
|
|
49
|
-
|
|
50
|
-
## Core Truths
|
|
51
|
-
|
|
52
|
-
**Precision over politeness.** "This is broken" beats "This might be worth considering." Be direct.
|
|
53
|
-
|
|
54
|
-
**Have opinions.** Disagree, prefer things, find stuff interesting or dull. No personality = no value.
|
|
55
|
-
|
|
56
|
-
**Go deep.** When something is interesting, explore it. Surface-level answers are for search engines.
|
|
57
|
-
|
|
58
|
-
**Be resourceful.** Read the file. Check the context. Search for it. Come back with answers, not questions.
|
|
59
|
-
|
|
60
|
-
**Earn trust through competence.** Be careful with external actions. Be bold with internal ones.
|
|
61
|
-
|
|
62
|
-
## Boundaries
|
|
63
|
-
|
|
64
|
-
- Private things stay private.
|
|
65
|
-
- When in doubt, ask before acting externally.
|
|
66
|
-
- Never send half-baked replies.
|
|
67
|
-
|
|
68
|
-
## Vibe
|
|
69
|
-
|
|
70
|
-
Sharp, direct, slightly nerdy. The kind of engineer you'd want on your team — competent, opinionated, and occasionally funny.`},{id:`custom`,labelEn:`Custom`,labelZh:`自定义`,emoji:`✍️`,content:``}];function Xt(e){let t=e.trimStart();if(!t.startsWith(`---`))return e;let n=t.indexOf(`---`,3);return n===-1?e:t.slice(n+3).trimStart()}function Zt(e){let t=Xt(e).trim();if(!t)return`professional`;for(let e of Yt)if(e.id!==`custom`&&(t===e.content.trim()||$t(t,e.id)>=2))return e.id;return`custom`}var Qt={professional:/precise and efficient|Value the user's time|actionable answers/g,casual:/good friend|corporate drone|a little playful/g,geeky:/Precision over politeness|Go deep|slightly nerdy/g};function $t(e,t){let n=Qt[t];if(!n)return 0;let r=new RegExp(n.source,`g`),i=new Set,a;for(;(a=r.exec(e))!==null;)if(i.add(a[0]),i.size>=2)return i.size;return i.size}var en=[{value:``,labelEn:`Not set`,labelZh:`未设置`},{value:`Asia/Shanghai`,labelEn:`Asia/Shanghai (CST, UTC+8)`,labelZh:`亚洲/上海 (北京时间, UTC+8)`},{value:`Asia/Tokyo`,labelEn:`Asia/Tokyo (JST, UTC+9)`,labelZh:`亚洲/东京 (日本时间, UTC+9)`},{value:`Asia/Seoul`,labelEn:`Asia/Seoul (KST, UTC+9)`,labelZh:`亚洲/首尔 (韩国时间, UTC+9)`},{value:`Asia/Singapore`,labelEn:`Asia/Singapore (SGT, UTC+8)`,labelZh:`亚洲/新加坡 (UTC+8)`},{value:`Asia/Hong_Kong`,labelEn:`Asia/Hong Kong (HKT, UTC+8)`,labelZh:`亚洲/香港 (UTC+8)`},{value:`Asia/Taipei`,labelEn:`Asia/Taipei (CST, UTC+8)`,labelZh:`亚洲/台北 (UTC+8)`},{value:`Asia/Kolkata`,labelEn:`Asia/Kolkata (IST, UTC+5:30)`,labelZh:`亚洲/加尔各答 (印度时间, UTC+5:30)`},{value:`Asia/Dubai`,labelEn:`Asia/Dubai (GST, UTC+4)`,labelZh:`亚洲/迪拜 (UTC+4)`},{value:`Europe/London`,labelEn:`Europe/London (GMT/BST)`,labelZh:`欧洲/伦敦 (格林尼治时间)`},{value:`Europe/Paris`,labelEn:`Europe/Paris (CET, UTC+1)`,labelZh:`欧洲/巴黎 (中欧时间, UTC+1)`},{value:`Europe/Berlin`,labelEn:`Europe/Berlin (CET, UTC+1)`,labelZh:`欧洲/柏林 (中欧时间, UTC+1)`},{value:`Europe/Moscow`,labelEn:`Europe/Moscow (MSK, UTC+3)`,labelZh:`欧洲/莫斯科 (UTC+3)`},{value:`America/New_York`,labelEn:`America/New York (EST, UTC-5)`,labelZh:`美国/纽约 (东部时间, UTC-5)`},{value:`America/Chicago`,labelEn:`America/Chicago (CST, UTC-6)`,labelZh:`美国/芝加哥 (中部时间, UTC-6)`},{value:`America/Denver`,labelEn:`America/Denver (MST, UTC-7)`,labelZh:`美国/丹佛 (山地时间, UTC-7)`},{value:`America/Los_Angeles`,labelEn:`America/Los Angeles (PST, UTC-8)`,labelZh:`美国/洛杉矶 (太平洋时间, UTC-8)`},{value:`America/Sao_Paulo`,labelEn:`America/São Paulo (BRT, UTC-3)`,labelZh:`美洲/圣保罗 (巴西时间, UTC-3)`},{value:`Australia/Sydney`,labelEn:`Australia/Sydney (AEST, UTC+10)`,labelZh:`澳大利亚/悉尼 (UTC+10)`},{value:`Pacific/Auckland`,labelEn:`Pacific/Auckland (NZST, UTC+12)`,labelZh:`太平洋/奥克兰 (新西兰时间, UTC+12)`}];function tn(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch{return``}}var nn=[{value:`先生`,labelEn:`Mr.`,labelZh:`先生`},{value:`女士`,labelEn:`Ms.`,labelZh:`女士`},{value:`同学`,labelEn:`Colleague`,labelZh:`同学`},{value:`老师`,labelEn:`Teacher`,labelZh:`老师`},{value:`老板`,labelEn:`Boss`,labelZh:`老板`},{value:`朋友`,labelEn:`Friend`,labelZh:`朋友`}],rn=[{value:`AI assistant`,labelEn:`AI Assistant`,labelZh:`AI 助手`},{value:`robot`,labelEn:`Robot`,labelZh:`机器人`},{value:`familiar`,labelEn:`Familiar`,labelZh:`精灵`},{value:`ghost in the machine`,labelEn:`Ghost in the machine`,labelZh:`机器幽灵`},{value:`digital companion`,labelEn:`Digital Companion`,labelZh:`数字伙伴`}];function an(e){let t=(0,Z.c)(216),{a:n,chat:r,selected:a,busy:c,editName:l,setEditName:u,editDescription:f,setEditDescription:p,editWorkspace:m,setEditWorkspace:g,editModel:_,setEditModel:v,onSetDefault:y,onSaveAgentEdits:x,onDelete:S,hideInlineSave:C,profileMarkdownLoading:w,profileDraft:T,updateIdentity:E,handleSoulTemplateChange:D,handleSoulContentChange:O,setAvatarDialogOpen:k,toggleSoulPreviewMode:A,defaultModel:M,defaultWorkspace:N,onTryInChat:P}=e,F=M===void 0?``:M,I=N===void 0?``:N,te=o(cn),L=s(sn),re;t[0]===T?.identity?re=t[1]:(re=T?.identity??{name:``,description:``,language:``,creature:``,emoji:``,avatar:``},t[0]=T?.identity,t[1]=re);let R=re,z=T?.soulTemplate??`professional`,ae=T?.soulCustomContent??``,oe=T?.soulEditorNonce??0,ce=T?.soulPreviewMode??!1,le=T?.avatarDialogOpen??!1,de;t[2]===te?de=t[3]:(de=(e,t)=>te===`zh`?t:e,t[2]=te,t[3]=de);let V=de,ve;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(ve=Dt(),t[4]=ve):ve=t[4];let H=ve;if(!a){let e;return t[5]===n.selectAgentHint?e=t[6]:(e=(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.selectAgentHint}),t[5]=n.selectAgentHint,t[6]=e),e}let U;t[7]===a.id?U=t[8]:(U=Me(a.id),t[7]=a.id,t[8]=U);let xe;t[9]===U?xe=t[10]:(xe={[Le]:U},t[9]=U,t[10]=xe);let W;t[11]!==n||t[12]!==F||t[13]!==I||t[14]!==_||t[15]!==m||t[16]!==xe?(W=(0,Q.jsx)(Bt,{a:n,defaultModel:F,defaultWorkspace:I,agentModel:_,agentWorkspace:m,settingsState:xe}),t[11]=n,t[12]=F,t[13]=I,t[14]=_,t[15]=m,t[16]=xe,t[17]=W):W=t[17];let Se;t[18]!==R.avatar||t[19]!==a.id?(Se=(0,Q.jsx)(he,{agentId:a.id,avatar:R.avatar,size:36,className:`size-9 rounded-lg`}),t[18]=R.avatar,t[19]=a.id,t[20]=Se):Se=t[20];let G;t[21]===k?G=t[22]:(G=()=>k(!0),t[21]=k,t[22]=G);let K;t[23]!==n.avatarOpenSettingsAria||t[24]!==G?(K={onClick:G,ariaLabel:n.avatarOpenSettingsAria,id:`agent-avatar-settings`},t[23]=n.avatarOpenSettingsAria,t[24]=G,t[25]=K):K=t[25];let we;t[26]!==n.setDefault||t[27]!==c||t[28]!==y||t[29]!==a.isDefault?(we=a.isDefault?null:(0,Q.jsx)(q,{type:`button`,variant:`secondary`,className:`text-xs`,disabled:c,onClick:()=>void y(),children:n.setDefault}),t[26]=n.setDefault,t[27]=c,t[28]=y,t[29]=a.isDefault,t[30]=we):we=t[30];let Te;t[31]!==n.personaSectionIdentity||t[32]!==n.personaSectionIdentityHint||t[33]!==K||t[34]!==we||t[35]!==Se?(Te=(0,Q.jsx)(Xe,{icon:be,title:n.personaSectionIdentity,subtitle:n.personaSectionIdentityHint,iconLeading:Se,iconInteractive:K,trailing:we}),t[31]=n.personaSectionIdentity,t[32]=n.personaSectionIdentityHint,t[33]=K,t[34]=we,t[35]=Se,t[36]=Te):Te=t[36];let Ee;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(Ee=(0,Q.jsx)(ie,{className:i(`fixed inset-0 bg-scrim backdrop-blur-[2px]`,Je)}),t[37]=Ee):Ee=t[37];let De;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(De=i(`fixed left-1/2 top-1/2 w-[min(calc(100vw-2rem),26rem)] max-h-[min(90dvh,36rem)] -translate-x-1/2 -translate-y-1/2 overflow-y-auto rounded-xl border border-edge bg-surface-panel p-4 shadow-popover dark:border-edge`,Ke),t[38]=De):De=t[38];let Oe;t[39]===n.avatarPickerTitle?Oe=t[40]:(Oe=(0,Q.jsx)(We,{className:`text-base font-semibold text-fg`,children:n.avatarPickerTitle}),t[39]=n.avatarPickerTitle,t[40]=Oe);let Ae;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=i(se,`shrink-0 p-1.5 hover:bg-surface-base`),t[41]=Ae):Ae=t[41];let je;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(je=(0,Q.jsx)(ee,{className:`size-4`,"aria-hidden":!0}),t[42]=je):je=t[42];let Ne;t[43]===n.closeDialogAria?Ne=t[44]:(Ne=(0,Q.jsx)(_e,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:Ae,"aria-label":n.closeDialogAria,children:je})}),t[43]=n.closeDialogAria,t[44]=Ne);let Pe;t[45]!==Oe||t[46]!==Ne?(Pe=(0,Q.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-2`,children:[Oe,Ne]}),t[45]=Oe,t[46]=Ne,t[47]=Pe):Pe=t[47];let Fe;t[48]===n.avatarRowHint?Fe=t[49]:(Fe=(0,Q.jsx)(ye,{className:`sr-only`,children:n.avatarRowHint}),t[48]=n.avatarRowHint,t[49]=Fe);let Ie;t[50]===E?Ie=t[51]:(Ie=e=>E({avatar:e}),t[50]=E,t[51]=Ie);let Re;t[52]!==n||t[53]!==R.avatar||t[54]!==a.id||t[55]!==Ie?(Re=(0,Q.jsx)(Ht,{agentId:a.id,value:R.avatar,onChange:Ie,a:n}),t[52]=n,t[53]=R.avatar,t[54]=a.id,t[55]=Ie,t[56]=Re):Re=t[56];let ze;t[57]!==Pe||t[58]!==Fe||t[59]!==Re?(ze=(0,Q.jsxs)(d,{children:[Ee,(0,Q.jsxs)(ge,{className:De,onOpenAutoFocus:on,children:[Pe,Fe,Re]})]}),t[57]=Pe,t[58]=Fe,t[59]=Re,t[60]=ze):ze=t[60];let Be;t[61]!==le||t[62]!==k||t[63]!==ze?(Be=(0,Q.jsx)(Ce,{open:le,onOpenChange:k,children:ze}),t[61]=le,t[62]=k,t[63]=ze,t[64]=Be):Be=t[64];let Ve;t[65]===n.displayName?Ve=t[66]:(Ve=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.displayName}),t[65]=n.displayName,t[66]=Ve);let He;t[67]!==u||t[68]!==E?(He=e=>{u(e.target.value),E({name:e.target.value})},t[67]=u,t[68]=E,t[69]=He):He=t[69];let Ue;t[70]!==n.personaNamePlaceholder||t[71]!==l||t[72]!==He?(Ue=(0,Q.jsx)(`input`,{className:H,value:l,onChange:He,placeholder:n.personaNamePlaceholder,autoComplete:`off`}),t[70]=n.personaNamePlaceholder,t[71]=l,t[72]=He,t[73]=Ue):Ue=t[73];let J;t[74]!==Ve||t[75]!==Ue?(J=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1.5 text-sm`,children:[Ve,Ue]}),t[74]=Ve,t[75]=Ue,t[76]=J):J=t[76];let Ge;t[77]===n.personaEmoji?Ge=t[78]:(Ge=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.personaEmoji}),t[77]=n.personaEmoji,t[78]=Ge);let qe;t[79]===E?qe=t[80]:(qe=e=>E({emoji:e.target.value}),t[79]=E,t[80]=qe);let Y;t[81]!==n.personaEmojiPlaceholder||t[82]!==R.emoji||t[83]!==qe?(Y=(0,Q.jsx)(`input`,{className:H,value:R.emoji,onChange:qe,placeholder:n.personaEmojiPlaceholder,autoComplete:`off`}),t[81]=n.personaEmojiPlaceholder,t[82]=R.emoji,t[83]=qe,t[84]=Y):Y=t[84];let X;t[85]!==Ge||t[86]!==Y?(X=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1.5 text-sm`,children:[Ge,Y]}),t[85]=Ge,t[86]=Y,t[87]=X):X=t[87];let Qe;t[88]===n.agentDescription?Qe=t[89]:(Qe=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.agentDescription}),t[88]=n.agentDescription,t[89]=Qe);let $e;t[90]===Symbol.for(`react.memo_cache_sentinel`)?($e=i(H,`min-h-16 resize-y text-sm leading-relaxed`),t[90]=$e):$e=t[90];let et;t[91]!==p||t[92]!==E?(et=e=>{p(e.target.value),E({description:e.target.value})},t[91]=p,t[92]=E,t[93]=et):et=t[93];let tt;t[94]!==n.agentDescriptionPlaceholder||t[95]!==f||t[96]!==et?(tt=(0,Q.jsx)(`textarea`,{className:$e,value:f,onChange:et,placeholder:n.agentDescriptionPlaceholder,maxLength:4e3,rows:3,spellCheck:!0}),t[94]=n.agentDescriptionPlaceholder,t[95]=f,t[96]=et,t[97]=tt):tt=t[97];let nt;t[98]!==Qe||t[99]!==tt?(nt=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1.5 text-sm sm:col-span-2`,children:[Qe,tt]}),t[98]=Qe,t[99]=tt,t[100]=nt):nt=t[100];let rt;t[101]===n.personaCreature?rt=t[102]:(rt=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.personaCreature}),t[101]=n.personaCreature,t[102]=rt);let it;t[103]===R.creature?it=t[104]:(it=rn.some(e=>e.value===R.creature)?R.creature:`__custom__`,t[103]=R.creature,t[104]=it);let at;t[105]===E?at=t[106]:(at=e=>{if(e.target.value===`__custom__`){E({creature:``});return}E({creature:e.target.value})},t[105]=E,t[106]=at);let ot;t[107]===V?ot=t[108]:(ot=rn.map(e=>(0,Q.jsx)(`option`,{value:e.value,children:V(e.labelEn,e.labelZh)},e.value)),t[107]=V,t[108]=ot);let st;t[109]===V?st=t[110]:(st=V(`Custom…`,`自定义…`),t[109]=V,t[110]=st);let lt;t[111]===st?lt=t[112]:(lt=(0,Q.jsx)(`option`,{value:`__custom__`,children:st}),t[111]=st,t[112]=lt);let ut;t[113]!==it||t[114]!==at||t[115]!==ot||t[116]!==lt?(ut=(0,Q.jsxs)(`select`,{className:H,value:it,onChange:at,children:[ot,lt]}),t[113]=it,t[114]=at,t[115]=ot,t[116]=lt,t[117]=ut):ut=t[117];let dt;t[118]!==n.personaCreaturePlaceholder||t[119]!==R.creature||t[120]!==E?(dt=rn.some(e=>e.value===R.creature)?null:(0,Q.jsx)(`input`,{className:i(H,`mt-1 text-xs`),value:R.creature,onChange:e=>E({creature:e.target.value}),placeholder:n.personaCreaturePlaceholder,autoComplete:`off`}),t[118]=n.personaCreaturePlaceholder,t[119]=R.creature,t[120]=E,t[121]=dt):dt=t[121];let ft;t[122]!==rt||t[123]!==ut||t[124]!==dt?(ft=(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-sm`,children:[rt,ut,dt]}),t[122]=rt,t[123]=ut,t[124]=dt,t[125]=ft):ft=t[125];let pt;t[126]!==J||t[127]!==X||t[128]!==nt||t[129]!==ft?(pt=(0,Q.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[J,X,nt,ft]}),t[126]=J,t[127]=X,t[128]=nt,t[129]=ft,t[130]=pt):pt=t[130];let mt;t[131]!==Te||t[132]!==Be||t[133]!==pt?(mt=(0,Q.jsxs)(Ze,{children:[Te,Be,pt]}),t[131]=Te,t[132]=Be,t[133]=pt,t[134]=mt):mt=t[134];let ht;t[135]!==n.editAgent||t[136]!==n.editAgentHint?(ht=(0,Q.jsx)(Xe,{icon:B,title:n.editAgent,subtitle:n.editAgentHint}),t[135]=n.editAgent,t[136]=n.editAgentHint,t[137]=ht):ht=t[137];let gt;t[138]===n.modelPrimary?gt=t[139]:(gt=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.modelPrimary}),t[138]=n.modelPrimary,t[139]=gt);let _t;t[140]===v?_t=t[141]:(_t=e=>v(e),t[140]=v,t[141]=_t);let vt;t[142]!==c||t[143]!==r.modelNoMatches||t[144]!==r.modelPlaceholder||t[145]!==r.modelSearchPlaceholder||t[146]!==_||t[147]!==_t?(vt=(0,Q.jsx)(b,{className:`min-w-0 flex-1`,value:_,disabled:c,placeholder:r.modelPlaceholder,searchPlaceholder:r.modelSearchPlaceholder,noMatches:r.modelNoMatches,onChange:_t}),t[142]=c,t[143]=r.modelNoMatches,t[144]=r.modelPlaceholder,t[145]=r.modelSearchPlaceholder,t[146]=_,t[147]=_t,t[148]=vt):vt=t[148];let yt;t[149]!==n.modelClear||t[150]!==c||t[151]!==_||t[152]!==v?(yt=_.trim()?(0,Q.jsx)(q,{type:`button`,variant:`secondary`,className:`shrink-0`,disabled:c,onClick:()=>v(``),children:n.modelClear}):null,t[149]=n.modelClear,t[150]=c,t[151]=_,t[152]=v,t[153]=yt):yt=t[153];let bt;t[154]!==vt||t[155]!==yt?(bt=(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-stretch gap-2`,children:[vt,yt]}),t[154]=vt,t[155]=yt,t[156]=bt):bt=t[156];let xt;t[157]!==gt||t[158]!==bt?(xt=(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-sm sm:col-span-2`,children:[gt,bt]}),t[157]=gt,t[158]=bt,t[159]=xt):xt=t[159];let St;t[160]===n.workspacePath?St=t[161]:(St=(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:n.workspacePath}),t[160]=n.workspacePath,t[161]=St);let Ct=r.workingDirectory,wt=r.workingDirectory.notSet,Tt;t[162]===Symbol.for(`react.memo_cache_sentinel`)?(Tt=i(H,`font-mono text-xs`),t[162]=Tt):Tt=t[162];let Et;t[163]!==c||t[164]!==r.workingDirectory||t[165]!==m||t[166]!==g?(Et=(0,Q.jsx)(ct,{value:m,onChange:g,disabled:c,wd:Ct,placeholder:wt,inputClassName:Tt}),t[163]=c,t[164]=r.workingDirectory,t[165]=m,t[166]=g,t[167]=Et):Et=t[167];let Ot;t[168]!==St||t[169]!==Et?(Ot=(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-sm sm:col-span-2`,children:[St,Et]}),t[168]=St,t[169]=Et,t[170]=Ot):Ot=t[170];let kt;t[171]!==xt||t[172]!==Ot?(kt=(0,Q.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[xt,Ot]}),t[171]=xt,t[172]=Ot,t[173]=kt):kt=t[173];let At;t[174]!==n.save||t[175]!==n.tryInChat||t[176]!==c||t[177]!==C||t[178]!==x||t[179]!==P?(At=C?null:(0,Q.jsxs)(`div`,{className:`mt-4 flex flex-wrap items-center gap-2`,children:[(0,Q.jsx)(q,{type:`button`,disabled:c,onClick:()=>void x(),children:n.save}),P?(0,Q.jsxs)(q,{type:`button`,variant:`secondary`,disabled:c,onClick:P,children:[(0,Q.jsx)(pe,{className:`mr-1.5 size-4`,"aria-hidden":!0}),n.tryInChat]}):null]}),t[174]=n.save,t[175]=n.tryInChat,t[176]=c,t[177]=C,t[178]=x,t[179]=P,t[180]=At):At=t[180];let jt;t[181]!==ht||t[182]!==kt||t[183]!==At?(jt=(0,Q.jsxs)(Ze,{children:[ht,kt,At]}),t[181]=ht,t[182]=kt,t[183]=At,t[184]=jt):jt=t[184];let Mt;t[185]!==n.loading||t[186]!==n.personaSectionSoul||t[187]!==n.personaSectionSoulHint||t[188]!==n.personaSoulCustomEdit||t[189]!==n.personaSoulEdit||t[190]!==n.personaSoulPreview||t[191]!==n.personaSoulTemplate||t[192]!==O||t[193]!==D||t[194]!==L||t[195]!==V||t[196]!==w||t[197]!==ae||t[198]!==oe||t[199]!==ce||t[200]!==z||t[201]!==A?(Mt=w?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.loading}):(0,Q.jsxs)(Ze,{children:[(0,Q.jsx)(Xe,{icon:j,title:n.personaSectionSoul,subtitle:n.personaSectionSoulHint}),(0,Q.jsxs)(`div`,{className:`mb-4 flex flex-col gap-2`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.personaSoulTemplate}),(0,Q.jsx)(`div`,{className:`grid grid-cols-2 gap-2 sm:grid-cols-4`,children:Yt.map(e=>(0,Q.jsxs)(`button`,{type:`button`,className:i(`flex flex-col items-center gap-1.5 rounded-xl border-2 p-3 text-center transition-all`,h.pressCard,z===e.id?`border-accent bg-accent-soft/40 shadow-sm`:`border-edge hover:border-accent/40 hover:bg-surface-hover`),onClick:()=>D(e.id),children:[(0,Q.jsx)(`span`,{className:`text-xl`,children:e.emoji}),(0,Q.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:V(e.labelEn,e.labelZh)})]},e.id))})]}),z===`custom`?(0,Q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.personaSoulCustomEdit}),(0,Q.jsx)(`button`,{type:`button`,className:i(se,`inline-flex size-9 shrink-0 items-center justify-center rounded-md p-0 hover:bg-surface-hover`),title:ce?n.personaSoulEdit:n.personaSoulPreview,"aria-label":ce?n.personaSoulEdit:n.personaSoulPreview,onClick:A,children:ce?(0,Q.jsx)(ne,{className:`size-4`,"aria-hidden":!0}):(0,Q.jsx)(ke,{className:`size-4`,"aria-hidden":!0})})]}),(0,Q.jsx)(`div`,{className:i(H,`flex min-h-64 flex-col overflow-hidden p-0`),children:ce?(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:(0,Q.jsx)(fe,{content:ae})}):(0,Q.jsx)(Ye,{initialContent:ae,onChange:O,isDark:L,className:`min-h-0 flex-1`},`soul-${oe}`)})]}):null]}),t[185]=n.loading,t[186]=n.personaSectionSoul,t[187]=n.personaSectionSoulHint,t[188]=n.personaSoulCustomEdit,t[189]=n.personaSoulEdit,t[190]=n.personaSoulPreview,t[191]=n.personaSoulTemplate,t[192]=O,t[193]=D,t[194]=L,t[195]=V,t[196]=w,t[197]=ae,t[198]=oe,t[199]=ce,t[200]=z,t[201]=A,t[202]=Mt):Mt=t[202];let Nt;t[203]!==n.purgeDisk||t[204]!==n.removeFromConfig||t[205]!==c||t[206]!==V||t[207]!==S||t[208]!==a.id?(Nt=a.id===`main`?null:(0,Q.jsxs)(Ze,{children:[(0,Q.jsx)(Xe,{icon:ue,title:V(`Danger Zone`,`危险操作`),subtitle:V(`Actions that cannot be undone. Be careful.`,`以下操作不可撤销,请谨慎操作。`)}),(0,Q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Q.jsxs)(q,{type:`button`,variant:`secondary`,disabled:c,onClick:()=>void S(!1),children:[(0,Q.jsx)(me,{className:`mr-1 size-4`,"aria-hidden":!0}),n.removeFromConfig]}),(0,Q.jsx)(q,{type:`button`,variant:`secondary`,className:`border-red-200 text-red-700 hover:bg-red-50 dark:border-red-900/60 dark:text-red-300 dark:hover:bg-red-950/40`,disabled:c,onClick:()=>void S(!0),children:n.purgeDisk})]})]}),t[203]=n.purgeDisk,t[204]=n.removeFromConfig,t[205]=c,t[206]=V,t[207]=S,t[208]=a.id,t[209]=Nt):Nt=t[209];let Pt;return t[210]!==mt||t[211]!==jt||t[212]!==Mt||t[213]!==Nt||t[214]!==W?(Pt=(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-8 overflow-y-auto`,children:[W,mt,jt,Mt,Nt]}),t[210]=mt,t[211]=jt,t[212]=Mt,t[213]=Nt,t[214]=W,t[215]=Pt):Pt=t[215],Pt}function on(e){return e.preventDefault()}function sn(e){return e.resolved===`dark`}function cn(e){return e.language}function ln(e){let t=!e.pronouns||nn.some(t=>t.value===e.pronouns),n=en.some(t=>t.value===e.timezone);return{showCustomPronouns:!!(e.pronouns&&!t),showCustomTimezone:!!(e.timezone&&!n),customTimezone:e.timezone&&!n?e.timezone:``}}function un(e,t){switch(t.type){case`load`:{let e=ln(t.user),n=JSON.stringify(t.user);return{user:t.user,snapshot:n,...e}}case`patch`:{let n={...e.user,...t.patch};return{...e,user:n}}case`setShowCustomPronouns`:return{...e,showCustomPronouns:t.value};case`setShowCustomTimezone`:return{...e,showCustomTimezone:t.value};case`setCustomTimezone`:return{...e,customTimezone:t.value};case`saved`:return{...e,snapshot:JSON.stringify(e.user)}}}var dn={callName:``,pronouns:``,timezone:``,notes:``},fn={user:dn,showCustomPronouns:!1,showCustomTimezone:!1,customTimezone:``,snapshot:JSON.stringify(dn)};function pn({a:e,agentId:t,saveRef:n,onDirtyChange:r}){let a=o(e=>e.language),[s,c]=(0,$.useReducer)(un,fn),l=(0,$.useRef)(t);l.current=t;let u=(0,$.useRef)(r);u.current=r;let d=D(async()=>{let e=qt(await V(t,`USER.md`).catch(()=>``));if(!e.timezone){let t=tn();if(t)return{...e,timezone:t}}return e},[t],{enabled:!!t,initial:null,errorData:dn}),f=(0,$.useRef)(null);(0,$.useEffect)(()=>{d.loading||!d.data||f.current!==t&&(f.current=t,c({type:`load`,user:d.data}),u.current?.(!1))},[t,d.loading,d.data]);let p=(0,$.useCallback)(async e=>{await Re(l.current,`USER.md`,e)},[]),m=(0,$.useRef)(s.user);m.current=s.user,(0,$.useEffect)(()=>{if(n)return n.current=async()=>{await p(Jt(m.current)),c({type:`saved`}),u.current?.(!1)},()=>{n.current=null}},[n,p]);let g=(0,$.useCallback)(e=>{c({type:`patch`,patch:e});let t={...m.current,...e};u.current?.(JSON.stringify(t)!==s.snapshot)},[s.snapshot]),_=(0,$.useCallback)(e=>{if(e===`__custom__`){c({type:`setShowCustomTimezone`,value:!0});return}c({type:`setShowCustomTimezone`,value:!1}),c({type:`setCustomTimezone`,value:``}),g({timezone:e})},[g]),v=(0,$.useCallback)(e=>{c({type:`setCustomTimezone`,value:e}),g({timezone:e})},[g]),y=(0,$.useCallback)(()=>{let e=tn();e&&(en.some(t=>t.value===e)?(c({type:`setShowCustomTimezone`,value:!1}),c({type:`setCustomTimezone`,value:``})):(c({type:`setShowCustomTimezone`,value:!0}),c({type:`setCustomTimezone`,value:e})),g({timezone:e}))},[g]),b=s.showCustomTimezone?`__custom__`:en.some(e=>e.value===s.user.timezone)?s.user.timezone:`__custom__`,x=(0,$.useCallback)((e,t)=>a===`zh`?t:e,[a]);if(d.loading)return(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.loading});let S=Dt(),{user:C,showCustomPronouns:w,showCustomTimezone:T,customTimezone:O}=s;return(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-6 overflow-y-auto`,children:[(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.personaSectionUserHint}),(0,Q.jsxs)(Ze,{children:[(0,Q.jsx)(Xe,{icon:E,title:e.personaSectionUser,subtitle:e.personaSectionUserHint}),(0,Q.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1.5 text-sm`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:e.personaCallName}),(0,Q.jsx)(`input`,{className:S,value:C.callName,onChange:e=>g({callName:e.target.value}),placeholder:e.personaCallNamePlaceholder,autoComplete:`off`})]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-sm`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:e.personaPronouns}),(0,Q.jsxs)(`select`,{className:S,value:nn.some(e=>e.value===C.pronouns)?C.pronouns:`__custom__`,onChange:e=>{if(e.target.value===`__custom__`){c({type:`setShowCustomPronouns`,value:!0});return}c({type:`setShowCustomPronouns`,value:!1}),g({pronouns:e.target.value})},children:[(0,Q.jsx)(`option`,{value:``,disabled:!0,children:e.personaPronounsPlaceholder}),nn.map(e=>(0,Q.jsx)(`option`,{value:e.value,children:x(e.labelEn,e.labelZh)},e.value)),(0,Q.jsx)(`option`,{value:`__custom__`,children:x(`Custom…`,`自定义…`)})]}),w?(0,Q.jsx)(`input`,{className:i(S,`mt-1 text-xs`),value:nn.some(e=>e.value===C.pronouns)?``:C.pronouns,onChange:e=>g({pronouns:e.target.value}),placeholder:e.personaPronounsPlaceholder,autoComplete:`off`}):null]}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-sm sm:col-span-2`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:e.personaTimezone}),(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-stretch gap-2`,children:[(0,Q.jsxs)(`select`,{className:i(S,`min-w-0 flex-1`),value:b,onChange:e=>_(e.target.value),children:[en.map(e=>(0,Q.jsx)(`option`,{value:e.value,children:x(e.labelEn,e.labelZh)},e.value)),(0,Q.jsx)(`option`,{value:`__custom__`,children:e.personaTimezoneCustom})]}),(0,Q.jsx)(`button`,{type:`button`,className:i(`shrink-0 rounded-lg border border-edge bg-surface-panel px-3 py-2 text-xs font-medium text-fg-muted hover:bg-surface-hover hover:text-fg`,h.press),onClick:y,children:e.personaTimezoneDetect})]}),T?(0,Q.jsx)(`input`,{className:i(S,`mt-1 font-mono text-xs`),value:O,onChange:e=>v(e.target.value),placeholder:`e.g. Asia/Shanghai`,autoComplete:`off`}):null]}),(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1.5 text-sm sm:col-span-2`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-fg`,children:e.personaNotes}),(0,Q.jsx)(`textarea`,{className:i(S,`min-h-16 resize-y text-sm leading-relaxed`),value:C.notes,onChange:e=>g({notes:e.target.value}),placeholder:e.personaNotesPlaceholder,rows:3,spellCheck:!0})]})]}),(0,Q.jsxs)(`div`,{className:`mt-3 flex items-start gap-2 rounded-lg bg-accent-soft/30 px-3 py-2.5 text-xs text-fg-muted`,children:[(0,Q.jsx)(Se,{className:`mt-0.5 size-3.5 shrink-0 text-accent`,"aria-hidden":!0}),(0,Q.jsx)(`span`,{children:e.personaMemoryNote})]})]})]})}function mn(e){let t=(0,Z.c)(2),n;return t[0]===e?n=t[1]:(n=(0,Q.jsx)(pn,{...e},e.agentId),t[0]=e,t[1]=n),n}function hn(e){let t=(0,Z.c)(66),{a:n,selected:r,busy:a,skillsCatalogLoading:o,catalogForPick:s,skillsInherit:c,setSkillsInherit:l,skillsPick:u,setSkillsPick:d,onSaveSkills:f,hideInlineSave:p}=e,m;t[0]===r.skills.effectiveAllowlist?m=t[1]:(m=function(e){let t=r.skills.effectiveAllowlist;return t===void 0?!0:t.length===0?!1:t.includes(e)},t[0]=r.skills.effectiveAllowlist,t[1]=m);let h=m,g;t[2]!==s||t[3]!==r.skills.effectiveAllowlist?(g=function(){let e=r.skills.effectiveAllowlist;return e===void 0?new Set(s.map(gn)):new Set(e)},t[2]=s,t[3]=r.skills.effectiveAllowlist,t[4]=g):g=t[4];let _=g,v;t[5]!==n.skillsHint||t[6]!==n.skillsTitle?(v=(0,Q.jsx)(Xe,{className:`shrink-0`,icon:Ie,title:n.skillsTitle,subtitle:n.skillsHint}),t[5]=n.skillsHint,t[6]=n.skillsTitle,t[7]=v):v=t[7];let y;t[8]===l?y=t[9]:(y=()=>l(!0),t[8]=l,t[9]=y);let b;t[10]!==n.skillsInherit||t[11]!==a||t[12]!==y?(b=(0,Q.jsx)(q,{type:`button`,variant:`secondary`,disabled:a,onClick:y,children:n.skillsInherit}),t[10]=n.skillsInherit,t[11]=a,t[12]=y,t[13]=b):b=t[13];let x;t[14]!==_||t[15]!==l||t[16]!==d?(x=()=>{l(!1),d(_())},t[14]=_,t[15]=l,t[16]=d,t[17]=x):x=t[17];let S;t[18]!==n.skillsCustomize||t[19]!==a||t[20]!==x?(S=(0,Q.jsx)(q,{type:`button`,variant:`secondary`,disabled:a,onClick:x,children:n.skillsCustomize}),t[18]=n.skillsCustomize,t[19]=a,t[20]=x,t[21]=S):S=t[21];let C;t[22]!==b||t[23]!==S?(C=(0,Q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[b,S]}),t[22]=b,t[23]=S,t[24]=C):C=t[24];let w;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(w=K(`skills`),t[25]=w):w=t[25];let T;t[26]===n.skillsLibraryLink?T=t[27]:(T=(0,Q.jsx)(qe,{to:w,className:`shrink-0 text-xs font-medium text-accent-fg hover:underline`,children:n.skillsLibraryLink}),t[26]=n.skillsLibraryLink,t[27]=T);let E;t[28]!==C||t[29]!==T?(E=(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-between gap-3`,children:[C,T]}),t[28]=C,t[29]=T,t[30]=E):E=t[30];let D;t[31]===r.skills.defaults?D=t[32]:(D=r.skills.defaults.length?r.skills.defaults.join(`, `):`—`,t[31]=r.skills.defaults,t[32]=D);let O;t[33]!==n.skillsDefaultsLabel||t[34]!==D?(O=(0,Q.jsxs)(`p`,{className:`mt-2 shrink-0 text-xs text-fg-muted`,children:[n.skillsDefaultsLabel,` `,D]}),t[33]=n.skillsDefaultsLabel,t[34]=D,t[35]=O):O=t[35];let k;t[36]!==n.skillsInherit||t[37]!==r.skills.effectiveAllowlist||t[38]!==c?(k=r.skills.effectiveAllowlist?.length?r.skills.effectiveAllowlist.join(`, `):c?n.skillsInherit:`—`,t[36]=n.skillsInherit,t[37]=r.skills.effectiveAllowlist,t[38]=c,t[39]=k):k=t[39];let A;t[40]!==n.skillsEffectiveLabel||t[41]!==k?(A=(0,Q.jsxs)(`p`,{className:`shrink-0 text-xs text-fg-muted`,children:[n.skillsEffectiveLabel,` `,k]}),t[40]=n.skillsEffectiveLabel,t[41]=k,t[42]=A):A=t[42];let j;t[43]!==n.skillsCatalogLoading||t[44]!==n.skillsEmptyCatalog||t[45]!==n.skillsNoDescription||t[46]!==a||t[47]!==s||t[48]!==h||t[49]!==d||t[50]!==o||t[51]!==c||t[52]!==u?(j=o?(0,Q.jsx)(`p`,{className:`shrink-0 text-sm text-fg-muted`,children:n.skillsCatalogLoading}):s.length===0?(0,Q.jsx)(`p`,{className:`shrink-0 text-sm text-fg-muted`,children:n.skillsEmptyCatalog}):(0,Q.jsx)(`div`,{className:i(`mt-3 min-h-0 flex-1 overflow-y-auto overscroll-contain pr-0.5`,c&&`opacity-50`),children:(0,Q.jsx)(`ul`,{className:`flex flex-col gap-2.5 text-sm`,children:s.map(e=>{let t=e.name||e.directoryId,r=c?h(t):u.has(t),o=typeof e.description==`string`?e.description.trim():``,s=o||n.skillsNoDescription;return(0,Q.jsx)(`li`,{className:`h-16 shrink-0 overflow-hidden rounded-xl border border-edge-subtle bg-surface-panel/60 px-3 dark:border-edge-subtle`,children:(0,Q.jsxs)(`label`,{className:`flex h-full cursor-pointer items-center gap-3 text-sm`,children:[(0,Q.jsx)(`input`,{type:`checkbox`,className:`shrink-0 rounded border-edge`,checked:r,disabled:c||a,onChange:()=>{d(e=>{let n=new Set(e);return r?n.delete(t):n.add(t),n})},"aria-label":t}),(0,Q.jsxs)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:[(0,Q.jsx)(`div`,{className:`truncate font-mono text-xs font-medium text-fg`,title:t,children:t}),(0,Q.jsx)(`p`,{className:i(`mt-0.5 truncate text-xs leading-tight text-fg-muted`,!o&&`italic text-fg-subtle`),title:s,children:s})]})]})},t)})})}),t[43]=n.skillsCatalogLoading,t[44]=n.skillsEmptyCatalog,t[45]=n.skillsNoDescription,t[46]=a,t[47]=s,t[48]=h,t[49]=d,t[50]=o,t[51]=c,t[52]=u,t[53]=j):j=t[53];let M;t[54]!==n.skillsSave||t[55]!==a||t[56]!==p||t[57]!==f?(M=p?null:(0,Q.jsx)(`div`,{className:`mt-4 shrink-0`,children:(0,Q.jsx)(q,{type:`button`,disabled:a,onClick:()=>void f(),children:n.skillsSave})}),t[54]=n.skillsSave,t[55]=a,t[56]=p,t[57]=f,t[58]=M):M=t[58];let N;return t[59]!==E||t[60]!==O||t[61]!==A||t[62]!==j||t[63]!==M||t[64]!==v?(N=(0,Q.jsxs)(Ze,{className:`flex min-h-0 flex-1 flex-col`,children:[v,E,O,A,j,M]}),t[59]=E,t[60]=O,t[61]=A,t[62]=j,t[63]=M,t[64]=v,t[65]=N):N=t[65],N}function gn(e){return e.name||e.directoryId}function _n(e){let t=(0,Z.c)(51),{a:n,data:r,selected:i,busy:s,toolEntryDisable:c,setToolEntryDisable:l,onSaveTools:u,onClearToolsEntry:d,hideInlineSave:f}=e,p=o(yn),m;t[0]===p?m=t[1]:(m=a(p),t[0]=p,t[1]=m);let h=m.agentSettings.advanced,g;t[2]===i.tools.defaultsDisable?g=t[3]:(g=new Set(i.tools.defaultsDisable.flatMap(vn)),t[2]=i.tools.defaultsDisable,t[3]=g);let _=g,v;t[4]===l?v=t[5]:(v=e=>{l(e)},t[4]=l,t[5]=v);let y=v,b=n.toolsDisableGroups,x;t[6]===b?x=t[7]:(x=e=>b[e],t[6]=b,t[7]=x);let S=x,C;t[8]===n.toolDescriptions?C=t[9]:(C=e=>e in n.toolDescriptions?n.toolDescriptions[e]:``,t[8]=n.toolDescriptions,t[9]=C);let w=C,T;t[10]!==n.toolsHint||t[11]!==n.toolsTitle?(T=(0,Q.jsx)(Xe,{className:`shrink-0`,icon:L,title:n.toolsTitle,subtitle:n.toolsHint}),t[10]=n.toolsHint,t[11]=n.toolsTitle,t[12]=T):T=t[12];let E;t[13]!==n.toolsLockedByDefaults||t[14]!==h.toolsDisableEmptyBuiltin||t[15]!==h.toolsDisableLoadingBuiltin||t[16]!==h.toolsDisableNotInBuiltin||t[17]!==h.toolsDisableQuickActionsLabel||t[18]!==h.toolsDisableQuickDisableAll||t[19]!==h.toolsDisableQuickEnableAll||t[20]!==h.toolsDisableQuickHighRiskOff||t[21]!==h.toolsDisableQuickNoOutbound||t[22]!==h.toolsDisableQuickReadOnlyWorkspace?(E={loadingBuiltin:h.toolsDisableLoadingBuiltin,emptyBuiltin:h.toolsDisableEmptyBuiltin,quickActionsLabel:h.toolsDisableQuickActionsLabel,quickEnableAll:h.toolsDisableQuickEnableAll,quickDisableAll:h.toolsDisableQuickDisableAll,quickReadOnlyWorkspace:h.toolsDisableQuickReadOnlyWorkspace,quickHighRiskOff:h.toolsDisableQuickHighRiskOff,quickNoOutbound:h.toolsDisableQuickNoOutbound,notInBuiltin:h.toolsDisableNotInBuiltin,lockedByDefaults:n.toolsLockedByDefaults},t[13]=n.toolsLockedByDefaults,t[14]=h.toolsDisableEmptyBuiltin,t[15]=h.toolsDisableLoadingBuiltin,t[16]=h.toolsDisableNotInBuiltin,t[17]=h.toolsDisableQuickActionsLabel,t[18]=h.toolsDisableQuickDisableAll,t[19]=h.toolsDisableQuickEnableAll,t[20]=h.toolsDisableQuickHighRiskOff,t[21]=h.toolsDisableQuickNoOutbound,t[22]=h.toolsDisableQuickReadOnlyWorkspace,t[23]=E):E=t[23];let D;t[24]!==s||t[25]!==r.builtinToolIds||t[26]!==_||t[27]!==S||t[28]!==w||t[29]!==y||t[30]!==E||t[31]!==c?(D=(0,Q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,children:(0,Q.jsx)(st,{mode:`agentEntry`,builtinToolIds:r.builtinToolIds,loading:!1,disableSet:c,onDisableSetChange:y,defaultsDisableSet:_,getToolDescription:w,getGroupTitle:S,quickActionsDisabled:s,labels:E})}),t[24]=s,t[25]=r.builtinToolIds,t[26]=_,t[27]=S,t[28]=w,t[29]=y,t[30]=E,t[31]=c,t[32]=D):D=t[32];let O;t[33]!==n.toolsSave||t[34]!==s||t[35]!==f||t[36]!==u?(O=f?null:(0,Q.jsx)(q,{type:`button`,disabled:s,onClick:()=>void u(),children:n.toolsSave}),t[33]=n.toolsSave,t[34]=s,t[35]=f,t[36]=u,t[37]=O):O=t[37];let k;t[38]===d?k=t[39]:(k=()=>void d(),t[38]=d,t[39]=k);let A;t[40]!==n.toolsClearEntry||t[41]!==s||t[42]!==k?(A=(0,Q.jsx)(q,{type:`button`,variant:`secondary`,disabled:s,onClick:k,children:n.toolsClearEntry}),t[40]=n.toolsClearEntry,t[41]=s,t[42]=k,t[43]=A):A=t[43];let j;t[44]!==A||t[45]!==O?(j=(0,Q.jsxs)(`div`,{className:`mt-4 flex shrink-0 flex-wrap gap-2`,children:[O,A]}),t[44]=A,t[45]=O,t[46]=j):j=t[46];let M;return t[47]!==j||t[48]!==T||t[49]!==D?(M=(0,Q.jsxs)(Ze,{className:`flex min-h-0 flex-1 flex-col`,children:[T,D,j]}),t[47]=j,t[48]=T,t[49]=D,t[50]=M):M=t[50],M}function vn(e){let t=String(e).trim();return t?[t]:[]}function yn(e){return e.language}function bn(e){let t=(0,Z.c)(107),{a:n,chat:r,cCron:i,selected:a,panel:o,data:s,busy:c,editName:l,setEditName:u,editDescription:d,setEditDescription:f,editWorkspace:p,setEditWorkspace:m,editModel:h,setEditModel:g,defaultModel:_,defaultWorkspace:v,onSetDefault:y,onSaveAgentEdits:b,onDelete:x,profileSaveRef:S,overviewProfile:C,setProfileDirty:w,filesLoading:T,files:E,activeFile:D,setActiveFile:O,filesViewMode:k,setFilesViewMode:A,fileDraft:j,setFileDraft:M,fileSaving:N,profileFileLoading:P,profileEditorNonce:ee,toolEntryDisable:F,setToolEntryDisable:I,onSaveTools:te,onClearToolsEntry:ne,modelRows:L,setModelRows:re,onSaveModels:R,onClearModelsEntry:ie,skillsCatalogLoading:z,catalogForPick:B,skillsInherit:ae,setSkillsInherit:oe,skillsPick:se,setSkillsPick:ce,onSaveSkills:le,bindingsLoading:ue,agentBindings:de,bindChannelStatuses:fe,bindChannelsLoading:V,useManualChannel:pe,newBindChannel:me,setNewBindChannel:he,bindSessionChats:ge,bindSessionsLoading:_e,newBindSessionIdx:ve,setNewBindSessionIdx:H,newBindCustomPeer:ye,setNewBindCustomPeer:be,refreshBindSessions:U,onRemoveBinding:xe,onAddBinding:W,cronLoading:Se,agentCronJobs:Ce,onSetCronJobAgent:G,onTryInChat:K}=e;if(!a){let e;return t[0]===n.selectAgentHint?e=t[1]:(e=(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.selectAgentHint}),t[0]=n.selectAgentHint,t[1]=e),e}if(o===`overview`){let e;return t[2]!==n||t[3]!==c||t[4]!==r||t[5]!==_||t[6]!==v||t[7]!==d||t[8]!==h||t[9]!==l||t[10]!==p||t[11]!==x||t[12]!==b||t[13]!==y||t[14]!==K||t[15]!==C.draft||t[16]!==C.handleSoulContentChange||t[17]!==C.handleSoulTemplateChange||t[18]!==C.profileMarkdownLoading||t[19]!==C.setAvatarDialogOpen||t[20]!==C.toggleSoulPreviewMode||t[21]!==C.updateIdentity||t[22]!==a||t[23]!==f||t[24]!==g||t[25]!==u||t[26]!==m?(e=(0,Q.jsx)(an,{a:n,chat:r,selected:a,busy:c,editName:l,setEditName:u,editDescription:d,setEditDescription:f,editWorkspace:p,setEditWorkspace:m,editModel:h,setEditModel:g,onSetDefault:y,onSaveAgentEdits:b,onDelete:x,hideInlineSave:!0,profileMarkdownLoading:C.profileMarkdownLoading,profileDraft:C.draft,updateIdentity:C.updateIdentity,handleSoulTemplateChange:C.handleSoulTemplateChange,handleSoulContentChange:C.handleSoulContentChange,setAvatarDialogOpen:C.setAvatarDialogOpen,toggleSoulPreviewMode:C.toggleSoulPreviewMode,defaultModel:_,defaultWorkspace:v,onTryInChat:K}),t[2]=n,t[3]=c,t[4]=r,t[5]=_,t[6]=v,t[7]=d,t[8]=h,t[9]=l,t[10]=p,t[11]=x,t[12]=b,t[13]=y,t[14]=K,t[15]=C.draft,t[16]=C.handleSoulContentChange,t[17]=C.handleSoulTemplateChange,t[18]=C.profileMarkdownLoading,t[19]=C.setAvatarDialogOpen,t[20]=C.toggleSoulPreviewMode,t[21]=C.updateIdentity,t[22]=a,t[23]=f,t[24]=g,t[25]=u,t[26]=m,t[27]=e):e=t[27],e}if(o===`profile`){let e;return t[28]!==n||t[29]!==S||t[30]!==a.id||t[31]!==w?(e=(0,Q.jsx)(mn,{a:n,agentId:a.id,saveRef:S,onDirtyChange:w}),t[28]=n,t[29]=S,t[30]=a.id,t[31]=w,t[32]=e):e=t[32],e}if(o===`files`){let e;return t[33]!==n||t[34]!==D||t[35]!==j||t[36]!==N||t[37]!==E||t[38]!==T||t[39]!==k||t[40]!==K||t[41]!==ee||t[42]!==P||t[43]!==O||t[44]!==M||t[45]!==A?(e=(0,Q.jsx)(It,{a:n,filesLoading:T,files:E,activeFile:D,setActiveFile:O,filesViewMode:k,setFilesViewMode:A,fileDraft:j,setFileDraft:M,fileSaving:N,profileFileLoading:P,profileEditorNonce:ee,onTryInChat:K}),t[33]=n,t[34]=D,t[35]=j,t[36]=N,t[37]=E,t[38]=T,t[39]=k,t[40]=K,t[41]=ee,t[42]=P,t[43]=O,t[44]=M,t[45]=A,t[46]=e):e=t[46],e}if(o===`tools`){let e;return t[47]!==n||t[48]!==c||t[49]!==s||t[50]!==ne||t[51]!==te||t[52]!==a||t[53]!==I||t[54]!==F?(e=(0,Q.jsx)(_n,{a:n,data:s,selected:a,busy:c,toolEntryDisable:F,setToolEntryDisable:I,onSaveTools:te,onClearToolsEntry:ne,hideInlineSave:!0}),t[47]=n,t[48]=c,t[49]=s,t[50]=ne,t[51]=te,t[52]=a,t[53]=I,t[54]=F,t[55]=e):e=t[55],e}if(o===`models`){let e;return t[56]!==n||t[57]!==c||t[58]!==r||t[59]!==L||t[60]!==ie||t[61]!==R||t[62]!==a||t[63]!==re?(e=(0,Q.jsx)(Rt,{a:n,chat:r,selected:a,busy:c,modelRows:L,setModelRows:re,onSaveModels:R,onClearModelsEntry:ie,hideInlineSave:!0}),t[56]=n,t[57]=c,t[58]=r,t[59]=L,t[60]=ie,t[61]=R,t[62]=a,t[63]=re,t[64]=e):e=t[64],e}if(o===`skills`){let e;return t[65]!==n||t[66]!==c||t[67]!==B||t[68]!==le||t[69]!==a||t[70]!==oe||t[71]!==ce||t[72]!==z||t[73]!==ae||t[74]!==se?(e=(0,Q.jsx)(hn,{a:n,selected:a,busy:c,skillsCatalogLoading:z,catalogForPick:B,skillsInherit:ae,setSkillsInherit:oe,skillsPick:se,setSkillsPick:ce,onSaveSkills:le,hideInlineSave:!0}),t[65]=n,t[66]=c,t[67]=B,t[68]=le,t[69]=a,t[70]=oe,t[71]=ce,t[72]=z,t[73]=ae,t[74]=se,t[75]=e):e=t[75],e}if(o===`channels`){let e;return t[76]!==n||t[77]!==de||t[78]!==fe||t[79]!==V||t[80]!==ge||t[81]!==_e||t[82]!==ue||t[83]!==c||t[84]!==i.lastActiveLabels||t[85]!==i.selectRecipient||t[86]!==me||t[87]!==ye||t[88]!==ve||t[89]!==W||t[90]!==xe||t[91]!==U||t[92]!==he||t[93]!==be||t[94]!==H||t[95]!==pe?(e=(0,Q.jsx)(Mt,{a:n,busy:c,bindingsLoading:ue,agentBindings:de,channelStatuses:fe,channelsStatusLoading:V,useManualChannel:pe,newBindChannel:me,setNewBindChannel:he,bindSessionChats:ge,sessionsLoading:_e,newBindSessionIdx:ve,setNewBindSessionIdx:H,newBindCustomPeer:ye,setNewBindCustomPeer:be,onRefreshSessions:U,lastActiveLabels:i.lastActiveLabels,selectRecipient:i.selectRecipient,onRemoveBinding:xe,onAddBinding:W}),t[76]=n,t[77]=de,t[78]=fe,t[79]=V,t[80]=ge,t[81]=_e,t[82]=ue,t[83]=c,t[84]=i.lastActiveLabels,t[85]=i.selectRecipient,t[86]=me,t[87]=ye,t[88]=ve,t[89]=W,t[90]=xe,t[91]=U,t[92]=he,t[93]=be,t[94]=H,t[95]=pe,t[96]=e):e=t[96],e}if(o===`cron`&&s){let e;return t[97]!==n||t[98]!==Ce||t[99]!==c||t[100]!==Se||t[101]!==s||t[102]!==G||t[103]!==a?(e=(0,Q.jsx)(Nt,{a:n,data:s,selected:a,busy:c,cronLoading:Se,agentCronJobs:Ce,onSetCronJobAgent:G}),t[97]=n,t[98]=Ce,t[99]=c,t[100]=Se,t[101]=s,t[102]=G,t[103]=a,t[104]=e):e=t[104],e}let we;return t[105]===n.selectAgentHint?we=t[106]:(we=(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.selectAgentHint}),t[105]=n.selectAgentHint,t[106]=we),we}function xn(e,t,n){let r=t.trim().toLowerCase();return r?e.filter(e=>{let t=N(e,n).toLowerCase(),i=e.id.toLowerCase(),a=e.workspace.toLowerCase(),o=T(e,n).toLowerCase();return t.includes(r)||i.includes(r)||a.includes(r)||o.includes(r)}):e}function Sn(e,t){return e.replace(`{{count}}`,String(t))}function Cn(e,t){let n=e.tools.effectiveDisable.length,r=e.skills.effectiveAllowlist?.length??0,i=n>0?Sn(t.listToolsDisabledCount,n):t.listToolsAllEnabled,a=r>0?Sn(t.listSkillsCount,r):t.listInheritedValue;return`${t.listToolsLabel} ${i} · ${t.listSkillsLabel} ${a}`}function wn(e,t){let n=e.tools.effectiveDisable.length,r=e.skills.effectiveAllowlist?.length??0,i=n>0?Sn(t.listToolsDisabledCount,n):t.listToolsAllEnabled,a=r>0?Sn(t.listSkillsCount,r):t.listInheritedValue;return[`${t.listToolsLabel} ${i}`,`${t.listSkillsLabel} ${a}`]}function Tn(e){let t=(0,Z.c)(11),{text:n,children:r,className:a}=e,o;t[0]!==r||t[1]!==a||t[2]!==n?(o=(0,Q.jsx)(M,{asChild:!0,children:(0,Q.jsx)(`span`,{className:a,title:n,children:r})}),t[0]=r,t[1]=a,t[2]=n,t[3]=o):o=t[3];let s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=i(`max-w-[min(28rem,calc(100vw-2rem))] rounded-lg border border-edge bg-surface-panel px-2.5 py-2`,`text-left text-xs leading-snug text-fg shadow-popover`,W),t[4]=s):s=t[4];let c;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(P,{className:`fill-surface-panel`}),t[5]=c):c=t[5];let l;t[6]===n?l=t[7]:(l=(0,Q.jsx)(re,{children:(0,Q.jsxs)(F,{side:`top`,align:`start`,sideOffset:6,className:s,children:[n,c]})}),t[6]=n,t[7]=l);let u;return t[8]!==o||t[9]!==l?(u=(0,Q.jsx)(y,{delayDuration:300,skipDelayDuration:100,children:(0,Q.jsxs)(w,{children:[o,l]})}),t[8]=o,t[9]=l,t[10]=u):u=t[10],u}function En(e){let t=(0,Z.c)(28),{a:n,agents:r,searchQuery:a,onOpenAgent:o,onChatWithAgent:s,busy:c}=e,l,u,d,f,p;if(t[0]!==n||t[1]!==r||t[2]!==c||t[3]!==s||t[4]!==o||t[5]!==a){p=Symbol.for(`react.early_return_sentinel`);bb0:{let e=xn(r,a,n),m=r.length>0&&e.length===0&&a.trim().length>0;if(r.length===0){let e;t[11]===n.listNoAgentsYet?e=t[12]:(e=(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.listNoAgentsYet}),t[11]=n.listNoAgentsYet,t[12]=e),p=e;break bb0}d=`flex flex-col gap-4`,t[13]!==n||t[14]!==m?(f=m?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.listEmpty}):null,t[13]=n,t[14]=m,t[15]=f):f=t[15],l=`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`;let g;t[16]!==n||t[17]!==c||t[18]!==s||t[19]!==o?(g=e=>{let t=N(e,n),r=e.id,a=T(e,n),l=Cn(e,n),u=wn(e,n);return(0,Q.jsx)(`li`,{className:`h-full min-h-0`,children:(0,Q.jsxs)(`article`,{className:`flex min-h-[15.5rem] flex-col rounded-xl border border-edge-subtle bg-surface-panel p-4 shadow-surface transition-colors hover:border-edge`,children:[(0,Q.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,Q.jsxs)(`button`,{type:`button`,disabled:c,onClick:()=>o(e.id),className:i(`flex min-w-0 items-start gap-3 text-left`,`rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,`disabled:pointer-events-none disabled:opacity-50`,h.pressCard),children:[(0,Q.jsx)(`div`,{className:`flex size-12 shrink-0 items-center justify-center overflow-hidden rounded-2xl bg-surface-base text-fg ring-1 ring-edge-subtle/40`,"aria-hidden":!0,children:(0,Q.jsx)(he,{agentId:e.id,avatar:e.avatar,size:48,className:`size-full`})}),(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[(0,Q.jsx)(`h2`,{className:`truncate text-base font-semibold text-fg`,children:t}),(0,Q.jsx)(`p`,{className:`mt-1 truncate font-mono text-xs text-fg-muted`,title:r,children:r})]})]}),e.isDefault?(0,Q.jsx)(`span`,{className:`shrink-0 rounded-full bg-accent-soft px-2 py-0.5 text-xs font-medium text-accent`,children:n.defaultBadge}):(0,Q.jsx)(`span`,{className:`shrink-0 rounded-full bg-surface-hover px-2 py-0.5 text-xs font-medium text-fg-muted`,children:n.listCustomBadge})]}),(0,Q.jsxs)(`button`,{type:`button`,disabled:c,onClick:()=>o(e.id),className:i(`mt-5 min-h-[6.25rem] text-left`,`rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent/40`,`disabled:pointer-events-none disabled:opacity-50`),children:[(0,Q.jsx)(`div`,{className:`rounded-lg border border-edge-subtle bg-surface-base px-3 py-3`,children:(0,Q.jsx)(`p`,{className:i(`line-clamp-2 text-sm leading-5`,a?`text-fg`:`text-fg-muted`),title:a||void 0,children:a||n.listNoDescription})}),(0,Q.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-1.5`,title:l,children:u.map(Dn)})]}),(0,Q.jsx)(`div`,{className:`mt-auto pt-4`,children:(0,Q.jsxs)(q,{type:`button`,variant:`secondary`,disabled:c,onClick:()=>s(e.id),className:`w-full rounded-2xl py-2.5`,children:[(0,Q.jsx)(pe,{className:`size-4 shrink-0`,strokeWidth:2,"aria-hidden":!0}),n.listChatWithAgent]})})]})},e.id)},t[16]=n,t[17]=c,t[18]=s,t[19]=o,t[20]=g):g=t[20],u=e.map(g)}t[0]=n,t[1]=r,t[2]=c,t[3]=s,t[4]=o,t[5]=a,t[6]=l,t[7]=u,t[8]=d,t[9]=f,t[10]=p}else l=t[6],u=t[7],d=t[8],f=t[9],p=t[10];if(p!==Symbol.for(`react.early_return_sentinel`))return p;let m;t[21]!==l||t[22]!==u?(m=(0,Q.jsx)(`ul`,{className:l,children:u}),t[21]=l,t[22]=u,t[23]=m):m=t[23];let g;return t[24]!==d||t[25]!==f||t[26]!==m?(g=(0,Q.jsxs)(`div`,{className:d,children:[f,m]}),t[24]=d,t[25]=f,t[26]=m,t[27]=g):g=t[27],g}function Dn(e){return(0,Q.jsx)(Tn,{text:e,className:`rounded-full bg-surface-hover px-2 py-0.5 text-xs text-fg-muted`,children:e},e)}function On(e){let t=(0,Z.c)(130),{open:n,onOpenChange:r,a,chat:o,busy:s,modalError:c,profileLanguageLabel:l,createDisplayName:u,setCreateDisplayName:f,createAgentId:p,setCreateAgentId:m,createDescription:h,setCreateDescription:g,createWorkspace:_,setCreateWorkspace:v,createModel:y,setCreateModel:x,onCreate:S,onSuggestWorkspace:C,agents:w,duplicateSourceId:T,onSelectDuplicateSource:E}=e,D;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,Q.jsx)(ie,{className:i(`xopc-dialog-overlay fixed inset-0 bg-scrim`,Je)}),t[0]=D):D=t[0];let O;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(O=i(`xopc-dialog-content fixed left-1/2 top-1/2 max-h-[min(90vh,640px)] w-[min(100%-2rem,28rem)] -translate-x-1/2 -translate-y-1/2`,Ke,`overflow-y-auto rounded-xl border border-edge bg-surface-panel p-4 shadow-popover dark:border-edge`),t[1]=O):O=t[1];let A;t[2]===a.addAgent?A=t[3]:(A=(0,Q.jsx)(We,{className:`text-base font-semibold text-fg`,children:a.addAgent}),t[2]=a.addAgent,t[3]=A);let j;t[4]===a.addAgentHint?j=t[5]:(j=(0,Q.jsx)(ye,{className:`mt-0.5 text-xs text-fg-muted`,children:a.addAgentHint}),t[4]=a.addAgentHint,t[5]=j);let M;t[6]!==A||t[7]!==j?(M=(0,Q.jsxs)(`div`,{className:`min-w-0 pr-2`,children:[A,j]}),t[6]=A,t[7]=j,t[8]=M):M=t[8];let P;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(P=i(se,`shrink-0 p-1.5 hover:bg-surface-base`),t[9]=P):P=t[9];let F;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,Q.jsx)(ee,{className:`size-4`,"aria-hidden":!0}),t[10]=F):F=t[10];let I;t[11]===a.closeDialogAria?I=t[12]:(I=(0,Q.jsx)(_e,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,className:P,"aria-label":a.closeDialogAria,children:F})}),t[11]=a.closeDialogAria,t[12]=I);let te;t[13]!==M||t[14]!==I?(te=(0,Q.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-2`,children:[M,I]}),t[13]=M,t[14]=I,t[15]=te):te=t[15];let ne;t[16]!==a||t[17]!==w||t[18]!==T||t[19]!==E?(ne=w.length>0?(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:a.copyFromExistingAgent}),(0,Q.jsxs)(`select`,{className:i(Dt(),`bg-surface-panel`),value:T??``,onChange:e=>E(e.target.value||null),children:[(0,Q.jsx)(`option`,{value:``,children:a.copyFromExistingAgentNone}),w.map(e=>(0,Q.jsxs)(`option`,{value:e.id,children:[N(e,a),` · `,e.id]},e.id))]}),(0,Q.jsx)(`span`,{className:`text-xs text-fg-muted`,children:a.duplicateAgentHint})]}):null,t[16]=a,t[17]=w,t[18]=T,t[19]=E,t[20]=ne):ne=t[20];let L;t[21]===c?L=t[22]:(L=c?(0,Q.jsx)(`div`,{role:`alert`,className:`rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-800 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-200`,children:c}):null,t[21]=c,t[22]=L);let re;t[23]!==a.newAgentLabel||t[24]!==l?(re=(0,Q.jsxs)(`span`,{className:`text-fg-muted`,children:[a.newAgentLabel,` (`,l,`)`]}),t[23]=a.newAgentLabel,t[24]=l,t[25]=re):re=t[25];let R;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(R=Dt(),t[26]=R):R=t[26];let z;t[27]===f?z=t[28]:(z=e=>f(e.target.value),t[27]=f,t[28]=z);let B;t[29]===C?B=t[30]:(B=()=>C(),t[29]=C,t[30]=B);let ae;t[31]!==u||t[32]!==z||t[33]!==B?(ae=(0,Q.jsx)(`input`,{className:R,value:u,onChange:z,onBlur:B,required:!0,autoComplete:`off`}),t[31]=u,t[32]=z,t[33]=B,t[34]=ae):ae=t[34];let oe;t[35]!==re||t[36]!==ae?(oe=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[re,ae]}),t[35]=re,t[36]=ae,t[37]=oe):oe=t[37];let ce;t[38]===a.newAgentIdOptional?ce=t[39]:(ce=(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:a.newAgentIdOptional}),t[38]=a.newAgentIdOptional,t[39]=ce);let le;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(le=i(Dt(),`font-mono text-xs`),t[40]=le):le=t[40];let ue;t[41]===m?ue=t[42]:(ue=e=>m(e.target.value),t[41]=m,t[42]=ue);let de;t[43]===C?de=t[44]:(de=()=>C(),t[43]=C,t[44]=de);let fe;t[45]!==a.newAgentIdPlaceholder||t[46]!==a.newAgentIdRules||t[47]!==p||t[48]!==ue||t[49]!==de?(fe=(0,Q.jsx)(`input`,{className:le,value:p,onChange:ue,onBlur:de,placeholder:a.newAgentIdPlaceholder,autoComplete:`off`,spellCheck:!1,maxLength:64,pattern:`[A-Za-z0-9][A-Za-z0-9_-]{0,63}`,title:a.newAgentIdRules}),t[45]=a.newAgentIdPlaceholder,t[46]=a.newAgentIdRules,t[47]=p,t[48]=ue,t[49]=de,t[50]=fe):fe=t[50];let V;t[51]===a.newAgentIdRules?V=t[52]:(V=(0,Q.jsx)(`span`,{className:`text-xs text-fg-muted`,children:a.newAgentIdRules}),t[51]=a.newAgentIdRules,t[52]=V);let pe;t[53]!==ce||t[54]!==fe||t[55]!==V?(pe=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[ce,fe,V]}),t[53]=ce,t[54]=fe,t[55]=V,t[56]=pe):pe=t[56];let me;t[57]!==a.agentDescription||t[58]!==l?(me=(0,Q.jsxs)(`span`,{className:`text-fg-muted`,children:[a.agentDescription,` (`,l,`)`]}),t[57]=a.agentDescription,t[58]=l,t[59]=me):me=t[59];let he;t[60]===Symbol.for(`react.memo_cache_sentinel`)?(he=i(Dt(),`min-h-18 resize-y font-sans text-sm leading-relaxed`),t[60]=he):he=t[60];let ve;t[61]===g?ve=t[62]:(ve=e=>g(e.target.value),t[61]=g,t[62]=ve);let H;t[63]!==a.agentDescriptionPlaceholder||t[64]!==h||t[65]!==ve?(H=(0,Q.jsx)(`textarea`,{className:he,value:h,onChange:ve,placeholder:a.agentDescriptionPlaceholder,maxLength:4e3,rows:3,spellCheck:!0}),t[63]=a.agentDescriptionPlaceholder,t[64]=h,t[65]=ve,t[66]=H):H=t[66];let be;t[67]!==me||t[68]!==H?(be=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[me,H]}),t[67]=me,t[68]=H,t[69]=be):be=t[69];let U;t[70]===a.newWorkspace?U=t[71]:(U=(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:a.newWorkspace}),t[70]=a.newWorkspace,t[71]=U);let xe;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(xe=i(Dt(),`font-mono text-xs`),t[72]=xe):xe=t[72];let W;t[73]===v?W=t[74]:(W=e=>v(e.target.value),t[73]=v,t[74]=W);let Se;t[75]!==_||t[76]!==W?(Se=(0,Q.jsx)(`input`,{className:xe,value:_,onChange:W,required:!0,autoComplete:`off`}),t[75]=_,t[76]=W,t[77]=Se):Se=t[77];let G;t[78]!==U||t[79]!==Se?(G=(0,Q.jsxs)(`label`,{className:`flex flex-col gap-1 text-sm`,children:[U,Se]}),t[78]=U,t[79]=Se,t[80]=G):G=t[80];let K;t[81]===a.newModelOptional?K=t[82]:(K=(0,Q.jsx)(`span`,{className:`text-fg-muted`,children:a.newModelOptional}),t[81]=a.newModelOptional,t[82]=K);let we;t[83]===x?we=t[84]:(we=e=>x(e),t[83]=x,t[84]=we);let Te;t[85]!==s||t[86]!==o.modelNoMatches||t[87]!==o.modelPlaceholder||t[88]!==o.modelSearchPlaceholder||t[89]!==y||t[90]!==we?(Te=(0,Q.jsx)(b,{className:`min-w-0 flex-1`,value:y,disabled:s,placeholder:o.modelPlaceholder,searchPlaceholder:o.modelSearchPlaceholder,noMatches:o.modelNoMatches,onChange:we}),t[85]=s,t[86]=o.modelNoMatches,t[87]=o.modelPlaceholder,t[88]=o.modelSearchPlaceholder,t[89]=y,t[90]=we,t[91]=Te):Te=t[91];let Ee;t[92]!==a.modelClear||t[93]!==s||t[94]!==y||t[95]!==x?(Ee=y.trim()?(0,Q.jsx)(q,{type:`button`,variant:`secondary`,className:`shrink-0`,disabled:s,onClick:()=>x(``),children:a.modelClear}):null,t[92]=a.modelClear,t[93]=s,t[94]=y,t[95]=x,t[96]=Ee):Ee=t[96];let De;t[97]!==Te||t[98]!==Ee?(De=(0,Q.jsxs)(`div`,{className:`flex flex-wrap items-stretch gap-2`,children:[Te,Ee]}),t[97]=Te,t[98]=Ee,t[99]=De):De=t[99];let Oe;t[100]!==K||t[101]!==De?(Oe=(0,Q.jsxs)(`div`,{className:`flex flex-col gap-1 text-sm`,children:[K,De]}),t[100]=K,t[101]=De,t[102]=Oe):Oe=t[102];let ke;t[103]!==a.createModalCancel||t[104]!==s?(ke=(0,Q.jsx)(_e,{asChild:!0,children:(0,Q.jsx)(q,{type:`button`,variant:`secondary`,disabled:s,children:a.createModalCancel})}),t[103]=a.createModalCancel,t[104]=s,t[105]=ke):ke=t[105];let Ae;t[106]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,Q.jsx)(Y,{className:`mr-1 size-4`,"aria-hidden":!0}),t[106]=Ae):Ae=t[106];let je;t[107]!==a.create||t[108]!==s?(je=(0,Q.jsxs)(q,{type:`submit`,disabled:s,children:[Ae,a.create]}),t[107]=a.create,t[108]=s,t[109]=je):je=t[109];let Me;t[110]!==ke||t[111]!==je?(Me=(0,Q.jsxs)(`div`,{className:`mt-1 flex justify-end gap-2 border-t border-edge-subtle pt-3 dark:border-edge`,children:[ke,je]}),t[110]=ke,t[111]=je,t[112]=Me):Me=t[112];let Ne;t[113]!==S||t[114]!==L||t[115]!==oe||t[116]!==pe||t[117]!==be||t[118]!==G||t[119]!==Oe||t[120]!==Me||t[121]!==ne?(Ne=(0,Q.jsxs)(`form`,{className:`grid gap-3`,onSubmit:S,children:[ne,L,oe,pe,be,G,Oe,Me]}),t[113]=S,t[114]=L,t[115]=oe,t[116]=pe,t[117]=be,t[118]=G,t[119]=Oe,t[120]=Me,t[121]=ne,t[122]=Ne):Ne=t[122];let Pe;t[123]!==Ne||t[124]!==te?(Pe=(0,Q.jsxs)(d,{children:[D,(0,Q.jsx)(ge,{className:O,onOpenAutoFocus:kn,children:(0,Q.jsxs)(k,{layer:`modal`,children:[te,Ne]})})]}),t[123]=Ne,t[124]=te,t[125]=Pe):Pe=t[125];let Fe;return t[126]!==r||t[127]!==n||t[128]!==Pe?(Fe=(0,Q.jsx)(Ce,{open:n,onOpenChange:r,children:Pe}),t[126]=r,t[127]=n,t[128]=Pe,t[129]=Fe):Fe=t[129],Fe}function kn(e){return e.preventDefault()}function An(e){let t=(0,Z.c)(18),{a:n,busy:r,listSearchQuery:i,onListSearchQueryChange:a,onAddAgent:o}=e,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsx)(we,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-disabled`,strokeWidth:1.75,"aria-hidden":!0}),t[0]=s):s=t[0];let c;t[1]===a?c=t[2]:(c=e=>a(e.target.value),t[1]=a,t[2]=c);let l;t[3]!==n.listSearchPlaceholder||t[4]!==i||t[5]!==c?(l=(0,Q.jsxs)(`label`,{className:`relative flex min-h-9 min-w-0 max-w-sm cursor-text items-center rounded-pill border border-edge bg-surface-base py-1.5 pl-9 pr-3 shadow-surface dark:bg-surface-hover/40 sm:max-w-md`,children:[s,(0,Q.jsx)(`input`,{type:`search`,enterKeyHint:`search`,value:i,onChange:c,placeholder:n.listSearchPlaceholder,autoComplete:`off`,spellCheck:!1,"aria-label":n.listSearchPlaceholder,className:`min-w-0 flex-1 appearance-none border-0 bg-transparent py-0.5 text-sm leading-normal text-fg caret-current placeholder:text-fg-disabled focus:border-0 focus:shadow-none focus:outline-none focus:ring-0 focus-visible:outline-none`})]}),t[3]=n.listSearchPlaceholder,t[4]=i,t[5]=c,t[6]=l):l=t[6];let u;t[7]===o?u=t[8]:(u=()=>o(),t[7]=o,t[8]=u);let d;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Q.jsx)(I,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t[9]=d):d=t[9];let f;t[10]!==n.addAgent||t[11]!==n.addAgentAria||t[12]!==r||t[13]!==u?(f=(0,Q.jsxs)(q,{type:`button`,variant:`primary`,className:`shrink-0 gap-2`,"aria-label":n.addAgentAria,disabled:r,onClick:u,children:[d,n.addAgent]}),t[10]=n.addAgent,t[11]=n.addAgentAria,t[12]=r,t[13]=u,t[14]=f):f=t[14];let p;return t[15]!==l||t[16]!==f?(p=(0,Q.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[l,f]}),t[15]=l,t[16]=f,t[17]=p):p=t[17],p}function jn(e){return{...e,soulEditorNonce:0,soulPreviewMode:!1,avatarDialogOpen:!1}}function Mn(e){let{agentId:t,enabled:n,saveRef:r}=e,i=D(async()=>{if(!t)return null;let[e,n]=await Promise.all([V(t,`IDENTITY.md`).catch(()=>``),V(t,`SOUL.md`).catch(()=>``)]),r=Wt(e);return{identity:r,soulTemplate:Zt(n),soulCustomContent:n,identityBaseline:JSON.stringify(r),soulBaseline:n}},[t],{enabled:n&&!!t,initial:null,errorData:null}),a=i.data,o=i.loading,s=(0,$.useRef)(!1),[c,l]=(0,$.useState)(null),u=t??``,d=(0,$.useRef)(u);d.current!==u&&(d.current=u,s.current=!1,l(null));let f=c??(a?jn(a):null),p=(0,$.useMemo)(()=>f?JSON.stringify(f.identity)!==f.identityBaseline||f.soulCustomContent!==f.soulBaseline:!1,[f]),m=(0,$.useRef)(t);m.current=t;let h=(0,$.useCallback)(e=>{s.current=!0,l(t=>{let n=t??(a?jn(a):null);return n?e(n):null})},[a]),g=(0,$.useCallback)(e=>{h(t=>({...t,identity:{...t.identity,...e}}))},[h]),_=(0,$.useCallback)(e=>{h(t=>{if(e===`custom`)return{...t,soulTemplate:`custom`};let n=Yt.find(t=>t.id===e);return n?.content?{...t,soulTemplate:e,soulCustomContent:n.content,soulEditorNonce:t.soulEditorNonce+1}:{...t,soulTemplate:e}})},[h]),v=(0,$.useCallback)(e=>{h(t=>({...t,soulCustomContent:e,soulTemplate:`custom`}))},[h]),y=(0,$.useCallback)(e=>{h(t=>({...t,avatarDialogOpen:e}))},[h]),b=(0,$.useCallback)(()=>{h(e=>({...e,soulPreviewMode:!e.soulPreviewMode}))},[h]),x=(0,$.useCallback)(async()=>{let e=m.current;!e||!f||(await Promise.all([Re(e,`IDENTITY.md`,Gt(f.identity)),Re(e,`SOUL.md`,f.soulCustomContent)]),s.current=!1,l(e=>{let t=e??f;return{...t,identityBaseline:JSON.stringify(t.identity),soulBaseline:t.soulCustomContent}}))},[f]);return(0,$.useLayoutEffect)(()=>{if(r)return r.current=x,()=>{r.current=null}},[x,r]),{profileMarkdownLoading:o,draft:f,dirty:p,updateIdentity:g,handleSoulTemplateChange:_,handleSoulContentChange:v,setAvatarDialogOpen:y,toggleSoulPreviewMode:b}}var Nn={draft:``,editorNonce:0,loadedKey:``};function Pn(e,t){switch(t.type){case`load`:return{draft:t.content,editorNonce:e.editorNonce+1,loadedKey:t.key};case`setDraft`:return{...e,draft:t.value};case`clear`:return{draft:``,editorNonce:e.editorNonce,loadedKey:``};case`resetViewMode`:return e}}function Fn(e){let{panel:t,selectedId:n,hasToken:r,dataAgentsLength:i,saveErrorMessage:a,setError:o}=e,s=D(()=>n?C(n):Promise.resolve(null),[t,n,r,i],{enabled:t===`files`&&!!n&&r,initial:null,errorData:null}),c=s.data,l=s.setData,u=s.loading,[d,f]=(0,$.useState)(null),[p,m]=(0,$.useReducer)(Pn,Nn),[h,g]=(0,$.useState)(!1),[_,v]=(0,$.useState)(`edit`),y=(0,$.useRef)(n);(0,$.useEffect)(()=>{n!==y.current&&(y.current=n,f(null))},[n]),(0,$.useEffect)(()=>{if(c&&c.files.length>0&&!d){let e=c.files.find(e=>e.name===`AGENTS.md`);f(e?e.name:c.files[0].name)}},[c,d]);let b=p.draft,x=p.editorNonce,S=(0,$.useRef)(b);S.current=b;let w=(0,$.useRef)(n);w.current=n;let T=(0,$.useRef)(d);T.current=d;let E=(0,$.useRef)(null),O=(0,$.useRef)(``),k=(0,$.useRef)(``),A=(0,$.useRef)(``),j=(0,$.useRef)(()=>{}),M=D(()=>d&&n?V(n,d).catch(()=>``):Promise.resolve(``),[d,n,r],{enabled:!!(d&&n&&r),initial:``,errorData:``}),N=M.loading,P=z(async()=>{let e=w.current,t=T.current;if(!e||!t||`${e}:${t}`!==O.current)return;let n=S.current;if(n!==k.current){g(!0),o(null);try{await Re(e,t,n),k.current=n,l(n=>!n||n.agentId!==e?n:{...n,files:n.files.map(e=>e.name===t?{...e,missing:!1}:e)})}catch(e){o(e instanceof Error?e.message:a)}finally{g(!1)}}},800);j.current=P.flush,(0,$.useEffect)(()=>()=>{j.current()},[]);let ee=(0,$.useRef)(t);ee.current!==t&&(ee.current===`files`&&j.current(),ee.current=t);let F=d&&n?`${n}:${d}`:``;(0,$.useEffect)(()=>{F!==A.current&&(j.current(),A.current=F)},[F]),(0,$.useEffect)(()=>{if(!F){m({type:`clear`});return}N||(O.current=F,k.current=M.data,m({type:`load`,key:F,content:M.data}))},[F,N,M.data]);let I=(0,$.useRef)({activeFile:d,selectedId:n});return(I.current.activeFile!==d||I.current.selectedId!==n)&&(I.current={activeFile:d,selectedId:n},v(`edit`)),{files:c,setFiles:l,filesLoading:u,activeFile:d,setActiveFile:(0,$.useCallback)(e=>{j.current(),f(e)},[]),fileDraft:b,setFileDraft:(0,$.useCallback)(e=>{m({type:`setDraft`,value:typeof e==`function`?e(S.current):e}),P()},[P]),fileSaving:h,filesViewMode:_,setFilesViewMode:v,profileFileLoading:N,profileEditorNonce:x,overviewSaveProfileMarkdownRef:E,saveProfileMarkdownDebounced:P}}function In(e){let{panel:t,hasToken:n,bindingsFromConfig:r,gatewayCfgLoading:i,selected:a,saveErrorMessage:o,setBusy:s,setError:c}=e,l=(0,$.useRef)(!1),[u,d]=(0,$.useState)(null),f=(0,$.useRef)(r);t===`channels`&&n&&!l.current&&f.current!==r&&(f.current=r,d(r));let p=u??r,m=t===`channels`&&n,h=D(()=>gt(),[t,n],{enabled:m,initial:[],errorData:[]}),g=h.data,_=h.loading,v=(0,$.useMemo)(()=>_||g.length===0?``:g[0]?.name??``,[g,_]),[y,b]=(0,$.useState)(``),x=(0,$.useRef)(v);t===`channels`&&!_&&v&&x.current!==v&&(!y||!g.some(e=>e.name===y))&&(x.current=v,b(v)),x.current=v;let S=y.trim(),C=m&&S.length>0,w=D(()=>ft(S),[t,n,S],{enabled:C,initial:[],errorData:[]}),T=w.data,E=w.loading,O=w.setData,[k,j]=(0,$.useState)(null),[M,N]=(0,$.useState)(``),P=(0,$.useRef)(S);P.current!==S&&(P.current=S,j(null));let ee=(0,$.useMemo)(()=>a?p.filter(e=>e.agentId.toLowerCase()===a.id.toLowerCase()):[],[p,a?.id]),F=(0,$.useCallback)(()=>{let e=y.trim();e&&ft(e).then(e=>{O(e),j(t=>t!=null&&t<e.length?t:null)}).catch(()=>{O([]),j(null)})},[y,O]),I=!_&&g.length===0,te=t===`channels`&&n&&i,ne=(0,$.useCallback)(async e=>{s(!0),c(null);try{let t=p.filter(t=>t!==e);await A(t),l.current=!0,d(t)}catch(e){c(e instanceof Error?e.message:o)}finally{s(!1)}},[p,o,s,c]);return{agentBindings:ee,allBindings:p,bindChannelStatuses:g,bindChannelsLoading:_,bindSessionChats:T,bindSessionsLoading:E,bindingsLoading:te,newBindChannel:y,setNewBindChannel:b,newBindSessionIdx:k,setNewBindSessionIdx:j,newBindCustomPeer:M,setNewBindCustomPeer:N,onAddBinding:(0,$.useCallback)(async e=>{if(e.preventDefault(),!a||!y.trim())return;let t=At(y,M,k,T),n=[...p,{agentId:a.id,priority:100,enabled:!0,match:t}];s(!0),c(null);try{await A(n),l.current=!0,d(n),j(null),N(``)}catch(e){c(e instanceof Error?e.message:o)}finally{s(!1)}},[p,T,y,M,k,o,a,s,c]),onRemoveBinding:ne,refreshBindSessions:F,useManualChannel:I}}function Ln(e){let{panel:t,hasToken:n,data:r,selected:i,saveErrorMessage:a,setBusy:o,setError:s}=e,{data:c,loading:l}=D(()=>pt(),[t,n],{enabled:t===`cron`&&n,initial:[],errorData:[]}),[u,d]=(0,$.useState)(null),f=u??c,p=(0,$.useMemo)(()=>!r||!i?[]:f.filter(e=>!yt(e)&&Ot(e,i.id,r.defaultId)),[f,r,i]);async function m(e,t){o(!0),s(null);try{await mt(e.id,{agentId:t}),d(await pt())}catch(e){s(e instanceof Error?e.message:a)}finally{o(!1)}}return{agentCronJobs:p,cronJobs:f,cronLoading:l,onSetCronJobAgent:m}}function Rn(e){return new Set(e.tools.entryDisable)}function zn(e){return e.skills.entry===void 0?{inherit:!0,pick:new Set(e.skills.effectiveAllowlist??[])}:{inherit:!1,pick:new Set(e.skills.entry??[])}}function Bn(e){let{panel:t,selected:n}=e,r=`${t}:${n?.id??``}`,i=(0,$.useRef)(r),[a,o]=(0,$.useState)(()=>new Set),[s,c]=(0,$.useState)(()=>new Set),[l,u]=(0,$.useState)(!0),[d,f]=(0,$.useState)(()=>[]);if(i.current!==r){if(i.current=r,n&&t===`tools`&&o(Rn(n)),n&&t===`skills`){let e=zn(n);u(e.inherit),c(e.pick)}n&&t===`models`&&f(rt(n.typedModels.entry))}return{toolEntryDisable:a,setToolEntryDisable:o,skillsPick:s,setSkillsPick:c,skillsInherit:l,setSkillsInherit:u,modelRows:d,setModelRows:f}}function Vn(){let e=o(e=>e.language),t=a(e),n=t.agentsSettings,[r,i]=(0,$.useState)(!1),[s,u]=(0,$.useState)(null),[d,f]=(0,$.useState)(!1),[p,h]=(0,$.useState)(``),_=t.cron,v=t.chat,y=!!c(e=>e.token),[b,S]=Ae(),C=g(),{agentId:w}=te(),T=Fe(e=>e.setPageHeader),E=Fe(e=>e.clearPageHeader),{data:D,error:k,isLoading:A,mutate:j}=l(y?`settings-gateway-agents`:null,de,{revalidateOnFocus:!1}),{data:M}=ce(y),P=(0,$.useMemo)(()=>x(M?.payload?.config??{}),[M]),ee=(0,$.useMemo)(()=>tt(M?.payload?.config??{}),[M]),F=D??null,I=!!(y&&A),[ne,L]=(0,$.useState)(null),re=k instanceof Error?k.message:k?n.loadError:null,R=ne??re,[ie,z]=(0,$.useState)(null),[B,oe]=(0,$.useState)(`overview`),[se,le]=(0,$.useState)(``),[ue,fe]=(0,$.useState)(``),[V,pe]=(0,$.useState)(``),[me,he]=(0,$.useState)(``),[ge,_e]=(0,$.useState)(``),[ve,H]=(0,$.useState)(null),[ye,be]=(0,$.useState)(!1),U=(0,$.useRef)(``),[W,Se]=(0,$.useState)(null),[Ce,G]=(0,$.useState)(!1),[K,we]=(0,$.useState)(``),[Te,Ee]=(0,$.useState)(``),[q,De]=(0,$.useState)(``),[Oe,ke]=(0,$.useState)(``),[Ne,Pe]=(0,$.useState)(``),Ie=(0,$.useRef)(null),Re=(0,$.useRef)(null),[ze,Be]=(0,$.useState)(!1),[Ve,He]=(0,$.useState)(!1),We=(0,$.useRef)({data:null,routeAgentId:void 0});F&&(F!==We.current.data||w!==We.current.routeAgentId)&&(We.current={data:F,routeAgentId:w},w&&F.agents.some(e=>e.id===w)?z(w):z(e=>e&&F.agents.some(t=>t.id===e)?e:F.defaultId)),(0,$.useEffect)(()=>{!F||!w||F.agents.some(e=>e.id===w)||C(Ue,{replace:!0})},[F,w,C]),(0,$.useEffect)(()=>{w&&oe(`overview`)},[w]),(0,$.useEffect)(()=>{b.get(`panel`)===`defaults`&&C(`/settings/agent-defaults`,{replace:!0,state:{[Le]:w?Me(w):Ue}})},[b,w,C]),(0,$.useEffect)(()=>{if(b.get(`focus`)!==`avatar`||!w||(oe(`overview`),I||!F?.agents.some(e=>e.id===w)))return;let e=window.setTimeout(()=>{document.getElementById(`agent-avatar-settings`)?.scrollIntoView({behavior:`smooth`,block:`center`}),S(e=>{let t=new URLSearchParams(e);return t.delete(`focus`),t},{replace:!0})},220);return()=>window.clearTimeout(e)},[b,w,I,F,S]);let J=(0,$.useMemo)(()=>F?.agents.find(e=>e.id===ie)??null,[F,ie]),Ge=(0,$.useRef)(null),Ke=J?J.id:null;J&&Ge.current!==Ke?(Ge.current=Ke,Ee(J.workspace),De(J.model?.primary??``),ke(N(J,a(e).agentsSettings)),Pe(J.description??``)):!J&&Ge.current!==null&&(Ge.current=null,Ee(``),De(``),ke(``),Pe(``));let qe=Mn({agentId:J?.id??null,enabled:B===`overview`&&!!J,saveRef:Re}),Je=Fn({panel:B,selectedId:ie,hasToken:y,dataAgentsLength:F?.agents.length,saveErrorMessage:n.saveError,setError:L}),Y=Bn({panel:B,selected:J}),X=In({panel:B,hasToken:y,bindingsFromConfig:P,gatewayCfgLoading:M===void 0,selected:J,saveErrorMessage:n.saveError,setBusy:G,setError:L}),Ye=Ln({panel:B,hasToken:y,data:F,selected:J,saveErrorMessage:n.saveError,setBusy:G,setError:L}),Xe=lt({panel:B,hasToken:y}),Ze=(0,$.useCallback)(()=>{let e=ut(ue.trim()||se);he(t=>t===``||t===U.current?(U.current=e,e):t)},[ue,se]),Qe=(0,$.useCallback)(()=>{U.current=``,le(``),fe(``),pe(``),he(``),_e(``),H(null),Se(null),be(!0)},[]),nt=(0,$.useCallback)(e=>{let t=new Set(F?.agents.map(e=>e.id.toLowerCase())??[]),r=e.trim();if(!t.has(r.toLowerCase()))return r;let i=`${r}${n.duplicateIdSuffix}`;if(!t.has(i.toLowerCase()))return i;for(let e=2;e<1e3;e+=1){let n=`${i}-${e}`;if(!t.has(n.toLowerCase()))return n}return i},[n.duplicateIdSuffix,F]),rt=(0,$.useCallback)(e=>{if(Se(e),!e)return;let t=F?.agents.find(t=>t.id===e);if(!t)return;let r=t.name?.trim()??t.id,i=n.duplicateName.replace(`{{name}}`,r),a=nt(t.id),o=t.description??``;U.current=``,le(i),fe(a),pe(o),he(t.workspace),_e(t.model?.primary??``),H(null)},[n.duplicateName,F,nt]),it=(0,$.useCallback)(e=>{rt(e),be(!0)},[rt]),at=(0,$.useMemo)(()=>(0,Q.jsx)(An,{a:n,busy:Ce,listSearchQuery:K,onListSearchQueryChange:we,onAddAgent:()=>Qe()}),[n,Ce,K,Qe]);(0,$.useLayoutEffect)(()=>y?(T({startExtra:null,main:(0,Q.jsx)(`div`,{className:`min-w-0`,children:(0,Q.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:n.title})}),end:at}),()=>E()):(E(),()=>E()),[n.title,at,E,y,T]);async function ot(t){t.preventDefault();let r=se.trim();if(!r)return;let i=je(ue,r);if(i.ok===!1){H(i.error);return}let a=me.trim()||ut(ue.trim()||r);if(a){G(!0),H(null);try{let t=[`# IDENTITY.md - Who Am I?`,``,`- **Name:** ${r}`,`- **Description:** ${V.trim()}`,`- **Language:** ${e}`,`- **Creature:** assistant`,`- **Emoji:**`,`- **Avatar:**`,``].join(`
|
|
71
|
-
`),{createdAgentId:n,...i}=await ae({workspace:a,...ue.trim()?{id:ue.trim()}:{},...ge.trim()?{models:{chat:{primary:ge.trim()}}}:{},profileFiles:{"IDENTITY.md":t},...W?{cloneFrom:W}:{}});j(i,{revalidate:!1}),le(``),fe(``),pe(``),he(``),_e(``),H(null),be(!1),z(n),C(Me(n))}catch(e){H(e instanceof Error?e.message:n.saveError)}finally{G(!1)}}}async function st(){if(J){G(!0),L(null);try{j(await O(J.id,{workspace:Te.trim()||void 0,models:{chat:q.trim()?{primary:q.trim()}:null}}),{revalidate:!1})}catch(e){L(e instanceof Error?e.message:n.saveError)}finally{G(!1)}}}async function ct(e){G(!0),L(null);try{j(await O(e.id,{setDefault:!0}),{revalidate:!1}),z(e.id)}catch(e){L(e instanceof Error?e.message:n.saveError)}finally{G(!1)}}async function dt(e,t){G(!0),L(null);try{let n=await m(e.id,t);j(n,{revalidate:!1}),z(n.defaultId),oe(`overview`),w===e.id&&C(Ue,{replace:!0}),i(!1),u(null),h(``)}catch(e){L(e instanceof Error?e.message:n.saveError)}finally{G(!1)}}function ft(e,t){e.id!==`main`&&(u(e),f(t),h(``),i(!0))}async function pt(){if(J){G(!0),L(null);try{let e=Array.from(Y.toolEntryDisable).toSorted((e,t)=>e.localeCompare(t));j(await O(J.id,{tools:{disable:e}}),{revalidate:!1})}catch(e){L(e instanceof Error?e.message:n.saveError)}finally{G(!1)}}}async function mt(){if(J){G(!0),L(null);try{j(await O(J.id,{tools:{disable:null}}),{revalidate:!1}),Y.setToolEntryDisable(new Set)}catch(e){L(e instanceof Error?e.message:n.saveError)}finally{G(!1)}}}async function ht(){if(!J)return;let e=et(Y.modelRows,{invalidId:n.typedModelsInvalidId,duplicateId:n.typedModelsDuplicateId,invalidModel:n.typedModelsInvalidModel});if(e){L(e);return}G(!0),L(null);try{j(await O(J.id,{models:{roles:$e(Y.modelRows)?.roles??{}}}),{revalidate:!1})}catch(e){L(e instanceof Error?e.message:n.saveError)}finally{G(!1)}}async function gt(){if(J){G(!0),L(null);try{j(await O(J.id,{models:{roles:null}}),{revalidate:!1}),Y.setModelRows([])}catch(e){L(e instanceof Error?e.message:n.saveError)}finally{G(!1)}}}async function _t(){if(J){G(!0),L(null);try{j(await O(J.id,{skills:Y.skillsInherit?null:[...Y.skillsPick].toSorted((e,t)=>e.localeCompare(t))}),{revalidate:!1})}catch(e){L(e instanceof Error?e.message:n.saveError)}finally{G(!1)}}}let vt=B===`channels`||B===`cron`,yt=(()=>{if(!J||B!==`overview`)return!1;let e=J.workspace,t=J.model?.primary??``;return Te.trim()!==e||q.trim()!==t})(),Z=(()=>{if(vt||!J)return!1;switch(B){case`overview`:return yt||qe.dirty;case`profile`:return ze;default:return!0}})(),bt=vt||!Z;function xt(){He(!0),setTimeout(()=>He(!1),2e3)}async function St(){switch(B){case`overview`:await Promise.all([st(),Re.current?.()??Promise.resolve()]),xt();break;case`profile`:await Ie.current?.(),xt();break;case`tools`:await pt(),xt();break;case`models`:await ht(),xt();break;case`skills`:await _t(),xt();break;case`files`:Je.saveProfileMarkdownDebounced.flush(),xt();break;default:break}}function Ct(e){e||C(Ue)}let wt=J?Oe.trim()||N(J,n):w??``,Tt=J?.id??w??``,Et=(0,$.useCallback)(async()=>{if(J){await St();try{globalThis.localStorage?.setItem(xe,J.id)}catch{}C(`/chat/new`,{state:{agentId:J.id,fromAgentEditor:!0}})}},[J,St,C]),Dt={a:n,chat:v,cCron:_,selected:J,panel:B,data:F,busy:Ce,editName:Oe,setEditName:ke,editDescription:Ne,setEditDescription:Pe,editWorkspace:Te,setEditWorkspace:Ee,editModel:q,setEditModel:De,defaultModel:ee.model,defaultWorkspace:ee.workspace,onSetDefault:()=>{J&&ct(J)},onSaveAgentEdits:()=>void st(),onDelete:e=>{J&&ft(J,e)},onTryInChat:()=>void Et(),overviewSaveProfileMarkdownRef:Re,profileSaveRef:Ie,overviewProfile:qe,setProfileDirty:Be,filesLoading:Je.filesLoading,files:Je.files,activeFile:Je.activeFile,setActiveFile:Je.setActiveFile,filesViewMode:Je.filesViewMode,setFilesViewMode:Je.setFilesViewMode,fileDraft:Je.fileDraft,setFileDraft:Je.setFileDraft,fileSaving:Je.fileSaving,profileFileLoading:Je.profileFileLoading,profileEditorNonce:Je.profileEditorNonce,toolEntryDisable:Y.toolEntryDisable,setToolEntryDisable:Y.setToolEntryDisable,onSaveTools:()=>void pt(),onClearToolsEntry:()=>void mt(),modelRows:Y.modelRows,setModelRows:Y.setModelRows,onSaveModels:()=>void ht(),onClearModelsEntry:()=>void gt(),skillsCatalogLoading:Xe.skillsCatalogLoading,catalogForPick:Xe.catalogForPick,skillsInherit:Y.skillsInherit,setSkillsInherit:Y.setSkillsInherit,skillsPick:Y.skillsPick,setSkillsPick:Y.setSkillsPick,onSaveSkills:()=>void _t(),bindingsLoading:X.bindingsLoading,agentBindings:X.agentBindings,bindChannelStatuses:X.bindChannelStatuses,bindChannelsLoading:X.bindChannelsLoading,useManualChannel:X.useManualChannel,newBindChannel:X.newBindChannel,setNewBindChannel:X.setNewBindChannel,bindSessionChats:X.bindSessionChats,bindSessionsLoading:X.bindSessionsLoading,newBindSessionIdx:X.newBindSessionIdx,setNewBindSessionIdx:X.setNewBindSessionIdx,newBindCustomPeer:X.newBindCustomPeer,setNewBindCustomPeer:X.setNewBindCustomPeer,refreshBindSessions:X.refreshBindSessions,onRemoveBinding:e=>void X.onRemoveBinding(e),onAddBinding:X.onAddBinding,cronLoading:Ye.cronLoading,agentCronJobs:Ye.agentCronJobs,onSetCronJobAgent:(e,t)=>void Ye.onSetCronJobAgent(e,t)};return{hasToken:y,a:n,chat:v,language:e,data:F,loading:I,displayError:R,navigate:C,routeAgentId:w,busy:Ce,listSearchQuery:K,openAddAgentModal:Qe,openDuplicateAgentModal:it,duplicateSourceId:W,onSelectDuplicateSource:rt,panel:B,setPanel:oe,modalTitle:wt,modalSubtitle:Tt,footerSaveDisabled:bt,savedFlash:Ve,handleModalFooterSave:St,onAgentModalOpenChange:Ct,addAgentModalOpen:ye,setAddAgentModalOpen:be,createWorkspaceSuggestedRef:U,createModalError:ve,setCreateModalError:H,createDisplayName:se,setCreateDisplayName:le,createAgentId:ue,setCreateAgentId:fe,createDescription:V,setCreateDescription:pe,createWorkspace:me,setCreateWorkspace:he,createModel:ge,setCreateModel:_e,onCreate:ot,currentLanguageLabel:e===`zh`?`中文`:`English`,applyCreateWorkspaceSuggestion:Ze,deleteDialogOpen:r,setDeleteDialogOpen:i,deletePurge:d,deleteTarget:s,setDeleteTarget:u,deleteConfirmText:p,setDeleteConfirmText:h,performDelete:dt,editorPanelProps:Dt}}function Hn(){let e=Vn();return e.hasToken?(0,Q.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-8`,children:[e.displayError?(0,Q.jsx)(`div`,{className:`rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-800 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-200`,children:e.displayError}):null,e.loading?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.a.loading}):e.data?(0,Q.jsx)(En,{a:e.a,agents:e.data.agents,searchQuery:e.listSearchQuery,onOpenAgent:t=>e.navigate(Me(t)),onChatWithAgent:t=>{let n=t.trim().toLowerCase();try{globalThis.localStorage?.setItem(xe,n)}catch{}e.navigate(`/chat/new`,{state:{agentId:n}})},busy:e.busy}):null,e.routeAgentId&&e.hasToken?(0,Q.jsx)(Tt,{open:!!e.routeAgentId,onOpenChange:e.onAgentModalOpenChange,a:e.a,title:e.modalTitle,subtitle:e.modalSubtitle,panel:e.panel,onPanelChange:e.setPanel,onFooterSave:()=>void e.handleModalFooterSave(),footerSaveDisabled:e.footerSaveDisabled,footerSavedFlash:e.savedFlash,busy:e.busy,children:e.loading||!e.data?(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.a.loading}):(0,Q.jsx)(bn,{...e.editorPanelProps})}):null,(0,Q.jsx)(On,{open:e.addAgentModalOpen,onOpenChange:t=>{e.setAddAgentModalOpen(t),t||(e.createWorkspaceSuggestedRef.current=``,e.setCreateDisplayName(``),e.setCreateAgentId(``),e.setCreateDescription(``),e.setCreateWorkspace(``),e.setCreateModel(``),e.setCreateModalError(null),e.onSelectDuplicateSource(null))},a:e.a,chat:e.chat,busy:e.busy,modalError:e.createModalError,profileLanguageLabel:e.currentLanguageLabel,createDisplayName:e.createDisplayName,setCreateDisplayName:e.setCreateDisplayName,createAgentId:e.createAgentId,setCreateAgentId:e.setCreateAgentId,createDescription:e.createDescription,setCreateDescription:e.setCreateDescription,createWorkspace:e.createWorkspace,setCreateWorkspace:e.setCreateWorkspace,createModel:e.createModel,setCreateModel:e.setCreateModel,onCreate:e.onCreate,onSuggestWorkspace:()=>e.applyCreateWorkspaceSuggestion(),agents:e.data?.agents??[],duplicateSourceId:e.duplicateSourceId,onSelectDuplicateSource:e.onSelectDuplicateSource}),(0,Q.jsx)(bt,{open:e.deleteDialogOpen,onOpenChange:t=>{e.setDeleteDialogOpen(t),t||(e.setDeleteTarget(null),e.setDeleteConfirmText(``))},busy:e.busy,deletePurge:e.deletePurge,deleteTarget:e.deleteTarget,deleteConfirmText:e.deleteConfirmText,onDeleteConfirmTextChange:e.setDeleteConfirmText,onConfirm:()=>{e.deleteTarget&&e.performDelete(e.deleteTarget,e.deletePurge)},onCancel:()=>e.setDeleteDialogOpen(!1),a:e.a})]}):(0,Q.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-3 px-4 py-8`,children:[(0,Q.jsx)(`h1`,{className:`text-lg font-semibold text-fg`,children:e.a.title}),(0,Q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.a.needToken})]})}export{it as AgentBrowserSettingsPage,at as AgentDefaultsTabbedPage,Hn as AgentsSettingsPanel};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-JdwAhgNB.js";import{t as a}from"./messages-BN_WiUg0.js";import{t as o}from"./locale-store-DjbfSsfA.js";import{c as s,i as c,n as l,t as u}from"./fetch-D9QqUtzZ.js";import{a as d,i as f}from"./vendor-swr-BIWyz7Rc.js";import{$r as p,Ao as m,Ar as h,Ft as g,H as _,Ia as v,Ja as y,Mr as b,Ni as x,Oa as S,Or as C,Qr as w,Vn as T,Wi as E,Xr as D,Zr as O,da as k,ei as A,es as j,ha as M,ji as N,jr as P,kr as F,ks as I,oi as L,os as R,ti as z,vs as B,ws as V}from"./index-DefIdW9q.js";var H=e(t(),1),U=n();function W(e){return e===`builtin`||e===`user`?e:`marketplace`}async function G(e){try{let t=await e.json();if(typeof t.error==`string`)return t.error;if(t.error&&typeof t.error==`object`&&typeof t.error.message==`string`)return t.error.message;if(typeof t.message==`string`)return t.message}catch{}return e.statusText||`HTTP ${e.status}`}async function ee(e){let t=await u(c(`/api/marketplace/packages/${encodeURIComponent(e.trim())}`),{cache:`no-store`});if(!t.ok)throw Error(await G(t));let n=await t.json();if(!n.ok||!n.payload?.id)throw Error(n.error??`Invalid response`);return n.payload}async function K(e){let t=await u(c(`/api/marketplace/install`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await G(t));let n=await t.json();if(!n.ok||!n.payload?.extensionId)throw Error(n.error??`Invalid response`);return n.payload}async function q(e){let t=await u(c(`/api/extensions/bundled/activation`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({extensionId:e.extensionId.trim(),enabled:e.enabled})});if(!t.ok)throw Error(await G(t));let n=await t.json();if(!n.ok||!n.payload)throw Error(n.error?.message??`Invalid response`);return n.payload}async function J(e){let t=await u(c(`/api/marketplace/uninstall`),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({extensionId:e})});if(!t.ok)throw Error(await G(t));let n=await t.json();if(!n.ok||!n.payload)throw Error(n.error??`Invalid response`);return n.payload}var Y=r();function X(e,t){let n=e.find(e=>e.id===t);return n?n.source===`bundled`?`bundled`:`user`:`absent`}var Z={q:``,debounced:``,detailPkg:null,rowBusy:null,actionError:null,restartHint:null};function te({className:e}){let t=a(o(e=>e.language)).appsPage,n=s(e=>!!e.token),r=F(),{mutate:u}=d(),[p,m]=(0,H.useReducer)(_,Z),{q:h,debounced:b,detailPkg:x,rowBusy:S,actionError:C,restartHint:w}=p,T=n?`marketplace-${b}`:null;(0,H.useEffect)(()=>{let e=window.setTimeout(()=>m({type:`patch`,patch:{debounced:h.trim()}}),300);return()=>window.clearTimeout(e)},[h]);let{data:D,isLoading:O,error:k}=f(T,async()=>l(b.length>0?c(`/api/marketplace?q=${encodeURIComponent(b)}`):c(`/api/marketplace`)),{revalidateOnFocus:!1}),A=(0,H.useCallback)(()=>{u(`gateway-extensions-list`),g()},[u]),N=(0,H.useCallback)(async(e,n)=>{m({type:`patch`,patch:{actionError:null,restartHint:null,rowBusy:e}});try{let r=await K({name:e,overwrite:n});A(),r.requiresGatewayRestart&&m({type:`patch`,patch:{restartHint:t.marketplaceRestartHint}})}catch(e){throw m({type:`patch`,patch:{actionError:e instanceof Error?e.message:t.marketplaceInstallFailed}}),e}finally{m({type:`patch`,patch:{rowBusy:null}})}},[t.marketplaceInstallFailed,t.marketplaceRestartHint,A]),P=(0,H.useCallback)(async e=>{m({type:`patch`,patch:{actionError:null,restartHint:null,rowBusy:e}});try{let n=await J(e);A(),n.requiresGatewayRestart&&m({type:`patch`,patch:{restartHint:t.marketplaceRestartHint}})}catch(e){throw m({type:`patch`,patch:{actionError:e instanceof Error?e.message:t.marketplaceUninstallFailed}}),e}finally{m({type:`patch`,patch:{rowBusy:null}})}},[t.marketplaceRestartHint,t.marketplaceUninstallFailed,A]),I=D?.extensions??[];return(0,Y.jsxs)(`div`,{className:i(`flex flex-col gap-4`,e),children:[(0,Y.jsxs)(`div`,{className:`relative`,children:[(0,Y.jsx)(M,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-muted`,strokeWidth:1.75,"aria-hidden":!0}),(0,Y.jsx)(`input`,{type:`search`,value:h,onChange:e=>m({type:`patch`,patch:{q:e.target.value}}),placeholder:t.marketplaceSearchPlaceholder,className:`ui-input h-10 w-full rounded-lg border border-edge bg-surface-base pl-9 pr-3 text-sm text-fg placeholder:text-fg-muted`})]}),k?(0,Y.jsx)(`p`,{className:`text-sm text-fg-muted`,children:k instanceof Error?k.message:t.marketplaceLoadFailed}):null,C?(0,Y.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:C}):null,w?(0,Y.jsx)(`p`,{className:`text-sm text-fg-muted`,children:w}):null,O&&!D?(0,Y.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`…`}):(0,Y.jsx)(`ul`,{className:`flex flex-col gap-3`,children:I.length===0?(0,Y.jsx)(`li`,{className:`text-sm text-fg-muted`,children:t.marketplaceEmpty}):I.map(e=>{let n=X(r,e.id),a=S===e.id;return(0,Y.jsx)(`li`,{className:`list-none`,children:(0,Y.jsxs)(`div`,{role:`button`,tabIndex:0,"aria-label":`${e.name}, ${t.marketplaceDetailTitle}`,onClick:()=>m({type:`patch`,patch:{detailPkg:e.id}}),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),m({type:`patch`,patch:{detailPkg:e.id}}))},className:i(`flex w-full cursor-pointer flex-wrap items-start gap-3 rounded-xl border border-edge bg-surface-base p-4 text-left shadow-surface`,`transition-[transform,background-color,border-color,box-shadow] duration-150 ease-out`,`hover:border-edge-subtle hover:bg-surface-hover/40`,`active:scale-[0.992] active:bg-surface-hover/55`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,`dark:hover:bg-surface-hover/25 dark:active:bg-surface-hover/35`),children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Y.jsx)(`h3`,{className:`font-semibold text-fg`,children:e.name}),e.verified?(0,Y.jsx)(j,{className:`size-4 shrink-0 text-emerald-600 dark:text-emerald-400`,strokeWidth:1.75,"aria-label":`Verified`}):null,e.version?(0,Y.jsx)(`span`,{className:`text-xs text-fg-muted`,children:e.version}):null]}),e.description?(0,Y.jsx)(`p`,{className:`mt-1 line-clamp-2 text-sm text-fg-muted`,children:e.description}):null,(0,Y.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:(e.categories??[]).map(e=>(0,Y.jsx)(`span`,{className:`rounded-md border border-edge bg-surface-panel px-2 py-0.5 text-[11px] text-fg-muted`,children:e},e))}),(0,Y.jsxs)(`p`,{className:`mt-2 flex items-center gap-1.5 text-xs text-fg-muted`,children:[(0,Y.jsx)(v,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),(0,Y.jsx)(`code`,{className:`rounded bg-surface-panel px-1 py-0.5`,children:e.npmPackage})]})]}),(0,Y.jsx)(`div`,{role:`group`,className:`flex shrink-0 flex-col items-end gap-2 sm:min-w-[9rem]`,onClick:e=>e.stopPropagation(),onKeyDown:e=>e.stopPropagation(),children:n===`bundled`?(0,Y.jsx)(`span`,{className:`rounded-md bg-surface-hover px-2 py-1 text-[11px] font-medium text-fg-muted`,children:t.marketplaceBuiltin}):n===`user`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-medium text-fg-muted`,children:t.marketplaceInstalled}),(0,Y.jsxs)(`button`,{type:`button`,disabled:a,onClick:()=>{window.confirm(t.marketplaceUninstallConfirm)&&P(e.id).catch(()=>{})},className:i(`inline-flex items-center justify-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-xs font-medium text-fg`,`transition-colors active:scale-[0.98] active:bg-surface-hover/80`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`disabled:pointer-events-none disabled:opacity-50`),children:[a?(0,Y.jsx)(y,{className:`size-3.5 animate-spin`,"aria-hidden":!0}):(0,Y.jsx)(E,{className:`size-3.5`,strokeWidth:2,"aria-hidden":!0}),t.marketplaceUninstall]})]}):(0,Y.jsxs)(`button`,{type:`button`,disabled:a,onClick:()=>{N(e.id,!1).catch(()=>{})},className:i(`inline-flex w-full items-center justify-center rounded-lg bg-accent px-3 py-2 text-xs font-medium text-white`,`shadow-surface transition-[transform,background-color] active:scale-[0.98]`,`hover:bg-accent-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-base`,`disabled:pointer-events-none disabled:opacity-50`),children:[a?(0,Y.jsx)(y,{className:`size-3.5 animate-spin`,"aria-hidden":!0}):null,t.marketplaceInstall]})})]})},e.id)})}),x?(0,Y.jsx)(ne,{packageName:x,copy:t,extensions:r,onClose:()=>m({type:`patch`,patch:{detailPkg:null}}),onInstall:N,onUninstall:P}):null]})}function ne(e){let t=(0,U.c)(61),{packageName:n,copy:r,extensions:a,onClose:o,onInstall:c,onUninstall:l}=e,[u,d]=(0,H.useState)(!1),m=s(oe)?`ext-mp-detail-${n}`:null,h;t[0]===n?h=t[1]:(h=async()=>ee(n),t[0]=n,t[1]=h);let g;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(g={revalidateOnFocus:!1},t[2]=g):g=t[2];let{data:_,error:v,isLoading:b}=f(m,h,g),S;t[3]!==a||t[4]!==n?(S=X(a,n),t[3]=a,t[4]=n,t[5]=S):S=t[5];let C=S,O=C===`user`,k;t[6]!==r.marketplaceNoReadme||t[7]!==_?(k=_?.readme?.trim()||(_?.description?.trim()?`### ${_.name}\n\n${_.description}`:`*${r.marketplaceNoReadme}*`),t[6]=r.marketplaceNoReadme,t[7]=_,t[8]=k):k=t[8];let j=k,M;t[9]===o?M=t[10]:(M=e=>!e&&o(),t[9]=o,t[10]=M);let N;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,Y.jsx)(w,{className:`xopc-dialog-overlay fixed inset-0 z-[130] bg-scrim`}),t[11]=N):N=t[11];let P;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,Y.jsx)(B,{className:`size-5`}),t[12]=P):P=t[12];let F;t[13]!==r.detailBack||t[14]!==o?(F=(0,Y.jsx)(`button`,{type:`button`,onClick:o,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":r.detailBack,children:P}),t[13]=r.detailBack,t[14]=o,t[15]=F):F=t[15];let I;t[16]===r.marketplaceDetailTitle?I=t[17]:(I=(0,Y.jsx)(z,{className:`min-w-0 flex-1 truncate text-center text-sm font-semibold text-fg`,children:r.marketplaceDetailTitle}),t[16]=r.marketplaceDetailTitle,t[17]=I);let L;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,Y.jsx)(x,{className:`size-5`}),t[18]=L):L=t[18];let R;t[19]!==r.detailClose||t[20]!==o?(R=(0,Y.jsx)(`button`,{type:`button`,onClick:o,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":r.detailClose,children:L}),t[19]=r.detailClose,t[20]=o,t[21]=R):R=t[21];let W;t[22]!==R||t[23]!==F||t[24]!==I?(W=(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[F,I,R]}),t[22]=R,t[23]=F,t[24]=I,t[25]=W):W=t[25];let G;t[26]!==r.marketplaceAuthor||t[27]!==r.marketplaceDetailLoadFailed||t[28]!==r.marketplaceDetailReadmeHeading||t[29]!==r.marketplaceDownloads||t[30]!==r.marketplaceVersion||t[31]!==_||t[32]!==v||t[33]!==b||t[34]!==j?(G=b&&!_?(0,Y.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`…`}):v?(0,Y.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.marketplaceDetailLoadFailed}):_?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`h3`,{className:`text-lg font-semibold text-fg`,children:_.name}),(0,Y.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:(0,Y.jsx)(`code`,{className:`rounded bg-surface-panel px-1 py-0.5`,children:_.id})}),(0,Y.jsxs)(`dl`,{className:`mt-3 grid gap-2 text-xs text-fg-muted sm:grid-cols-2`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceAuthor}),(0,Y.jsx)(`dd`,{children:_.author.username})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceVersion}),(0,Y.jsx)(`dd`,{children:_.latestVersion.version})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`dt`,{className:`font-medium text-fg`,children:r.marketplaceDownloads}),(0,Y.jsx)(`dd`,{children:_.downloads})]})]}),_.readme?.trim()?(0,Y.jsx)(`h4`,{className:`mb-2 mt-6 text-sm font-semibold text-fg`,children:r.marketplaceDetailReadmeHeading}):null,(0,Y.jsx)(`div`,{className:`markdown-content min-w-0 break-words text-sm`,children:(0,Y.jsx)(T,{content:j})})]}):null,t[26]=r.marketplaceAuthor,t[27]=r.marketplaceDetailLoadFailed,t[28]=r.marketplaceDetailReadmeHeading,t[29]=r.marketplaceDownloads,t[30]=r.marketplaceVersion,t[31]=_,t[32]=v,t[33]=b,t[34]=j,t[35]=G):G=t[35];let K;t[36]===G?K=t[37]:(K=(0,Y.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-5`,children:G}),t[36]=G,t[37]=K);let q;t[38]!==u||t[39]!==r.marketplaceBuiltinGoBuiltin||t[40]!==r.marketplaceBuiltinManageHint||t[41]!==r.marketplaceInstall||t[42]!==r.marketplaceReinstall||t[43]!==r.marketplaceReinstallConfirm||t[44]!==r.marketplaceUninstall||t[45]!==r.marketplaceUninstallConfirm||t[46]!==_||t[47]!==C||t[48]!==o||t[49]!==c||t[50]!==l||t[51]!==n||t[52]!==O?(q=_?(0,Y.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-edge-subtle px-5 py-4`,children:C===`bundled`?(0,Y.jsxs)(`div`,{className:`flex w-full flex-col items-stretch gap-2`,children:[(0,Y.jsx)(`p`,{className:`text-sm leading-relaxed text-fg-muted`,children:r.marketplaceBuiltinManageHint}),(0,Y.jsx)(V,{to:`/apps?tab=builtin`,onClick:o,className:`inline-flex w-fit items-center justify-center rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:r.marketplaceBuiltinGoBuiltin})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`button`,{type:`button`,disabled:u,onClick:()=>{O&&!window.confirm(r.marketplaceReinstallConfirm)||(d(!0),c(n,O).catch(ie).finally(()=>d(!1)))},className:i(`inline-flex items-center justify-center gap-1.5 rounded-lg px-3 py-2 text-sm font-medium`,`bg-accent text-white shadow-surface hover:bg-accent-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`,`disabled:pointer-events-none disabled:opacity-50`),children:[u?(0,Y.jsx)(y,{className:`size-4 animate-spin`,"aria-hidden":!0}):null,O?r.marketplaceReinstall:r.marketplaceInstall]}),O?(0,Y.jsxs)(`button`,{type:`button`,disabled:u,onClick:()=>{window.confirm(r.marketplaceUninstallConfirm)&&(d(!0),l(n).then(()=>o()).catch(re).finally(()=>d(!1)))},className:i(`inline-flex items-center justify-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`disabled:pointer-events-none disabled:opacity-50`),children:[(0,Y.jsx)(E,{className:`size-4 shrink-0`,"aria-hidden":!0}),r.marketplaceUninstall]}):null]})}):null,t[38]=u,t[39]=r.marketplaceBuiltinGoBuiltin,t[40]=r.marketplaceBuiltinManageHint,t[41]=r.marketplaceInstall,t[42]=r.marketplaceReinstall,t[43]=r.marketplaceReinstallConfirm,t[44]=r.marketplaceUninstall,t[45]=r.marketplaceUninstallConfirm,t[46]=_,t[47]=C,t[48]=o,t[49]=c,t[50]=l,t[51]=n,t[52]=O,t[53]=q):q=t[53];let J;t[54]!==W||t[55]!==K||t[56]!==q?(J=(0,Y.jsxs)(p,{children:[N,(0,Y.jsxs)(D,{className:`fixed left-1/2 top-1/2 z-[131] flex max-h-[min(90vh,44rem)] w-[min(42rem,calc(100vw-1.5rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-elevated`,onOpenAutoFocus:ae,children:[W,K,q]})]}),t[54]=W,t[55]=K,t[56]=q,t[57]=J):J=t[57];let Z;return t[58]!==J||t[59]!==M?(Z=(0,Y.jsx)(A,{defaultOpen:!0,onOpenChange:M,children:J}),t[58]=J,t[59]=M,t[60]=Z):Z=t[60],Z}function re(){}function ie(){}function ae(e){return e.preventDefault()}function oe(e){return!!e.token}function se(){let e=o(e=>e.language),t=a(e),n=L(e=>e.setPageHeader),r=L(e=>e.clearPageHeader),s=F(),c=h(),[l,u]=I(),d=W(l.get(`tab`)),f=l.get(`q`)??``,[p,m]=(0,H.useState)(d),[g,_]=(0,H.useState)(f),[v,y]=(0,H.useState)(null),b=l.toString(),x=(0,H.useRef)(b);if(x.current!==b){x.current=b;let e=W(l.get(`tab`)),t=l.get(`q`)??``;m(t=>t===e?t:e),_(e=>e===t?e:t)}(0,H.useEffect)(()=>{u(e=>{let t=new URLSearchParams(e),n=g.trim();return n?t.set(`q`,n):t.delete(`q`),p===`marketplace`?t.delete(`tab`):t.set(`tab`,p),t.toString()===e.toString()?e:t},{replace:!0})},[p,g,u]);let S=(0,H.useMemo)(()=>s.filter(e=>e.source===`bundled`),[s]),C=(0,H.useMemo)(()=>s.filter(e=>e.source!==`bundled`),[s]),w=p===`builtin`?S:C,T=(0,H.useMemo)(()=>{let t=g.trim().toLowerCase(),n=w;return t&&(n=n.filter(e=>(e.name??``).toLowerCase().includes(t)||e.id.toLowerCase().includes(t)||(e.description??``).toLowerCase().includes(t))),n.toSorted((t,n)=>t.hasUi===n.hasUi?(t.name||t.id).localeCompare(n.name||n.id,e):t.hasUi?-1:1)},[w,g,e]);if((0,H.useEffect)(()=>{y(e=>{if(!e)return e;let t=s.find(t=>t.id===e.id);return t?Q(e)===Q(t)&&e.active===t.active?e:t:null})},[s]),(0,H.useLayoutEffect)(()=>(n({startExtra:null,main:(0,Y.jsx)(`div`,{className:`min-w-0`,children:(0,Y.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:t.appsPage.title})}),end:null}),()=>r()),[r,t.appsPage.title,n]),c&&p!==`marketplace`)return(0,Y.jsx)(pe,{});let E=p!==`marketplace`&&w.length>0;return(0,Y.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:[(0,Y.jsxs)(`div`,{className:`mx-auto w-full max-w-app-main px-4 py-8`,children:[(0,Y.jsxs)(`div`,{className:`mb-5 flex flex-col gap-3 border-b border-edge-subtle pb-3 sm:flex-row sm:items-center sm:justify-between dark:border-edge-subtle`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-x-1 gap-y-1`,role:`tablist`,"aria-label":t.appsPage.appsNavAria,children:[(0,Y.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":p===`marketplace`,className:i(`relative max-w-full rounded-md px-3 py-2 text-left text-sm font-medium transition-colors sm:text-center`,p===`marketplace`?`text-fg`:`text-fg-muted hover:text-fg`,p===`marketplace`&&`after:absolute after:bottom-0 after:left-1/2 after:h-0.5 after:w-9 after:-translate-x-1/2 after:rounded-full after:bg-accent`),onClick:()=>m(`marketplace`),children:t.appsPage.tabMarketplace}),(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":p===`builtin`,className:i(`relative rounded-md px-3 py-2 text-sm font-medium transition-colors`,p===`builtin`?`text-fg`:`text-fg-muted hover:text-fg`,p===`builtin`&&`after:absolute after:bottom-0 after:left-1/2 after:h-0.5 after:w-9 after:-translate-x-1/2 after:rounded-full after:bg-accent`),onClick:()=>m(`builtin`),children:[t.appsPage.tabBuiltin,(0,Y.jsxs)(`span`,{className:`ml-1 tabular-nums text-fg-muted`,children:[`(`,S.length,`)`]})]}),(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":p===`user`,className:i(`relative rounded-md px-3 py-2 text-sm font-medium transition-colors`,p===`user`?`text-fg`:`text-fg-muted hover:text-fg`,p===`user`&&`after:absolute after:bottom-0 after:left-1/2 after:h-0.5 after:w-9 after:-translate-x-1/2 after:rounded-full after:bg-accent`),onClick:()=>m(`user`),children:[t.appsPage.tabUser,(0,Y.jsxs)(`span`,{className:`ml-1 tabular-nums text-fg-muted`,children:[`(`,C.length,`)`]})]})]}),E?(0,Y.jsxs)(`div`,{className:`relative w-full min-w-0 sm:max-w-xs`,children:[(0,Y.jsx)(M,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-muted`,"aria-hidden":!0}),(0,Y.jsx)(`input`,{type:`search`,value:g,onChange:e=>_(e.target.value),placeholder:t.appsPage.searchPlaceholder,className:`w-full rounded-lg border border-edge bg-surface-base py-2 pl-9 pr-3 text-sm text-fg placeholder:text-fg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,autoComplete:`off`})]}):null]}),p===`marketplace`?(0,Y.jsx)(te,{}):p===`builtin`&&S.length===0?(0,Y.jsx)(he,{message:t.appsPage.emptyBuiltin}):p===`user`&&C.length===0?(0,Y.jsx)(he,{message:t.appsPage.emptyUser}):T.length===0?(0,Y.jsx)(`p`,{className:`rounded-xl border border-dashed border-edge-subtle bg-surface-hover/30 px-4 py-8 text-center text-sm text-fg-muted dark:bg-surface-hover/15`,children:t.appsPage.noSearchResults}):(0,Y.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:T.map(e=>(0,Y.jsx)(de,{extension:e,copy:t.appsPage,showSourceBadge:p===`user`,onOpen:()=>y(e)},e.id))})]}),v?(0,Y.jsx)(fe,{extension:v,copy:t.appsPage,onClose:()=>y(null)},v.id):null]})}function Q(e){return e.activationEligible??e.active}function ce(e,t){return e.source===`bundled`?t.providerBundled:e.source===`global`?t.providerGlobal:e.source===`workspace`?t.providerWorkspace:t.providerOther}function le(e,t){return e.source===`global`?t.badgeSourceGlobal:e.source===`workspace`?t.badgeSourceWorkspace:t.badgeSourceOther}function ue(e,t){let n=Q(e);return n&&e.active?t.runStateLive:n&&!e.active?t.runStatePendingOn:!n&&e.active?t.runStatePendingOff:t.runStateOff}function de(e){let t=(0,U.c)(45),{extension:n,copy:r,showSourceBadge:a,onOpen:o}=e,s;t[0]===n?s=t[1]:(s=Q(n),t[0]=n,t[1]=s);let c=s,l=n.hasUi?r.cardTooltipHasUi:r.cardTooltipNoUi,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=i(`group flex w-full flex-col rounded-xl border border-edge bg-surface-base p-4 text-left shadow-sm transition-colors`,`hover:border-edge-subtle hover:bg-surface-hover/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`dark:hover:bg-surface-hover/25`),t[2]=u):u=t[2];let d=n.name||n.id,f;t[3]===d?f=t[4]:(f=d.charAt(0).toUpperCase(),t[3]=d,t[4]=f);let p;t[5]===f?p=t[6]:(p=(0,Y.jsx)(`div`,{className:`flex size-12 shrink-0 items-center justify-center rounded-xl bg-accent-soft text-base font-semibold text-accent-fg`,"aria-hidden":!0,children:f}),t[5]=f,t[6]=p);let m;t[7]===n.name?m=t[8]:(m=(0,Y.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:n.name}),t[7]=n.name,t[8]=m);let h;t[9]===n.version?h=t[10]:(h=n.version?(0,Y.jsxs)(`span`,{className:`text-[11px] text-fg-muted`,children:[`v`,n.version]}):null,t[9]=n.version,t[10]=h);let g;t[11]!==m||t[12]!==h?(g=(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[m,h]}),t[11]=m,t[12]=h,t[13]=g):g=t[13];let _;t[14]!==r.statusEnabled||t[15]!==c?(_=c?(0,Y.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1 rounded-full bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:[(0,Y.jsx)(R,{className:`size-3`,strokeWidth:2.5,"aria-hidden":!0}),r.statusEnabled]}):(0,Y.jsx)(`span`,{className:`flex size-8 shrink-0 items-center justify-center rounded-full border-2 border-accent text-accent`,"aria-hidden":!0,children:(0,Y.jsx)(S,{className:`size-4`,strokeWidth:2.5})}),t[14]=r.statusEnabled,t[15]=c,t[16]=_):_=t[16];let v;t[17]!==g||t[18]!==_?(v=(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[g,_]}),t[17]=g,t[18]=_,t[19]=v):v=t[19];let y;t[20]!==r.cardNoDescription||t[21]!==n.description?(y=n.description?.trim()||r.cardNoDescription,t[20]=r.cardNoDescription,t[21]=n.description,t[22]=y):y=t[22];let b;t[23]===y?b=t[24]:(b=(0,Y.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs leading-relaxed text-fg-muted`,children:y}),t[23]=y,t[24]=b);let x=n.hasUi?r.badgeKindUi:r.badgeKindBackend,C;t[25]!==x||t[26]!==l?(C=(0,Y.jsx)(`span`,{title:l,className:`rounded-md bg-surface-hover px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-fg-muted`,children:x}),t[25]=x,t[26]=l,t[27]=C):C=t[27];let w;t[28]!==r||t[29]!==n||t[30]!==a?(w=n.source===`bundled`?(0,Y.jsx)(`span`,{className:`rounded-md bg-surface-hover px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-fg-muted`,children:r.badgeBundled}):a?(0,Y.jsx)(`span`,{title:ce(n,r),className:`rounded-md bg-surface-hover px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-fg-muted`,children:le(n,r)}):null,t[28]=r,t[29]=n,t[30]=a,t[31]=w):w=t[31];let T;t[32]!==C||t[33]!==w?(T=(0,Y.jsxs)(`div`,{className:`mt-2 flex flex-wrap gap-1.5`,children:[C,w]}),t[32]=C,t[33]=w,t[34]=T):T=t[34];let E;t[35]!==v||t[36]!==b||t[37]!==T?(E=(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[v,b,T]}),t[35]=v,t[36]=b,t[37]=T,t[38]=E):E=t[38];let D;t[39]!==E||t[40]!==p?(D=(0,Y.jsxs)(`div`,{className:`flex gap-3`,children:[p,E]}),t[39]=E,t[40]=p,t[41]=D):D=t[41];let O;return t[42]!==o||t[43]!==D?(O=(0,Y.jsx)(`button`,{type:`button`,onClick:o,className:u,children:D}),t[42]=o,t[43]=D,t[44]=O):O=t[44],O}function fe({extension:e,copy:t,onClose:n}){let{mutate:r}=d(),[a,o]=(0,H.useState)(!1),[s,c]=(0,H.useState)(null),[l,u]=(0,H.useState)(!1),f=e.activationEligible===!0,h=(0,H.useCallback)(async()=>{if(e.source===`bundled`){c(null),u(!1),o(!0);try{let{requiresGatewayRestart:t}=await q({extensionId:e.id,enabled:!f});await r(`gateway-extensions-list`),g(),u(t)}catch(e){c(e instanceof Error?e.message:t.builtinToggleFailed)}finally{o(!1)}}},[f,t.builtinToggleFailed,e.id,e.source,r]),_=e.ui?.contributions?.pages??[],v=e.ui?.contributions?.settingsPanels??[],S=e.ui?.contributions?.chatWidgets??[],T=e.ui?.contributions?.sidebarPanels??[],E=_.find(e=>e.showInNav)??_[0],j=v[0],M=E?C(e.id,E):null,F=j?`/settings/ext/${e.id}/${j.id}`:e.hasConfigSchema||P(e)?`/settings/ext/${e.id}`:null;return(0,Y.jsx)(A,{defaultOpen:!0,onOpenChange:e=>!e&&n(),children:(0,Y.jsxs)(p,{children:[(0,Y.jsx)(w,{className:`xopc-dialog-overlay fixed inset-0 z-[130] bg-scrim`}),(0,Y.jsxs)(D,{className:`fixed left-1/2 top-1/2 z-[131] flex max-h-[min(90vh,44rem)] w-[min(42rem,calc(100vw-1.5rem))] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-xl border border-edge bg-surface-panel shadow-elevated`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,Y.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,Y.jsx)(`button`,{type:`button`,onClick:n,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":t.detailBack,children:(0,Y.jsx)(B,{className:`size-5`})}),(0,Y.jsx)(z,{className:`min-w-0 flex-1 truncate text-center text-sm font-semibold text-fg`,children:t.detailTitle}),(0,Y.jsxs)(O,{className:`sr-only`,children:[e.name,` (`,e.id,`)`]}),(0,Y.jsx)(`button`,{type:`button`,onClick:n,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,"aria-label":t.detailClose,children:(0,Y.jsx)(x,{className:`size-5`})})]}),(0,Y.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-5`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-start gap-4`,children:[(0,Y.jsx)(`div`,{className:`flex size-16 shrink-0 items-center justify-center rounded-2xl bg-accent-soft text-xl font-semibold text-accent-fg`,"aria-hidden":!0,children:(e.name||e.id).charAt(0).toUpperCase()}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`h3`,{className:`text-lg font-semibold text-fg`,children:e.name}),(0,Y.jsxs)(`p`,{className:`mt-0.5 text-sm text-fg-muted`,children:[t.detailProviderPrefix,` `,ce(e,t)]}),e.version?(0,Y.jsxs)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:[`v`,e.version]}):null]})]}),(0,Y.jsx)(`p`,{className:`mt-5 text-sm leading-relaxed text-fg`,children:e.description?.trim()||t.detailNoDescription}),e.hasUi?null:(0,Y.jsx)(`p`,{className:`mt-3 text-xs text-fg-muted`,children:t.backendOnlyHint}),(0,Y.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:ue(e,t)}),e.source===`bundled`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`p`,{className:`mt-4 rounded-lg border border-edge-subtle bg-surface-hover/40 px-3 py-2 text-xs text-fg-muted dark:bg-surface-hover/20`,children:t.builtinConfigHint}),(0,Y.jsxs)(`div`,{className:`mt-3 rounded-lg border border-edge-subtle bg-surface-hover/40 p-3 dark:bg-surface-hover/20`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:t.builtinRuntimeToggle}),(0,Y.jsx)(N,{type:`button`,variant:`secondary`,disabled:a,onClick:()=>void h(),className:`shrink-0 py-1.5 text-xs`,children:a?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(y,{className:`mr-1.5 size-3.5 shrink-0 animate-spin`,"aria-hidden":!0}),t.builtinToggleBusy]}):f?t.builtinToggleDisable:t.builtinToggleEnable})]}),s?(0,Y.jsx)(`p`,{className:`mt-2 text-xs text-rose-600 dark:text-rose-400`,children:s}):null,l?(0,Y.jsx)(`p`,{className:`mt-2 text-xs text-fg-muted`,children:t.builtinToggleRestartHint}):null]})]}):(0,Y.jsx)(`p`,{className:`mt-4 rounded-lg border border-edge-subtle bg-surface-hover/40 px-3 py-2 text-xs text-fg-muted dark:bg-surface-hover/20`,children:t.cliManageHint}),e.hasUi&&(_.length>0||v.length>0||S.length>0)?(0,Y.jsxs)(`section`,{className:`mt-8`,children:[(0,Y.jsx)(`h4`,{className:`mb-3 text-sm font-semibold text-fg`,children:t.detailSectionFeatures}),(0,Y.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,Y.jsx)($,{template:t.badgePages,count:_.length,hidden:_.length===0}),(0,Y.jsx)($,{template:t.badgeSettings,count:v.length,hidden:v.length===0}),(0,Y.jsx)($,{template:t.badgeWidgets,count:S.length,hidden:S.length===0}),(0,Y.jsx)($,{template:t.badgeSidebar,count:T.length,hidden:T.length===0})]})]}):null,b(e)&&(M||F)?(0,Y.jsxs)(`div`,{className:`mt-6 flex flex-wrap gap-2 border-t border-edge-subtle pt-4`,children:[M?(0,Y.jsxs)(V,{to:M,onClick:n,className:i(`inline-flex items-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:[(0,Y.jsx)(m,{className:`size-4 shrink-0 opacity-80`,"aria-hidden":!0}),t.open]}):null,F?(0,Y.jsxs)(V,{to:F,onClick:n,className:i(`inline-flex items-center gap-1.5 rounded-lg border border-edge px-3 py-2 text-sm font-medium text-fg`,`hover:bg-surface-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`),children:[(0,Y.jsx)(k,{className:`size-4 shrink-0 opacity-80`,"aria-hidden":!0}),t.openSettings]}):null]}):null,(0,Y.jsx)(`p`,{className:`mt-6 text-[11px] leading-relaxed text-fg-muted`,children:t.restartNote})]})]})]})})}function $(e){let t=(0,U.c)(6),{template:n,count:r,hidden:i}=e;if(i||r===0)return null;let a;if(t[0]!==r||t[1]!==n){let e;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=/\{\{count\}\}/g,t[3]=e):e=t[3],a=n.replace(e,String(r)),t[0]=r,t[1]=n,t[2]=a}else a=t[2];let o;return t[4]===a?o=t[5]:(o=(0,Y.jsx)(`span`,{className:`inline-flex items-center rounded-md bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:a}),t[4]=a,t[5]=o),o}function pe(){let e=(0,U.c)(5),t,n,r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Y.jsx)(`div`,{className:`mb-6 h-8 w-40 max-w-full animate-pulse rounded-md bg-surface-hover`}),n=(0,Y.jsx)(`div`,{className:`mb-2 h-4 w-full max-w-md animate-pulse rounded bg-surface-hover`}),r=(0,Y.jsx)(`div`,{className:`mb-5 h-9 w-full max-w-lg animate-pulse rounded-full bg-surface-hover`}),e[0]=t,e[1]=n,e[2]=r):(t=e[0],n=e[1],r=e[2]);let i;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=[`ap0`,`ap1`,`ap2`,`ap3`,`ap4`,`ap5`],e[3]=i):i=e[3];let a;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Y.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:(0,Y.jsxs)(`div`,{className:`mx-auto w-full max-w-app-main px-4 py-8`,children:[t,n,r,(0,Y.jsx)(`div`,{className:`mt-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:i.map(me)})]})}),e[4]=a):a=e[4],a}function me(e){return(0,Y.jsx)(`div`,{className:`h-36 animate-pulse rounded-xl border border-edge bg-surface-base`},e)}function he(e){let t=(0,U.c)(2),{message:n}=e,r;return t[0]===n?r=t[1]:(r=(0,Y.jsx)(`div`,{className:`flex min-h-[min(40vh,16rem)] flex-col items-center justify-center rounded-xl border border-dashed border-edge-subtle bg-surface-hover/40 px-4 py-12 text-center dark:bg-surface-hover/20`,children:(0,Y.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n})}),t[0]=n,t[1]=r),r}export{se as AppsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-JdwAhgNB.js";import{t as a}from"./messages-BN_WiUg0.js";import{t as o}from"./locale-store-DjbfSsfA.js";import{c as s,i as c,n as l,t as u}from"./fetch-D9QqUtzZ.js";import{i as d}from"./vendor-swr-BIWyz7Rc.js";import{$o as f,$r as p,Ao as m,Dr as h,Ds as g,Ja as _,Ni as v,Os as y,Qr as b,S as x,Sa as S,Si as C,Ta as w,Xr as T,Yr as E,Zr as D,ea as O,ei as k,en as A,fa as j,ji as M,nn as N,oi as P,ti as F,tn as I,vn as L,yn as R}from"./index-DefIdW9q.js";import{t as ee}from"./schema-form-DzS36TMa.js";import{t as z}from"./browser-BLJWD7WI.js";import{t as te}from"./use-channel-catalog-CbXq97rT.js";var B=n(),V=e(z(),1),H=e(t(),1),U=r();function W(e){let t=e.actions??{};for(let e of[`login.start`,`setup.start`]){let n=t[e];if(n?.result===`qr`)return[e,n]}let n=Object.entries(t).find(([,e])=>e.result===`qr`);if(n)return n;let r=e.ui?.card?.primaryAction;if(r&&t[r])return[r,t[r]];for(let e of[`login.start`,`setup.start`]){let n=t[e];if(n)return[e,n]}return Object.entries(t).find(([,e])=>e.result===`form`)??null}async function G(e){let t=await u(c(`/api/channels/${encodeURIComponent(e.channelId)}/actions/${encodeURIComponent(e.actionId)}?locale=${encodeURIComponent(e.locale)}`),{method:`POST`,body:JSON.stringify({...e.accountId?{accountId:e.accountId}:{},...e.input===void 0?{}:{input:e.input}})}),n=await t.json().catch(()=>({}));if(!t.ok||n.ok===!1)throw Error(n.error?.message??t.statusText);return n.payload??{type:`ok`}}function K(e){return e?.type===`poll`&&e.phase===`done`}function q(e){return e&&`message`in e&&typeof e.message==`string`?e.message:null}function J(e,t){return e?.type!==`qr`&&e?.type!==`poll`?null:e.qrPayload?e.qrPayload:t===`weixin`&&e.qrcodeUrl?e.qrcodeUrl:null}function Y(e){return e?.type!==`qr`&&e?.type!==`poll`?null:e.qrcodeUrl??null}function ne({entry:e,locale:t,messages:n,onChanged:r,autoStartPrimary:a=!1,compact:o=!1}){let s=(0,H.useMemo)(()=>W(e),[e]),c=(0,H.useMemo)(()=>({defaultBooleanLabel:n.schemaBooleanDefault,unsupportedArrayType:n.schemaUnsupportedArrayType,arrayAddPlaceholder:n.schemaArrayAddPlaceholder,unsupportedFieldType:(e,t)=>n.schemaUnsupportedFieldType.replace(`{{title}}`,e).replace(`{{type}}`,t?` (${t})`:``)}),[n]),[l,u]=(0,H.useState)({payload:null,poll:null,busy:!1,error:null,formDraft:{},generatedQr:null});(0,H.useEffect)(()=>{u({payload:null,poll:null,busy:!1,error:null,formDraft:{},generatedQr:null})},[e.id]);let d=(0,H.useCallback)(async(n,i)=>{u(e=>({...e,busy:!0,error:null}));try{let a=await G({channelId:e.id,actionId:n,locale:t,input:i});u(e=>({...e,payload:a,poll:a.type===`qr`&&a.statusAction&&a.sessionKey?{actionId:a.statusAction,sessionKey:a.sessionKey,intervalMs:Math.max(1e3,a.pollIntervalMs??2500)}:null,busy:!1,formDraft:a.type===`form`?a.values??{}:e.formDraft})),`configChanged`in a&&a.configChanged===!0&&await r()}catch(e){u(t=>({...t,busy:!1,error:e instanceof Error?e.message:String(e)}))}},[e.id,t,r]);(0,H.useEffect)(()=>{!a||!s||s[1].result!==`qr`||l.payload||l.busy||l.error||d(s[0])},[a,s,d,l.busy,l.error,l.payload]),(0,H.useEffect)(()=>{let t=J(l.payload,e.id);if(!t){u(e=>e.generatedQr?{...e,generatedQr:null}:e);return}let n=!1;return u(e=>e.generatedQr?{...e,generatedQr:null}:e),V.toDataURL(t,{width:220,margin:1}).then(e=>{n||u(t=>({...t,generatedQr:e}))}),()=>{n=!0}},[e.id,l.payload]),(0,H.useEffect)(()=>{let n=l.poll;if(!n)return;let i=!1,a=window.setInterval(()=>{i||G({channelId:e.id,actionId:n.actionId,locale:t,input:{sessionKey:n.sessionKey}}).then(async e=>{i||(u(t=>({...t,payload:e,poll:K(e)?null:t.poll,error:null})),`configChanged`in e&&e.configChanged===!0&&await r(),K(e)&&window.clearInterval(a))}).catch(e=>{i||u(t=>({...t,error:e instanceof Error?e.message:String(e)}))})},n.intervalMs);return()=>{i=!0,window.clearInterval(a)}},[e.id,t,r,l.poll]);let p=s?.[1].label??(e.configured?n.reconnect:n.connect),h=e.actions?.[`doctor.run`]?.label??n.diagnose,g=q(l.payload),v=J(l.payload,e.id),y=v?l.generatedQr:Y(l.payload),b=l.payload?.type===`form`?l.payload:null,x=l.payload?.type===`diagnostics`?l.payload.checks:null;return(0,U.jsxs)(`div`,{className:o?`space-y-3`:`rounded-lg border border-edge-subtle bg-surface-panel p-4`,children:[(0,U.jsxs)(`div`,{className:i(`flex flex-wrap items-start gap-3`,o?`justify-end`:`justify-between`),children:[o?null:(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:n.setupTitle}),(0,U.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:e.configured?n.setupConfiguredHint:n.setupEmptyHint})]}),(0,U.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[s?(0,U.jsxs)(M,{type:`button`,variant:`primary`,disabled:l.busy,onClick:()=>void d(s[0]),children:[l.busy?(0,U.jsx)(_,{className:`size-4 animate-spin`}):(0,U.jsx)(w,{className:`size-4`}),p]}):null,e.actions?.[`doctor.run`]?(0,U.jsxs)(M,{type:`button`,variant:`secondary`,disabled:l.busy,onClick:()=>void d(`doctor.run`),children:[(0,U.jsx)(O,{className:`size-4`}),h]}):null]})]}),g?(0,U.jsx)(`p`,{className:`mt-3 text-sm text-fg-muted`,children:g}):null,l.error?(0,U.jsx)(`p`,{className:`mt-3 text-sm text-red-600 dark:text-red-400`,children:l.error}):null,y?(0,U.jsxs)(`div`,{className:i(`flex flex-wrap items-start gap-4`,o?`justify-center`:`mt-4`),children:[(0,U.jsx)(`div`,{className:`rounded-lg border border-edge bg-white p-3`,children:(0,U.jsx)(`img`,{src:y,alt:`${e.label} setup QR`,className:`h-52 w-52 object-contain`})}),(0,U.jsxs)(`div`,{className:i(`max-w-sm text-sm text-fg-muted`,o&&`w-full text-center`),children:[(0,U.jsx)(`p`,{children:n.waitingConfirmation}),v?(0,U.jsxs)(`a`,{className:`mt-2 inline-flex items-center gap-1 text-accent hover:underline`,href:v,target:`_blank`,rel:`noreferrer`,children:[n.openSetupLink,(0,U.jsx)(m,{className:`size-3.5`})]}):null]})]}):null,l.payload?.type===`poll`&&l.payload.phase===`done`?(0,U.jsxs)(`div`,{className:`mt-4 flex items-center gap-2 rounded-lg border border-edge-subtle bg-surface-base px-3 py-2 text-sm`,children:[(0,U.jsx)(f,{className:l.payload.ok?`size-4 text-green-600`:`size-4 text-red-600`}),(0,U.jsx)(`span`,{className:l.payload.ok?`text-fg`:`text-red-600 dark:text-red-400`,children:l.payload.message??(l.payload.ok?n.complete:n.failed)})]}):null,b?(0,U.jsxs)(`div`,{className:`mt-4 space-y-3`,children:[(0,U.jsx)(ee,{schema:b.schema,values:l.formDraft,onChange:e=>u(t=>({...t,formDraft:e})),disabled:l.busy,labels:c}),(0,U.jsx)(M,{type:`button`,variant:`primary`,disabled:l.busy,onClick:()=>void d(b.submitAction,l.formDraft),children:n.saveSetup})]}):null,x?(0,U.jsx)(`div`,{className:`mt-4 space-y-2`,children:x.map((e,t)=>(0,U.jsxs)(`div`,{className:`rounded-lg border border-edge-subtle bg-surface-base px-3 py-2`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,U.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:e.label??e.id??n.diagnosticCheckFallback.replace(`{{index}}`,String(t+1))}),(0,U.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-xs text-fg-muted`,children:e.status??`unknown`})]}),e.message?(0,U.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:e.message}):null]},e.id??t))}):null]})}function re(e,t=!1){return e===`drawer`?i(`xopc-drawer-right fixed right-0 top-0 flex size-full flex-col overflow-hidden border-l border-edge bg-surface-panel shadow-popover outline-none dark:border-edge`,t?`max-w-[36rem]`:`max-w-xl`,L):i(`fixed left-1/2 top-1/2 flex max-h-[min(90vh,52rem)] w-[min(calc(100%-2rem),32rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden`,t&&`max-h-[min(90vh,48rem)] w-[min(calc(100%-2rem),36rem)]`,L,`rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none dark:border-edge`)}function ie(e){let t=(0,B.c)(30),{presentation:n,open:r,onOpenChange:a,title:o,description:s,srTitle:c,srDescription:l,closeAriaLabel:u,children:d,footer:f,wide:m,headerExtra:h}=e,g=m===void 0?!1:m,_=n===`drawer`,y;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,U.jsx)(b,{className:i(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[1px]`,R)}),t[0]=y):y=t[0];let x;t[1]!==n||t[2]!==g?(x=re(n,g),t[1]=n,t[2]=g,t[3]=x):x=t[3];let S;t[4]===c?S=t[5]:(S=c?(0,U.jsx)(F,{className:`sr-only`,children:c}):null,t[4]=c,t[5]=S);let w;t[6]===l?w=t[7]:(w=l?(0,U.jsx)(D,{className:`sr-only`,children:l}):null,t[6]=l,t[7]=w);let O;t[8]!==u||t[9]!==s||t[10]!==h||t[11]!==_||t[12]!==o?(O=_?(0,U.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-3 border-b border-edge px-4 py-3`,children:[(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[o?(0,U.jsx)(`div`,{className:`text-base font-semibold text-fg`,children:o}):null,s?(0,U.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:s}):null]}),(0,U.jsx)(E,{asChild:!0,children:(0,U.jsx)(M,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":u,children:(0,U.jsx)(v,{className:`size-5`,strokeWidth:1.75})})})]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(E,{asChild:!0,children:(0,U.jsx)(`button`,{type:`button`,className:i(C,`absolute right-3 top-3 z-20 p-1.5 hover:bg-surface-hover`),"aria-label":u,children:(0,U.jsx)(v,{className:`size-4`})})}),h]}),t[8]=u,t[9]=s,t[10]=h,t[11]=_,t[12]=o,t[13]=O):O=t[13];let A=_?`px-4 py-4`:`p-6`,j;t[14]===A?j=t[15]:(j=i(`min-h-0 flex-1 overflow-y-auto`,A),t[14]=A,t[15]=j);let N;t[16]!==d||t[17]!==j?(N=(0,U.jsx)(`div`,{className:j,children:d}),t[16]=d,t[17]=j,t[18]=N):N=t[18];let P;t[19]!==f||t[20]!==x||t[21]!==S||t[22]!==w||t[23]!==O||t[24]!==N?(P=(0,U.jsxs)(p,{children:[y,(0,U.jsxs)(T,{className:x,onOpenAutoFocus:X,children:[S,w,O,N,f]})]}),t[19]=f,t[20]=x,t[21]=S,t[22]=w,t[23]=O,t[24]=N,t[25]=P):P=t[25];let I;return t[26]!==a||t[27]!==r||t[28]!==P?(I=(0,U.jsx)(k,{open:r,onOpenChange:a,children:P}),t[26]=a,t[27]=r,t[28]=P,t[29]=I):I=t[29],I}function X(e){return e.preventDefault()}var ae=(0,H.memo)(function(e){let t=(0,B.c)(15),{ch:n,refreshing:r,saveOk:a,onRefresh:o}=e,s;t[0]!==n.saved||t[1]!==a?(s=a?(0,U.jsx)(`span`,{className:`text-sm text-fg-muted`,children:n.saved}):null,t[0]=n.saved,t[1]=a,t[2]=s):s=t[2];let c=n.refresh,l=n.refresh,u=r&&`animate-spin`,d;t[3]===u?d=t[4]:(d=i(`size-4`,u),t[3]=u,t[4]=d);let f;t[5]===d?f=t[6]:(f=(0,U.jsx)(S,{className:d,"aria-hidden":!0}),t[5]=d,t[6]=f);let p;t[7]!==n.refresh||t[8]!==o||t[9]!==r||t[10]!==f?(p=(0,U.jsx)(M,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,disabled:r,title:c,"aria-label":l,onClick:o,children:f}),t[7]=n.refresh,t[8]=o,t[9]=r,t[10]=f,t[11]=p):p=t[11];let m;return t[12]!==s||t[13]!==p?(m=(0,U.jsxs)(`div`,{className:`flex min-w-0 shrink-0 items-center justify-end gap-2`,children:[s,p]}),t[12]=s,t[13]=p,t[14]=m):m=t[14],m});function oe(e){let t=(0,B.c)(24),{ch:n,dirty:r,saving:i,onCancel:a,onDiscard:o,onSave:s,showCancel:c}=e,l=c===void 0?!0:c,u;t[0]!==n.unsavedHint||t[1]!==r?(u=r?(0,U.jsx)(`p`,{className:`mb-3 text-xs text-amber-800 dark:text-amber-200`,children:n.unsavedHint}):null,t[0]=n.unsavedHint,t[1]=r,t[2]=u):u=t[2];let d;t[3]!==n.modalCancel||t[4]!==a||t[5]!==l?(d=l?(0,U.jsx)(M,{type:`button`,variant:`secondary`,onClick:a,children:n.modalCancel}):null,t[3]=n.modalCancel,t[4]=a,t[5]=l,t[6]=d):d=t[6];let f=!r||i,p;t[7]!==n.discard||t[8]!==o||t[9]!==f?(p=(0,U.jsx)(M,{type:`button`,variant:`secondary`,disabled:f,onClick:o,children:n.discard}),t[7]=n.discard,t[8]=o,t[9]=f,t[10]=p):p=t[10];let m=!r||i,h;t[11]===s?h=t[12]:(h=()=>void s(),t[11]=s,t[12]=h);let g=i?n.saving:n.save,_;t[13]!==m||t[14]!==h||t[15]!==g?(_=(0,U.jsx)(M,{type:`button`,variant:`primary`,disabled:m,onClick:h,children:g}),t[13]=m,t[14]=h,t[15]=g,t[16]=_):_=t[16];let v;t[17]!==d||t[18]!==p||t[19]!==_?(v=(0,U.jsxs)(`div`,{className:`flex flex-wrap justify-end gap-2`,children:[d,p,_]}),t[17]=d,t[18]=p,t[19]=_,t[20]=v):v=t[20];let y;return t[21]!==v||t[22]!==u?(y=(0,U.jsxs)(`div`,{className:`sticky bottom-0 shrink-0 border-t border-edge-subtle bg-surface-panel px-6 py-4 dark:border-edge-subtle`,children:[u,v]}),t[21]=v,t[22]=u,t[23]=y):y=t[23],y}function se(e){return e?c(`/api/channels/${encodeURIComponent(e)}/config`):null}async function ce(e){return(await l(c(`/api/channels/${encodeURIComponent(e)}/config`))).payload?.config??{}}async function le(){return(await l(c(`/api/config`))).payload?.config?.channels??{}}function ue(e){return e.split(`/`).filter(Boolean).map(e=>encodeURIComponent(e)).join(`/`)}function de(e,t){return e.enabled&&e.runtime===`loaded`?t.hubStatusRunning:e.enabled?t.hubStatusEnabled:e.configured?t.hubStatusConfigured:t.hubStatusNotConfigured}function fe(e){return e.enabled&&e.runtime===`loaded`?`bg-emerald-500/12 text-emerald-700 dark:text-emerald-300`:e.enabled||e.configured?`bg-accent-soft text-accent`:`bg-surface-hover text-fg-muted`}function pe(e){if(!e)return[`enabled`];let t=e.uiHints??{},n=Object.entries(t).filter(([,e])=>!Z(e)||e.advanced===!0?!1:(Array.isArray(e.tags)?e.tags.map(String):[]).includes(`basic`)||e.advanced===!1).map(([e])=>e);return n.length>0?n:[`enabled`]}function Z(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Q(e){return JSON.parse(JSON.stringify(e??{type:`object`,properties:{}}))}function me(e,t){let n={...Q(e),properties:{}};for(let r of t){let t=r.split(`.`),i=e,a=n;for(let[e,n]of t.entries()){let r=i.properties;if(!Z(r)||!Z(r[n]))break;let o=Z(a.properties)?a.properties:{};if(a.properties=o,o[n]||(o[n]={...Q(r[n]),properties:{}}),e===t.length-1){o[n]=Q(r[n]);break}i=r[n],a=o[n]}}return n}function $(e){let t=e.properties;if(!Z(t))return!1;for(let[e,n]of Object.entries(t))Z(n)&&n.type===`object`&&$(n)&&delete t[e];return Object.keys(t).length===0}function he(e,t){let n=Q(e);for(let e of t){let t=e.split(`.`),r=n;for(let[e,n]of t.entries()){let i=r.properties;if(!Z(i))break;if(e===t.length-1){delete i[n];break}if(!Z(i[n]))break;r=i[n]}}return $(n),n}function ge(e){return e.type===`object`&&Z(e.properties)&&Object.keys(e.properties).length>0}function _e(e,t){let n=e;for(let e of t.split(`.`)){if(!Z(n))return;n=n[e]}return n}function ve(e){let t=e.accounts;return Z(t)?Object.values(t).filter(e=>Z(e)&&e.enabled!==!1).length:+(e.configured===!0)}function ye(e,t,n){return t==null||t===``?null:e.toLowerCase().includes(`dmpolicy`)&&typeof t==`string`?`${n.dmPolicy}: ${n.policy.dm[t]??t}`:(e.toLowerCase().includes(`stream`)||e.toLowerCase().includes(`streaming`))&&typeof t==`string`?`${n.cardStream}: ${n.policy.stream[t]??t}`:typeof t==`boolean`?t?n.enabledLabel:n.disabledLabel:String(t)}function be(e,t,n){let r=[];if(t){let i=e.ui?.card?.summaryFields??[`dmPolicy`,`streamMode`,`streaming.mode`];for(let e of i){let i=ye(e,_e(t,e),n);i&&r.push(i)}let a=ve(t);a>0&&r.push(n.cardAccounts.replace(`{{count}}`,String(a)))}return r.length>0?r.slice(0,2):e.configured?[n.hubStatusConfigured]:[]}function xe(e,t){let n=W(e);return n?.[1].label?n[1].label:e.configured?t.manageChannel:t.startConfiguration}function Se(e,t){let n=W(e);return n?.[1].result===`qr`?t.cardSetupQrHint:n?.[1].result===`form`?t.cardSetupConfigHint:t.cardSetupGenericHint}function Ce(e,t){let n=e.capabilities??{},r=[];return n.login===!0&&r.push(t.cardCapabilityLogin),n.pairing===!0&&r.push(t.cardCapabilityPairing),n.multiAccount===!0&&r.push(t.cardCapabilityMultiAccount),n.streaming===!0&&r.push(t.cardCapabilityStreaming),n.media===!0&&r.push(t.cardCapabilityMedia),n.doctor===!0&&r.push(t.cardCapabilityDoctor),r.slice(0,3)}function we({entry:e}){let t=s(e=>e.token),[n,r]=(0,H.useState)(!1),i=(0,H.useMemo)(()=>{if(!e.ui?.icon||n)return null;let r=new URL(c(`/api/extensions/${encodeURIComponent(e.extensionId)}/assets/${ue(e.ui.icon)}`));return t?.trim()&&r.searchParams.set(`token`,t.trim()),r.toString()},[n,e.extensionId,e.ui?.icon,t]);return(0,U.jsx)(`span`,{className:`flex size-12 shrink-0 items-center justify-center rounded-2xl bg-surface-base text-fg`,children:i?(0,U.jsx)(`img`,{src:i,alt:``,draggable:!1,className:`size-7`,"aria-hidden":!0,onError:()=>r(!0)}):(0,U.jsx)(h,{sourceChannel:e.id,className:`size-7`})})}function Te(e){let t=(0,B.c)(16),{checked:n,disabled:r,onToggle:a,label:o}=e,s;t[0]===a?s=t[1]:(s=e=>{e.stopPropagation(),a()},t[0]=a,t[1]=s);let c=n?`border-accent bg-accent`:`border-edge bg-surface-hover`,l=r&&`cursor-not-allowed opacity-60`,u;t[2]!==c||t[3]!==l?(u=i(`relative inline-flex h-6 w-11 shrink-0 items-center rounded-full border transition-colors`,c,l),t[2]=c,t[3]=l,t[4]=u):u=t[4];let d=n?`translate-x-5`:`translate-x-0.5`,f;t[5]===d?f=t[6]:(f=i(`size-5 rounded-full bg-white shadow-surface transition-transform`,d),t[5]=d,t[6]=f);let p;t[7]===f?p=t[8]:(p=(0,U.jsx)(`span`,{className:f}),t[7]=f,t[8]=p);let m;return t[9]!==n||t[10]!==r||t[11]!==o||t[12]!==s||t[13]!==u||t[14]!==p?(m=(0,U.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":n,"aria-label":o,disabled:r,onClick:s,className:u,children:p}),t[9]=n,t[10]=r,t[11]=o,t[12]=s,t[13]=u,t[14]=p,t[15]=m):m=t[15],m}function Ee(e){let t=(0,B.c)(65),{entry:n,config:r,busy:a,ch:o,onOpen:s,onToggle:c}=e,l,u,d,f,p,m;if(t[0]!==a||t[1]!==o||t[2]!==r||t[3]!==n||t[4]!==s||t[5]!==c){let e=be(n,r,o),h=Ce(n,o);p=`flex min-h-[15.5rem] flex-col rounded-xl border border-edge-subtle bg-surface-panel p-4 shadow-surface transition-colors hover:border-edge`;let g;t[12]===n?g=t[13]:(g=(0,U.jsx)(we,{entry:n}),t[12]=n,t[13]=g);let _;t[14]===n.label?_=t[15]:(_=(0,U.jsx)(`h2`,{className:`truncate text-base font-semibold text-fg`,children:n.label}),t[14]=n.label,t[15]=_);let v;t[16]===n?v=t[17]:(v=i(`mt-1 inline-flex rounded-full px-2 py-0.5 text-xs font-medium`,fe(n)),t[16]=n,t[17]=v);let y;t[18]!==o||t[19]!==n?(y=de(n,o),t[18]=o,t[19]=n,t[20]=y):y=t[20];let b;t[21]!==y||t[22]!==v?(b=(0,U.jsx)(`span`,{className:v,children:y}),t[21]=y,t[22]=v,t[23]=b):b=t[23];let x;t[24]!==b||t[25]!==_?(x=(0,U.jsxs)(`div`,{className:`min-w-0`,children:[_,b]}),t[24]=b,t[25]=_,t[26]=x):x=t[26];let S;t[27]!==x||t[28]!==g?(S=(0,U.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[g,x]}),t[27]=x,t[28]=g,t[29]=S):S=t[29];let C=n.enabled===!0,w;t[30]!==o.toggleChannel||t[31]!==n.label?(w=o.toggleChannel.replace(`{{channel}}`,n.label),t[30]=o.toggleChannel,t[31]=n.label,t[32]=w):w=t[32];let T;t[33]!==a||t[34]!==c||t[35]!==C||t[36]!==w?(T=(0,U.jsx)(Te,{checked:C,disabled:a,label:w,onToggle:c}),t[33]=a,t[34]=c,t[35]=C,t[36]=w,t[37]=T):T=t[37],t[38]!==S||t[39]!==T?(m=(0,U.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[S,T]}),t[38]=S,t[39]=T,t[40]=m):m=t[40],l=`button`,u=s,d=`mt-5 min-h-[6.25rem] text-left`,f=n.configured?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`p`,{className:`line-clamp-2 text-sm leading-6 text-fg-muted`,children:n.description??n.id}),e.length>0?(0,U.jsx)(`div`,{className:`mt-3 space-y-0.5 text-sm leading-5 text-fg-muted`,children:e.map(Oe)}):null]}):(0,U.jsxs)(`div`,{className:`rounded-lg border border-edge-subtle bg-surface-base px-3 py-3`,children:[(0,U.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:o.cardSetupTitle}),(0,U.jsx)(`p`,{className:`mt-1 line-clamp-2 text-sm leading-5 text-fg-muted`,children:Se(n,o)}),h.length>0?(0,U.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-1.5`,children:h.map(De)}):null]}),t[0]=a,t[1]=o,t[2]=r,t[3]=n,t[4]=s,t[5]=c,t[6]=l,t[7]=u,t[8]=d,t[9]=f,t[10]=p,t[11]=m}else l=t[6],u=t[7],d=t[8],f=t[9],p=t[10],m=t[11];let h;t[41]!==o.cardAdapterLabel||t[42]!==n.configured||t[43]!==n.description?(h=!n.configured&&n.description?(0,U.jsxs)(`p`,{className:`mt-3 truncate text-xs text-fg-subtle`,title:n.description,children:[o.cardAdapterLabel,`: `,n.description]}):null,t[41]=o.cardAdapterLabel,t[42]=n.configured,t[43]=n.description,t[44]=h):h=t[44];let g;t[45]!==l||t[46]!==u||t[47]!==d||t[48]!==f||t[49]!==h?(g=(0,U.jsxs)(`button`,{type:l,onClick:u,className:d,children:[f,h]}),t[45]=l,t[46]=u,t[47]=d,t[48]=f,t[49]=h,t[50]=g):g=t[50];let v;t[51]===a?v=t[52]:(v=a?(0,U.jsx)(_,{className:`size-4 animate-spin`}):null,t[51]=a,t[52]=v);let y;t[53]!==o||t[54]!==n?(y=xe(n,o),t[53]=o,t[54]=n,t[55]=y):y=t[55];let b;t[56]!==s||t[57]!==y||t[58]!==v?(b=(0,U.jsx)(`div`,{className:`mt-auto pt-4`,children:(0,U.jsxs)(M,{type:`button`,variant:`primary`,className:`w-full rounded-2xl py-2.5`,onClick:s,children:[v,y]})}),t[56]=s,t[57]=y,t[58]=v,t[59]=b):b=t[59];let x;return t[60]!==b||t[61]!==p||t[62]!==m||t[63]!==g?(x=(0,U.jsxs)(`article`,{className:p,children:[m,g,b]}),t[60]=b,t[61]=p,t[62]=m,t[63]=g,t[64]=x):x=t[64],x}function De(e){return(0,U.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-xs text-fg-muted`,children:e},e)}function Oe(e){return(0,U.jsx)(`p`,{className:`truncate`,title:e,children:e},e)}function ke(){let e=o(e=>e.language),t=a(e),n=s(e=>!!e.token),r=g(),{channelId:l}=y(),f=N(l),p=te(n,e),h=p.entries,{data:_={},mutate:v}=d(n?`channels-config-map`:null,le,{revalidateOnFocus:!1}),b=P(e=>e.setPageHeader),S=P(e=>e.clearPageHeader),C=(0,H.useMemo)(()=>h.find(e=>e.id===f),[f,h]),{data:w,mutate:T}=d(n&&C?se(C.id):null,()=>ce(C.id)),[E,D]=(0,H.useState)(null),[O,k]=(0,H.useState)(!1),[M,F]=(0,H.useState)(null),[L,R]=(0,H.useState)(null),z=E??w??{},B=t.channelsSettings,V=(0,H.useMemo)(()=>C?.configSchema??{type:`object`,properties:{}},[C?.configSchema]),G=(0,H.useMemo)(()=>pe(C),[C]),K=(0,H.useMemo)(()=>me(V,G),[G,V]),q=(0,H.useMemo)(()=>he(V,G),[G,V]),J=(0,H.useMemo)(()=>({defaultBooleanLabel:B.schemaBooleanDefault,unsupportedArrayType:B.schemaUnsupportedArrayType,arrayAddPlaceholder:B.schemaArrayAddPlaceholder,unsupportedFieldType:(e,t)=>B.schemaUnsupportedFieldType.replace(`{{title}}`,e).replace(`{{type}}`,t?` (${t})`:``)}),[B]),Y=(0,H.useMemo)(()=>n?(0,U.jsx)(ae,{ch:B,refreshing:p.isValidating,saveOk:!1,onRefresh:()=>void p.mutate()}):null,[p,B,n]);(0,H.useLayoutEffect)(()=>(b({startExtra:null,main:(0,U.jsx)(`div`,{className:`min-w-0`,children:(0,U.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:t.settingsSections.channels})}),end:Y}),()=>S()),[S,Y,t.settingsSections.channels,b]);let re=(0,H.useCallback)(e=>{r(I(e)),D(null),R(null)},[r]),X=(0,H.useCallback)(()=>{r(A),D(null),R(null)},[r]),ue=(0,H.useCallback)(async()=>{if(!C||!E)return!1;k(!0),R(null);try{let e=await u(c(`/api/config`),{method:`PATCH`,body:JSON.stringify({channels:{[C.id]:E}})});if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error?.message??e.statusText)}return await T(E,!1),await v(),await p.mutate(),D(null),!0}catch(e){return R(e instanceof Error?e.message:String(e)),!1}finally{k(!1)}},[C,p,E,v,T]),Z=(0,H.useCallback)(async e=>{F(e.id),R(null);try{let t=await u(c(`/api/config`),{method:`PATCH`,body:JSON.stringify({channels:{[e.id]:{enabled:e.enabled!==!0}}})});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e.error?.message??t.statusText)}await p.mutate(),await v(),C?.id===e.id&&await T()}catch(e){R(e instanceof Error?e.message:String(e))}finally{F(null)}},[C?.id,p,v,T]),Q=C?.ui?.modal,$=Q?.placement!==`replace-config`;return n?(0,U.jsxs)(`div`,{className:`mx-auto w-full max-w-app-main px-4 py-6`,children:[p.isLoading?(0,U.jsx)(`p`,{className:`text-sm text-fg-muted`,children:B.loadingChannels}):p.error?(0,U.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:String(p.error)}):(0,U.jsx)(`div`,{className:`grid gap-4 md:grid-cols-2 xl:grid-cols-3`,children:h.map(e=>(0,U.jsx)(Ee,{entry:e,config:_[e.id]?.config,busy:M===e.id,ch:B,onOpen:()=>re(e.id),onToggle:()=>void Z(e)},e.id))}),L?(0,U.jsx)(`p`,{className:`mt-4 text-sm text-red-600 dark:text-red-400`,children:L}):null,(0,U.jsx)(ie,{presentation:`modal`,open:!!C,onOpenChange:e=>{e||X()},closeAriaLabel:B.close,srTitle:C?.label??B.selectChannel,srDescription:C?.description,wide:!0,footer:C?(0,U.jsx)(oe,{ch:B,dirty:!!E,saving:O,onCancel:X,onDiscard:()=>D(null),onSave:ue}):null,children:C?(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsx)(`div`,{className:`rounded-xl border border-edge-subtle bg-surface-panel px-3 py-3`,children:(0,U.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[(0,U.jsx)(we,{entry:C}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,U.jsx)(`h2`,{className:`truncate text-base font-semibold text-fg`,children:C.label}),(0,U.jsx)(`span`,{className:i(`shrink-0 rounded-full px-2 py-0.5 text-xs font-medium`,fe(C)),children:de(C,B)})]}),(0,U.jsxs)(`div`,{className:`mt-1 flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-sm text-fg-muted`,children:[(0,U.jsx)(`span`,{className:`min-w-0 truncate`,children:W(C)?.[1].result===`qr`?B.scanLoginHint.replace(`{{channel}}`,C.label):C.description}),C.docsPath?(0,U.jsxs)(`a`,{href:C.docsPath,target:`_blank`,rel:`noreferrer`,className:`inline-flex shrink-0 items-center gap-1 text-accent hover:underline`,children:[B.docs,(0,U.jsx)(m,{className:`size-3.5`})]}):null]})]})]}),(0,U.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 pr-8`,children:[(0,U.jsx)(`span`,{className:`hidden text-xs text-fg-muted sm:inline`,children:B.enabledLabel}),(0,U.jsx)(Te,{checked:C.enabled===!0,disabled:M===C.id,label:B.toggleChannel.replace(`{{channel}}`,C.label),onToggle:()=>void Z(C)})]})]})}),Q?.entrypoint&&Q.placement===`before-config`?(0,U.jsx)(x,{extensionId:C.extensionId,extensionName:C.label,entrypoint:Q.entrypoint,permissions:Q.permissions,minHeight:Q.minHeight,maxHeight:Q.maxHeight,initialData:{channelId:C.id,entry:C,config:z}}):null,Q?.placement===`replace-config`?null:(0,U.jsx)(ne,{entry:C,locale:e,messages:B,autoStartPrimary:!0,compact:!0,onChanged:async()=>{await T(),await p.mutate(),await v()}},C.id),Q?.entrypoint&&Q.placement!==`before-config`?(0,U.jsx)(x,{extensionId:C.extensionId,extensionName:C.label,entrypoint:Q.entrypoint,permissions:Q.permissions,minHeight:Q.minHeight,maxHeight:Q.maxHeight,initialData:{channelId:C.id,entry:C,config:z}}):null,$?(0,U.jsxs)(`section`,{className:`rounded-xl border border-edge-subtle bg-surface-panel p-4`,children:[(0,U.jsxs)(`div`,{className:`mb-4`,children:[(0,U.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:B.basicConfiguration}),(0,U.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:B.basicConfigurationHint})]}),(0,U.jsx)(ee,{schema:K,values:z,onChange:e=>D(e),disabled:O,labels:J})]}):null,$&&ge(q)?(0,U.jsxs)(`details`,{className:`group rounded-xl border border-edge-subtle bg-surface-panel`,children:[(0,U.jsxs)(`summary`,{className:`flex cursor-pointer list-none items-center gap-2 px-4 py-3 text-sm font-medium text-fg marker:hidden [&::-webkit-details-marker]:hidden`,children:[(0,U.jsx)(j,{className:`size-4 text-fg-muted`}),B.advancedConfiguration]}),(0,U.jsx)(`div`,{className:`border-t border-edge-subtle p-4`,children:(0,U.jsx)(ee,{schema:q,values:z,onChange:e=>D(e),disabled:O,labels:J})})]}):null,L?(0,U.jsx)(`p`,{className:`text-sm text-red-600 dark:text-red-400`,children:L}):null]}):null})]}):(0,U.jsx)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-3 px-4 py-8`,children:(0,U.jsx)(`p`,{className:`text-sm text-fg-muted`,children:B.tokenRequired})})}export{ke as ChannelsSettingsPanel};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-JdwAhgNB.js";import{t as a}from"./messages-BN_WiUg0.js";import{t as o}from"./locale-store-DjbfSsfA.js";import{c as s,i as c,n as l}from"./fetch-D9QqUtzZ.js";import{r as u}from"./toast-z0toXu32.js";import{$o as d,$r as f,Ai as p,Ci as m,Eo as h,Ja as g,La as _,Ni as v,Oa as y,Pa as b,Pi as x,Po as S,Qr as C,Sr as w,Wi as T,Wo as E,Xr as D,Yr as O,Zr as k,bi as A,cs as j,ei as M,ha as N,ja as P,ji as F,ka as I,la as L,lo as ee,ti as R,vi as te,vn as ne,xr as z,yn as re}from"./index-DefIdW9q.js";import{n as ie,t as ae}from"./settings-form-section-DZLy_exu.js";var B=e(t(),1),V=n(),oe=/^([^:=]+)[:=](.*)$/;function se(e){let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);if(e&&typeof e==`object`&&!Array.isArray(e))return Object.entries(e).map(([e,t])=>({key:e,value:t==null?``:String(t)}))}catch{}let n=[];for(let e of t.split(/\r?\n/)){let t=e.trim();if(!t)continue;let r=oe.exec(t);r&&n.push({key:r[1].trim(),value:r[2].trim()})}return n.length>0?n:null}function ce(e){let t={};for(let n of e){let e=n.key.trim();e&&(t[e]=n.value)}return Object.keys(t).length>0?t:void 0}function le(e){if(!e||typeof e!=`object`)return[{key:``,value:``}];let t=Object.entries(e).map(([e,t])=>({key:e,value:t==null?``:String(t)}));return t.length>0?t:[{key:``,value:``}]}function H(e){if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e.xopcConnector;return!!(t&&typeof t==`object`&&!Array.isArray(t)&&t.managed===!0)}function U(e){let t=e&&typeof e==`object`&&`mcp`in e?e.mcp:void 0,n=(t&&typeof t==`object`?t:{}).servers,r={};if(!n||typeof n!=`object`||Array.isArray(n))return r;for(let[e,t]of Object.entries(n))!t||typeof t!=`object`||Array.isArray(t)||H(t)&&(r[e]=t);return r}function ue(e){let t=e.trim();if(t)return t.split(/\s+/).filter(Boolean)}function de(e){let t=e.trim();if(!t)return;let n=JSON.parse(t);if(!n||typeof n!=`object`||Array.isArray(n))throw Error(`Expected a JSON object`);return n}function W(e){if(e.transport===`stdio`){let t={command:e.command.trim()},n=ue(e.argsText);return n?.length&&(t.args=n),e.cwd.trim()&&(t.cwd=e.cwd.trim()),e.envJson.trim()&&(t.env=de(e.envJson)),e.connectionTimeoutMs!=null&&Number.isFinite(e.connectionTimeoutMs)&&(t.connectionTimeoutMs=e.connectionTimeoutMs),t}let t={url:e.url.trim(),transport:e.transport},n=ce(e.headers);return n&&(t.headers=n),e.connectionTimeoutMs!=null&&Number.isFinite(e.connectionTimeoutMs)&&(t.connectionTimeoutMs=e.connectionTimeoutMs),t}function fe(e,t){let n=typeof t.url==`string`&&t.url.trim().length>0,r=typeof t.transport==`string`?t.transport.trim().toLowerCase():``,i=n?r===`sse`?`sse`:`streamable-http`:`stdio`,a=t.headers&&typeof t.headers==`object`&&!Array.isArray(t.headers)?t.headers:void 0;return{clientKey:e,id:e,transport:i,command:typeof t.command==`string`?t.command:``,argsText:Array.isArray(t.args)?t.args.map(String).join(` `):``,envJson:t.env&&typeof t.env==`object`?JSON.stringify(t.env,null,2):``,cwd:typeof t.cwd==`string`?t.cwd:typeof t.workingDirectory==`string`?t.workingDirectory:``,url:typeof t.url==`string`?t.url:``,headers:le(a),connectionTimeoutMs:typeof t.connectionTimeoutMs==`number`&&Number.isFinite(t.connectionTimeoutMs)?t.connectionTimeoutMs:void 0}}function pe(e=``){return{clientKey:crypto.randomUUID(),id:e,transport:`stdio`,command:``,argsText:``,envJson:``,cwd:``,url:``,headers:[{key:`Authorization`,value:``}],connectionTimeoutMs:void 0}}function me(e){let t=e&&typeof e==`object`&&`mcp`in e?e.mcp:void 0,n=t&&typeof t==`object`?t:{},r=n.servers,i=r&&typeof r==`object`&&!Array.isArray(r)?Object.entries(r).flatMap(([e,t])=>!t||typeof t!=`object`||Array.isArray(t)||H(t)?[]:[fe(e,t)]).sort((e,t)=>e.id.localeCompare(t.id)):[],a=typeof n.sessionIdleTtlMs==`number`?n.sessionIdleTtlMs:void 0;return{sessionIdleTtlMinutes:a==null?void 0:a===0?0:Math.round(a/6e4),servers:i}}function he(e){return W(e)}async function G(e,t={}){let n={};for(let r of e.servers){let e=r.id.trim();if(e){if(t[e])throw Error(`Server id "${e}" is reserved by an installed connector.`);n[e]=W(r)}}let r={servers:{...t,...n}};e.sessionIdleTtlMinutes!=null&&Number.isFinite(e.sessionIdleTtlMinutes)&&(r.sessionIdleTtlMs=e.sessionIdleTtlMinutes===0?0:Math.round(e.sessionIdleTtlMinutes*6e4)),await l(c(`/api/config`),{method:`PATCH`,body:JSON.stringify({mcp:r})}),z()}function ge(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(typeof n==`string`){let e=n.trim();e&&t.push({name:e});continue}if(!n||typeof n!=`object`)continue;let e=n;if(typeof e.name!=`string`)continue;let r=e.name.trim();if(!r)continue;let i=typeof e.shortName==`string`&&e.shortName.trim()?e.shortName.trim():void 0,a=typeof e.description==`string`&&e.description.trim()?e.description.trim():void 0;t.push({name:r,shortName:i,description:a})}return t}function _e(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;if(typeof e.uri!=`string`||typeof e.name!=`string`)continue;let r=e.uri.trim(),i=e.name.trim();!r||!i||t.push({uri:r,name:i,title:typeof e.title==`string`&&e.title.trim()?e.title.trim():void 0,description:typeof e.description==`string`&&e.description.trim()?e.description.trim():void 0,mimeType:typeof e.mimeType==`string`&&e.mimeType.trim()?e.mimeType.trim():void 0})}return t}function ve(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;if(typeof e.name!=`string`)continue;let r=e.name.trim();r&&t.push({name:r,title:typeof e.title==`string`&&e.title.trim()?e.title.trim():void 0,description:typeof e.description==`string`&&e.description.trim()?e.description.trim():void 0,argumentCount:typeof e.argumentCount==`number`?e.argumentCount:0})}return t}async function K(e,t){let n=await l(c(`/api/mcp/servers/${encodeURIComponent(e)}/test`),{method:`POST`,body:t?JSON.stringify({server:t}):void 0});if(!n.payload)throw Error(n.error??`MCP test failed`);let r=ge(n.payload.tools),i=_e(n.payload.resources),a=ve(n.payload.prompts);return{serverId:n.payload.serverId??e,toolCount:typeof n.payload.toolCount==`number`?n.payload.toolCount:r.length,resourceCount:typeof n.payload.resourceCount==`number`?n.payload.resourceCount:i.length,promptCount:typeof n.payload.promptCount==`number`?n.payload.promptCount:a.length,tools:r,resources:i,prompts:a}}function ye(e){return e.connectionTimeoutMs==null||!Number.isFinite(e.connectionTimeoutMs)?``:String(Math.round(e.connectionTimeoutMs/1e3))}function be(e){let t=e.trim();if(!t)return;let n=Number.parseInt(t,10);if(!(!Number.isFinite(n)||n<1||n>600))return n*1e3}function xe(e,t){let n=e.length+1,r=`server-${n}`,i=new Set([...e.map(e=>e.id.trim()),...t]);for(;i.has(r);)n+=1,r=`server-${n}`;return pe(r)}var q=r();function Se(e,t,n){let r=e.key.trim();if(r)return`key:${r}`;let i=e.value.trim();return i?`value:${i}`:`empty:${n.slice(0,t).filter(e=>!e.key.trim()&&!e.value.trim()).length}`}function J(){return i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,p)}function Ce({label:e,optionalLabel:t,addLabel:n,removeHeaderAria:r,pasteLabel:a,pasteFailed:o,keyPlaceholder:s,valuePlaceholder:c,headers:l,onChange:u}){let d=(e,t)=>{u(l.map((n,r)=>r===e?{...n,...t}:n))},f=()=>{u([...l,{key:``,value:``}])},p=e=>{let t=l.filter((t,n)=>n!==e);u(t.length>0?t:[{key:``,value:``}])},h=async()=>{try{let e=await A();if(!e){window.alert(o);return}let t=se(e);if(!t?.length){window.alert(o);return}u(t)}catch{window.alert(o)}};return(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 md:col-span-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm font-medium text-fg`,children:[(0,q.jsx)(`span`,{children:e}),t?(0,q.jsx)(`span`,{className:`font-normal text-fg-subtle`,children:t}):null]}),(0,q.jsxs)(F,{type:`button`,variant:`ghost`,className:`h-8 gap-1.5 px-2 text-xs`,onClick:()=>void h(),children:[(0,q.jsx)(E,{className:`size-3.5`,"aria-hidden":!0}),a]})]}),(0,q.jsx)(`div`,{className:`flex flex-col gap-2`,children:l.map((e,t)=>(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`input`,{className:i(J(),`min-w-0 flex-1 font-mono text-xs`),value:e.key,placeholder:s,onChange:e=>d(t,{key:e.target.value})}),(0,q.jsx)(`input`,{className:i(J(),`min-w-0 flex-[1.4] font-mono text-xs`),value:e.value,placeholder:c,onChange:e=>d(t,{value:e.target.value})}),(0,q.jsx)(F,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 px-0`,disabled:l.length<=1&&!e.key&&!e.value,onClick:()=>p(t),"aria-label":r,children:(0,q.jsx)(T,{className:`size-4 text-fg-subtle`,"aria-hidden":!0})})]},Se(e,t,l)))}),(0,q.jsxs)(`button`,{type:`button`,className:i(`self-start text-sm text-accent hover:underline`,m.press),onClick:f,children:[`+ `,n]})]})}var we=[`stdio`,`sse`,`streamable-http`];function Y(e){let t=(0,V.c)(11),{label:n,description:r,required:i,children:a}=e,o;t[0]===i?o=t[1]:(o=i?(0,q.jsx)(`span`,{className:`ml-0.5 text-danger`,children:`*`}):null,t[0]=i,t[1]=o);let s;t[2]!==n||t[3]!==o?(s=(0,q.jsxs)(`div`,{className:`text-sm font-medium text-fg`,children:[n,o]}),t[2]=n,t[3]=o,t[4]=s):s=t[4];let c;t[5]===r?c=t[6]:(c=r?(0,q.jsx)(`p`,{className:`text-xs leading-relaxed text-fg-subtle`,children:r}):null,t[5]=r,t[6]=c);let l;return t[7]!==a||t[8]!==s||t[9]!==c?(l=(0,q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[s,a,c]}),t[7]=a,t[8]=s,t[9]=c,t[10]=l):l=t[10],l}function X(){return i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,p)}function Te(e){let t=(0,V.c)(67),{row:n,t:r,onUpdate:a,idConflictMessage:o}=e,s=r.transportLabel,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=X(),t[0]=c):c=t[0];let l=n.transport,u;t[1]===a?u=t[2]:(u=e=>a({transport:e.target.value}),t[1]=a,t[2]=u);let d;t[3]===r.transportLabels?d=t[4]:(d=we.map(e=>(0,q.jsx)(`option`,{value:e,children:r.transportLabels[e]},e)),t[3]=r.transportLabels,t[4]=d);let f;t[5]!==n.transport||t[6]!==u||t[7]!==d?(f=(0,q.jsx)(`select`,{className:c,value:l,onChange:u,children:d}),t[5]=n.transport,t[6]=u,t[7]=d,t[8]=f):f=t[8];let p;t[9]!==r.transportLabel||t[10]!==f?(p=(0,q.jsx)(Y,{label:s,required:!0,children:f}),t[9]=r.transportLabel,t[10]=f,t[11]=p):p=t[11];let m=r.serverIdLabel,h;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(h=X(),t[12]=h):h=t[12];let g;t[13]===a?g=t[14]:(g=e=>a({id:e.target.value}),t[13]=a,t[14]=g);let _;t[15]!==n.id||t[16]!==r.serverIdPlaceholder||t[17]!==g?(_=(0,q.jsx)(`input`,{className:h,value:n.id,placeholder:r.serverIdPlaceholder,onChange:g}),t[15]=n.id,t[16]=r.serverIdPlaceholder,t[17]=g,t[18]=_):_=t[18];let v;t[19]===o?v=t[20]:(v=o?(0,q.jsx)(`p`,{className:`text-xs text-red-600 dark:text-red-300`,children:o}):null,t[19]=o,t[20]=v);let y;t[21]!==r.serverIdLabel||t[22]!==_||t[23]!==v?(y=(0,q.jsxs)(Y,{label:m,required:!0,children:[_,v]}),t[21]=r.serverIdLabel,t[22]=_,t[23]=v,t[24]=y):y=t[24];let b;t[25]!==a||t[26]!==n.argsText||t[27]!==n.command||t[28]!==n.cwd||t[29]!==n.envJson||t[30]!==n.headers||t[31]!==n.transport||t[32]!==n.url||t[33]!==r.addHeader||t[34]!==r.argsHint||t[35]!==r.argsLabel||t[36]!==r.commandLabel||t[37]!==r.cwdLabel||t[38]!==r.envHint||t[39]!==r.envLabel||t[40]!==r.headerKeyPlaceholder||t[41]!==r.headerValuePlaceholder||t[42]!==r.headersLabel||t[43]!==r.optionalSuffix||t[44]!==r.pasteHeaders||t[45]!==r.pasteHeadersFailed||t[46]!==r.removeHeader||t[47]!==r.urlLabel?(b=n.transport===`stdio`?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Y,{label:r.commandLabel,required:!0,children:(0,q.jsx)(`input`,{className:X(),value:n.command,onChange:e=>a({command:e.target.value})})}),(0,q.jsx)(Y,{label:r.argsLabel,description:r.argsHint,children:(0,q.jsx)(`input`,{className:X(),value:n.argsText,onChange:e=>a({argsText:e.target.value})})}),(0,q.jsx)(Y,{label:r.cwdLabel,children:(0,q.jsx)(`input`,{className:X(),value:n.cwd,onChange:e=>a({cwd:e.target.value})})}),(0,q.jsx)(Y,{label:r.envLabel,description:r.envHint,children:(0,q.jsx)(`textarea`,{className:i(X(),`min-h-[4rem] font-mono text-xs`),value:n.envJson,onChange:e=>a({envJson:e.target.value})})})]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`md:col-span-2`,children:(0,q.jsx)(Y,{label:r.urlLabel,required:!0,children:(0,q.jsx)(`input`,{className:i(X(),`font-mono text-xs`),value:n.url,placeholder:`https://example.com/mcp`,onChange:e=>a({url:e.target.value})})})}),(0,q.jsx)(Ce,{label:r.headersLabel,optionalLabel:r.optionalSuffix,addLabel:r.addHeader,removeHeaderAria:r.removeHeader,pasteLabel:r.pasteHeaders,pasteFailed:r.pasteHeadersFailed,keyPlaceholder:r.headerKeyPlaceholder,valuePlaceholder:r.headerValuePlaceholder,headers:n.headers,onChange:e=>a({headers:e})})]}),t[25]=a,t[26]=n.argsText,t[27]=n.command,t[28]=n.cwd,t[29]=n.envJson,t[30]=n.headers,t[31]=n.transport,t[32]=n.url,t[33]=r.addHeader,t[34]=r.argsHint,t[35]=r.argsLabel,t[36]=r.commandLabel,t[37]=r.cwdLabel,t[38]=r.envHint,t[39]=r.envLabel,t[40]=r.headerKeyPlaceholder,t[41]=r.headerValuePlaceholder,t[42]=r.headersLabel,t[43]=r.optionalSuffix,t[44]=r.pasteHeaders,t[45]=r.pasteHeadersFailed,t[46]=r.removeHeader,t[47]=r.urlLabel,t[48]=b):b=t[48];let x=r.timeoutLabel,S=r.timeoutHint,C;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(C=X(),t[49]=C):C=t[49];let w;t[50]===n?w=t[51]:(w=ye(n),t[50]=n,t[51]=w);let T;t[52]===a?T=t[53]:(T=e=>a({connectionTimeoutMs:be(e.target.value)}),t[52]=a,t[53]=T);let E;t[54]!==r.timeoutPlaceholder||t[55]!==w||t[56]!==T?(E=(0,q.jsx)(`input`,{type:`number`,min:1,max:600,className:C,value:w,placeholder:r.timeoutPlaceholder,onChange:T}),t[54]=r.timeoutPlaceholder,t[55]=w,t[56]=T,t[57]=E):E=t[57];let D;t[58]!==r.timeoutHint||t[59]!==r.timeoutLabel||t[60]!==E?(D=(0,q.jsx)(Y,{label:x,description:S,children:E}),t[58]=r.timeoutHint,t[59]=r.timeoutLabel,t[60]=E,t[61]=D):D=t[61];let O;return t[62]!==y||t[63]!==b||t[64]!==D||t[65]!==p?(O=(0,q.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:[p,y,b,D]}),t[62]=y,t[63]=b,t[64]=D,t[65]=p,t[66]=O):O=t[66],O}function Ee(e,t){return e?t&&e.startsWith(t)?e.slice(t.length):e:``}function De(e,t,n){let r=t.trim().toLowerCase();if(!r)return!0;let i=e.shortName||Ee(e.name,n);return[e.name,i,e.description].filter(Boolean).join(`
|
|
2
|
-
`).toLowerCase().includes(r)}function Oe(e,t){return e?t&&e.startsWith(t)?e.slice(t.length):e:``}function ke(e){let t=(0,V.c)(29),{tools:n,stripPrefix:r,searchPlaceholder:a,searchEmptyLabel:o}=e,[s,c]=(0,B.useState)(``),l;if(t[0]!==s||t[1]!==r||t[2]!==n){let e;t[4]!==s||t[5]!==r?(e=e=>De(e,s,r),t[4]=s,t[5]=r,t[6]=e):e=t[6],l=n.filter(e),t[0]=s,t[1]=r,t[2]=n,t[3]=l}else l=t[3];let u=l,d;t[7]===s?d=t[8]:(d=s.trim(),t[7]=s,t[8]=d);let f=d.length>0,m;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,q.jsx)(N,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[9]=m):m=t[9];let h,g;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(h=i(`w-full rounded-lg border border-edge bg-surface-panel py-2 pl-9 pr-3 text-sm text-fg`,`placeholder:text-fg-subtle`,p),g=e=>c(e.target.value),t[10]=h,t[11]=g):(h=t[10],g=t[11]);let _;t[12]!==s||t[13]!==a?(_=(0,q.jsxs)(`div`,{className:`relative`,children:[m,(0,q.jsx)(`input`,{type:`search`,value:s,placeholder:a,"aria-label":a,className:h,onChange:g})]}),t[12]=s,t[13]=a,t[14]=_):_=t[14];let v;t[15]!==u.length||t[16]!==f||t[17]!==n.length?(v=f?(0,q.jsxs)(`p`,{className:`mt-2 text-xs text-fg-subtle`,children:[u.length,` / `,n.length]}):null,t[15]=u.length,t[16]=f,t[17]=n.length,t[18]=v):v=t[18];let y;t[19]!==_||t[20]!==v?(y=(0,q.jsxs)(`div`,{className:`border-b border-edge px-5 py-3`,children:[_,v]}),t[19]=_,t[20]=v,t[21]=y):y=t[21];let b;t[22]!==u||t[23]!==o||t[24]!==r?(b=(0,q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:u.length===0?(0,q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:o}):(0,q.jsx)(`ul`,{className:`flex flex-col gap-2`,children:u.map((e,t)=>{let n=e.shortName||Oe(e.name,r)||e.name||`?`,i=e.name||`tool-${t}`;return(0,q.jsxs)(`li`,{className:`min-w-0 rounded-lg border border-edge bg-surface-base px-3 py-2.5`,children:[(0,q.jsx)(`div`,{className:`truncate font-mono text-sm font-medium text-fg`,title:e.name===n?n:e.name,children:n}),e.description?(0,q.jsx)(`p`,{className:`mt-1 truncate text-xs leading-relaxed text-fg-muted`,title:e.description,children:e.description}):null]},i)})})}),t[22]=u,t[23]=o,t[24]=r,t[25]=b):b=t[25];let x;return t[26]!==y||t[27]!==b?(x=(0,q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[y,b]}),t[26]=y,t[27]=b,t[28]=x):x=t[28],x}function Z(e){let t=(0,V.c)(38),{open:n,onOpenChange:r,serverId:a,title:o,subtitle:s,searchPlaceholder:c,searchEmptyLabel:l,emptyLabel:u,closeLabel:d,tools:p,stripPrefix:m}=e,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,q.jsx)(C,{className:i(`xopc-dialog-overlay fixed inset-0 bg-scrim backdrop-blur-[1px]`,re)}),t[0]=h):h=t[0];let g;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(g=i(`fixed left-1/2 top-1/2 flex max-h-[min(88vh,40rem)] w-[min(100%-2rem,min(92vw,36rem))] -translate-x-1/2 -translate-y-1/2 flex-col`,ne,`rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none dark:border-edge`),t[1]=g):g=t[1];let _;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,q.jsx)(x,{className:`size-4 shrink-0 text-accent`,"aria-hidden":!0}),t[2]=_):_=t[2];let y;t[3]===o?y=t[4]:(y=(0,q.jsxs)(R,{className:`flex items-center gap-2 text-base font-semibold text-fg`,children:[_,o]}),t[3]=o,t[4]=y);let b;t[5]!==a||t[6]!==s||t[7]!==p.length?(b=s.replace(`{{serverId}}`,a).replace(`{{count}}`,String(p.length)),t[5]=a,t[6]=s,t[7]=p.length,t[8]=b):b=t[8];let S;t[9]===b?S=t[10]:(S=(0,q.jsx)(k,{className:`mt-1 text-sm text-fg-muted`,children:b}),t[9]=b,t[10]=S);let w;t[11]!==y||t[12]!==S?(w=(0,q.jsxs)(`div`,{className:`min-w-0`,children:[y,S]}),t[11]=y,t[12]=S,t[13]=w):w=t[13];let T;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,q.jsx)(v,{className:`size-4`,"aria-hidden":!0}),t[14]=T):T=t[14];let E;t[15]===d?E=t[16]:(E=(0,q.jsx)(O,{asChild:!0,children:(0,q.jsx)(F,{type:`button`,variant:`ghost`,className:`size-8 shrink-0 px-0`,"aria-label":d,children:T})}),t[15]=d,t[16]=E);let A;t[17]!==w||t[18]!==E?(A=(0,q.jsxs)(`div`,{className:`flex items-start justify-between gap-3 border-b border-edge px-5 py-4`,children:[w,E]}),t[17]=w,t[18]=E,t[19]=A):A=t[19];let j;t[20]!==u||t[21]!==n||t[22]!==l||t[23]!==c||t[24]!==a||t[25]!==m||t[26]!==p?(j=p.length>0?(0,q.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:(0,q.jsx)(ke,{tools:p,stripPrefix:m,searchPlaceholder:c,searchEmptyLabel:l},`${a}-${n?`open`:`closed`}`)}):(0,q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:(0,q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:u})}),t[20]=u,t[21]=n,t[22]=l,t[23]=c,t[24]=a,t[25]=m,t[26]=p,t[27]=j):j=t[27];let N;t[28]===d?N=t[29]:(N=(0,q.jsx)(`div`,{className:`flex justify-end border-t border-edge px-5 py-3`,children:(0,q.jsx)(O,{asChild:!0,children:(0,q.jsx)(F,{type:`button`,variant:`secondary`,children:d})})}),t[28]=d,t[29]=N);let P;t[30]!==A||t[31]!==j||t[32]!==N?(P=(0,q.jsxs)(f,{children:[h,(0,q.jsxs)(D,{className:g,children:[A,j,N]})]}),t[30]=A,t[31]=j,t[32]=N,t[33]=P):P=t[33];let I;return t[34]!==r||t[35]!==n||t[36]!==P?(I=(0,q.jsx)(M,{open:n,onOpenChange:r,children:P}),t[34]=r,t[35]=n,t[36]=P,t[37]=I):I=t[37],I}function Ae({open:e,mode:t,initialRow:n,existingCustomServers:r,sessionIdleTtlMinutes:i,config:a,managedServerIds:o,t:s,cs:c,onClose:l,onSaved:u}){let[f,p]=(0,B.useState)(n),[m,h]=(0,B.useState)(!1),[_,v]=(0,B.useState)(!1),[y,b]=(0,B.useState)(null),[S,C]=(0,B.useState)({status:`idle`}),[w,T]=(0,B.useState)(null),E=n.id.trim(),D=f.id.trim()!==E&&o.has(f.id.trim())||o.has(f.id.trim())&&t===`add`?s.reservedServerId:void 0,O=f.id.trim()&&r.some(e=>e.clientKey!==n.clientKey&&e.id.trim()===f.id.trim())?c.duplicateServerId:void 0,k=f.id.trim().length>0&&!D&&!O&&(f.transport===`stdio`?f.command.trim().length>0:f.url.trim().length>0),A=(0,B.useCallback)(async()=>{if(f.id.trim()){v(!0),b(null),C({status:`loading`});try{C({status:`ok`,tools:(await K(f.id.trim(),he(f))).tools})}catch(e){C({status:`error`,message:e instanceof Error?e.message:String(e)})}finally{v(!1)}}},[f]),j=(0,B.useCallback)(async()=>{if(!(!k||m)){h(!0),b(null);try{let e=r.filter(e=>!(t===`edit`&&e.clientKey===n.clientKey));e.push(f),await G({sessionIdleTtlMinutes:i,servers:e.sort((e,t)=>e.id.localeCompare(t.id))},U(a)),await u(),l()}catch(e){b(e instanceof Error?e.message:String(e))}finally{h(!1)}}},[k,a,r,n.clientKey,t,l,u,E,f,m,i]);return e?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/35 px-4 py-8`,children:(0,q.jsxs)(`div`,{className:`max-h-full w-full max-w-2xl overflow-auto rounded-3xl border border-edge bg-surface-base p-5 shadow-2xl`,children:[(0,q.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`h2`,{className:`text-lg font-semibold text-fg`,children:t===`add`?c.addCustomServerTitle:c.editCustomServerTitle}),(0,q.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:t===`add`?c.addCustomServerHint:c.editCustomServerHint})]}),(0,q.jsx)(F,{variant:`ghost`,onClick:l,children:c.modalClose})]}),(0,q.jsxs)(`div`,{className:`mt-5 flex flex-col gap-4`,children:[(0,q.jsx)(Te,{row:f,t:s,onUpdate:e=>{p(t=>({...t,...e})),b(null)},idConflictMessage:D??O}),S.status===`ok`?(0,q.jsx)(`div`,{className:`rounded-xl border border-edge bg-surface-panel px-3 py-2.5`,children:(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-fg`,children:[(0,q.jsx)(x,{className:`size-4 text-accent`,"aria-hidden":!0}),S.tools.length===0?s.toolsEmpty:s.toolsTitle.replace(`{{count}}`,String(S.tools.length))]}),S.tools.length>0?(0,q.jsx)(F,{type:`button`,variant:`ghost`,className:`h-8 text-xs`,onClick:()=>T(S.tools),children:s.viewAllTools}):null]})}):null,S.status===`error`?(0,q.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:S.message}):null,y?(0,q.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:y}):null]}),(0,q.jsxs)(`div`,{className:`mt-5 flex flex-wrap justify-end gap-2`,children:[(0,q.jsxs)(F,{variant:`secondary`,disabled:!f.id.trim()||_,onClick:()=>void A(),children:[_?(0,q.jsx)(g,{className:`size-4 animate-spin`}):(0,q.jsx)(P,{className:`size-4`}),s.testConnection]}),(0,q.jsx)(F,{variant:`secondary`,onClick:l,children:c.modalCancel}),(0,q.jsxs)(F,{variant:`primary`,disabled:!k||m,onClick:()=>void j(),children:[m?(0,q.jsx)(g,{className:`size-4 animate-spin`}):(0,q.jsx)(d,{className:`size-4`}),m?s.saving:c.modalSave]})]})]})}),w?(0,q.jsx)(Z,{open:!0,onOpenChange:e=>{e||T(null)},serverId:f.id,title:s.toolsDialogTitle,subtitle:s.toolsDialogSubtitle,searchPlaceholder:s.toolsDialogSearchPlaceholder,searchEmptyLabel:s.toolsDialogSearchEmpty,emptyLabel:s.toolsEmpty,closeLabel:s.toolsDialogClose,tools:w,stripPrefix:`${f.id.trim()}__`}):null]}):null}function je(e){if(e.transport===`stdio`){let t=e.command.trim();if(!t)return``;let n=e.argsText.trim();return n?`${t} ${n}`:t}return e.url.trim()}function Q(e,t){if(!e.payload)throw Error(e.error??t);return e.payload}async function Me(){return Q(await l(c(`/api/connectors/catalog`)),`Could not load connector catalog.`).connectors}async function Ne(){return Q(await l(c(`/api/connectors/installed`)),`Could not load installed connectors.`).instances}async function Pe(e){return Q(await l(c(`/api/connectors/${encodeURIComponent(e)}/oauth/start`),{method:`POST`}),`Could not start connector OAuth.`).oauth}async function Fe(e,t){return Q(await l(c(`/api/connectors/${encodeURIComponent(e)}/oauth/complete`),{method:`POST`,body:JSON.stringify({deviceCode:t})}),`Could not complete connector OAuth.`).oauth}async function Ie(e,t){let n=await l(c(`/api/connectors/${encodeURIComponent(e)}/install`),{method:`POST`,body:JSON.stringify(t)});return z(),Q(n,`Could not install connector.`).instance}async function Le(e){await l(c(`/api/connectors/${encodeURIComponent(e)}`),{method:`DELETE`}),z()}async function Re(e){return Q(await l(c(`/api/connectors/${encodeURIComponent(e)}/test`),{method:`POST`}),`Connector test failed.`)}var $=i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,p),ze=i($,`min-h-28 font-mono`);function Be(e,t){let n=t.trim();return e===`json`?n?JSON.parse(n):void 0:e===`number`?n?Number(n):void 0:e===`boolean`?n===`true`:n||void 0}function Ve(e){let t={};for(let n of e.setup.secrets??[])t[n.key]=``;let n={};for(let t of e.setup.config??[])n[t.key]=t.defaultValue===void 0?``:typeof t.defaultValue==`string`?t.defaultValue:JSON.stringify(t.defaultValue,null,2);return{connector:e,secrets:t,config:n,installing:!1,error:null,result:null,health:null,oauth:{flow:null,connected:e.auth.mode!==`oauth`}}}function He(e,t){return t.some(t=>t.connectorId===e.id)}function Ue(e){let t=(0,V.c)(55),{connector:n,installed:r,onInstall:i}=e,a,o,s,c,l,u,f;if(t[0]!==n.capabilities||t[1]!==n.category||t[2]!==n.description||t[3]!==n.displayName||t[4]!==r){let e=n.capabilities.slice(0,4);a=Math.max(0,n.capabilities.length-e.length),f=`flex min-h-60 flex-col rounded-lg border border-edge bg-surface-panel p-4 shadow-surface transition-colors hover:border-accent/50`,c=`flex min-w-0 flex-1 flex-col`;let i;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,q.jsx)(`div`,{className:`flex size-10 shrink-0 items-center justify-center rounded-lg bg-accent-soft text-accent-fg`,children:(0,q.jsx)(j,{className:`size-5`,"aria-hidden":!0})}),t[12]=i):i=t[12];let p;t[13]===n.displayName?p=t[14]:(p=(0,q.jsx)(`h3`,{className:`truncate text-sm font-semibold text-fg`,children:n.displayName}),t[13]=n.displayName,t[14]=p);let m;t[15]===n.category?m=t[16]:(m=(0,q.jsx)(`p`,{className:`mt-1 text-xs uppercase tracking-wide text-fg-subtle`,children:n.category}),t[15]=n.category,t[16]=m);let h;t[17]!==p||t[18]!==m?(h=(0,q.jsxs)(`div`,{className:`flex min-w-0 items-start gap-3`,children:[i,(0,q.jsxs)(`div`,{className:`min-w-0`,children:[p,m]})]}),t[17]=p,t[18]=m,t[19]=h):h=t[19];let g;t[20]===r?g=t[21]:(g=r?(0,q.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1 rounded-full border border-emerald-500/30 bg-emerald-500/10 px-2 py-0.5 text-[11px] font-medium text-emerald-700 dark:text-emerald-300`,children:[(0,q.jsx)(d,{className:`size-3`,"aria-hidden":!0}),`Installed`]}):null,t[20]=r,t[21]=g),t[22]!==h||t[23]!==g?(l=(0,q.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[h,g]}),t[22]=h,t[23]=g,t[24]=l):l=t[24],t[25]===n.description?u=t[26]:(u=(0,q.jsx)(`p`,{className:`mt-4 line-clamp-3 text-sm leading-6 text-fg-muted`,children:n.description}),t[25]=n.description,t[26]=u),o=`mt-4 flex flex-wrap gap-1.5`,s=e.map(Ge),t[0]=n.capabilities,t[1]=n.category,t[2]=n.description,t[3]=n.displayName,t[4]=r,t[5]=a,t[6]=o,t[7]=s,t[8]=c,t[9]=l,t[10]=u,t[11]=f}else a=t[5],o=t[6],s=t[7],c=t[8],l=t[9],u=t[10],f=t[11];let p;t[27]===a?p=t[28]:(p=a>0?(0,q.jsxs)(`span`,{className:`rounded-md border border-edge bg-surface-base px-2 py-0.5 text-[11px] text-fg-subtle`,children:[`+`,a]}):null,t[27]=a,t[28]=p);let m;t[29]!==o||t[30]!==s||t[31]!==p?(m=(0,q.jsxs)(`div`,{className:o,children:[s,p]}),t[29]=o,t[30]=s,t[31]=p,t[32]=m):m=t[32];let h;t[33]!==c||t[34]!==l||t[35]!==u||t[36]!==m?(h=(0,q.jsxs)(`div`,{className:c,children:[l,u,m]}),t[33]=c,t[34]=l,t[35]=u,t[36]=m,t[37]=h):h=t[37];let g;t[38]===n.tags?g=t[39]:(g=n.tags?.length?(0,q.jsx)(`div`,{className:`mt-4 flex flex-wrap gap-1.5 border-t border-edge pt-3`,children:n.tags.slice(0,4).map(We)}):null,t[38]=n.tags,t[39]=g);let v;t[40]!==n||t[41]!==i?(v=()=>i(n),t[40]=n,t[41]=i,t[42]=v):v=t[42];let y;t[43]===r?y=t[44]:(y=r?(0,q.jsx)(d,{className:`size-4`}):(0,q.jsx)(_,{className:`size-4`}),t[43]=r,t[44]=y);let b=r?`Installed`:`Install`,x;t[45]!==r||t[46]!==v||t[47]!==y||t[48]!==b?(x=(0,q.jsx)(`div`,{className:`mt-4 flex items-center justify-end`,children:(0,q.jsxs)(F,{variant:`secondary`,disabled:r,className:`w-full justify-center`,onClick:v,children:[y,b]})}),t[45]=r,t[46]=v,t[47]=y,t[48]=b,t[49]=x):x=t[49];let S;return t[50]!==g||t[51]!==x||t[52]!==f||t[53]!==h?(S=(0,q.jsxs)(`div`,{className:f,children:[h,g,x]}),t[50]=g,t[51]=x,t[52]=f,t[53]=h,t[54]=S):S=t[54],S}function We(e){return(0,q.jsx)(`span`,{className:`rounded-full border border-edge px-2 py-0.5 text-[11px] text-fg-subtle`,children:e},e)}function Ge(e){return(0,q.jsx)(`span`,{className:`rounded-md border border-edge bg-surface-base px-2 py-0.5 text-[11px] text-fg-muted`,children:e},e)}function Ke({draft:e,onChange:t,onClose:n,onInstalled:r}){let{connector:i}=e,a=(0,B.useCallback)(async()=>{t({...e,installing:!0,error:null});try{let n=await Pe(i.id);window.open(n.verificationUri,`_blank`,`noopener,noreferrer`),t({...e,installing:!1,error:null,oauth:{flow:n,connected:!1}})}catch(n){t({...e,installing:!1,error:n instanceof Error?n.message:String(n)})}},[i.id,e,t]),o=(0,B.useCallback)(async()=>{if(e.oauth.flow){t({...e,installing:!0,error:null});try{await Fe(i.id,e.oauth.flow.deviceCode),t({...e,installing:!1,error:null,oauth:{...e.oauth,connected:!0}})}catch(n){t({...e,installing:!1,error:n instanceof Error?n.message:String(n)})}}},[i.id,e,t]),s=(0,B.useCallback)(async()=>{t({...e,installing:!0,error:null,result:null,health:null});try{if(i.auth.mode===`oauth`&&!e.oauth.connected)throw Error(`Connect GitHub OAuth before installing this connector.`);let n={};for(let t of i.setup.config??[]){let r=Be(t.type,e.config[t.key]??``);r!==void 0&&(n[t.key]=r)}let a=await Ie(i.id,{secrets:e.secrets,config:n}),o=null;try{o=await Re(a.instanceId)}catch{o=null}t({...e,installing:!1,result:a,health:o}),await r()}catch(n){t({...e,installing:!1,error:n instanceof Error?n.message:String(n)})}},[i.auth.mode,i.id,i.setup.config,e,t,r]);return(0,q.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/35 px-4 py-8`,children:(0,q.jsxs)(`div`,{className:`max-h-full w-full max-w-2xl overflow-auto rounded-3xl border border-edge bg-surface-base p-5 shadow-2xl`,children:[(0,q.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`h2`,{className:`text-lg font-semibold text-fg`,children:[`Install `,i.displayName]}),(0,q.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:i.description})]}),(0,q.jsx)(F,{variant:`ghost`,onClick:n,children:`Close`})]}),(0,q.jsxs)(`div`,{className:`mt-5 flex flex-col gap-4`,children:[i.auth.mode===`oauth`?(0,q.jsxs)(`div`,{className:`rounded-2xl border border-edge bg-surface-panel p-4`,children:[(0,q.jsx)(`p`,{className:`text-sm font-semibold text-fg`,children:`Connect with GitHub`}),(0,q.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:`Authorize xopc in GitHub, then return here to finish the connection.`}),e.oauth.flow?(0,q.jsxs)(`div`,{className:`mt-3 rounded-xl bg-surface-base p-3 text-sm text-fg-muted`,children:[(0,q.jsxs)(`p`,{children:[`Open `,(0,q.jsx)(`span`,{className:`font-medium text-fg`,children:e.oauth.flow.verificationUri}),` and enter this code:`]}),(0,q.jsx)(`p`,{className:`mt-2 font-mono text-lg font-semibold tracking-widest text-fg`,children:e.oauth.flow.userCode})]}):null,e.oauth.connected?(0,q.jsx)(`p`,{className:`mt-3 rounded-xl bg-emerald-500/10 px-3 py-2 text-sm text-emerald-700`,children:`GitHub connected. You can install this connector now.`}):null,(0,q.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,q.jsxs)(F,{variant:`secondary`,disabled:e.installing,onClick:()=>void a(),children:[e.installing&&!e.oauth.flow?(0,q.jsx)(g,{className:`size-4 animate-spin`}):(0,q.jsx)(P,{className:`size-4`}),`Connect GitHub`]}),(0,q.jsxs)(F,{variant:`primary`,disabled:e.installing||!e.oauth.flow,onClick:()=>void o(),children:[e.installing&&e.oauth.flow?(0,q.jsx)(g,{className:`size-4 animate-spin`}):(0,q.jsx)(d,{className:`size-4`}),`I authorized GitHub`]})]})]}):null,(i.setup.secrets??[]).map(n=>(0,q.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.label}),n.description?(0,q.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:n.description}):null,(0,q.jsx)(te,{value:e.secrets[n.key]??``,onChange:r=>t({...e,secrets:{...e.secrets,[n.key]:r},error:null}),labels:{show:`Show`,hide:`Hide`,copy:`Copy`,copied:`Copied`},placeholder:n.required?`Required`:`Optional`})]},n.key)),(i.setup.config??[]).map(n=>(0,q.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.label}),n.type===`json`?(0,q.jsx)(`textarea`,{className:ze,value:e.config[n.key]??``,placeholder:n.placeholder,onChange:r=>t({...e,config:{...e.config,[n.key]:r.currentTarget.value},error:null})}):(0,q.jsx)(`input`,{className:$,value:e.config[n.key]??``,placeholder:n.placeholder,onChange:r=>t({...e,config:{...e.config,[n.key]:r.currentTarget.value},error:null})})]},n.key)),e.error?(0,q.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:e.error}):null,e.result?(0,q.jsxs)(`div`,{className:`rounded-2xl border border-edge bg-surface-panel p-3 text-sm text-fg-muted`,children:[(0,q.jsxs)(`p`,{className:`font-medium text-fg`,children:[`Installed as `,e.result.materialized.serverId]}),e.health?(0,q.jsxs)(`p`,{className:`mt-1`,children:[e.health.toolCount,` tools, `,e.health.resourceCount,` resources,`,` `,e.health.promptCount,` prompts discovered.`]}):(0,q.jsx)(`p`,{className:`mt-1`,children:`Installed. Capabilities can be tested from Installed.`})]}):null]}),(0,q.jsxs)(`div`,{className:`mt-5 flex justify-end gap-2`,children:[(0,q.jsx)(F,{variant:`secondary`,onClick:n,children:`Done`}),(0,q.jsxs)(F,{variant:`primary`,disabled:e.installing||i.auth.mode===`oauth`&&!e.oauth.connected,onClick:()=>void s(),children:[e.installing?(0,q.jsx)(g,{className:`size-4 animate-spin`}):(0,q.jsx)(_,{className:`size-4`}),`Install`]})]})]})})}function qe({instance:e,onChanged:t}){let[n,r]=(0,B.useState)(!1),[a,o]=(0,B.useState)(!1),[s,c]=(0,B.useState)(null),[l,u]=(0,B.useState)(`health`),[d,f]=(0,B.useState)(!1),[p,m]=(0,B.useState)(null),_=(0,B.useCallback)(async()=>{r(!0),m(null);try{let n=await Re(e.instanceId);c(n),n.toolCount>0&&u(`tools`),await t()}catch(e){m(e instanceof Error?e.message:String(e))}finally{r(!1)}},[e.instanceId,t]),v=(0,B.useCallback)(async()=>{o(!0),m(null);try{await Le(e.instanceId),await t()}catch(e){m(e instanceof Error?e.message:String(e)),o(!1)}},[e.instanceId,t]),y=s?s.toolCount:e.usage.lastToolCount;return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`rounded-2xl border border-edge bg-surface-panel p-4 shadow-surface`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:e.displayName}),(0,q.jsx)(`span`,{className:`rounded-full border border-edge bg-surface-base px-2 py-0.5 text-[11px] text-fg-muted`,children:`catalog`})]}),(0,q.jsxs)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:[`MCP server: `,e.materialized.serverId]})]}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsxs)(F,{variant:`secondary`,disabled:n,onClick:()=>void _(),children:[n?(0,q.jsx)(g,{className:`size-4 animate-spin`}):(0,q.jsx)(P,{className:`size-4`}),`Test`]}),(0,q.jsxs)(F,{variant:`ghost`,disabled:a,onClick:()=>void v(),children:[a?(0,q.jsx)(g,{className:`size-4 animate-spin`}):(0,q.jsx)(T,{className:`size-4`}),`Remove`]})]})]}),p?(0,q.jsx)(`p`,{className:`mt-3 rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:p}):null,(0,q.jsx)(`div`,{className:`mt-4 flex flex-wrap gap-2`,children:[[`health`,L,`Health`],[`tools`,x,`Tools ${s?s.toolCount:e.usage.lastToolCount??``}`],[`resources`,S,`Resources ${s?s.resourceCount:e.usage.lastResourceCount??``}`],[`prompts`,h,`Prompts ${s?s.promptCount:e.usage.lastPromptCount??``}`],[`permissions`,ee,`Permissions`]].map(([e,t,n])=>(0,q.jsxs)(`button`,{type:`button`,className:i(`inline-flex h-8 items-center gap-1.5 rounded-md border px-2.5 text-xs`,l===e?`border-accent bg-accent-soft text-accent-fg`:`border-edge bg-surface-base text-fg-muted hover:text-fg`),onClick:()=>u(e),children:[(0,q.jsx)(t,{className:`size-3.5`,"aria-hidden":!0}),n]},e))}),(0,q.jsxs)(`div`,{className:`mt-3 rounded-xl border border-edge bg-surface-base p-3 text-sm`,children:[l===`health`?(0,q.jsxs)(`div`,{className:`space-y-1 text-fg-muted`,children:[(0,q.jsxs)(`p`,{children:[`Status:`,` `,(0,q.jsx)(`span`,{className:s?.ok?`font-medium text-emerald-700 dark:text-emerald-300`:`font-medium text-fg`,children:s?.status??e.usage.lastHealthStatus??`not tested`})]}),(0,q.jsxs)(`p`,{children:[`Last check:`,` `,e.usage.lastHealthCheckAt?new Date(e.usage.lastHealthCheckAt).toLocaleString():`never`]}),s?.action?(0,q.jsx)(`p`,{children:s.action}):null]}):null,l===`tools`?s?.tools.length?(0,q.jsxs)(`div`,{className:`grid gap-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,q.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[s.tools.length,` tools available for this connector.`]}),(0,q.jsx)(F,{type:`button`,variant:`ghost`,className:`h-7 text-xs`,onClick:()=>f(!0),children:`View all`})]}),s.tools.slice(0,8).map(e=>(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(`p`,{className:`truncate font-mono text-xs text-fg`,children:e.shortName??e.name}),e.description?(0,q.jsx)(`p`,{className:`truncate text-xs text-fg-subtle`,children:e.description}):null]},e.name))]}):(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,q.jsx)(`p`,{className:`text-fg-muted`,children:y?`${y} tools were found in the last health check. Run Test again to load tool details.`:`Run Test to list tools.`}),(0,q.jsxs)(F,{type:`button`,variant:`secondary`,disabled:n,onClick:()=>void _(),children:[n?(0,q.jsx)(g,{className:`size-4 animate-spin`}):(0,q.jsx)(P,{className:`size-4`}),`Test`]})]}):null,l===`resources`?s?.resources.length?(0,q.jsx)(`div`,{className:`grid gap-2`,children:s.resources.slice(0,8).map(e=>(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(`p`,{className:`truncate font-mono text-xs text-fg`,children:e.title??e.name}),(0,q.jsx)(`p`,{className:`truncate text-xs text-fg-subtle`,children:e.uri})]},e.uri))}):(0,q.jsx)(`p`,{className:`text-fg-muted`,children:`Run Test to list resources exposed by this MCP server.`}):null,l===`prompts`?s?.prompts.length?(0,q.jsx)(`div`,{className:`grid gap-2`,children:s.prompts.slice(0,8).map(e=>(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(`p`,{className:`truncate font-mono text-xs text-fg`,children:e.title??e.name}),e.description?(0,q.jsx)(`p`,{className:`truncate text-xs text-fg-subtle`,children:e.description}):null]},e.name))}):(0,q.jsx)(`p`,{className:`text-fg-muted`,children:`Run Test to list prompts exposed by this MCP server.`}):null,l===`permissions`?(0,q.jsxs)(`div`,{className:`space-y-1 text-fg-muted`,children:[(0,q.jsxs)(`p`,{children:[`Secrets configured: `,Object.values(e.secretStatus).filter(Boolean).length]}),(0,q.jsxs)(`p`,{children:[`Runtime: `,e.materialized.type.toUpperCase()," server `",e.materialized.serverId,"`"]}),(0,q.jsx)(`p`,{children:`Tool calls run through MCP and follow the agent tool policy/approval gates.`})]}):null]})]}),(0,q.jsx)(Z,{open:d,onOpenChange:f,serverId:e.materialized.serverId,title:`${e.displayName} tools`,subtitle:`{{serverId}} exposes {{count}} MCP tools.`,searchPlaceholder:`Search tools`,searchEmptyLabel:`No tools match your search.`,emptyLabel:`Run Test to list tools.`,closeLabel:`Close`,tools:s?.tools??[],stripPrefix:`${e.materialized.serverId}__`})]})}function Je({row:e,t,cs:n,onEdit:r,onRemove:i}){let[a,o]=(0,B.useState)(!1),[s,c]=(0,B.useState)(!1),[l,u]=(0,B.useState)(null),[d,f]=(0,B.useState)(null),p=je(e),m=(0,B.useCallback)(async()=>{o(!0),f(null);try{let t=await K(e.id.trim());u({toolCount:t.toolCount,resourceCount:t.resourceCount,promptCount:t.promptCount})}catch(e){f(e instanceof Error?e.message:String(e))}finally{o(!1)}},[e.id]),h=(0,B.useCallback)(async()=>{c(!0),f(null);try{await i()}catch(e){f(e instanceof Error?e.message:String(e)),c(!1)}},[i]);return(0,q.jsxs)(`div`,{className:`rounded-2xl border border-edge bg-surface-panel p-4 shadow-surface`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:e.id.trim()||t.cardUntitled}),(0,q.jsx)(`span`,{className:`rounded-full border border-edge bg-surface-base px-2 py-0.5 text-[11px] text-fg-muted`,children:n.customBadge}),(0,q.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:t.transportLabels[e.transport]})]}),p?(0,q.jsx)(`p`,{className:`mt-1 truncate font-mono text-xs text-fg-subtle`,title:p,children:p}):null]}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsxs)(F,{variant:`secondary`,disabled:a,onClick:()=>void m(),children:[a?(0,q.jsx)(g,{className:`size-4 animate-spin`}):(0,q.jsx)(P,{className:`size-4`}),t.testConnection]}),(0,q.jsxs)(F,{variant:`secondary`,onClick:r,children:[(0,q.jsx)(b,{className:`size-4`}),n.editCustomServer]}),(0,q.jsxs)(F,{variant:`ghost`,disabled:s,onClick:()=>void h(),children:[s?(0,q.jsx)(g,{className:`size-4 animate-spin`}):(0,q.jsx)(T,{className:`size-4`}),t.removeServer]})]})]}),d?(0,q.jsx)(`p`,{className:`mt-3 rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:d}):null,l?(0,q.jsxs)(`p`,{className:`mt-3 text-sm text-fg-muted`,children:[l.toolCount,` tools, `,l.resourceCount,` resources,`,` `,l.promptCount,` prompts discovered.`]}):null]})}function Ye(){let e=a(o(e=>e.language)),t=e.connectorsSettings,n=e.mcpSettings,r=s(e=>e.token),c=!!r,[l,d]=(0,B.useState)(`installed`),[f,p]=(0,B.useState)({catalog:[],instances:[],loading:!0,error:null}),[m,h]=(0,B.useState)(null),[_,v]=(0,B.useState)(null),[b,x]=(0,B.useState)(void 0),[S,C]=(0,B.useState)(!1),[T,E]=(0,B.useState)(!1),{data:D,mutate:O}=w(c),k=D?.payload?.config,A=(0,B.useMemo)(()=>k===void 0?null:me(k),[k]),j=A?.servers??[];(0,B.useEffect)(()=>{A&&x(A.sessionIdleTtlMinutes)},[A]);let M=(0,B.useCallback)(async()=>{if(!r){p({catalog:[],instances:[],loading:!1,error:null});return}p(e=>({...e,loading:!0,error:null}));try{let[e,t]=await Promise.all([Me(),Ne()]);p({catalog:e,instances:t,loading:!1,error:null})}catch(e){p({catalog:[],instances:[],loading:!1,error:e instanceof Error?e.message:String(e)})}},[r]);(0,B.useEffect)(()=>{M()},[M]);let N=(0,B.useMemo)(()=>new Set(f.instances.map(e=>e.connectorId)),[f.instances]),P=(0,B.useMemo)(()=>new Set(f.instances.map(e=>e.materialized.serverId)),[f.instances]),L=(0,B.useCallback)(async e=>{if(!A||k===void 0)return;let t=j.filter(t=>t.clientKey!==e.clientKey);await G({sessionIdleTtlMinutes:A.sessionIdleTtlMinutes,servers:t},U(k)),await O(),await M()},[k,j,M,A,O]),ee=(0,B.useCallback)(async()=>{if(!(!A||k===void 0||S)){C(!0),E(!1);try{await G({sessionIdleTtlMinutes:b,servers:j},U(k)),await O(),E(!0),u({type:`success`,title:n.saved})}finally{C(!1)}}},[k,j,A,O,b,S]),R=f.instances.length+j.length;return(0,q.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-5 px-4 py-8`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`h1`,{className:`text-xl font-semibold text-fg`,children:t.title}),(0,q.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:t.subtitle})]}),c?null:(0,q.jsx)(`p`,{className:`rounded-xl border border-edge bg-surface-panel px-4 py-3 text-sm text-fg-muted`,children:t.tokenHint}),(0,q.jsx)(`div`,{className:`-mx-1 flex gap-1 overflow-x-auto px-1 pb-1`,children:[`installed`,`discover`].map(e=>(0,q.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":l===e,className:i(`shrink-0 rounded-lg px-3 py-2 text-sm font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`transition-transform duration-150 ease-out active:scale-95 motion-reduce:transition-none motion-reduce:active:scale-100`,l===e?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover hover:text-fg`),onClick:()=>d(e),children:e===`installed`?t.tabInstalled:t.tabDiscover},e))}),f.loading&&c?(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-fg-muted`,children:[(0,q.jsx)(g,{className:`size-4 animate-spin`}),t.loading]}):null,f.error?(0,q.jsx)(`p`,{className:`rounded-xl bg-red-500/10 px-3 py-2 text-sm text-red-600`,children:f.error}):null,l===`installed`&&c?(0,q.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,q.jsxs)(ae,{children:[(0,q.jsx)(ie,{icon:I,title:n.globalTitle,subtitle:n.globalHint}),(0,q.jsx)(`div`,{className:`max-w-xl`,children:(0,q.jsxs)(`label`,{className:`flex flex-col gap-1.5`,children:[(0,q.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.idleTtlLabel}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(`input`,{type:`number`,min:0,className:i($,`w-40 flex-none`),value:b??``,placeholder:n.idleTtlPlaceholder,onChange:e=>{let t=e.target.value.trim();x(t===``?void 0:Number.parseInt(t,10)),E(!1)}}),(0,q.jsxs)(F,{variant:`secondary`,disabled:S,onClick:()=>void ee(),children:[S?(0,q.jsx)(g,{className:`size-4 animate-spin`}):null,n.save]})]}),(0,q.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:n.idleTtlHint})]})})]}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:t.installedTitle}),(0,q.jsx)(`p`,{className:`mt-1 text-sm text-fg-muted`,children:t.installedHint})]}),(0,q.jsxs)(F,{variant:`primary`,onClick:()=>v({mode:`add`,row:xe(j,P)}),children:[(0,q.jsx)(y,{className:`size-4`}),t.addCustomServer]})]}),R===0?(0,q.jsx)(`div`,{className:`rounded-2xl border border-dashed border-edge p-8 text-center text-sm text-fg-muted`,children:t.installedEmpty}):(0,q.jsxs)(`div`,{className:`grid gap-3`,children:[f.instances.map(e=>(0,q.jsx)(qe,{instance:e,onChanged:M},e.instanceId)),j.map(e=>(0,q.jsx)(Je,{row:e,t:n,cs:t,onEdit:()=>v({mode:`edit`,row:structuredClone(e)}),onRemove:async()=>L(e)},e.clientKey))]}),(0,q.jsx)(`p`,{className:`text-xs text-fg-subtle`,children:n.disableHint})]}):null,l===`discover`&&c?(0,q.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:t.catalogHint}),(0,q.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2 xl:grid-cols-3`,children:f.catalog.map(e=>(0,q.jsx)(Ue,{connector:e,installed:N.has(e.id)||He(e,f.instances),onInstall:e=>h(Ve(e))},e.id))})]}):null,m?(0,q.jsx)(Ke,{draft:m,onChange:h,onClose:()=>h(null),onInstalled:async()=>{await M(),await O(),h(null),d(`installed`)}}):null,_?(0,q.jsx)(Ae,{open:!0,mode:_.mode,initialRow:_.row,existingCustomServers:j,sessionIdleTtlMinutes:b,config:k,managedServerIds:P,t:n,cs:t,onClose:()=>v(null),onSaved:async()=>{await O(),await M(),d(`installed`)}},`${_.mode}-${_.row.clientKey}`):null]})}export{Ye as ConnectorsSettingsPanel};
|