@xopcai/xopc 0.0.103 → 0.0.104
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -4
- package/README.zh-CN.md +7 -4
- package/dist/_virtual/_rolldown/runtime.js +2 -3
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/adapters/cli-login.d.ts +1 -1
- package/dist/extensions/feishu/src/adapters/cli-login.js +1 -1
- package/dist/extensions/feishu/src/adapters/cli-login.js.map +1 -1
- package/dist/extensions/feishu/src/adapters/gateway-setup.d.ts +2 -0
- package/dist/extensions/feishu/src/adapters/gateway-setup.js +225 -0
- package/dist/extensions/feishu/src/adapters/gateway-setup.js.map +1 -0
- package/dist/extensions/feishu/src/index.d.ts +8 -1
- package/dist/extensions/feishu/src/index.js +14 -1
- package/dist/extensions/feishu/src/index.js.map +1 -0
- package/dist/extensions/feishu/src/outbound/outbound-adapter.js +1 -1
- package/dist/extensions/feishu/src/plugin.d.ts +2 -1
- package/dist/extensions/feishu/src/plugin.js +2 -0
- package/dist/extensions/feishu/src/plugin.js.map +1 -1
- package/dist/extensions/feishu/src/streaming/streaming-adapter.js +1 -1
- package/dist/extensions/feishu/src/transport/webhook/monitor.js +1 -1
- package/dist/extensions/feishu/xopc.extension.json +66 -1
- package/dist/extensions/telegram/src/adapters/gateway-setup.d.ts +2 -0
- package/dist/extensions/telegram/src/adapters/gateway-setup.js +146 -0
- package/dist/extensions/telegram/src/adapters/gateway-setup.js.map +1 -0
- package/dist/extensions/telegram/src/adapters/security-adapter.js +1 -1
- package/dist/extensions/telegram/src/command-handler.js +1 -2
- package/dist/extensions/telegram/src/command-handler.js.map +1 -1
- package/dist/extensions/telegram/src/config-schema.js +2 -2
- package/dist/extensions/telegram/src/config-schema.js.map +1 -1
- package/dist/extensions/telegram/src/doctor.d.ts +1 -0
- package/dist/extensions/telegram/src/doctor.js +68 -0
- package/dist/extensions/telegram/src/doctor.js.map +1 -1
- package/dist/extensions/telegram/src/index.d.ts +8 -1
- package/dist/extensions/telegram/src/index.js +15 -2
- package/dist/extensions/telegram/src/index.js.map +1 -0
- package/dist/extensions/telegram/src/plugin.d.ts +13 -5
- package/dist/extensions/telegram/src/plugin.js +32 -12
- package/dist/extensions/telegram/src/plugin.js.map +1 -1
- package/dist/extensions/telegram/src/proxy-fetch.js +22 -5
- package/dist/extensions/telegram/src/proxy-fetch.js.map +1 -1
- package/dist/extensions/telegram/xopc.extension.json +412 -5
- package/dist/extensions/weixin/src/adapters/onboard-cli.js +2 -2
- package/dist/extensions/weixin/src/adapters/onboard-cli.js.map +1 -1
- package/dist/extensions/weixin/src/api/api.js +1 -1
- package/dist/extensions/weixin/src/index.d.ts +8 -0
- package/dist/extensions/weixin/src/index.js +12 -1
- package/dist/extensions/weixin/src/index.js.map +1 -0
- package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
- package/dist/extensions/weixin/src/plugin.d.ts +2 -1
- package/dist/extensions/weixin/src/plugin.js +77 -2
- package/dist/extensions/weixin/src/plugin.js.map +1 -1
- package/dist/extensions/weixin/xopc.extension.json +52 -0
- package/dist/gateway/static/root/assets/agents-CvsBrBfi.js +396 -0
- package/dist/gateway/static/root/assets/{apps-page-C5RmwmTT.js → apps-page-L-IwQTe0.js} +1 -1
- package/dist/gateway/static/root/assets/browser-BLJWD7WI.js +8 -0
- package/dist/gateway/static/root/assets/channels-settings-D95KuPeP.js +1 -0
- package/dist/gateway/static/root/assets/cron-page-CfkWXDAI.js +1 -0
- package/dist/gateway/static/root/assets/{dist-CWm8hTXZ.js → dist-C6vclgEL.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-BzYgTkS9.js → extension-debug-page-D4JYAbsX.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-BmTZH6gL.js → extension-page-_T62gi6e.js} +1 -1
- package/dist/gateway/static/root/assets/extension-settings-page-CkJbjyM-.js +1 -0
- package/dist/gateway/static/root/assets/{fetch-CMoWY2Si.js → fetch-B5aiIguv.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-startup-retry-DqmLXhs6.js +1 -0
- package/dist/gateway/static/root/assets/heartbeat-config-api-HwJV1K_Y.js +1 -0
- package/dist/gateway/static/root/assets/index-BPYKW7FB.css +1 -0
- package/dist/gateway/static/root/assets/index-DvTb6wNR.js +4845 -0
- package/dist/gateway/static/root/assets/{logs-page-BjdQjHwk.js → logs-page-DsjtTjBy.js} +2 -2
- package/dist/gateway/static/root/assets/{note-detail-page-8Er4197b.js → note-detail-page-B2V7RhgD.js} +43 -43
- package/dist/gateway/static/root/assets/{note-time-CF3vf1jm.js → note-time-BG8GCTr4.js} +1 -1
- package/dist/gateway/static/root/assets/notes-page-xrcVBQ6Z.js +1 -0
- package/dist/gateway/static/root/assets/schema-form-S-QUvhul.js +1 -0
- package/dist/gateway/static/root/assets/sessions-page-CrQer6Au.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-DujQl9c7.js +2 -0
- package/dist/gateway/static/root/assets/{settings-form-section-C7qA7y0J.js → settings-form-section-r1V7dRV6.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-C9nrONQ2.js +3 -0
- package/dist/gateway/static/root/assets/{share-preview-page-Tvr5Mtq5.js → share-preview-page-DOFy0FNt.js} +1 -1
- package/dist/gateway/static/root/assets/skills-page-DmTsrs_a.js +2 -0
- package/dist/gateway/static/root/assets/{theme-store-HTvJlFLL.js → theme-store-Bo3j5Ovv.js} +1 -1
- package/dist/gateway/static/root/assets/url-WgQIjFZu.js +3 -0
- package/dist/gateway/static/root/assets/voice-api-key-field-AjmUAlEQ.js +1 -0
- package/dist/gateway/static/root/assets/{workflow-page.utils-CeBkAjP7.js → workflow-page.utils-DLEJ92gK.js} +1 -1
- package/dist/gateway/static/root/assets/workflows-page-BnjjKrM1.js +27 -0
- package/dist/gateway/static/root/index.html +6 -5
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +18 -6
- package/dist/src/agent/agent-manager.js +60 -35
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/builtin-agent-ids.d.ts +2 -0
- package/dist/src/agent/builtin-agent-ids.js +17 -0
- package/dist/src/agent/builtin-agent-ids.js.map +1 -0
- package/dist/src/agent/child-agent-factory.d.ts +4 -0
- package/dist/src/agent/child-agent-factory.js +28 -8
- package/dist/src/agent/child-agent-factory.js.map +1 -1
- package/dist/src/agent/context/workspace-seed.js +1 -1
- package/dist/src/agent/context/workspace-templates/AGENTS.md +23 -184
- package/dist/src/agent/embedded/run-turn.js +8 -2
- package/dist/src/agent/embedded/run-turn.js.map +1 -1
- package/dist/src/agent/embedded/session-tool-result-guard.js +1 -1
- package/dist/src/agent/embedded/subscribe-session.js +33 -51
- package/dist/src/agent/embedded/subscribe-session.js.map +1 -1
- package/dist/src/agent/embedded/types.d.ts +36 -35
- package/dist/src/agent/fallback/candidates.js +1 -1
- package/dist/src/agent/fallback/candidates.js.map +1 -1
- package/dist/src/agent/inbound/inbound-loop.js +1 -1
- package/dist/src/agent/inbound/turn-dispatcher.d.ts +1 -0
- package/dist/src/agent/inbound/turn-dispatcher.js +24 -5
- package/dist/src/agent/inbound/turn-dispatcher.js.map +1 -1
- package/dist/src/agent/models/manager.d.ts +1 -1
- package/dist/src/agent/models/manager.js +1 -1
- package/dist/src/agent/models/manager.js.map +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.d.ts +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js.map +1 -1
- package/dist/src/agent/prompt/sections/tooling.js +4 -0
- package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
- package/dist/src/agent/service/direct-turn-helpers.d.ts +1 -0
- package/dist/src/agent/service/direct-turn-helpers.js +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js.map +1 -1
- package/dist/src/agent/service/process-direct-streaming.d.ts +1 -0
- package/dist/src/agent/service/process-direct-streaming.js +35 -18
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service-inbound-utils.d.ts +0 -1
- package/dist/src/agent/service-inbound-utils.js +1 -17
- package/dist/src/agent/service-inbound-utils.js.map +1 -1
- package/dist/src/agent/service.d.ts +4 -4
- package/dist/src/agent/service.js +27 -15
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/session/session-config-service.d.ts +1 -0
- package/dist/src/agent/session/session-config-service.js +9 -1
- package/dist/src/agent/session/session-config-service.js.map +1 -1
- package/dist/src/agent/session/session-inspector.d.ts +2 -1
- package/dist/src/agent/session/session-inspector.js +4 -0
- package/dist/src/agent/session/session-inspector.js.map +1 -1
- package/dist/src/agent/skills/config.js +1 -3
- package/dist/src/agent/skills/config.js.map +1 -1
- package/dist/src/agent/skills/format-skills-prompt.d.ts +1 -0
- package/dist/src/agent/skills/format-skills-prompt.js +3 -2
- package/dist/src/agent/skills/format-skills-prompt.js.map +1 -1
- package/dist/src/agent/skills/hub-pull.js +1 -1
- package/dist/src/agent/skills/index.js +20 -5
- package/dist/src/agent/skills/index.js.map +1 -1
- package/dist/src/agent/skills/installer.js +14 -27
- package/dist/src/agent/skills/installer.js.map +1 -1
- package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js +11 -1
- package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js.map +1 -1
- package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js +18 -4
- package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js.map +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +11 -2
- package/dist/src/agent/skills/marketplace/adapters/store/adapter.js.map +1 -1
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.d.ts +2 -2
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js.map +1 -1
- package/dist/src/agent/skills/skill-manager.d.ts +4 -1
- package/dist/src/agent/skills/skill-manager.js +3 -3
- package/dist/src/agent/skills/skill-manager.js.map +1 -1
- package/dist/src/agent/skills/skill-view-path.d.ts +1 -17
- package/dist/src/agent/skills/skill-view-path.js +3 -66
- package/dist/src/agent/skills/skill-view-path.js.map +1 -1
- package/dist/src/agent/skills/test-framework.js +2 -3
- package/dist/src/agent/skills/test-framework.js.map +1 -1
- package/dist/src/agent/streaming/reasoning-visibility-sse.js +1 -0
- package/dist/src/agent/streaming/reasoning-visibility-sse.js.map +1 -1
- package/dist/src/agent/tool-manuals/browser.d.ts +1 -0
- package/{skills/browser/SKILL.md → dist/src/agent/tool-manuals/browser.js} +51 -54
- package/dist/src/agent/tool-manuals/browser.js.map +1 -0
- package/dist/src/agent/tool-manuals/index.d.ts +10 -0
- package/dist/src/agent/tool-manuals/index.js +28 -0
- package/dist/src/agent/tool-manuals/index.js.map +1 -0
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js +1 -1
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +1 -1
- package/dist/src/agent/tools/factory.js +7 -5
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/index.d.ts +1 -0
- package/dist/src/agent/tools/index.js +5 -4
- package/dist/src/agent/tools/session-search-tool.js +1 -1
- package/dist/src/agent/tools/shell.js +1 -1
- package/dist/src/agent/tools/skills-tools.js +37 -8
- package/dist/src/agent/tools/skills-tools.js.map +1 -1
- package/dist/src/agent/tools/tool-manual-tool.d.ts +6 -0
- package/dist/src/agent/tools/tool-manual-tool.js +34 -0
- package/dist/src/agent/tools/tool-manual-tool.js.map +1 -0
- package/dist/src/agent/tools/web-extract.js +2 -2
- package/dist/src/agent/tools/web.js +1 -1
- package/dist/src/agent/workflow/catalog.d.ts +7 -2
- package/dist/src/agent/workflow/catalog.js +66 -25
- package/dist/src/agent/workflow/catalog.js.map +1 -1
- package/dist/src/agent/workflow/subagent-runner.d.ts +3 -0
- package/dist/src/agent/workflow/subagent-runner.js +50 -4
- package/dist/src/agent/workflow/subagent-runner.js.map +1 -1
- package/dist/src/agent/workflow/types.d.ts +10 -0
- package/dist/src/auth/credentials.js +10 -5
- package/dist/src/auth/credentials.js.map +1 -1
- package/dist/src/browser/actions/extension-registry-bridge.js +1 -1
- package/dist/src/browser/actions/registry.js +2 -2
- package/dist/src/browser/cdp-local-launcher.js +1 -1
- package/dist/src/browser/index.js +3 -3
- package/dist/src/browser/providers/browser-ext-install.js +1 -1
- package/dist/src/browser/providers/cloakbrowser.js +1 -1
- package/dist/src/channels/catalog/channel-catalog-service.d.ts +11 -0
- package/dist/src/channels/catalog/channel-catalog-service.js +168 -0
- package/dist/src/channels/catalog/channel-catalog-service.js.map +1 -0
- package/dist/src/channels/catalog/channel-catalog-types.d.ts +22 -0
- package/dist/src/channels/catalog/channel-catalog-types.js +1 -0
- package/dist/src/channels/dock.d.ts +0 -7
- package/dist/src/channels/dock.js +1 -21
- package/dist/src/channels/index.d.ts +1 -3
- package/dist/src/channels/index.js +1 -5
- package/dist/src/channels/lifecycle-supervisor.d.ts +1 -0
- package/dist/src/channels/lifecycle-supervisor.js +11 -0
- package/dist/src/channels/lifecycle-supervisor.js.map +1 -1
- package/dist/src/channels/manager.d.ts +1 -0
- package/dist/src/channels/manager.js +3 -0
- package/dist/src/channels/manager.js.map +1 -1
- package/dist/src/channels/pairing/pairing-channel.d.ts +2 -3
- package/dist/src/channels/pairing/pairing-messages.js +1 -1
- package/dist/src/channels/pairing/pairing-messages.js.map +1 -1
- package/dist/src/channels/pairing/pairing-service.d.ts +1 -1
- package/dist/src/channels/pairing/pairing-service.js +8 -27
- package/dist/src/channels/pairing/pairing-service.js.map +1 -1
- package/dist/src/channels/plugin-types.d.ts +3 -1
- package/dist/src/channels/plugins/types.adapters.d.ts +55 -2
- package/dist/src/channels/telegram/index.js +1 -1
- package/dist/src/chat-commands/builtins/config.js +4 -4
- package/dist/src/chat-commands/builtins/config.js.map +1 -1
- package/dist/src/chat-commands/config-paths.js +1 -1
- package/dist/src/chat-commands/config-paths.js.map +1 -1
- package/dist/src/chat-commands/context.js +1 -1
- package/dist/src/chat-commands/context.js.map +1 -1
- package/dist/src/cli/bin.js +1 -1
- package/dist/src/cli/command-manifest.js +1 -1
- package/dist/src/cli/command-manifest.js.map +1 -1
- package/dist/src/cli/commands/agent.js +2 -2
- package/dist/src/cli/commands/agent.js.map +1 -1
- package/dist/src/cli/commands/agents.js +2 -4
- package/dist/src/cli/commands/agents.js.map +1 -1
- package/dist/src/cli/commands/auth.js +1 -1
- package/dist/src/cli/commands/browser-cli-helpers.js +1 -1
- package/dist/src/cli/commands/channels.d.ts +1 -5
- package/dist/src/cli/commands/channels.js +115 -281
- package/dist/src/cli/commands/channels.js.map +1 -1
- package/dist/src/cli/commands/config.js +2 -2
- package/dist/src/cli/commands/config.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-config.js +16 -69
- package/dist/src/cli/commands/doctor/checks/channel-config.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js +6 -4
- package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js +2 -2
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +13 -9
- package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +1 -1
- package/dist/src/cli/commands/extension-dev.js +2 -1
- package/dist/src/cli/commands/extension-dev.js.map +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +2 -1
- package/dist/src/cli/commands/extension-marketplace.js.map +1 -1
- package/dist/src/cli/commands/extension-pack.js +2 -1
- package/dist/src/cli/commands/extension-pack.js.map +1 -1
- package/dist/src/cli/commands/models.js +7 -4
- package/dist/src/cli/commands/models.js.map +1 -1
- package/dist/src/cli/commands/onboard/channels/index.js +1 -1
- package/dist/src/cli/commands/onboard/channels/index.js.map +1 -1
- package/dist/src/cli/commands/onboard/channels/registry.d.ts +2 -1
- package/dist/src/cli/commands/onboard/channels/registry.js +32 -8
- package/dist/src/cli/commands/onboard/channels/registry.js.map +1 -1
- package/dist/src/cli/commands/onboard/model.js +8 -5
- package/dist/src/cli/commands/onboard/model.js.map +1 -1
- package/dist/src/cli/commands/onboard.js +4 -6
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/commands/setup-shared/runner.d.ts +1 -1
- package/dist/src/cli/commands/setup-shared/runner.js.map +1 -1
- package/dist/src/cli/commands/setup-shared/types.d.ts +1 -1
- package/dist/src/cli/commands/setup-shared/types.js.map +1 -1
- package/dist/src/cli/commands/tui.js +13 -5
- package/dist/src/cli/commands/tui.js.map +1 -1
- package/dist/src/cli/extension-cli-register.js +1 -1
- package/dist/src/commands/agents.config.d.ts +3 -3
- package/dist/src/commands/agents.config.js +7 -7
- package/dist/src/commands/agents.config.js.map +1 -1
- package/dist/src/config/agent-profile.d.ts +1 -1
- package/dist/src/config/agent-profile.js +6 -2
- package/dist/src/config/agent-profile.js.map +1 -1
- package/dist/src/config/agent-typed-models.d.ts +2 -2
- package/dist/src/config/agent-typed-models.js +13 -2
- package/dist/src/config/agent-typed-models.js.map +1 -1
- package/dist/src/config/index.js +3 -3
- package/dist/src/config/integration.d.ts +1 -1
- package/dist/src/config/loader.d.ts +0 -1
- package/dist/src/config/loader.js +4 -9
- package/dist/src/config/loader.js.map +1 -1
- package/dist/src/config/models-json.d.ts +6 -6
- package/dist/src/config/rules.js +2 -12
- package/dist/src/config/rules.js.map +1 -1
- package/dist/src/config/schema.d.ts +74 -47
- package/dist/src/config/schema.js +28 -66
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/validate-channel-configs.d.ts +0 -3
- package/dist/src/config/validate-channel-configs.js +29 -10
- package/dist/src/config/validate-channel-configs.js.map +1 -1
- package/dist/src/cron/executor.js +1 -4
- package/dist/src/cron/executor.js.map +1 -1
- package/dist/src/extensions/activation-context.js +3 -1
- package/dist/src/extensions/activation-context.js.map +1 -1
- package/dist/src/extensions/activation-planner.js +12 -0
- package/dist/src/extensions/activation-planner.js.map +1 -1
- package/dist/src/extensions/api.d.ts +5 -1
- package/dist/src/extensions/api.js +12 -0
- package/dist/src/extensions/api.js.map +1 -1
- package/dist/src/extensions/discover-extensions.js +17 -13
- package/dist/src/extensions/discover-extensions.js.map +1 -1
- package/dist/src/extensions/extension-metadata-snapshot.js +11 -5
- package/dist/src/extensions/extension-metadata-snapshot.js.map +1 -1
- package/dist/src/extensions/index.js +12 -4
- package/dist/src/extensions/index.js.map +1 -0
- package/dist/src/extensions/loader.d.ts +5 -1
- package/dist/src/extensions/loader.js +12 -11
- package/dist/src/extensions/loader.js.map +1 -1
- package/dist/src/extensions/manifest-registry.js +98 -93
- package/dist/src/extensions/manifest-registry.js.map +1 -1
- package/dist/src/extensions/normalize-manifest.js +91 -15
- package/dist/src/extensions/normalize-manifest.js.map +1 -1
- package/dist/src/extensions/sdk/index.js +1 -1
- package/dist/src/extensions/sdk/testing.js +4 -0
- package/dist/src/extensions/sdk/testing.js.map +1 -1
- package/dist/src/extensions/types/core.d.ts +32 -1
- package/dist/src/extensions/types/manifest.d.ts +60 -0
- package/dist/src/extensions/types/tui.d.ts +414 -5
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agent-builtin-tools.js +16 -0
- package/dist/src/gateway/agent-builtin-tools.js.map +1 -1
- package/dist/src/gateway/agent-run-relay.d.ts +2 -3
- package/dist/src/gateway/agent-run-relay.js +10 -3
- package/dist/src/gateway/agent-run-relay.js.map +1 -1
- package/dist/src/gateway/agents-admin.d.ts +32 -19
- package/dist/src/gateway/agents-admin.js +113 -93
- package/dist/src/gateway/agents-admin.js.map +1 -1
- package/dist/src/gateway/chat-stream/mapper.d.ts +34 -0
- package/dist/src/gateway/chat-stream/mapper.js +244 -0
- package/dist/src/gateway/chat-stream/mapper.js.map +1 -0
- package/dist/src/gateway/chat-stream/protocol.d.ts +100 -0
- package/dist/src/gateway/chat-stream/protocol.js +1 -0
- package/dist/src/gateway/heartbeat/service.js +1 -1
- package/dist/src/gateway/hono/lib/agent-model.d.ts +4 -4
- package/dist/src/gateway/hono/lib/agent-model.js +13 -11
- package/dist/src/gateway/hono/lib/agent-model.js.map +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +19 -7
- package/dist/src/gateway/hono/lib/config-payload.js +16 -15
- package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
- package/dist/src/gateway/hono/routes/agents.js +83 -48
- package/dist/src/gateway/hono/routes/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/channels.js +134 -214
- package/dist/src/gateway/hono/routes/channels.js.map +1 -1
- package/dist/src/gateway/hono/routes/commands-skills.js +10 -4
- package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/agents.js +26 -13
- package/dist/src/gateway/hono/routes/config-patch/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/channels.d.ts +1 -11
- package/dist/src/gateway/hono/routes/config-patch/channels.js +18 -165
- package/dist/src/gateway/hono/routes/config-patch/channels.js.map +1 -1
- package/dist/src/gateway/hono/routes/config.js +5 -2
- package/dist/src/gateway/hono/routes/config.js.map +1 -1
- package/dist/src/gateway/hono/routes/dreaming.js +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +13 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/public-gateway.js +2 -4
- package/dist/src/gateway/hono/routes/public-gateway.js.map +1 -1
- package/dist/src/gateway/hono/routes/sessions.js +179 -0
- package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
- package/dist/src/gateway/hono/routes/tui.d.ts +3 -0
- package/dist/src/gateway/hono/routes/tui.js +16 -0
- package/dist/src/gateway/hono/routes/tui.js.map +1 -0
- package/dist/src/gateway/hono/routes/workflows.js +25 -1
- package/dist/src/gateway/hono/routes/workflows.js.map +1 -1
- package/dist/src/gateway/hono/sse.d.ts +5 -7
- package/dist/src/gateway/hono/sse.js +21 -38
- package/dist/src/gateway/hono/sse.js.map +1 -1
- package/dist/src/gateway/protocol.js.map +1 -1
- package/dist/src/gateway/service/agent-runner.d.ts +2 -4
- package/dist/src/gateway/service/agent-runner.js +1 -1
- package/dist/src/gateway/service/agent-runner.js.map +1 -1
- package/dist/src/gateway/service/marketplace-service.d.ts +4 -3
- package/dist/src/gateway/service/marketplace-service.js +7 -4
- package/dist/src/gateway/service/marketplace-service.js.map +1 -1
- package/dist/src/gateway/service/run-gateway-agent.d.ts +2 -6
- package/dist/src/gateway/service/run-gateway-agent.js +63 -36
- package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
- package/dist/src/gateway/service/sessions-api.d.ts +19 -0
- package/dist/src/gateway/service/sessions-api.js +12 -0
- package/dist/src/gateway/service/sessions-api.js.map +1 -1
- package/dist/src/gateway/service.d.ts +6 -0
- package/dist/src/gateway/service.js +73 -57
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/heartbeat/index.js +1 -1
- package/dist/src/mcp/channel-bridge.js +1 -1
- package/dist/src/project-trust/trust-store.d.ts +30 -0
- package/dist/src/project-trust/trust-store.js +194 -0
- package/dist/src/project-trust/trust-store.js.map +1 -0
- package/dist/src/providers/index.d.ts +1 -1
- package/dist/src/providers/index.js +18 -7
- package/dist/src/providers/index.js.map +1 -1
- package/dist/src/routing/resolve-route.d.ts +0 -3
- package/dist/src/routing/resolve-route.js.map +1 -1
- package/dist/src/routing/resolve-tui-session-key.d.ts +2 -0
- package/dist/src/routing/resolve-tui-session-key.js +8 -3
- package/dist/src/routing/resolve-tui-session-key.js.map +1 -1
- package/dist/src/session/client-history.d.ts +32 -0
- package/dist/src/session/client-history.js +232 -1
- package/dist/src/session/client-history.js.map +1 -1
- package/dist/src/session/manager.d.ts +37 -4
- package/dist/src/session/manager.js +39 -15
- package/dist/src/session/manager.js.map +1 -1
- package/dist/src/session/session-context-for-llm.d.ts +93 -1
- package/dist/src/session/session-context-for-llm.js +105 -2
- package/dist/src/session/session-context-for-llm.js.map +1 -1
- package/dist/src/session/store.d.ts +37 -0
- package/dist/src/session/store.js +127 -2
- package/dist/src/session/store.js.map +1 -1
- package/dist/src/session/stored-rows-to-file-entries.js +37 -1
- package/dist/src/session/stored-rows-to-file-entries.js.map +1 -1
- package/dist/src/session/types.d.ts +14 -1
- package/dist/src/session/types.js.map +1 -1
- package/dist/src/share/share-thumbnail.js +1 -1
- package/dist/src/storage/sqlite/migrations/004_add_session_type_metadata.sql +15 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/row-mappers.d.ts +14 -1
- package/dist/src/storage/sqlite/row-mappers.js +14 -1
- package/dist/src/storage/sqlite/row-mappers.js.map +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/session-metadata.js +1 -0
- package/dist/src/storage/sqlite/session-metadata.js.map +1 -1
- package/dist/src/storage/sqlite/session-repository.js +52 -25
- package/dist/src/storage/sqlite/session-repository.js.map +1 -1
- package/dist/src/tui/backends/embedded-backend.d.ts +53 -4
- package/dist/src/tui/backends/embedded-backend.js +227 -39
- package/dist/src/tui/backends/embedded-backend.js.map +1 -1
- package/dist/src/tui/backends/gateway-sse-backend.d.ts +59 -3
- package/dist/src/tui/backends/gateway-sse-backend.js +416 -26
- package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
- package/dist/src/tui/chat-history.d.ts +5 -1
- package/dist/src/tui/chat-history.js +78 -8
- package/dist/src/tui/chat-history.js.map +1 -1
- package/dist/src/tui/clipboard-text.d.ts +5 -0
- package/dist/src/tui/clipboard-text.js +46 -0
- package/dist/src/tui/clipboard-text.js.map +1 -0
- package/dist/src/tui/components/assistant-message.d.ts +19 -3
- package/dist/src/tui/components/assistant-message.js +115 -9
- package/dist/src/tui/components/assistant-message.js.map +1 -1
- package/dist/src/tui/components/bash-execution.d.ts +3 -2
- package/dist/src/tui/components/bash-execution.js +31 -3
- package/dist/src/tui/components/bash-execution.js.map +1 -1
- package/dist/src/tui/components/bash-summary.d.ts +23 -0
- package/dist/src/tui/components/bash-summary.js +87 -0
- package/dist/src/tui/components/bash-summary.js.map +1 -0
- package/dist/src/tui/components/branch-message-summary.d.ts +17 -0
- package/dist/src/tui/components/branch-message-summary.js +43 -0
- package/dist/src/tui/components/branch-message-summary.js.map +1 -0
- package/dist/src/tui/components/branch-summary.d.ts +13 -0
- package/dist/src/tui/components/branch-summary.js +51 -0
- package/dist/src/tui/components/branch-summary.js.map +1 -0
- package/dist/src/tui/components/chat-log.d.ts +46 -6
- package/dist/src/tui/components/chat-log.js +183 -21
- package/dist/src/tui/components/chat-log.js.map +1 -1
- package/dist/src/tui/components/compaction-summary.d.ts +13 -0
- package/dist/src/tui/components/compaction-summary.js +46 -0
- package/dist/src/tui/components/compaction-summary.js.map +1 -0
- package/dist/src/tui/components/custom-editor.d.ts +1 -0
- package/dist/src/tui/components/custom-editor.js +2 -0
- package/dist/src/tui/components/custom-editor.js.map +1 -1
- package/dist/src/tui/components/custom-message.d.ts +23 -0
- package/dist/src/tui/components/custom-message.js +65 -0
- package/dist/src/tui/components/custom-message.js.map +1 -0
- package/dist/src/tui/components/extension-dialog.d.ts +42 -0
- package/dist/src/tui/components/extension-dialog.js +127 -0
- package/dist/src/tui/components/extension-dialog.js.map +1 -0
- package/dist/src/tui/components/scoped-models-selector.d.ts +7 -2
- package/dist/src/tui/components/scoped-models-selector.js +89 -16
- package/dist/src/tui/components/scoped-models-selector.js.map +1 -1
- package/dist/src/tui/components/searchable-select-list.d.ts +30 -3
- package/dist/src/tui/components/searchable-select-list.js +82 -10
- package/dist/src/tui/components/searchable-select-list.js.map +1 -1
- package/dist/src/tui/components/session-selector.d.ts +18 -4
- package/dist/src/tui/components/session-selector.js +207 -40
- package/dist/src/tui/components/session-selector.js.map +1 -1
- package/dist/src/tui/components/settings-selector.d.ts +6 -2
- package/dist/src/tui/components/settings-selector.js +126 -7
- package/dist/src/tui/components/settings-selector.js.map +1 -1
- package/dist/src/tui/components/thinking-selector.d.ts +12 -0
- package/dist/src/tui/components/thinking-selector.js +48 -0
- package/dist/src/tui/components/thinking-selector.js.map +1 -0
- package/dist/src/tui/components/tool-execution.d.ts +57 -3
- package/dist/src/tui/components/tool-execution.js +378 -28
- package/dist/src/tui/components/tool-execution.js.map +1 -1
- package/dist/src/tui/components/tui-bottom-bar.d.ts +9 -1
- package/dist/src/tui/components/tui-bottom-bar.js +56 -11
- package/dist/src/tui/components/tui-bottom-bar.js.map +1 -1
- package/dist/src/tui/components/tui-header.d.ts +9 -2
- package/dist/src/tui/components/tui-header.js +25 -5
- package/dist/src/tui/components/tui-header.js.map +1 -1
- package/dist/src/tui/components/user-message.d.ts +4 -2
- package/dist/src/tui/components/user-message.js +42 -9
- package/dist/src/tui/components/user-message.js.map +1 -1
- package/dist/src/tui/components/visual-truncate.d.ts +11 -0
- package/dist/src/tui/components/visual-truncate.js +27 -0
- package/dist/src/tui/components/visual-truncate.js.map +1 -0
- package/dist/src/tui/extension-host/autocomplete.d.ts +43 -0
- package/dist/src/tui/extension-host/autocomplete.js +116 -0
- package/dist/src/tui/extension-host/autocomplete.js.map +1 -0
- package/dist/src/tui/extension-host/host.d.ts +31 -1
- package/dist/src/tui/extension-host/host.js +123 -6
- package/dist/src/tui/extension-host/host.js.map +1 -1
- package/dist/src/tui/extension-host/load-extensions.d.ts +6 -1
- package/dist/src/tui/extension-host/load-extensions.js +4 -3
- package/dist/src/tui/extension-host/load-extensions.js.map +1 -1
- package/dist/src/tui/extension-host/runtime-context.d.ts +21 -0
- package/dist/src/tui/extension-host/runtime-context.js +152 -0
- package/dist/src/tui/extension-host/runtime-context.js.map +1 -0
- package/dist/src/tui/extension-host/runtime.d.ts +52 -4
- package/dist/src/tui/extension-host/runtime.js +547 -85
- package/dist/src/tui/extension-host/runtime.js.map +1 -1
- package/dist/src/tui/extension-host/surface.d.ts +20 -0
- package/dist/src/tui/extension-host/surface.js +30 -6
- package/dist/src/tui/extension-host/surface.js.map +1 -1
- package/dist/src/tui/extension-host/tool-renderers.d.ts +6 -3
- package/dist/src/tui/extension-host/tool-renderers.js +43 -5
- package/dist/src/tui/extension-host/tool-renderers.js.map +1 -1
- package/dist/src/tui/format-tui-hotkeys.d.ts +12 -2
- package/dist/src/tui/format-tui-hotkeys.js +22 -5
- package/dist/src/tui/format-tui-hotkeys.js.map +1 -1
- package/dist/src/tui/tui-agent-events.d.ts +8 -6
- package/dist/src/tui/tui-agent-events.js +200 -59
- package/dist/src/tui/tui-agent-events.js.map +1 -1
- package/dist/src/tui/tui-backend.d.ts +169 -3
- package/dist/src/tui/tui-command-formatters.d.ts +76 -0
- package/dist/src/tui/tui-command-formatters.js +594 -0
- package/dist/src/tui/tui-command-formatters.js.map +1 -0
- package/dist/src/tui/tui-commands.d.ts +57 -7
- package/dist/src/tui/tui-commands.js +639 -43
- package/dist/src/tui/tui-commands.js.map +1 -1
- package/dist/src/tui/tui-context-usage.d.ts +1 -1
- package/dist/src/tui/tui-context-usage.js +9 -1
- package/dist/src/tui/tui-context-usage.js.map +1 -1
- package/dist/src/tui/tui-extension-user-message.d.ts +8 -0
- package/dist/src/tui/tui-extension-user-message.js +32 -0
- package/dist/src/tui/tui-extension-user-message.js.map +1 -0
- package/dist/src/tui/tui-follow-up-queue.d.ts +9 -0
- package/dist/src/tui/tui-follow-up-queue.js +18 -0
- package/dist/src/tui/tui-follow-up-queue.js.map +1 -0
- package/dist/src/tui/tui-local-shell.d.ts +11 -1
- package/dist/src/tui/tui-local-shell.js +50 -8
- package/dist/src/tui/tui-local-shell.js.map +1 -1
- package/dist/src/tui/tui-model-picker.d.ts +26 -0
- package/dist/src/tui/tui-model-picker.js +152 -0
- package/dist/src/tui/tui-model-picker.js.map +1 -0
- package/dist/src/tui/tui-oauth-login.d.ts +16 -0
- package/dist/src/tui/tui-oauth-login.js +189 -0
- package/dist/src/tui/tui-oauth-login.js.map +1 -0
- package/dist/src/tui/tui-overlays.d.ts +3 -3
- package/dist/src/tui/tui-overlays.js +6 -7
- package/dist/src/tui/tui-overlays.js.map +1 -1
- package/dist/src/tui/tui-picker-overlay.d.ts +27 -32
- package/dist/src/tui/tui-picker-overlay.js +340 -30
- package/dist/src/tui/tui-picker-overlay.js.map +1 -1
- package/dist/src/tui/tui-picker-services.d.ts +41 -0
- package/dist/src/tui/tui-picker-services.js +1 -0
- package/dist/src/tui/tui-run-state.d.ts +11 -0
- package/dist/src/tui/tui-run-state.js +114 -0
- package/dist/src/tui/tui-run-state.js.map +1 -0
- package/dist/src/tui/tui-runtime-hints.d.ts +4 -0
- package/dist/src/tui/tui-runtime-hints.js +18 -0
- package/dist/src/tui/tui-runtime-hints.js.map +1 -0
- package/dist/src/tui/tui-scoped-models.d.ts +1 -1
- package/dist/src/tui/tui-scoped-models.js +2 -2
- package/dist/src/tui/tui-scoped-models.js.map +1 -1
- package/dist/src/tui/tui-session-actions.d.ts +5 -3
- package/dist/src/tui/tui-session-actions.js +21 -9
- package/dist/src/tui/tui-session-actions.js.map +1 -1
- package/dist/src/tui/tui-session-format.d.ts +4 -1
- package/dist/src/tui/tui-session-format.js +17 -3
- package/dist/src/tui/tui-session-format.js.map +1 -1
- package/dist/src/tui/tui-session-snapshot.d.ts +82 -0
- package/dist/src/tui/tui-session-snapshot.js +184 -0
- package/dist/src/tui/tui-session-snapshot.js.map +1 -0
- package/dist/src/tui/tui-session-stats.d.ts +3 -0
- package/dist/src/tui/tui-session-stats.js +59 -0
- package/dist/src/tui/tui-session-stats.js.map +1 -0
- package/dist/src/tui/tui-settings.d.ts +21 -0
- package/dist/src/tui/tui-settings.js +28 -1
- package/dist/src/tui/tui-settings.js.map +1 -1
- package/dist/src/tui/tui-skills-autocomplete.js +1 -1
- package/dist/src/tui/tui-skills-autocomplete.js.map +1 -1
- package/dist/src/tui/tui-startup-resources.d.ts +3 -0
- package/dist/src/tui/tui-startup-resources.js +39 -0
- package/dist/src/tui/tui-startup-resources.js.map +1 -0
- package/dist/src/tui/tui-startup-text.d.ts +10 -0
- package/dist/src/tui/tui-startup-text.js +58 -0
- package/dist/src/tui/tui-startup-text.js.map +1 -0
- package/dist/src/tui/tui-stdio-filter.d.ts +1 -0
- package/dist/src/tui/tui-stdio-filter.js +11 -7
- package/dist/src/tui/tui-stdio-filter.js.map +1 -1
- package/dist/src/tui/tui-submit.d.ts +2 -0
- package/dist/src/tui/tui-submit.js +2 -1
- package/dist/src/tui/tui-submit.js.map +1 -1
- package/dist/src/tui/tui-tool-diff.js +61 -7
- package/dist/src/tui/tui-tool-diff.js.map +1 -1
- package/dist/src/tui/tui-tool-result.d.ts +17 -0
- package/dist/src/tui/tui-tool-result.js +74 -0
- package/dist/src/tui/tui-tool-result.js.map +1 -0
- package/dist/src/tui/tui-transcript-tree-picker.d.ts +57 -0
- package/dist/src/tui/tui-transcript-tree-picker.js +604 -0
- package/dist/src/tui/tui-transcript-tree-picker.js.map +1 -0
- package/dist/src/tui/tui-transcript-tree.d.ts +7 -0
- package/dist/src/tui/tui-transcript-tree.js +316 -0
- package/dist/src/tui/tui-transcript-tree.js.map +1 -0
- package/dist/src/tui/tui-types.d.ts +25 -34
- package/dist/src/tui/tui-types.js +12 -0
- package/dist/src/tui/tui-types.js.map +1 -1
- package/dist/src/tui/tui.js +1288 -112
- package/dist/src/tui/tui.js.map +1 -1
- package/dist/src/tui/xopc-tui-keybindings.d.ts +127 -2
- package/dist/src/tui/xopc-tui-keybindings.js +127 -2
- package/dist/src/tui/xopc-tui-keybindings.js.map +1 -1
- package/dist/src/workflows/domain/definition-utils.d.ts +2 -1
- package/dist/src/workflows/domain/definition-utils.js +18 -8
- package/dist/src/workflows/domain/definition-utils.js.map +1 -1
- package/dist/src/workflows/domain/definition.d.ts +25 -0
- package/dist/src/workflows/domain/event.d.ts +1 -0
- package/dist/src/workflows/domain/result.d.ts +15 -0
- package/dist/src/workflows/domain/run.d.ts +2 -0
- package/dist/src/workflows/domain/run.js.map +1 -1
- package/dist/src/workflows/engine/projector.js +4 -0
- package/dist/src/workflows/engine/projector.js.map +1 -1
- package/dist/src/workflows/engine/workflow-engine.d.ts +37 -1
- package/dist/src/workflows/engine/workflow-engine.js +75 -11
- package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
- package/dist/src/workflows/index.d.ts +1 -0
- package/dist/src/workflows/index.js +4 -1
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.d.ts +9 -0
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.js +40 -0
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.js.map +1 -0
- package/dist/src/workflows/registry/index.d.ts +2 -0
- package/dist/src/workflows/registry/index.js +2 -0
- package/dist/src/workflows/registry/workflow-definition-registry.d.ts +15 -0
- package/dist/src/workflows/registry/workflow-definition-registry.js +1 -0
- package/dist/src/workflows/runtime/index.d.ts +2 -0
- package/dist/src/workflows/runtime/index.js +2 -1
- package/dist/src/workflows/runtime/script-workflow-runtime.d.ts +5 -0
- package/dist/src/workflows/runtime/script-workflow-runtime.js +15 -0
- package/dist/src/workflows/runtime/script-workflow-runtime.js.map +1 -0
- package/dist/src/workflows/runtime/workflow-runtime-port.d.ts +16 -0
- package/dist/src/workflows/runtime/workflow-runtime-port.js +1 -0
- package/dist/src/workflows/service/run-view-to-snapshot.js +3 -0
- package/dist/src/workflows/service/run-view-to-snapshot.js.map +1 -1
- package/dist/src/workflows/service/workflow-run-service.d.ts +3 -0
- package/dist/src/workflows/service/workflow-run-service.js +10 -15
- package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
- package/dist/src/workflows/service/workflow-session-bridge.d.ts +1 -1
- package/dist/src/workflows/service/workflow-session-bridge.js +4 -1
- package/dist/src/workflows/service/workflow-session-bridge.js.map +1 -1
- package/package.json +21 -15
- package/skills/creative/frontend-design/SKILL.md +1 -1
- package/skills/creative/theme-factory/SKILL.md +1 -1
- package/skills/documents/xlsx/SKILL.md +1 -1
- package/skills/engineering/diagnose/SKILL.md +2 -2
- package/skills/engineering/tdd/SKILL.md +1 -1
- package/skills/tools/github/SKILL.md +6 -1
- package/skills/tools/webapp-testing/SKILL.md +4 -1
- package/dist/extensions/telegram/src/adapters/config-surface.d.ts +0 -2
- package/dist/extensions/telegram/src/adapters/config-surface.js +0 -26
- package/dist/extensions/telegram/src/adapters/config-surface.js.map +0 -1
- package/dist/extensions/weixin/src/__tests__/workflow-progress.test.js +0 -158
- package/dist/extensions/weixin/src/__tests__/workflow-progress.test.js.map +0 -1
- package/dist/gateway/static/root/assets/agents-BwXkia_W.js +0 -222
- package/dist/gateway/static/root/assets/channels-settings-tlOTdaXw.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-D4XjqwqC.js +0 -8
- package/dist/gateway/static/root/assets/cron-api-DcmfGuj0.js +0 -1
- package/dist/gateway/static/root/assets/cron-page-CijJ4G6F.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-CyJk_G64.js +0 -1
- package/dist/gateway/static/root/assets/field-primitives-C4GpxsDo.js +0 -1
- package/dist/gateway/static/root/assets/heartbeat-config-api-CLD0Gpi3.js +0 -1
- package/dist/gateway/static/root/assets/index-0HmunJW9.js +0 -4845
- package/dist/gateway/static/root/assets/index-Bk75Phrd.css +0 -1
- package/dist/gateway/static/root/assets/notes-page-BBnTh0uI.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-B0riYK7j.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-DiP_WHu_.js +0 -2
- package/dist/gateway/static/root/assets/settings-page-1ZPhcCZ9.js +0 -3
- package/dist/gateway/static/root/assets/skills-page-BQ1hllKD.js +0 -2
- package/dist/gateway/static/root/assets/url-F3_D_6zZ.js +0 -3
- package/dist/gateway/static/root/assets/utils-CPr3FBh2.js +0 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-BkbDl6dH.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-D059ysoF.js +0 -27
- package/dist/src/agent/embedded/map-stream-events.d.ts +0 -9
- package/dist/src/agent/embedded/map-stream-events.js +0 -63
- package/dist/src/agent/embedded/map-stream-events.js.map +0 -1
- package/dist/src/channels/dock.js.map +0 -1
- package/dist/src/channels/plugins/bundled.d.ts +0 -11
- package/dist/src/channels/plugins/bundled.js +0 -10
- package/dist/src/channels/plugins/bundled.js.map +0 -1
- package/dist/src/channels/registry.d.ts +0 -25
- package/dist/src/channels/registry.js +0 -82
- package/dist/src/channels/registry.js.map +0 -1
- package/dist/src/config/localized-text.d.ts +0 -6
- package/dist/src/config/localized-text.js +0 -42
- package/dist/src/config/localized-text.js.map +0 -1
- package/dist/src/generated/bundled-channel-plugins.d.ts +0 -10
- package/dist/src/generated/bundled-channel-plugins.js +0 -16
- package/dist/src/generated/bundled-channel-plugins.js.map +0 -1
- package/dist/src/tui/stream-assembler.d.ts +0 -22
- package/dist/src/tui/stream-assembler.js +0 -63
- package/dist/src/tui/stream-assembler.js.map +0 -1
- package/skills/browser/SKILL-zh.md +0 -188
- package/skills/business/company-values/SKILL-zh.md +0 -80
- package/skills/business/company-values/SKILL.md +0 -80
- package/skills/business/find-community/SKILL-zh.md +0 -50
- package/skills/business/find-community/SKILL.md +0 -50
- package/skills/business/first-customers/SKILL-zh.md +0 -76
- package/skills/business/first-customers/SKILL.md +0 -76
- package/skills/business/grow-sustainably/SKILL-zh.md +0 -92
- package/skills/business/grow-sustainably/SKILL.md +0 -92
- package/skills/business/marketing-plan/SKILL-zh.md +0 -100
- package/skills/business/marketing-plan/SKILL.md +0 -100
- package/skills/business/minimalist-review/SKILL-zh.md +0 -82
- package/skills/business/minimalist-review/SKILL.md +0 -82
- package/skills/business/mvp/SKILL-zh.md +0 -81
- package/skills/business/mvp/SKILL.md +0 -81
- package/skills/business/pricing/SKILL-zh.md +0 -64
- package/skills/business/pricing/SKILL.md +0 -64
- package/skills/business/processize/SKILL-zh.md +0 -91
- package/skills/business/processize/SKILL.md +0 -91
- package/skills/business/validate-idea/SKILL-zh.md +0 -68
- package/skills/business/validate-idea/SKILL.md +0 -68
- package/skills/creative/algorithmic-art/LICENSE.txt +0 -202
- package/skills/creative/algorithmic-art/SKILL-zh.md +0 -405
- package/skills/creative/algorithmic-art/SKILL.md +0 -405
- package/skills/creative/algorithmic-art/templates/generator_template.js +0 -223
- package/skills/creative/algorithmic-art/templates/viewer.html +0 -599
- package/skills/creative/frontend-design/SKILL-zh.md +0 -42
- package/skills/creative/theme-factory/SKILL-zh.md +0 -59
- package/skills/creative/web-artifacts-builder/LICENSE.txt +0 -202
- package/skills/creative/web-artifacts-builder/SKILL-zh.md +0 -74
- package/skills/creative/web-artifacts-builder/SKILL.md +0 -74
- package/skills/creative/web-artifacts-builder/scripts/bundle-artifact.sh +0 -54
- package/skills/creative/web-artifacts-builder/scripts/init-artifact.sh +0 -322
- package/skills/creative/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/skills/documents/doc-coauthoring/SKILL-zh.md +0 -375
- package/skills/documents/doc-coauthoring/SKILL.md +0 -375
- package/skills/documents/docx/LICENSE.txt +0 -30
- package/skills/documents/docx/SKILL-zh.md +0 -590
- package/skills/documents/docx/SKILL.md +0 -590
- package/skills/documents/docx/scripts/__init__.py +0 -1
- package/skills/documents/docx/scripts/accept_changes.py +0 -135
- package/skills/documents/docx/scripts/comment.py +0 -318
- package/skills/documents/docx/scripts/office/helpers/__init__.py +0 -0
- package/skills/documents/docx/scripts/office/helpers/merge_runs.py +0 -199
- package/skills/documents/docx/scripts/office/helpers/simplify_redlines.py +0 -197
- package/skills/documents/docx/scripts/office/pack.py +0 -159
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/skills/documents/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/skills/documents/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/skills/documents/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/skills/documents/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/skills/documents/docx/scripts/office/schemas/mce/mc.xsd +0 -75
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/skills/documents/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/skills/documents/docx/scripts/office/soffice.py +0 -183
- package/skills/documents/docx/scripts/office/unpack.py +0 -132
- package/skills/documents/docx/scripts/office/validate.py +0 -111
- package/skills/documents/docx/scripts/office/validators/__init__.py +0 -15
- package/skills/documents/docx/scripts/office/validators/base.py +0 -847
- package/skills/documents/docx/scripts/office/validators/docx.py +0 -446
- package/skills/documents/docx/scripts/office/validators/pptx.py +0 -275
- package/skills/documents/docx/scripts/office/validators/redlining.py +0 -247
- package/skills/documents/docx/scripts/templates/comments.xml +0 -3
- package/skills/documents/docx/scripts/templates/commentsExtended.xml +0 -3
- package/skills/documents/docx/scripts/templates/commentsExtensible.xml +0 -3
- package/skills/documents/docx/scripts/templates/commentsIds.xml +0 -3
- package/skills/documents/docx/scripts/templates/people.xml +0 -3
- package/skills/documents/pdf/LICENSE.txt +0 -30
- package/skills/documents/pdf/SKILL-zh.md +0 -314
- package/skills/documents/pdf/SKILL.md +0 -314
- package/skills/documents/pdf/forms.md +0 -294
- package/skills/documents/pdf/reference.md +0 -612
- package/skills/documents/pdf/scripts/check_bounding_boxes.py +0 -65
- package/skills/documents/pdf/scripts/check_fillable_fields.py +0 -11
- package/skills/documents/pdf/scripts/convert_pdf_to_images.py +0 -33
- package/skills/documents/pdf/scripts/create_validation_image.py +0 -37
- package/skills/documents/pdf/scripts/extract_form_field_info.py +0 -122
- package/skills/documents/pdf/scripts/extract_form_structure.py +0 -115
- package/skills/documents/pdf/scripts/fill_fillable_fields.py +0 -98
- package/skills/documents/pdf/scripts/fill_pdf_form_with_annotations.py +0 -107
- package/skills/documents/pptx/LICENSE.txt +0 -30
- package/skills/documents/pptx/SKILL-zh.md +0 -232
- package/skills/documents/pptx/SKILL.md +0 -232
- package/skills/documents/pptx/editing.md +0 -205
- package/skills/documents/pptx/pptxgenjs.md +0 -420
- package/skills/documents/pptx/scripts/__init__.py +0 -0
- package/skills/documents/pptx/scripts/add_slide.py +0 -195
- package/skills/documents/pptx/scripts/clean.py +0 -286
- package/skills/documents/pptx/scripts/office/helpers/__init__.py +0 -0
- package/skills/documents/pptx/scripts/office/helpers/merge_runs.py +0 -199
- package/skills/documents/pptx/scripts/office/helpers/simplify_redlines.py +0 -197
- package/skills/documents/pptx/scripts/office/pack.py +0 -159
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
- package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
- package/skills/documents/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
- package/skills/documents/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
- package/skills/documents/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
- package/skills/documents/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
- package/skills/documents/pptx/scripts/office/schemas/mce/mc.xsd +0 -75
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
- package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
- package/skills/documents/pptx/scripts/office/soffice.py +0 -183
- package/skills/documents/pptx/scripts/office/unpack.py +0 -132
- package/skills/documents/pptx/scripts/office/validate.py +0 -111
- package/skills/documents/pptx/scripts/office/validators/__init__.py +0 -15
- package/skills/documents/pptx/scripts/office/validators/base.py +0 -847
- package/skills/documents/pptx/scripts/office/validators/docx.py +0 -446
- package/skills/documents/pptx/scripts/office/validators/pptx.py +0 -275
- package/skills/documents/pptx/scripts/office/validators/redlining.py +0 -247
- package/skills/documents/pptx/scripts/thumbnail.py +0 -289
- package/skills/documents/xlsx/SKILL-zh.md +0 -292
- package/skills/engineering/diagnose/SKILL-zh.md +0 -117
- package/skills/engineering/grill-with-docs/ADR-FORMAT.md +0 -47
- package/skills/engineering/grill-with-docs/CONTEXT-FORMAT.md +0 -77
- package/skills/engineering/grill-with-docs/SKILL-zh.md +0 -88
- package/skills/engineering/grill-with-docs/SKILL.md +0 -88
- package/skills/engineering/improve-codebase-architecture/DEEPENING.md +0 -37
- package/skills/engineering/improve-codebase-architecture/INTERFACE-DESIGN.md +0 -44
- package/skills/engineering/improve-codebase-architecture/LANGUAGE.md +0 -53
- package/skills/engineering/improve-codebase-architecture/SKILL-zh.md +0 -71
- package/skills/engineering/improve-codebase-architecture/SKILL.md +0 -71
- package/skills/engineering/tdd/SKILL-zh.md +0 -109
- package/skills/engineering/to-issues/SKILL-zh.md +0 -81
- package/skills/engineering/to-issues/SKILL.md +0 -81
- package/skills/engineering/to-prd/SKILL-zh.md +0 -76
- package/skills/engineering/to-prd/SKILL.md +0 -74
- package/skills/engineering/zoom-out/SKILL-zh.md +0 -7
- package/skills/engineering/zoom-out/SKILL.md +0 -7
- package/skills/tools/find-skills/SKILL-zh.md +0 -440
- package/skills/tools/github/SKILL-zh.md +0 -48
- package/skills/tools/internal-comms/LICENSE.txt +0 -202
- package/skills/tools/internal-comms/SKILL-zh.md +0 -32
- package/skills/tools/internal-comms/SKILL.md +0 -32
- package/skills/tools/internal-comms/examples/3p-updates.md +0 -47
- package/skills/tools/internal-comms/examples/company-newsletter.md +0 -65
- package/skills/tools/internal-comms/examples/faq-answers.md +0 -30
- package/skills/tools/internal-comms/examples/general-comms.md +0 -16
- package/skills/tools/skill-creator/LICENSE.txt +0 -202
- package/skills/tools/skill-creator/SKILL-zh.md +0 -483
- package/skills/tools/skill-creator/SKILL.md +0 -485
- package/skills/tools/skill-creator/agents/analyzer.md +0 -274
- package/skills/tools/skill-creator/agents/comparator.md +0 -202
- package/skills/tools/skill-creator/agents/grader.md +0 -223
- package/skills/tools/skill-creator/assets/eval_review.html +0 -146
- package/skills/tools/skill-creator/eval-viewer/generate_review.py +0 -471
- package/skills/tools/skill-creator/eval-viewer/viewer.html +0 -1325
- package/skills/tools/skill-creator/references/schemas.md +0 -430
- package/skills/tools/skill-creator/scripts/__init__.py +0 -0
- package/skills/tools/skill-creator/scripts/aggregate_benchmark.py +0 -401
- package/skills/tools/skill-creator/scripts/generate_report.py +0 -326
- package/skills/tools/skill-creator/scripts/improve_description.py +0 -247
- package/skills/tools/skill-creator/scripts/package_skill.py +0 -136
- package/skills/tools/skill-creator/scripts/quick_validate.py +0 -103
- package/skills/tools/skill-creator/scripts/run_eval.py +0 -310
- package/skills/tools/skill-creator/scripts/run_loop.py +0 -328
- package/skills/tools/skill-creator/scripts/utils.py +0 -47
- package/skills/tools/summarize/SKILL-zh.md +0 -47
- package/skills/tools/weather/SKILL-zh.md +0 -46
- package/skills/tools/weather/SKILL.md +0 -46
- package/skills/tools/webapp-testing/SKILL-zh.md +0 -96
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ci as e,di as t,li as n,oi as r}from"./index-0HmunJW9.js";function i(){return t(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,n,`dark:border-edge`)}function a(){return t(e,r)}function o(e){return e.split(/[,\n]/).flatMap(e=>{let t=e.trim();return t?[/^-?\d+$/.test(t)?Number(t):t]:[]})}function s(e){return e.map(String).join(`, `)}function c(e){let t=e.accounts?.default?.botToken;return typeof t==`string`?t:``}function l(e){return Object.values(e.accounts??{}).some(e=>typeof e.botToken==`string`&&e.botToken.trim().length>0)}function u(e){return Object.keys(e.accounts??{}).length>0||e.allowFrom.length>0}function d(e){return!!(e.appId?.trim()&&e.appSecret?.trim())||Object.keys(e.accounts??{}).length>0}export{u as a,c,l as i,a as n,s as o,d as r,o as s,i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./url-F3_D_6zZ.js";import{o as a}from"./vendor-swr-BIWyz7Rc.js";import{a as o,n as s}from"./fetch-CMoWY2Si.js";import{$i as c,H as l,Jo as u,K as d,Mo as f,Oa as p,U as m,Zr as h,di as g,dr as _,li as v,lo as y,ui as b,ur as x}from"./index-0HmunJW9.js";var S=`/api/image/providers`;async function C(){return(await s(i(`/api/image/providers`)))?.payload?.providers??[]}var w=e(t(),1),ee=n();function T(){return{apiKey:``,region:``,baseUrl:``,imageBaseUrl:``}}function te(e){return e?.apiKey?`••••••••••••`:``}function E(e,t){let n=(()=>{if(!e||typeof e!=`object`||!(`providersConfig`in e))return;let t=e.providersConfig;if(!(!t||typeof t!=`object`||Array.isArray(t)))return t})(),r={};for(let e of t){let t=n?.[e];r[e]={apiKey:te(t),region:t?.region??``,baseUrl:t?.baseUrl??``,imageBaseUrl:t?.imageBaseUrl??``}}return r}function D(e,t,n){let r=e[n].trim();if(r!==t[n].trim())return r||null}function O(e,t){let n=e.trim(),r=t.trim();if(n!==r&&!(d(n)&&d(r)))return n||(r?null:void 0)}function k(e,t,n){let r={};for(let i of e){let e=t[i]??T(),a=n[i]??T();if(JSON.stringify(e)===JSON.stringify(a))continue;let o={},s=O(e.apiKey,a.apiKey);s!==void 0&&(o.apiKey=s);let c=D(e,a,`region`);c!==void 0&&(o.region=c);let l=D(e,a,`baseUrl`);l!==void 0&&(o.baseUrl=l);let u=D(e,a,`imageBaseUrl`);u!==void 0&&(o.imageBaseUrl=u),Object.keys(o).length>0&&(r[i]=o)}return r}async function A(e){let t=await s(i(`/api/image/providers/${encodeURIComponent(e)}/reveal-api-key`),{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok||!t.payload)throw Error(t.error?.message??`Reveal failed`);return t.payload}async function j(e){Object.keys(e).length!==0&&(await s(i(`/api/config`),{method:`PATCH`,body:JSON.stringify({providersConfig:e})}),await x())}var M=r();function ne(e){let t=(0,ee.c)(18),{providerId:n,value:r,onChange:i,labels:a,apiKeyLinks:o,apiKeyLinkLabels:s}=e,c;t[0]===n?c=t[1]:(c=()=>A(n).then(N),t[0]=n,t[1]=c);let l=c,u=`img-cred-key-${n}`,d;t[2]!==a.apiKeyLabel||t[3]!==u?(d=(0,M.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:u,children:a.apiKeyLabel}),t[2]=a.apiKeyLabel,t[3]=u,t[4]=d):d=t[4];let f;t[5]!==s||t[6]!==o?(f=o.length>0?(0,M.jsx)(`div`,{className:`flex flex-col gap-1`,children:o.map(e=>(0,M.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[m(e.kind,s),(0,M.jsx)(y,{className:`size-3`,"aria-hidden":!0})]},`${e.kind}-${e.href}`))}):null,t[5]=s,t[6]=o,t[7]=f):f=t[7];let p=`img-cred-key-${n}`,g;t[8]!==a||t[9]!==i||t[10]!==l||t[11]!==p||t[12]!==r?(g=(0,M.jsx)(h,{id:p,value:r,onChange:i,placeholder:a.optionalPlaceholder,labels:a,reveal:l,loadFailedLabel:a.loadFailed,maskedHelp:a.maskedHelp,notInConfigFile:a.notInConfigFile}),t[8]=a,t[9]=i,t[10]=l,t[11]=p,t[12]=r,t[13]=g):g=t[13];let _;return t[14]!==d||t[15]!==f||t[16]!==g?(_=(0,M.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[d,f,g]}),t[14]=d,t[15]=f,t[16]=g,t[17]=_):_=t[17],_}function N(e){return e.apiKey??null}function P(){return g(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,v)}function re(){return g(P(),`appearance-none bg-[length:1rem] bg-[right_0.5rem_center] bg-no-repeat pr-9`)}var F=`__custom__`;function ie(e,t){if(!e.region.trim()&&!e.imageBaseUrl.trim())return``;let n=e.region.trim().toLowerCase();return t.some(e=>e.value===n)?n:F}function ae(e,t){let n=e.baseUrl.trim().replace(/\/+$/,``);if(!n)return``;let r=t.map(e=>e.value.replace(/\/+$/,``)).indexOf(n);return r>=0?t[r].value:F}function oe(e,t,n){return t===`beijing`?e.dashscopeRegion_beijing:t===`singapore`?e.dashscopeRegion_singapore:t===`us`?e.dashscopeRegion_us:n}function se(e,t){return t===`minimax`?e.minimaxClusterLabel:t===`fal`?e.falQueueBaseLabel:e.baseUrlLabel}function ce(e,t){return t===`minimax`?e.minimaxClusterHint:t===`fal`?e.falQueueBaseHint:null}function le(e,t){return JSON.stringify(e)!==JSON.stringify(t)}function ue(e,t){return t===1?e.modelCountOne:e.modelCountMany.replace(`{count}`,String(t))}function I(e){let t=(0,ee.c)(76),{summaries:n,credDraft:r,credBaseline:i,credDirty:a,credSaving:o,credError:s,credSavedFlash:d,credNoopFlash:m,updateCredRow:h,onDiscardCredentials:_,onSaveCredentials:v,extensionIds:x,showExtensionLinks:S,showImageModelsLink:C,hideActions:te,language:E,apiKeyLinkLabels:D,messages:O}=e,k=te===void 0?!1:te,A;t[0]===n?A=t[1]:(A=n.some(he),t[0]=n,t[1]=A);let j=A,N;t[2]===n?N=t[3]:(N=n.some(me),t[2]=n,t[3]=N);let I=N,[ge,_e]=(0,w.useState)(pe),[ve,L]=(0,w.useState)(fe),R;if(t[4]!==i||t[5]!==r||t[6]!==n){R=new Set;for(let e of n)le(r[e.id]??T(),i[e.id]??T())&&R.add(e.id);t[4]=i,t[5]=r,t[6]=n,t[7]=R}else R=t[7];let z=R,B;t[8]!==z||t[9]!==ve||t[10]!==ge?(B=e=>ve.has(e)?!1:ge.has(e)?!0:z.has(e),t[8]=z,t[9]=ve,t[10]=ge,t[11]=B):B=t[11];let V=B,H;t[12]===V?H=t[13]:(H=e=>{if(V(e)){L(t=>new Set(t).add(e)),_e(t=>{let n=new Set(t);return n.delete(e),n});return}L(t=>{let n=new Set(t);return n.delete(e),n}),_e(t=>new Set(t).add(e))},t[12]=V,t[13]=H);let U=H;if(n.length===0)return null;let W;t[14]===O.credentialsIntro?W=t[15]:(W=(0,M.jsx)(`p`,{children:O.credentialsIntro}),t[14]=O.credentialsIntro,t[15]=W);let G;t[16]!==j||t[17]!==O.regionHint?(G=j?(0,M.jsx)(`p`,{className:`text-fg-subtle`,children:O.regionHint}):null,t[16]=j,t[17]=O.regionHint,t[18]=G):G=t[18];let K;t[19]!==I||t[20]!==O.endpointPresetsHint?(K=I?(0,M.jsx)(`p`,{className:`text-fg-subtle`,children:O.endpointPresetsHint}):null,t[19]=I,t[20]=O.endpointPresetsHint,t[21]=K):K=t[21];let q;t[22]!==C||t[23]!==O.imageModelsLinkTitle||t[24]!==O.openImageModelsPage?(q=C?(0,M.jsx)(`p`,{children:(0,M.jsx)(u,{to:`/settings/credentials?tab=image-models`,className:`font-medium text-accent hover:underline`,title:O.imageModelsLinkTitle,children:O.openImageModelsPage})}):null,t[22]=C,t[23]=O.imageModelsLinkTitle,t[24]=O.openImageModelsPage,t[25]=q):q=t[25];let J;t[26]!==W||t[27]!==G||t[28]!==K||t[29]!==q?(J=(0,M.jsxs)(`div`,{className:`flex flex-col gap-1 text-xs leading-relaxed text-fg-muted`,children:[W,G,K,q]}),t[26]=W,t[27]=G,t[28]=K,t[29]=q,t[30]=J):J=t[30];let Y;t[31]===s?Y=t[32]:(Y=s?(0,M.jsx)(`div`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:s}):null,t[31]=s,t[32]=Y);let X;t[33]!==a||t[34]!==m||t[35]!==d||t[36]!==o||t[37]!==k||t[38]!==_||t[39]!==v||t[40]!==O.credentialsNothingToSave||t[41]!==O.credentialsSaved||t[42]!==O.discardCredentials||t[43]!==O.saveCredentials||t[44]!==O.savingCredentials?(X=k?null:(0,M.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[d?(0,M.jsx)(`span`,{className:`text-sm text-fg-muted`,children:O.credentialsSaved}):null,m?(0,M.jsx)(`span`,{className:`text-sm text-fg-muted`,children:O.credentialsNothingToSave}):null,(0,M.jsx)(b,{type:`button`,variant:`secondary`,onClick:_,disabled:!a||o,children:O.discardCredentials}),(0,M.jsx)(b,{type:`button`,variant:`primary`,onClick:v,disabled:!a||o,children:o?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(p,{className:`size-3.5 animate-spin`}),(0,M.jsx)(`span`,{className:`ml-1.5`,children:O.savingCredentials})]}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(c,{className:`size-3.5`}),(0,M.jsx)(`span`,{className:`ml-1.5`,children:O.saveCredentials})]})})]}),t[33]=a,t[34]=m,t[35]=d,t[36]=o,t[37]=k,t[38]=_,t[39]=v,t[40]=O.credentialsNothingToSave,t[41]=O.credentialsSaved,t[42]=O.discardCredentials,t[43]=O.saveCredentials,t[44]=O.savingCredentials,t[45]=X):X=t[45];let Z;if(t[46]!==D||t[47]!==i||t[48]!==r||t[49]!==x||t[50]!==V||t[51]!==E||t[52]!==S||t[53]!==n||t[54]!==O||t[55]!==U||t[56]!==h){let e;t[58]!==D||t[59]!==i||t[60]!==r||t[61]!==x||t[62]!==V||t[63]!==E||t[64]!==S||t[65]!==O||t[66]!==U||t[67]!==h?(e=e=>{let t=r[e.id]??T(),n=e.ui,a=S&&x.has(e.id)?`/settings/ext/${encodeURIComponent(e.id)}`:null,o=le(t,i[e.id]??T()),s=V(e.id),c=e.label??e.id,d=ue(O,e.models.length);return(0,M.jsxs)(`section`,{className:g(`overflow-hidden rounded-xl border bg-surface-panel shadow-sm transition-colors dark:shadow-none`,o?`border-accent/50`:`border-edge`),children:[(0,M.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-3 px-4 py-3 text-left hover:bg-surface-hover/70`,"aria-expanded":s,"aria-controls":`img-provider-credentials-${e.id}`,onClick:()=>U(e.id),children:[(0,M.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,M.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,M.jsx)(`span`,{className:`truncate text-sm font-semibold text-fg`,children:c}),(0,M.jsx)(`span`,{className:`rounded-full bg-surface-subtle px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:e.id}),o?(0,M.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:O.unsavedChanges}):null,e.configured?(0,M.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:O.configured}):(0,M.jsx)(`span`,{className:`rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-700 dark:text-amber-300`,children:O.missingKey})]}),(0,M.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-xs text-fg-subtle`,children:[(0,M.jsx)(`span`,{children:d}),e.defaultModel?(0,M.jsxs)(`span`,{className:`min-w-0 truncate`,children:[(0,M.jsxs)(`span`,{className:`text-fg-muted`,children:[O.defaultModel,`:`]}),` `,e.id,`/`,e.defaultModel]}):null]})]}),(0,M.jsx)(f,{className:g(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,s?`rotate-180`:`rotate-0`),"aria-hidden":`true`}),(0,M.jsx)(`span`,{className:`sr-only`,children:s?O.collapseProvider:O.expandProvider})]}),s?(0,M.jsxs)(`div`,{id:`img-provider-credentials-${e.id}`,className:`border-t border-edge px-4 py-4`,children:[a?(0,M.jsxs)(u,{to:a,className:`mb-3 inline-flex items-center gap-1 text-xs font-medium text-accent hover:underline`,title:O.extensionSettingsLinkTitle,children:[(0,M.jsx)(y,{className:`size-3`}),O.openExtensionSettings]}):null,e.models.length>0?(0,M.jsxs)(`p`,{className:`mb-3 text-xs leading-relaxed text-fg-subtle`,children:[(0,M.jsxs)(`span`,{className:`text-fg-muted`,children:[O.modelsLabel,`:`]}),` `,e.models.map(t=>`${e.id}/${t}`).join(`, `)]}):null,(0,M.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,M.jsx)(ne,{providerId:e.id,value:t.apiKey,onChange:t=>h(e.id,{apiKey:t}),apiKeyLinks:l(e.id,E),apiKeyLinkLabels:D,labels:{apiKeyLabel:O.apiKeyLabel,optionalPlaceholder:O.optionalPlaceholder,maskedHelp:O.apiKeyMaskedHelp,copy:O.apiKeyCopy,copied:O.apiKeyCopied,show:O.apiKeyShow,hide:O.apiKeyHide,notInConfigFile:O.apiKeyNotInConfigFile,loadFailed:O.apiKeyRevealFailed}}),n?.regions?.length?(0,M.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,M.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-region-preset-${e.id}`,children:O.regionLabel}),(0,M.jsxs)(`select`,{id:`img-cred-region-preset-${e.id}`,className:re(),value:ie(t,n.regions),onChange:t=>{let r=t.target.value;if(r===``){h(e.id,{region:``,imageBaseUrl:``});return}if(r===F){h(e.id,{region:``,imageBaseUrl:``});return}let i=n.regions.find(e=>e.value===r);i&&h(e.id,{region:i.value,imageBaseUrl:i.imageBaseUrl})},children:[(0,M.jsx)(`option`,{value:``,children:O.regionPresetDefault}),n.regions.map(e=>(0,M.jsx)(`option`,{value:e.value,children:oe(O,e.value,e.label)},e.value)),(0,M.jsx)(`option`,{value:F,children:O.regionPresetCustom})]}),ie(t,n.regions)===F?(0,M.jsxs)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:[(0,M.jsx)(`input`,{type:`text`,className:P(),value:t.region,placeholder:`region`,onChange:t=>h(e.id,{region:t.target.value})}),(0,M.jsx)(`input`,{type:`url`,className:P(),value:t.imageBaseUrl,placeholder:O.imageBaseUrlLabel,onChange:t=>h(e.id,{imageBaseUrl:t.target.value})})]}):null]}):null,n?.baseUrlPresets?.length?(0,M.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,M.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-base-preset-${e.id}`,children:se(O,n.baseUrlPresetKind)}),ce(O,n.baseUrlPresetKind)?(0,M.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:ce(O,n.baseUrlPresetKind)}):null,(0,M.jsxs)(`select`,{id:`img-cred-base-preset-${e.id}`,className:re(),value:ae(t,n.baseUrlPresets),onChange:t=>{let n=t.target.value;if(n===``){h(e.id,{baseUrl:``});return}if(n===F){h(e.id,{baseUrl:``});return}h(e.id,{baseUrl:n.replace(/\/+$/,``)})},children:[(0,M.jsx)(`option`,{value:``,children:O.baseUrlPresetDefault}),n.baseUrlPresets.map(de),(0,M.jsx)(`option`,{value:F,children:O.baseUrlPresetCustom})]}),ae(t,n.baseUrlPresets)===F?(0,M.jsx)(`input`,{type:`url`,className:g(P(),`mt-2`),value:t.baseUrl,placeholder:`https://…`,onChange:t=>h(e.id,{baseUrl:t.target.value})}):null]}):null,n?.regions?.length&&ie(t,n.regions)!==F?(0,M.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,M.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-imgbase-ro-${e.id}`,children:O.imageBaseUrlLabel}),(0,M.jsx)(`input`,{id:`img-cred-imgbase-ro-${e.id}`,type:`url`,readOnly:!0,className:g(P(),`cursor-not-allowed opacity-90`),value:t.imageBaseUrl,title:O.imageBaseUrlPresetHint}),(0,M.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:O.imageBaseUrlPresetHint})]}):null]})]}):null]},e.id)},t[58]=D,t[59]=i,t[60]=r,t[61]=x,t[62]=V,t[63]=E,t[64]=S,t[65]=O,t[66]=U,t[67]=h,t[68]=e):e=t[68],Z=n.map(e),t[46]=D,t[47]=i,t[48]=r,t[49]=x,t[50]=V,t[51]=E,t[52]=S,t[53]=n,t[54]=O,t[55]=U,t[56]=h,t[57]=Z}else Z=t[57];let Q;t[69]===Z?Q=t[70]:(Q=(0,M.jsx)(`div`,{className:`flex flex-col gap-4`,children:Z}),t[69]=Z,t[70]=Q);let $;return t[71]!==J||t[72]!==Y||t[73]!==X||t[74]!==Q?($=(0,M.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[J,Y,X,Q]}),t[71]=J,t[72]=Y,t[73]=X,t[74]=Q,t[75]=$):$=t[75],$}function de(e){return(0,M.jsx)(`option`,{value:e.value,children:e.label},e.value)}function fe(){return new Set}function pe(){return new Set}function me(e){return(e.ui?.baseUrlPresets?.length??0)>0}function he(e){return(e.ui?.regions?.length??0)>0}function ge(e){let t=_(o(e=>!!e.token)),n=t.data,r=(0,w.useMemo)(()=>e.map(e=>e.id),[e]),s=(0,w.useRef)(!1),[c,l]=(0,w.useState)(null),[u,d]=(0,w.useState)(!1),[f,p]=(0,w.useState)(null),[m,h]=(0,w.useState)(!1),[g,v]=(0,w.useState)(!1),y=(0,w.useMemo)(()=>E(n?.payload?.config,r),[n?.payload?.config,r]),b=c??y,x=y;return{gwSwr:t,credDraft:b,credBaseline:x,credDirty:(0,w.useMemo)(()=>JSON.stringify(b)!==JSON.stringify(x),[b,x]),credSaving:u,credError:f,credSavedFlash:m,credNoopFlash:g,updateCredRow:(0,w.useCallback)((e,t)=>{s.current=!0,l(n=>{let r=n??y,i=r[e]??T();return{...r,[e]:{...i,...t}}})},[y]),onDiscardCredentials:(0,w.useCallback)(()=>{s.current=!1,l(null),p(null),h(!1),v(!1)},[]),saveCredentials:(0,w.useCallback)(async e=>{let n=k(r,b,x);if(Object.keys(n).length===0){v(!0),window.setTimeout(()=>v(!1),2200);return}d(!0),p(null),h(!1);try{await j(n),await t.mutate?.(),a(i(S)),s.current=!1,l(null),h(!0),window.setTimeout(()=>h(!1),2e3)}catch(t){p(t instanceof Error?t.message:e)}finally{d(!1)}},[r,b,x,t])}}function _e(){return{enabled:!1,provider:`alibaba`,alibaba:{model:`paraformer-v2`},openai:{model:`whisper-1`},fallback:{enabled:!0,order:[`alibaba`,`openai`]}}}function ve(){return{enabled:!1,provider:`openai`,trigger:`always`,maxTextLength:512,timeoutMs:6e4,alibaba:{model:`qwen-tts`,voice:`Cherry`},openai:{model:`tts-1`,voice:`alloy`},edge:{voice:`en-US-MichelleNeural`},minimax:{model:`speech-2.8-hd`,voice:`male-qn-qingse`},"tts-local-cli":{command:``,outputFormat:`wav`}}}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){return typeof e==`string`&&e.trim().length>0?e.trim():`alibaba`}function z(e,t,n){let r=L(e.providers)?e.providers:void 0,i=r&&L(r[t])?r[t]:void 0;return{...n,...i??{}}}function B(e){let t=_e();if(!L(e))return t;let n=R(e.provider),r=z(e,`alibaba`,t.alibaba??{}),i=z(e,`openai`,t.openai??{}),a=t.fallback??{enabled:!0,order:[`alibaba`,`openai`]};if(L(e.fallback)){let t=Array.isArray(e.fallback.order)?e.fallback.order.filter(e=>typeof e==`string`&&e.trim().length>0):a.order;a={enabled:typeof e.fallback.enabled==`boolean`?e.fallback.enabled:a.enabled,order:t.length?t:a.order}}let o=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,alibaba:r,openai:i,...o?{providers:o}:{},fallback:a}}function V(e){return typeof e==`string`&&e.trim().length>0?e.trim():`openai`}function H(e){let t=ve();if(!L(e))return t;let n=V(e.provider),r=e.trigger===`off`||e.trigger===`always`||e.trigger===`inbound`||e.trigger===`tagged`?e.trigger:`always`,i=t[`tts-local-cli`]??{},a=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,trigger:r,maxTextLength:typeof e.maxTextLength==`number`&&Number.isFinite(e.maxTextLength)?e.maxTextLength:t.maxTextLength,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)?e.timeoutMs:t.timeoutMs,...a?{providers:a}:{},alibaba:z(e,`alibaba`,t.alibaba??{}),openai:z(e,`openai`,t.openai??{}),edge:z(e,`edge`,t.edge??{}),minimax:z(e,`minimax`,t.minimax??{}),"tts-local-cli":z(e,`tts-local-cli`,i)}}function U(e){let{alibaba:t,openai:n,providers:r,...i}=e,a={...r??{}};return t&&(a.alibaba={...a.alibaba??{},...t}),n&&(a.openai={...a.openai??{},...n}),{...i,...Object.keys(a).length>0?{providers:a}:{}}}function W(e){let{alibaba:t,openai:n,edge:r,minimax:i,"tts-local-cli":a,providers:o,...s}=e,c={...o??{}};return t&&(c.alibaba={...c.alibaba??{},...t}),n&&(c.openai={...c.openai??{},...n}),r&&(c.edge={...c.edge??{},...r}),i&&(c.minimax={...c.minimax??{},...i}),a&&(c[`tts-local-cli`]={...c[`tts-local-cli`]??{},...a}),{...s,...Object.keys(c).length>0?{providers:c}:{}}}function G(e){let t=L(e)?e:{};return{stt:B(t.stt),tts:H(t.tts)}}async function K(){return G((await s(i(`/api/config`))).payload?.config??{})}async function q(e){await s(i(`/api/config`),{method:`PATCH`,body:JSON.stringify({stt:U(e.stt),tts:W(e.tts)})}),x()}async function J(){let e=await s(i(`/api/voice/models`));if(!e.payload?.models)throw Error(`Missing voice models payload`);return e.payload.models}async function Y(){let e=await s(i(`/api/voice/providers`));if(!e.payload?.providers)throw Error(`Missing voice providers payload`);return e.payload}async function X(){let e=await s(i(`/api/voice/stt-providers`));if(!e.payload?.providers)throw Error(`Missing STT providers payload`);return e.payload}async function Z(e){let t=await s(i(`/api/voice/reveal-api-key`),{method:`POST`,body:JSON.stringify(e)});if(!t.payload)throw Error(`Missing reveal payload`);return t.payload}function Q(e){let t=(0,ee.c)(15),{kind:n,providerId:r,fieldId:i,value:a,onChange:o,labels:s,placeholder:c,className:l}=e,u=c===void 0?`sk-...`:c,d;t[0]!==n||t[1]!==r?(d=()=>Z({kind:n,provider:r}).then($),t[0]=n,t[1]=r,t[2]=d):d=t[2];let f=d,p;t[3]===l?p=t[4]:(p=g(`flex min-w-0 flex-col gap-1.5`,l),t[3]=l,t[4]=p);let m;t[5]!==i||t[6]!==s||t[7]!==o||t[8]!==u||t[9]!==f||t[10]!==a?(m=(0,M.jsx)(h,{id:i,value:a,onChange:o,placeholder:u,labels:s,reveal:f,loadFailedLabel:s.loadFailed,maskedHelp:s.maskedHelp,notInConfigFile:s.notInConfigFile,inputClassName:`text-xs`}),t[5]=i,t[6]=s,t[7]=o,t[8]=u,t[9]=f,t[10]=a,t[11]=m):m=t[11];let _;return t[12]!==p||t[13]!==m?(_=(0,M.jsx)(`div`,{className:p,children:m}),t[12]=p,t[13]=m,t[14]=_):_=t[14],_}function $(e){return e.apiKey??null}export{X as a,ge as c,S as d,K as i,I as l,J as n,G as o,Y as r,q as s,Q as t,C as u};
|
|
@@ -1,27 +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{i,o as a}from"./url-F3_D_6zZ.js";import{i as o}from"./vendor-swr-BIWyz7Rc.js";import{t as s}from"./copy-Dv6d4Dvw.js";import{a as c}from"./fetch-CMoWY2Si.js";import{$o as l,Ba as u,Bi as d,C as f,Ca as p,Ci as m,Cr as h,D as g,Dr as _,E as v,Er as y,Mo as b,No as x,Or as S,Qr as C,Ri as w,S as T,T as E,To as D,Tr as O,Yi as k,Zo as A,_ as ee,_a as te,a as j,b as M,d as N,di as P,eo as F,f as ne,fo as I,g as re,h as ie,i as ae,ki as L,kr as R,l as z,la as oe,m as se,na as B,ni as ce,o as V,p as H,pi as U,r as W,sa as G,ta as K,u as le,ui as q,uo as ue,v as J,vi as de,w as fe,wr as pe,y as me,zr as he}from"./index-0HmunJW9.js";import{a as Y,c as ge,d as _e,f as ve,i as ye,l as be,m as xe,n as Se,o as X,p as Ce,r as we,s as Te,t as Ee,u as De}from"./workflow-page.utils-CeBkAjP7.js";var Z=e(t(),1),Q=n(),Oe=[`queued`,`running`,`succeeded`,`attention`],ke=10080*60*1e3,Ae=new Set([`failed`,`timeout`,`cancelled`]);function je(e){return e.metadata?.sessionKey?.trim()||null}function Me(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function Ne(e,t){if(!e||typeof e!=`object`)return null;let n=e;for(let e of t){let t=n[e];if(typeof t==`string`&&t.trim())return t.trim()}return null}function Pe(e,t=90){let n=e.metadata?.input?.goal?.trim()||(typeof e.metadata?.input?.payload==`string`?e.metadata.input.payload.trim():null)||Ne(e.metadata?.input?.payload,[`query`,`goal`,`prompt`,`input`,`message`])||Ne(e.metadata?.input?.variables,[`query`,`goal`,`prompt`,`input`,`message`]);return n?Me(n,t):null}function Fe(e,t=90){return Pe(e,t)??Me(e.title?.trim()||e.definitionId,t)}function Ie(e,t=44){return Me(e.title?.trim()||e.definitionId,t)}function Le(e,t){let n=t.trim().toLowerCase();return n?[Pe(e,500),e.title,e.definitionId,e.id].filter(Boolean).join(` `).toLowerCase().includes(n):!0}function Re(e,t){let n=t.workflowFilterId.trim();return e.filter(e=>n&&e.definitionId!==n||!be(e,t.triggerFilter??`all`)?!1:Le(e,t.searchQuery))}function ze(e){return e.completedAtMs??e.createdAtMs}function Be(e,t){return t-ze(e)<=ke}function Ve(e,t){return e.status===`queued`?`queued`:e.status===`running`?`running`:e.status===`succeeded`?Be(e,t)?`succeeded`:null:Ae.has(e.status)?`attention`:null}function He(e,t){let n=[...t];return e===`queued`?n.sort((e,t)=>e.createdAtMs-t.createdAtMs):e===`running`?n.sort((e,t)=>(t.startedAtMs??t.createdAtMs)-(e.startedAtMs??e.createdAtMs)):n.sort((e,t)=>ze(t)-ze(e))}function Ue(e,t){let n={queued:[],running:[],succeeded:[],attention:[]};for(let r of e){let e=Ve(r,t);e&&n[e].push(r)}let r=He(`succeeded`,n.succeeded),i=r.length,a=r.slice(0,20),o=Math.max(0,i-20);return Oe.map(e=>e===`succeeded`?{id:e,runs:a,totalInWindow:i,hiddenByCap:o}:{id:e,runs:He(e,n[e])})}var We=new Map;function Ge(e){let t=We.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:`auto`}),We.set(e,t)),t}function Ke(e,t,n){let r=Math.round((t-e)/1e3),i=Ge(n);if(r<60)return i.format(-r,`second`);let a=Math.round(r/60);if(a<60)return i.format(-a,`minute`);let o=Math.round(a/60);if(o<48)return i.format(-o,`hour`);let s=Math.round(o/24);return i.format(-s,`day`)}function qe(e){return e.status===`queued`||e.status===`running`}function Je(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`}var $=r(),Ye=(0,Z.memo)(function(e){let t=(0,Q.c)(65),{run:n,language:r,localeTag:i,nowMs:o,selected:s,onOpen:c,onOpenChat:l,onCancel:u,onRetry:d}=e,f=a(r).workflows,[p,h]=(0,Z.useState)(!1),g;t[0]===n?g=t[1]:(g=je(n),t[0]=n,t[1]=g);let _=!g,v;t[2]===n?v=t[3]:(v=qe(n),t[2]=n,t[3]=v);let y=v,b=n.status===`running`||n.status===`queued`,x;t[4]!==n.metrics.agentCount||t[5]!==n.metrics.doneAgentCount?(x=n.metrics.agentCount>0?Math.round(n.metrics.doneAgentCount/n.metrics.agentCount*100):0,t[4]=n.metrics.agentCount,t[5]=n.metrics.doneAgentCount,t[6]=x):x=t[6];let S=x,C=n.metrics.errorAgentCount>0,w=n.startedAtMs??n.createdAtMs,T=we(y?o-w:n.metrics.durationMs),E=X(f.taskArtifacts,{count:n.metrics.artifactCount}),D;t[7]===n?D=t[8]:(D=Fe(n),t[7]=n,t[8]=D);let O=D,k;t[9]===n?k=t[10]:(k=Ie(n),t[9]=n,t[10]=k);let A=k,ee;t[11]!==c||t[12]!==n?(ee=()=>{c(n)},t[11]=c,t[12]=n,t[13]=ee):ee=t[13];let te=ee,j;t[14]!==_||t[15]!==l||t[16]!==n?(j=()=>{_||l(n)},t[14]=_,t[15]=l,t[16]=n,t[17]=j):j=t[17];let M=j,N=s?`border-accent/70 ring-1 ring-accent/30`:`border-edge`,F;t[18]===N?F=t[19]:(F=P(`group relative overflow-hidden rounded-xl border bg-surface-panel p-3.5 transition-colors`,N,`hover:border-edge-strong hover:bg-surface-hover/50`),t[18]=N,t[19]=F);let ne;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(ne=P(`w-full text-left`,ce.focusRingPanel),t[20]=ne):ne=t[20];let I;t[21]===O?I=t[22]:(I=(0,$.jsx)(`div`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:O}),t[21]=O,t[22]=I);let re;t[23]===A?re=t[24]:(re=(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] font-medium text-fg-muted`,children:A}),t[23]=A,t[24]=re);let ie;t[25]!==I||t[26]!==re?(ie=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[I,re]}),t[25]=I,t[26]=re,t[27]=ie):ie=t[27];let ae;t[28]===n.status?ae=t[29]:(ae=P(`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold shadow-sm`,De(n.status)),t[28]=n.status,t[29]=ae);let L;t[30]!==i||t[31]!==o||t[32]!==w?(L=Ke(w,o,i),t[30]=i,t[31]=o,t[32]=w,t[33]=L):L=t[33];let R;t[34]===L?R=t[35]:(R=(0,$.jsx)(`span`,{children:L}),t[34]=L,t[35]=R);let z=T===`—`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,$.jsx)(`span`,{children:X(f.taskElapsed,{duration:T})})]}),oe;t[36]!==R||t[37]!==z?(oe=(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5 text-[11px] text-fg-subtle`,children:[R,z]}),t[36]=R,t[37]=z,t[38]=oe):oe=t[38];let se=n.metrics.artifactCount>0?(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 font-medium text-fg-muted`,children:E}):null,B=s?(0,$.jsx)(`span`,{className:`font-medium text-accent-fg`,children:f.taskOpenDetails}):null,V;t[39]!==se||t[40]!==B?(V=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-subtle`,children:[se,B]}),t[39]=se,t[40]=B,t[41]=V):V=t[41];let H;t[42]===h?H=t[43]:(H=()=>h(Ze),t[42]=h,t[43]=H);let U;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,$.jsx)(ue,{className:`size-4`,"aria-hidden":!0}),t[44]=U):U=t[44];let W;t[45]!==f.taskActionsAria||t[46]!==p||t[47]!==H?(W=(0,$.jsx)(q,{variant:`ghost`,className:`size-7 p-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,"aria-label":f.taskActionsAria,"aria-expanded":p,onClick:H,children:U}),t[45]=f.taskActionsAria,t[46]=p,t[47]=H,t[48]=W):W=t[48];let G;t[49]!==y||t[50]!==_||t[51]!==M||t[52]!==f.cancel||t[53]!==f.continueInChat||t[54]!==f.rerun||t[55]!==f.taskCloseMenu||t[56]!==p||t[57]!==u||t[58]!==d||t[59]!==n||t[60]!==h?(G=p?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-10 cursor-default`,"aria-label":f.taskCloseMenu,onClick:()=>h(!1)}),(0,$.jsxs)(`div`,{className:`absolute right-0 z-20 mt-1 min-w-36 rounded-lg border border-edge bg-surface-panel py-1 shadow-surface`,children:[(0,$.jsx)(Xe,{label:f.continueInChat,disabled:_,onClick:()=>{h(!1),M()}}),y?(0,$.jsx)(Xe,{label:f.cancel,tone:`danger`,onClick:()=>{h(!1),u(n.id)}}):null,Je(n)?(0,$.jsx)(Xe,{label:f.rerun,onClick:()=>{h(!1),d(n.id)}}):null]})]}):null,t[49]=y,t[50]=_,t[51]=M,t[52]=f.cancel,t[53]=f.continueInChat,t[54]=f.rerun,t[55]=f.taskCloseMenu,t[56]=p,t[57]=u,t[58]=d,t[59]=n,t[60]=h,t[61]=G):G=t[61];let K;return t[62]!==W||t[63]!==G?(K=(0,$.jsxs)(`div`,{className:`absolute right-2 top-2`,children:[W,G]}),t[62]=W,t[63]=G,t[64]=K):K=t[64],(0,$.jsxs)(`div`,{className:F,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:te,"aria-label":`${f.taskOpenDetails}: ${O}`,"aria-current":s?`true`:void 0,className:ne,children:[(0,$.jsxs)(`div`,{className:`pr-7`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-2`,children:[ie,(0,$.jsx)(`span`,{className:ae,children:f.status[n.status]??n.status})]}),oe]}),b?(0,$.jsxs)(`div`,{className:`mt-2.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-fg-muted`,children:[(0,$.jsx)(`span`,{children:X(f.agentProgress,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}),(0,$.jsxs)(`span`,{children:[S,`%`]})]}),(0,$.jsx)(`div`,{className:`mt-1.5 h-1.5 overflow-hidden rounded-full bg-surface-hover`,children:(0,$.jsx)(`div`,{className:`h-full rounded-full bg-accent transition-all`,style:{width:`${S}%`}})})]}):null,V,C?(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-1 text-[11px] text-amber-700 dark:text-amber-300`,children:[(0,$.jsx)(m,{className:`size-3 shrink-0`,"aria-hidden":!0}),X(f.runRowErrorSummary,{count:n.metrics.errorAgentCount})]}):null]}),K]})});function Xe(e){let t=(0,Q.c)(8),{label:n,disabled:r,tone:i,onClick:a}=e,o=r?`cursor-not-allowed text-fg-subtle`:`text-fg hover:bg-surface-hover`,s=i===`danger`&&!r&&`text-red-600 dark:text-red-300`,c;t[0]!==o||t[1]!==s?(c=P(`block w-full px-3 py-1.5 text-left text-xs`,o,s),t[0]=o,t[1]=s,t[2]=c):c=t[2];let l;return t[3]!==r||t[4]!==n||t[5]!==a||t[6]!==c?(l=(0,$.jsx)(`button`,{type:`button`,disabled:r,onClick:a,className:c,children:n}),t[3]=r,t[4]=n,t[5]=a,t[6]=c,t[7]=l):l=t[7],l}function Ze(e){return!e}function Qe(e,t){return t.boardColumns[e]}var $e=(0,Z.memo)(function(e){let t=(0,Q.c)(14),{column:n,language:r,localeTag:i,nowMs:o,selectedRunId:s,onOpenRun:c,onOpenRunChat:l,onCancelRun:u,onRetryRun:d}=e,f=a(r).workflows,[p,m]=(0,Z.useState)(!1),h=n.id===`succeeded`,g=h?5:n.runs.length,_;t[0]!==g||t[1]!==n.runs||t[2]!==p||t[3]!==h?(_=h&&!p?n.runs.slice(0,g):n.runs,t[0]=g,t[1]=n.runs,t[2]=p,t[3]=h,t[4]=_):_=t[4];let v=_,y=h&&n.runs.length>5&&!p,b=h&&p,x;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(x=P(`flex min-h-112 w-73 shrink-0 snap-center flex-col rounded-2xl border border-edge bg-surface-panel/40`),t[5]=x):x=t[5];let S;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(`span`,{className:`size-2 rounded-full bg-accent`,"aria-hidden":!0}),t[6]=S):S=t[6];let C;t[7]===n.runs.length?C=t[8]:(C=(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2.5 py-1 text-xs font-semibold tabular-nums text-fg-muted`,children:n.runs.length}),t[7]=n.runs.length,t[8]=C);let w=v.length===0?(0,$.jsx)(`div`,{className:`flex min-h-32 items-center justify-center rounded-xl border border-dashed border-edge bg-surface-panel/40 px-4 py-6 text-center text-xs text-fg-subtle`,children:f.boardColumnEmpty}):v.map(e=>(0,$.jsx)(Ye,{run:e,language:r,localeTag:i,nowMs:o,selected:e.id===s,onOpen:c,onOpenChat:l,onCancel:u,onRetry:d},e.id)),T=y?(0,$.jsx)(q,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>m(!0),children:X(f.boardExpandSucceeded,{count:Math.min(n.runs.length,n.totalInWindow??n.runs.length)})}):null,E=b?(0,$.jsx)(q,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>m(!1),children:f.boardCollapseSucceeded}):null,D=h&&(n.hiddenByCap??0)>0?(0,$.jsx)(`p`,{className:`px-1 text-center text-[11px] text-fg-subtle`,children:X(f.boardSucceededCapHint,{count:n.hiddenByCap??0})}):null,O;return t[9]!==w||t[10]!==T||t[11]!==E||t[12]!==D?(O=(0,$.jsxs)(`div`,{className:`flex flex-1 flex-col gap-3 p-2.5`,children:[w,T,E,D]}),t[9]=w,t[10]=T,t[11]=E,t[12]=D,t[13]=O):O=t[13],(0,$.jsxs)(`section`,{className:x,"aria-label":Qe(n.id,f),children:[(0,$.jsxs)(`header`,{className:`sticky top-0 z-10 flex items-center justify-between gap-2 rounded-t-2xl border-b border-edge-subtle bg-surface-panel/90 px-3.5 py-3 backdrop-blur`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[S,(0,$.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:Qe(n.id,f)})]}),C]}),O]})}),et=(0,Z.memo)(function(e){let t=(0,Q.c)(45),{runs:n,language:r,localeTag:i,labels:a,searchQuery:o,workflowFilterId:s,triggerFilter:c,selectedRunId:l,loading:u,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m,onStart:h}=e,g;t[0]===n?g=t[1]:(g=n.some(tt),t[0]=n,t[1]=g);let _=g,[v,y]=(0,Z.useState)(nt),b,x;t[2]===_?(b=t[3],x=t[4]):(b=()=>{if(!_)return;let e=window.setInterval(()=>y(Date.now()),1e3);return()=>window.clearInterval(e)},x=[_],t[2]=_,t[3]=b,t[4]=x),(0,Z.useEffect)(b,x);let S;t[5]!==v||t[6]!==n||t[7]!==o||t[8]!==c||t[9]!==s?(S=Ue(Re(n,{searchQuery:o,workflowFilterId:s,triggerFilter:c}),v),t[5]=v,t[6]=n,t[7]=o,t[8]=c,t[9]=s,t[10]=S):S=t[10];let C=S,w=C.reduce(rt,0);if(u&&w===0){let e;return t[11]===a.loading?e=t[12]:(e=(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:a.loading}),t[11]=a.loading,t[12]=e),e}if(!u&&w===0){let e;t[13]===a.boardEmptyTitle?e=t[14]:(e=(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:a.boardEmptyTitle}),t[13]=a.boardEmptyTitle,t[14]=e);let n;t[15]===a.boardEmptyHint?n=t[16]:(n=(0,$.jsx)(`p`,{className:`mx-auto mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:a.boardEmptyHint}),t[15]=a.boardEmptyHint,t[16]=n);let r;t[17]!==a.boardStart||t[18]!==h?(r=(0,$.jsx)(`div`,{className:`mt-4 flex justify-center`,children:(0,$.jsx)(q,{variant:`primary`,onClick:h,children:a.boardStart})}),t[17]=a.boardStart,t[18]=h,t[19]=r):r=t[19];let i;return t[20]!==e||t[21]!==n||t[22]!==r?(i=(0,$.jsxs)(`div`,{className:`rounded-2xl border border-dashed border-edge bg-surface-panel/40 px-6 py-12 text-center`,children:[e,n,r]}),t[20]=e,t[21]=n,t[22]=r,t[23]=i):i=t[23],i}let T;if(t[24]!==C||t[25]!==r||t[26]!==i||t[27]!==v||t[28]!==p||t[29]!==d||t[30]!==f||t[31]!==m||t[32]!==l){let e;t[34]!==r||t[35]!==i||t[36]!==v||t[37]!==p||t[38]!==d||t[39]!==f||t[40]!==m||t[41]!==l?(e=e=>(0,$.jsx)($e,{column:e,language:r,localeTag:i,nowMs:v,selectedRunId:l,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m},e.id),t[34]=r,t[35]=i,t[36]=v,t[37]=p,t[38]=d,t[39]=f,t[40]=m,t[41]=l,t[42]=e):e=t[42],T=C.map(e),t[24]=C,t[25]=r,t[26]=i,t[27]=v,t[28]=p,t[29]=d,t[30]=f,t[31]=m,t[32]=l,t[33]=T}else T=t[33];let E;return t[43]===T?E=t[44]:(E=(0,$.jsx)(`div`,{className:`-mx-1 flex min-w-0 snap-x snap-mandatory gap-3 overflow-x-auto px-1 pb-2`,children:T}),t[43]=T,t[44]=E),E});function tt(e){return e.status===`queued`||e.status===`running`}function nt(){return Date.now()}function rt(e,t){return e+t.runs.length}function it(e){let t=(0,Q.c)(45),{open:n,definition:r,language:i,onClose:o,onRun:s}=e,c;t[0]===i?c=t[1]:(c=a(i),t[0]=i,t[1]=c);let l=c.workflows;if(!r)return null;let u;t[2]!==r||t[3]!==i?(u=xe(r,i),t[2]=r,t[3]=i,t[4]=u):u=t[4];let d=u,f=r.runtime?.source??``,p;t[5]===o?p=t[6]:(p=e=>!e&&o(),t[5]=o,t[6]=p);let m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[7]=m):m=t[7];let h;t[8]===r.title?h=t[9]:(h=(0,$.jsx)(R,{className:`text-base font-semibold text-fg`,children:r.title}),t[8]=r.title,t[9]=h);let g;t[10]===d.description?g=t[11]:(g=(0,$.jsx)(O,{className:`mt-1 text-sm text-fg-muted`,children:d.description}),t[10]=d.description,t[11]=g);let v;t[12]!==h||t[13]!==g?(v=(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[h,g]}),t[12]=h,t[13]=g,t[14]=v):v=t[14];let b;t[15]!==l.whenToUseHeading||t[16]!==d.whenToUse?(b=d.whenToUse?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.whenToUseHeading}),(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-fg-muted`,children:d.whenToUse})]}):null,t[15]=l.whenToUseHeading,t[16]=d.whenToUse,t[17]=b):b=t[17];let x;t[18]!==r.phases||t[19]!==l.phasesHeading?(x=r.phases.length>0?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.phasesHeading}),(0,$.jsx)(`ol`,{className:`mt-2 space-y-2`,children:r.phases.map(at)})]}):null,t[18]=r.phases,t[19]=l.phasesHeading,t[20]=x):x=t[20];let C;t[21]!==l.scriptHeading||t[22]!==f?(C=f?(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:l.scriptHeading}),(0,$.jsx)(`pre`,{className:`mt-2 max-h-64 overflow-auto rounded-xl border border-edge bg-surface-base/50 p-3 font-mono text-xs leading-5 text-fg-muted`,children:f})]}):null,t[21]=l.scriptHeading,t[22]=f,t[23]=C):C=t[23];let w;t[24]!==C||t[25]!==b||t[26]!==x?(w=(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-auto px-5 py-4`,children:[b,x,C]}),t[24]=C,t[25]=b,t[26]=x,t[27]=w):w=t[27];let T;t[28]!==l.closeResult||t[29]!==o?(T=(0,$.jsx)(q,{variant:`secondary`,onClick:o,children:l.closeResult}),t[28]=l.closeResult,t[29]=o,t[30]=T):T=t[30];let E;t[31]!==l.runWorkflow||t[32]!==s?(E=(0,$.jsx)(q,{variant:`primary`,onClick:s,children:l.runWorkflow}),t[31]=l.runWorkflow,t[32]=s,t[33]=E):E=t[33];let D;t[34]!==T||t[35]!==E?(D=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[T,E]}),t[34]=T,t[35]=E,t[36]=D):D=t[36];let k;t[37]!==w||t[38]!==D||t[39]!==v?(k=(0,$.jsxs)(_,{children:[m,(0,$.jsxs)(pe,{className:`fixed left-1/2 top-1/2 z-66 flex max-h-[min(85vh,44rem)] w-[min(100%-2rem,48rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[v,w,D]})]}),t[37]=w,t[38]=D,t[39]=v,t[40]=k):k=t[40];let A;return t[41]!==n||t[42]!==k||t[43]!==p?(A=(0,$.jsx)(S,{open:n,onOpenChange:p,children:k}),t[41]=n,t[42]=k,t[43]=p,t[44]=A):A=t[44],A}function at(e,t){return(0,$.jsxs)(`li`,{className:`rounded-xl border border-edge bg-surface-base/40 px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`text-sm font-medium text-fg`,children:[t+1,`. `,e.title]}),e.description?(0,$.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-fg-muted`,children:e.description}):null]},e.id)}function ot({open:e,language:t,saving:n,onClose:r,onSave:i}){let o=a(t).workflows,[s,c]=(0,Z.useState)(``),[l,u]=(0,Z.useState)(``),[d,f]=(0,Z.useState)(!1),[p,m]=(0,Z.useState)(!1),[h,g]=(0,Z.useState)(null),[v,b]=(0,Z.useState)(null);(0,Z.useEffect)(()=>{e&&(c(``),f(!1),m(!1),g(null),b(null),u(`export const meta = {
|
|
2
|
-
name: 'my_workflow',
|
|
3
|
-
description: 'Describe what this workflow does.',
|
|
4
|
-
whenToUse: 'When the user asks for …',
|
|
5
|
-
examplePrompts: [
|
|
6
|
-
{ field: 'goal', text: 'Example goal for this workflow' },
|
|
7
|
-
],
|
|
8
|
-
i18n: {
|
|
9
|
-
zh: {
|
|
10
|
-
description: '描述此工作流做什么。',
|
|
11
|
-
whenToUse: '当用户需要 … 时使用',
|
|
12
|
-
examplePrompts: [
|
|
13
|
-
{ field: 'goal', text: '此工作流的示例目标' },
|
|
14
|
-
],
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
tags: ['custom'],
|
|
18
|
-
estimatedAgents: { min: 2, max: 4 },
|
|
19
|
-
phases: [{ title: 'Step 1' }, { title: 'Synthesize' }],
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
phase('Step 1')
|
|
23
|
-
const first = await agent('Do the first step.', { label: 'step 1' })
|
|
24
|
-
|
|
25
|
-
phase('Synthesize')
|
|
26
|
-
return await agent('Summarize:\\n\\n' + first, { label: 'synthesis' })
|
|
27
|
-
`))},[e]);let x=s.trim(),C=!!(x&&l.trim());(0,Z.useEffect)(()=>{if(!e||!C){m(!1),g(null),b(null);return}let t=!1,n=window.setTimeout(()=>{m(!0),g(null),M(x,l).then(e=>{t||b(e)}).catch(e=>{t||(b(null),g(e instanceof Error?e.message:o.validateWorkflowFailed))}).finally(()=>{t||m(!1)})},450);return()=>{t=!0,window.clearTimeout(n)}},[C,o.validateWorkflowFailed,e,l,x]);let w=(0,Z.useMemo)(()=>h?[h]:v?.errors.map(e=>e.message)??[],[h,v]),T=d||p||v!=null||h!=null,E=C&&!n&&!p&&v?.valid===!0,D=async()=>{if(f(!0),!(!C||n)){m(!0),g(null);try{let e=await M(x,l);if(b(e),!e.valid)return;await i({name:x,script:l})}catch(e){b(null),g(e instanceof Error?e.message:o.validateWorkflowFailed)}finally{m(!1)}}};return(0,$.jsx)(S,{open:e,onOpenChange:e=>!e&&r(),children:(0,$.jsxs)(_,{children:[(0,$.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(pe,{className:`fixed left-1/2 top-1/2 z-66 flex max-h-[min(90vh,44rem)] w-[min(100%-2rem,48rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[(0,$.jsx)(R,{className:`text-base font-semibold text-fg`,children:o.manageDialogTitle}),(0,$.jsx)(O,{className:`mt-1 text-sm text-fg-muted`,children:o.manageDialogHint})]}),(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-3 overflow-auto px-5 py-4`,children:[(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:o.workflowNameLabel}),(0,$.jsx)(`input`,{value:s,onChange:e=>{c(e.target.value),b(null),g(null)},placeholder:o.workflowNamePlaceholder,className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm font-mono text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}),(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:o.workflowScriptLabel}),(0,$.jsx)(`textarea`,{value:l,onChange:e=>{u(e.target.value),b(null),g(null)},spellCheck:!1,className:`mt-1.5 min-h-72 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 font-mono text-xs leading-5 text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/20`})]}),T?(0,$.jsxs)(`div`,{className:w.length>0?`rounded-xl border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-200`:`rounded-xl border border-emerald-500/30 bg-emerald-500/10 px-3 py-2 text-sm text-emerald-700 dark:text-emerald-200`,role:`status`,children:[(0,$.jsx)(`div`,{className:`font-medium`,children:p?o.validatingWorkflow:w.length>0?o.validationFailed:o.validationPassed}),w.length>0?(0,$.jsx)(`ul`,{className:`mt-1 list-disc space-y-1 pl-5`,children:w.map(e=>(0,$.jsx)(`li`,{children:e},e))}):v?.definition?(0,$.jsx)(`div`,{className:`mt-1 text-xs opacity-80`,children:o.validationPreview.replace(`{{phaseCount}}`,String(v.definition.phases.length))}):null]}):null]}),(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[(0,$.jsx)(q,{variant:`secondary`,onClick:r,disabled:n,children:o.cancelDialog}),(0,$.jsx)(q,{variant:`primary`,disabled:!E,onClick:()=>void D(),children:n?o.savingWorkflow:o.saveWorkflow})]})]})]})})}function st(e,t){let n=e.metadata.estimatedAgents;return n?n.min===n.max?X(t.agentScaleExact,{count:n.min}):X(t.agentScaleRange,{min:n.min,max:n.max}):null}function ct(e){let t=(0,Q.c)(46),{definition:n,language:r,labels:i,onPick:a}=e,o;t[0]!==n||t[1]!==r?(o=xe(n,r),t[0]=n,t[1]=r,t[2]=o):o=t[2];let s=o,c;t[3]!==n||t[4]!==i?(c=st(n,i),t[3]=n,t[4]=i,t[5]=c):c=t[5];let l=c,d=n.metadata.source===`user`,f;t[6]!==n||t[7]!==a?(f=()=>a(n),t[6]=n,t[7]=a,t[8]=f):f=t[8];let p;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(p=P(`group flex h-full flex-col rounded-xl border border-edge-subtle bg-surface-base p-4 text-left transition-colors`,`hover:border-accent/40 hover:bg-surface-hover`,ce.focusRingPanel),t[9]=p):p=t[9];let m=d?`bg-accent-soft text-accent-fg`:`bg-surface-hover text-fg-muted`,h;t[10]===m?h=t[11]:(h=P(`rounded-full px-2 py-0.5 text-[10px] font-medium`,m),t[10]=m,t[11]=h);let g=d?i.badgeUser:i.badgeBuiltin,_;t[12]!==h||t[13]!==g?(_=(0,$.jsx)(`span`,{className:h,children:g}),t[12]=h,t[13]=g,t[14]=_):_=t[14];let v;t[15]===n.metadata.tags?v=t[16]:(v=n.metadata.tags.slice(0,2).map(lt),t[15]=n.metadata.tags,t[16]=v);let y;t[17]!==_||t[18]!==v?(y=(0,$.jsxs)(`div`,{className:`mb-2 flex flex-wrap items-center gap-1.5`,children:[_,v]}),t[17]=_,t[18]=v,t[19]=y):y=t[19];let b;t[20]===n.title?b=t[21]:(b=(0,$.jsx)(`span`,{className:`line-clamp-2 text-sm font-semibold leading-5 text-fg`,children:n.title}),t[20]=n.title,t[21]=b);let x;t[22]!==y||t[23]!==b?(x=(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[y,b]}),t[22]=y,t[23]=b,t[24]=x):x=t[24];let S;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(`span`,{className:`flex size-8 shrink-0 items-center justify-center rounded-lg bg-accent-soft text-accent-fg opacity-80 transition-opacity group-hover:opacity-100`,children:(0,$.jsx)(oe,{className:`size-3.5`,"aria-hidden":!0})}),t[25]=S):S=t[25];let C;t[26]===x?C=t[27]:(C=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[x,S]}),t[26]=x,t[27]=C);let w;t[28]===s.description?w=t[29]:(w=s.description?(0,$.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs leading-5 text-fg-muted`,children:s.description}):null,t[28]=s.description,t[29]=w);let T;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(u,{className:`size-3`,"aria-hidden":!0}),t[30]=T):T=t[30];let E;t[31]!==n.phases.length||t[32]!==i.phaseCount?(E=X(i.phaseCount,{count:n.phases.length}),t[31]=n.phases.length,t[32]=i.phaseCount,t[33]=E):E=t[33];let D;t[34]===E?D=t[35]:(D=(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[T,E]}),t[34]=E,t[35]=D);let O;t[36]===l?O=t[37]:(O=l?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,$.jsx)(de,{className:`size-3`,"aria-hidden":!0}),l]}):null,t[36]=l,t[37]=O);let k;t[38]!==D||t[39]!==O?(k=(0,$.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center gap-3 pt-3 text-[11px] text-fg-subtle`,children:[D,O]}),t[38]=D,t[39]=O,t[40]=k):k=t[40];let A;return t[41]!==C||t[42]!==w||t[43]!==k||t[44]!==f?(A=(0,$.jsxs)(`button`,{type:`button`,onClick:f,className:p,children:[C,w,k]}),t[41]=C,t[42]=w,t[43]=k,t[44]=f,t[45]=A):A=t[45],A}function lt(e){return(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 text-[10px] text-fg-subtle`,children:e},e)}function ut(e,t){return e===`uncategorized`?t.categories.uncategorized:t.categories[e]}function dt(e){let t=(0,Q.c)(11),{definitions:n,language:r,onPick:i}=e,o=a(r).workflows,[s,c]=(0,Z.useState)(``),[l,u]=(0,Z.useState)(`all`),d;t[0]!==l||t[1]!==n||t[2]!==s?(d=Se(n,s,l,`all`),t[0]=l,t[1]=n,t[2]=s,t[3]=d):d=t[3];let f=d,p;t[4]===f?p=t[5]:(p=Y(f),t[4]=f,t[5]=p);let m=p,h;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(k,{className:`pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[6]=h):h=t[6];let g;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>c(e.target.value),t[7]=g):g=t[7];let _=o.searchPlaceholder,v;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(v=P(`h-10 w-full rounded-xl border border-edge bg-surface-base py-2 pl-10 pr-3 text-sm text-fg`,`placeholder:text-fg-subtle`,ce.focusRingPanel),t[8]=v):v=t[8];let y=f.length===0?(0,$.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center px-4 py-12 text-center`,children:[(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:o.noDefinitions}),(0,$.jsx)(`p`,{className:`mt-1 max-w-sm text-xs leading-5 text-fg-subtle`,children:o.noDefinitionsHint})]}):l===`all`?(0,$.jsx)(`div`,{className:`flex flex-col gap-6 pb-1`,children:m.map(e=>(0,$.jsxs)(`section`,{children:[(0,$.jsx)(`h3`,{className:`mb-3 text-xs font-semibold uppercase tracking-wide text-fg-subtle`,children:ut(e.category,o)}),(0,$.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 xl:grid-cols-3`,children:e.items.map(e=>(0,$.jsx)(ct,{definition:e,language:r,labels:o,onPick:i},e.id))})]},e.category))}):(0,$.jsx)(`div`,{className:`grid grid-cols-1 gap-3 pb-1 sm:grid-cols-2 xl:grid-cols-3`,children:f.map(e=>(0,$.jsx)(ct,{definition:e,language:r,labels:o,onPick:i},e.id))}),b;return t[9]===y?b=t[10]:(b=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:y}),t[9]=y,t[10]=b),(0,$.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-4`,children:[(0,$.jsxs)(`div`,{className:`relative`,children:[h,(0,$.jsx)(`input`,{value:s,onChange:g,placeholder:_,className:v})]}),(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":o.categoryFilterAria,children:V.map(e=>(0,$.jsx)(q,{type:`button`,variant:l===e?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>u(e),children:o.categories[e]},e))})]}),b]})}function ft(e){let t=(0,Q.c)(30),{open:n,definitions:r,language:i,onClose:o,onPick:s}=e,c;t[0]===i?c=t[1]:(c=a(i),t[0]=i,t[1]=c);let l=c.workflows,u;t[2]===o?u=t[3]:(u=e=>!e&&o(),t[2]=o,t[3]=u);let d;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,$.jsx)(y,{className:`fixed inset-0 z-50 bg-scrim`}),t[4]=d):d=t[4];let f;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(f=P(`pointer-events-auto relative flex h-[min(90vh,840px)] w-full max-w-5xl flex-col`,`rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,ce.focusRingPanel),t[5]=f):f=t[5];let p;t[6]===l.pickStartTitle?p=t[7]:(p=(0,$.jsx)(R,{className:`text-lg font-semibold text-fg`,children:l.pickStartTitle}),t[6]=l.pickStartTitle,t[7]=p);let m;t[8]===l.pickStartHint?m=t[9]:(m=(0,$.jsx)(O,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:l.pickStartHint}),t[8]=l.pickStartHint,t[9]=m);let g;t[10]!==p||t[11]!==m?(g=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[p,m]}),t[10]=p,t[11]=m,t[12]=g):g=t[12];let v;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(U,{className:`size-5`,strokeWidth:1.75,"aria-hidden":!0}),t[13]=v):v=t[13];let b;t[14]===l.pickStartClose?b=t[15]:(b=(0,$.jsx)(h,{asChild:!0,children:(0,$.jsx)(q,{variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":l.pickStartClose,children:v})}),t[14]=l.pickStartClose,t[15]=b);let x;t[16]!==g||t[17]!==b?(x=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-edge-subtle px-6 py-5`,children:[g,b]}),t[16]=g,t[17]=b,t[18]=x):x=t[18];let C;t[19]!==r||t[20]!==i||t[21]!==s?(C=(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col px-6 py-5`,children:(0,$.jsx)(dt,{definitions:r,language:i,onPick:s})}),t[19]=r,t[20]=i,t[21]=s,t[22]=C):C=t[22];let w;t[23]!==x||t[24]!==C?(w=(0,$.jsxs)(_,{children:[d,(0,$.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center p-4 pointer-events-none`,children:(0,$.jsxs)(pe,{className:f,onOpenAutoFocus:pt,children:[x,C]})})]}),t[23]=x,t[24]=C,t[25]=w):w=t[25];let T;return t[26]!==n||t[27]!==w||t[28]!==u?(T=(0,$.jsx)(S,{open:n,onOpenChange:u,children:w}),t[26]=n,t[27]=w,t[28]=u,t[29]=T):T=t[29],T}function pt(e){return e.preventDefault()}function mt(e,t){return t.status[e]??e}function ht(e,t){return t.phaseStatus[e]??e}function gt(e,t){let{run:n}=e;return n.status===`succeeded`?X(t.runSummarySucceeded,{agents:n.metrics.doneAgentCount,artifacts:n.metrics.artifactCount}):n.status===`failed`||n.status===`timeout`?n.error?.message??t.runSummaryFailedFallback:n.status===`cancelled`?t.runSummaryCancelled:X(t.runSummaryActive,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}function _t(e,t){let{run:n}=e;return n.status===`failed`?t.diagnosticFailedHint:n.status===`timeout`?t.diagnosticTimeoutHint:n.status===`cancelled`?t.diagnosticCancelledHint:n.status===`succeeded`&&n.metrics.errorAgentCount>0?t.diagnosticPartialHint:null}function vt(e){return ge(e)}function yt(e){return!e||typeof e!=`object`||!(`kind`in e)?`unknown`:e.kind===`chat`?`chat · ${e.sessionKey}`:e.kind===`webui`?e.sessionKey?`webui · ${e.sessionKey}`:`webui`:e.kind===`cron`?`cron · ${e.scheduleId}`:e.kind===`api`?e.requestId?`api · ${e.requestId}`:`api`:e.kind===`im`?`${e.channel} · ${e.chatId}`:String(e.kind)}function bt({view:e,loading:t,language:n,localeTag:r,onCancel:i,onRetry:o,onClose:c}){let l=a(n).workflows,u=T(n),d=A(),[h,O]=(0,Z.useState)(!0),[k,ee]=(0,Z.useState)(!1),[j,M]=(0,Z.useState)(null),[F,ne]=(0,Z.useState)(!1),[,re]=(0,Z.useState)(0),ie=e?.run.status,L=ie?ae.has(ie):!1;(0,Z.useEffect)(()=>{e?.run.id&&(O(L||ie===`failed`||ie===`timeout`||ie===`succeeded`&&e.run.metrics.errorAgentCount>0),M(null))},[e?.run.id,L,ie,e?.run.metrics.errorAgentCount]),(0,Z.useEffect)(()=>{if(!L)return;let e=window.setInterval(()=>re(e=>e+1),1e3);return()=>window.clearInterval(e)},[L]);let z=(0,Z.useMemo)(()=>e?N(e):null,[e]),oe=(0,Z.useMemo)(()=>z?g(z):{phases:[],unphased:null},[z]),se=(0,Z.useMemo)(()=>j==null||!z?null:z.agents.find(e=>e.id===j)??null,[j,z]),B=(0,Z.useCallback)(e=>{M(e.id)},[]),ce=e?Te(e.run.result):void 0,V=_e(ce),H=V.trim().length>0,W=(0,Z.useCallback)(async()=>{H&&await C(V)&&(ne(!0),window.setTimeout(()=>ne(!1),1500))},[H,V]),G=(0,Z.useCallback)(()=>{if(!H||!e)return;let t=new Blob([V],{type:`text/markdown;charset=utf-8`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`${e.run.definitionId}-${e.run.id.slice(0,8)}.md`,r.click(),URL.revokeObjectURL(n)},[H,V,e]),le=(0,Z.useCallback)(()=>{if(!e)return;let t=vt(e);t&&d(ve(t))},[d,e]),ue=e?vt(e):null;if(t)return(0,$.jsx)(S,{open:!0,onOpenChange:e=>!e&&c(),children:(0,$.jsxs)(_,{children:[(0,$.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(pe,{className:`fixed left-1/2 top-1/2 z-66 flex max-h-[min(85vh,44rem)] w-[min(100%-2rem,48rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-5 py-4`,children:[(0,$.jsx)(R,{className:`text-base font-semibold tracking-tight text-fg`,children:l.runSummaryTitle}),(0,$.jsx)(q,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":l.pickStartClose,onClick:c,children:(0,$.jsx)(U,{className:`size-5`,"aria-hidden":!0})})]}),(0,$.jsx)(`div`,{className:`p-5 text-sm text-fg-muted`,children:l.loading})]})]})});if(!e||!z)return null;let{run:J}=e,de=e.controls.canCancel&&L,me=L&&J.startedAtMs!=null?we(Date.now()-J.startedAtMs):we(J.metrics.durationMs??void 0),he=gt(e,l),Y=_t(e,l),be=J.metadata,xe=yt(J.source);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(S,{open:!0,onOpenChange:e=>!e&&c(),children:(0,$.jsxs)(_,{children:[(0,$.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),(0,$.jsxs)(pe,{className:`fixed left-1/2 top-1/2 z-66 flex max-h-[min(90vh,52rem)] w-[min(100%-2rem,64rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-5 py-4`,children:[(0,$.jsx)(R,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:J.title}),(0,$.jsx)(q,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":l.pickStartClose,onClick:c,children:(0,$.jsx)(U,{className:`size-5`,"aria-hidden":!0})})]}),(0,$.jsxs)(`section`,{className:`min-h-0 flex-1 overflow-y-auto p-5`,children:[(0,$.jsx)(`div`,{className:`flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between`,children:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(`h2`,{className:`text-lg font-semibold text-fg`,children:J.title}),(0,$.jsx)(`span`,{className:P(`rounded-full px-2 py-0.5 text-xs font-medium`,De(J.status)),children:mt(J.status,l)})]}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:J.definitionId}),J.goal?(0,$.jsx)(`p`,{className:`mt-3 text-sm leading-6 text-fg-muted`,children:J.goal}):null]})}),(0,$.jsx)(`div`,{className:`mt-5 rounded-2xl border border-edge-subtle bg-surface-base/60 p-4`,children:(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,$.jsx)(`div`,{className:`rounded-xl bg-accent-soft p-2 text-accent-fg`,children:J.status===`succeeded`?(0,$.jsx)(te,{className:`size-4`,"aria-hidden":!0}):J.status===`failed`||J.status===`timeout`?(0,$.jsx)(m,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(w,{className:`size-4`,"aria-hidden":!0})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:l.runSummaryTitle}),(0,$.jsx)(`p`,{className:`mt-1 text-sm leading-6 text-fg-muted`,children:he}),Y?(0,$.jsx)(`p`,{className:`mt-2 text-xs leading-5 text-fg-subtle`,children:Y}):null]})]})}),(0,$.jsxs)(`dl`,{className:`mt-5 grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:[(0,$.jsx)(wt,{label:l.metrics.startedAt,value:ye(J.startedAtMs??J.createdAtMs,r)}),(0,$.jsx)(wt,{label:l.metrics.duration,value:me}),(0,$.jsx)(wt,{label:l.metrics.agents,value:X(l.agentProgress,{done:J.metrics.doneAgentCount,total:J.metrics.agentCount})}),(0,$.jsx)(wt,{label:l.metrics.artifacts,value:String(J.metrics.artifactCount)})]}),(0,$.jsxs)(`div`,{className:`mt-5 flex flex-wrap gap-2`,children:[ue?(0,$.jsxs)(q,{variant:`primary`,onClick:le,children:[(0,$.jsx)(p,{className:`size-4`,"aria-hidden":!0}),l.continueInChat]}):null,de?(0,$.jsxs)(q,{variant:`secondary`,onClick:i,className:`text-red-600 dark:text-red-300`,children:[(0,$.jsx)(D,{className:`size-4`,"aria-hidden":!0}),l.cancel]}):null,e.controls.canRetry?(0,$.jsxs)(q,{variant:`secondary`,onClick:o,children:[(0,$.jsx)(K,{className:`size-4`,"aria-hidden":!0}),l.rerun]}):null,H?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(q,{variant:`secondary`,onClick:W,children:[F?(0,$.jsx)(x,{className:`size-4`,"aria-hidden":!0}):(0,$.jsx)(s,{className:`size-4`,"aria-hidden":!0}),F?l.copied:l.copyResult]}),(0,$.jsxs)(q,{variant:`secondary`,onClick:G,children:[(0,$.jsx)(I,{className:`size-4`,"aria-hidden":!0}),l.exportResult]})]}):null]}),(0,$.jsxs)(`div`,{className:`mt-6`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:l.resultTitle}),H?(0,$.jsx)(`div`,{className:`mt-3 rounded-xl border border-edge bg-surface-base/50 p-3`,children:(0,$.jsx)(f,{result:ce,labels:u.result})}):(0,$.jsx)(`div`,{className:`mt-3 rounded-xl border border-dashed border-edge p-4 text-sm text-fg-muted`,children:l.noResult})]}),(0,$.jsxs)(`div`,{className:`mt-6 rounded-2xl border border-edge bg-surface-base/35`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-4 px-4 py-3 text-left`,onClick:()=>O(e=>!e),"aria-expanded":h,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:l.process}),(0,$.jsxs)(`p`,{className:`mt-1 text-xs text-fg-subtle`,children:[X(l.agentProgress,{done:J.metrics.doneAgentCount,total:J.metrics.agentCount}),` · `,me]})]}),(0,$.jsx)(b,{className:P(`size-4 shrink-0 text-fg-subtle transition-transform`,h?`rotate-180`:null),"aria-hidden":!0})]}),h?(0,$.jsxs)(`div`,{className:`border-t border-edge px-4 pb-4 pt-4`,children:[L?(0,$.jsx)(E,{snapshot:z,labels:u,logsExpanded:k,onToggleLogs:()=>ee(e=>!e),selectedAgentId:j,onSelectAgent:B}):(0,$.jsx)(fe,{rollup:oe,currentPhase:z.currentPhase,labels:u.phase,recentLogs:z.logs,recentLogsHeading:u.recentLogsHeading,showAllLogsLabel:u.showAllLogs,logsExpanded:k,onToggleLogs:()=>ee(e=>!e),selectedAgentId:j,onSelectAgent:B}),e.phases.length>0?(0,$.jsx)(`div`,{className:`mt-4 grid gap-2 sm:grid-cols-2`,children:e.phases.map(e=>(0,$.jsx)(`div`,{className:`rounded-xl border border-edge bg-surface-panel px-3 py-2`,children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:e.title}),(0,$.jsx)(`span`,{className:`text-xs text-fg-subtle`,children:ht(e.status,l)})]})},e.id))}):null]}):null]}),(0,$.jsx)(xt,{agents:z.agents,labels:l,defaultExpanded:J.status===`failed`||J.status===`timeout`||J.metrics.errorAgentCount>0}),(0,$.jsxs)(`div`,{className:`mt-6 grid gap-3 rounded-2xl border border-edge-subtle bg-surface-base/35 p-4 sm:grid-cols-2 lg:grid-cols-4`,children:[(0,$.jsx)(Tt,{label:l.metadataSession,value:be?.sessionKey??ge(e)??`—`}),(0,$.jsx)(Tt,{label:l.metadataSource,value:xe}),(0,$.jsx)(Tt,{label:l.metadataDefinition,value:`${be?.definition.version??J.definitionVersion} · ${be?.definition.source??`unknown`}`}),(0,$.jsx)(Tt,{label:l.metadataRetryOf,value:be?.retryOfRunId??`—`})]})]})]})]})}),(0,$.jsx)(v,{open:j!=null&&se!=null,agent:se,snapshot:z,sessionKey:null,pinnedAgentId:null,onPinAgent:()=>{},onClose:()=>M(null),labels:u.drawer})]})}function xt(e){let t=(0,Q.c)(29),{agents:n,labels:r,defaultExpanded:i}=e,[a,o]=(0,Z.useState)(i),s,c;if(t[0]===i?(s=t[1],c=t[2]):(s=()=>{o(i)},c=[i],t[0]=i,t[1]=s,t[2]=c),(0,Z.useEffect)(s,c),n.length===0)return null;let l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>o(St),t[3]=l):l=t[3];let u;t[4]===r.agentIoTitle?u=t[5]:(u=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.agentIoTitle}),t[4]=r.agentIoTitle,t[5]=u);let d;t[6]===r.agentIoHint?d=t[7]:(d=(0,$.jsx)(`p`,{className:`text-xs leading-5 text-fg-subtle`,children:r.agentIoHint}),t[6]=r.agentIoHint,t[7]=d);let f;t[8]!==u||t[9]!==d?(f=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[u,d]}),t[8]=u,t[9]=d,t[10]=f):f=t[10];let p=a?`rotate-180`:null,m;t[11]===p?m=t[12]:(m=P(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,p),t[11]=p,t[12]=m);let h;t[13]===m?h=t[14]:(h=(0,$.jsx)(b,{className:m,"aria-hidden":!0}),t[13]=m,t[14]=h);let g;t[15]!==a||t[16]!==f||t[17]!==h?(g=(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-4 px-4 py-3 text-left`,onClick:l,"aria-expanded":a,children:[f,h]}),t[15]=a,t[16]=f,t[17]=h,t[18]=g):g=t[18];let _;t[19]!==n||t[20]!==a||t[21]!==r.agentInputHeading||t[22]!==r.agentNoOutput||t[23]!==r.agentOutputHeading||t[24]!==r.agentStatus?(_=a?(0,$.jsx)(`div`,{className:`grid gap-3 border-t border-edge px-4 py-4`,children:n.map(e=>{let t=e.error||e.resultPreview||r.agentNoOutput;return(0,$.jsxs)(`article`,{className:`rounded-xl border border-edge-subtle bg-surface-panel p-3`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,$.jsx)(`div`,{className:`min-w-0 text-sm font-medium text-fg`,children:e.label}),(0,$.jsx)(`span`,{className:P(`rounded-full px-2 py-0.5 text-xs font-medium`,Ct(e.status)),children:r.agentStatus[e.status]??e.status})]}),(0,$.jsxs)(`div`,{className:`mt-3 grid gap-3 lg:grid-cols-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-wide text-fg-subtle`,children:r.agentInputHeading}),(0,$.jsx)(`pre`,{className:`mt-1 max-h-32 overflow-y-auto whitespace-pre-wrap wrap-break-word rounded-lg border border-edge-subtle bg-surface-base/50 p-2 font-mono text-xs leading-5 text-fg-muted`,children:e.prompt||`—`})]}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`div`,{className:`text-[10px] font-medium uppercase tracking-wide text-fg-subtle`,children:r.agentOutputHeading}),(0,$.jsx)(`div`,{className:P(`mt-1 max-h-32 overflow-y-auto whitespace-pre-wrap wrap-break-word rounded-lg border border-edge-subtle bg-surface-base/50 p-2 text-xs leading-5`,e.error?`font-mono text-rose-600 dark:text-rose-400`:`text-fg-muted`),children:t})]})]})]},e.id)})}):null,t[19]=n,t[20]=a,t[21]=r.agentInputHeading,t[22]=r.agentNoOutput,t[23]=r.agentOutputHeading,t[24]=r.agentStatus,t[25]=_):_=t[25];let v;return t[26]!==g||t[27]!==_?(v=(0,$.jsxs)(`section`,{className:`mt-6 rounded-2xl border border-edge bg-surface-base/35`,children:[g,_]}),t[26]=g,t[27]=_,t[28]=v):v=t[28],v}function St(e){return!e}function Ct(e){return e===`done`?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:e===`error`?`bg-rose-500/10 text-rose-700 dark:text-rose-300`:e===`running`?`bg-accent-soft text-accent-fg`:`bg-surface-hover text-fg-subtle`}function wt(e){let t=(0,Q.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`dt`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`dd`,{className:`mt-1 text-sm font-semibold text-fg`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-base/40 p-3`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function Tt(e){let t=(0,Q.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,$.jsx)(`div`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,$.jsx)(`div`,{className:`mt-1 truncate text-sm font-medium text-fg`,title:r,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function Et(e){let t=(0,Q.c)(12),{examples:n,labels:r,onSelect:i}=e;if(n.length===0)return null;let a;t[0]===r.examplePrompts?a=t[1]:(a=(0,$.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:r.examplePrompts}),t[0]=r.examplePrompts,t[1]=a);let o;if(t[2]!==n||t[3]!==i){let e;t[5]===i?e=t[6]:(e=e=>(0,$.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:`rounded-lg border border-edge bg-surface-base/50 px-3 py-2 text-left text-xs text-fg-muted hover:bg-surface-hover`,children:e.text},`${e.field}:${e.text}`),t[5]=i,t[6]=e),o=n.map(e),t[2]=n,t[3]=i,t[4]=o}else o=t[4];let s;t[7]===o?s=t[8]:(s=(0,$.jsx)(`div`,{className:`mt-2 flex flex-col gap-1.5`,children:o}),t[7]=o,t[8]=s);let c;return t[9]!==a||t[10]!==s?(c=(0,$.jsxs)(`div`,{children:[a,s]}),t[9]=a,t[10]=s,t[11]=c):c=t[11],c}function Dt(e,t){let n=e.metadata.estimatedAgents;return n?n.min===n.max?X(t.agentScaleExact,{count:n.min}):X(t.agentScaleRange,{min:n.min,max:n.max}):X(t.agentScaleExact,{count:e.defaults.maxSubagents})}function Ot(e,t,n,r){let i=Object.values(t).map(e=>e.trim()).filter(Boolean),a=e.trim()||n;return a&&i.unshift(a),i.length===0?r.noInputSummary:i.join(` · `)}function kt(e){let t=(0,Q.c)(53),{open:n,definition:r,language:i,starting:o,onClose:s,onStart:c}=e,l=a(i).workflows,[f,p]=(0,Z.useState)(``),m;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(m={},t[0]=m):m=t[0];let[h,g]=(0,Z.useState)(m),[v,x]=(0,Z.useState)(``),[C,w]=(0,Z.useState)(``),[T,E]=(0,Z.useState)(!1),D;t[1]!==r||t[2]!==i?(D=r?xe(r,i):null,t[1]=r,t[2]=i,t[3]=D):D=t[3];let k=D,A;t[4]===r?A=t[5]:(A=r?j[r.name]??[]:[],t[4]=r,t[5]=A);let ee=A,te;t[6]===k?.examplePrompts?te=t[7]:(te=k?.examplePrompts??[],t[6]=k?.examplePrompts,t[7]=te);let M=te,N=ee.length>0,F;t[8]!==v||t[9]!==r?.defaults?(F=v.trim()?Number(v):r?.defaults.concurrency,t[8]=v,t[9]=r?.defaults,t[10]=F):F=t[10];let ne=F,I;t[11]!==r?.defaults||t[12]!==C?(I=C.trim()?Number(C):r?.defaults.maxSubagents,t[11]=r?.defaults,t[12]=C,t[13]=I):I=t[13];let re=I,ie=r&&k?Ot(f,h,k.description,l):l.noInputSummary,ae;t[14]!==r||t[15]!==n?(ae=()=>{!n||!r||(p(``),g({}),x(``),w(``),E(!1))},t[14]=r,t[15]=n,t[16]=ae):ae=t[16];let z=r?.id,oe;if(t[17]!==n||t[18]!==z?(oe=[n,z],t[17]=n,t[18]=z,t[19]=oe):oe=t[19],(0,Z.useEffect)(ae,oe),!r||!k)return null;let se;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(se=e=>{Ce(e,p,g)},t[20]=se):se=t[20];let B=se,ce;t[21]!==h||t[22]!==v||t[23]!==f||t[24]!==k.description||t[25]!==C||t[26]!==c?(ce=()=>{let e=Ee(h);c({goal:f.trim()||k.description,input:e,concurrency:v.trim()?Number(v):void 0,maxSubagents:C.trim()?Number(C):void 0})},t[21]=h,t[22]=v,t[23]=f,t[24]=k.description,t[25]=C,t[26]=c,t[27]=ce):ce=t[27];let V=ce,H;t[28]===s?H=t[29]:(H=e=>!e&&s(),t[28]=s,t[29]=H);let U;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,$.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[30]=U):U=t[30];let W;t[31]===k.description?W=t[32]:(W=(0,$.jsx)(O,{className:`mt-1 text-sm text-fg-muted`,children:k.description}),t[31]=k.description,t[32]=W);let G;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(u,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[33]=G):G=t[33];let K;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,$.jsx)(de,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[34]=K):K=t[34];let le;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(le=(0,$.jsx)(d,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[35]=le):le=t[35];let ue=ee.map(e=>(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsxs)(`span`,{className:`text-xs font-medium text-fg`,children:[Mt(l,e.labelKey),e.required?` *`:``]}),e.multiline?(0,$.jsx)(`textarea`,{value:h[e.key]??``,onChange:t=>g(n=>({...n,[e.key]:t.target.value})),placeholder:Mt(l,e.placeholderKey),className:`mt-1.5 min-h-20 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}):(0,$.jsx)(`input`,{value:h[e.key]??``,onChange:t=>g(n=>({...n,[e.key]:t.target.value})),placeholder:Mt(l,e.placeholderKey),className:`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]},e.key)),J;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(J=e=>p(e.target.value),t[36]=J):J=t[36];let fe;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(fe=()=>E(At),t[37]=fe):fe=t[37];let me=l.advancedSettings,he=T&&`rotate-180`,Y;t[38]===he?Y=t[39]:(Y=P(`size-4 transition-transform`,he),t[38]=he,t[39]=Y);let ge;t[40]===Y?ge=t[41]:(ge=(0,$.jsx)(b,{className:Y}),t[40]=Y,t[41]=ge);let _e;t[42]!==l.cancelDialog||t[43]!==s||t[44]!==o?(_e=(0,$.jsx)(q,{variant:`secondary`,onClick:s,disabled:o,children:l.cancelDialog}),t[42]=l.cancelDialog,t[43]=s,t[44]=o,t[45]=_e):_e=t[45];let ve=o?l.starting:l.start,ye;t[46]!==o||t[47]!==V||t[48]!==ve?(ye=(0,$.jsx)(q,{variant:`primary`,onClick:V,disabled:o,children:ve}),t[46]=o,t[47]=V,t[48]=ve,t[49]=ye):ye=t[49];let be;return t[50]!==_e||t[51]!==ye?(be=(0,$.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[_e,ye]}),t[50]=_e,t[51]=ye,t[52]=be):be=t[52],(0,$.jsx)(S,{open:n,onOpenChange:H,children:(0,$.jsxs)(_,{children:[U,(0,$.jsxs)(pe,{className:`fixed left-1/2 top-1/2 z-66 flex max-h-[min(85vh,40rem)] w-[min(100%-2rem,32rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[(0,$.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[(0,$.jsxs)(R,{className:`text-base font-semibold text-fg`,children:[l.startTitle,` · `,r.title]}),W]}),(0,$.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-auto px-5 py-4`,children:[(0,$.jsxs)(`section`,{className:`rounded-2xl border border-edge bg-surface-base/70 p-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:l.runPlanPreview}),(0,$.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-fg-muted`,children:ie})]}),(0,$.jsx)(`span`,{className:`shrink-0 rounded-full bg-accent-soft px-2 py-1 text-[11px] font-medium text-accent-fg`,children:l.readyToStart})]}),(0,$.jsxs)(`div`,{className:`mt-4 grid gap-2 text-xs text-fg-muted sm:grid-cols-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[G,(0,$.jsx)(`span`,{children:X(l.phaseCount,{count:r.phases.length})})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[K,(0,$.jsx)(`span`,{children:Dt(r,l)})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[le,(0,$.jsx)(`span`,{children:X(l.runLimitsSummary,{concurrency:ne??r.defaults.concurrency,max:re??r.defaults.maxSubagents})})]})]}),r.phases.length>0?(0,$.jsxs)(`div`,{className:`mt-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] font-medium uppercase tracking-wide text-fg-subtle`,children:[(0,$.jsx)(L,{className:`size-3.5`,"aria-hidden":!0}),l.startPlanPhases]}),(0,$.jsx)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5`,children:r.phases.map(jt)})]}):null]}),ue,N?(0,$.jsx)(Et,{examples:M,labels:l,onSelect:B}):null,(0,$.jsxs)(`label`,{className:`block`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg`,children:l.goalLabel}),(0,$.jsx)(`textarea`,{value:f,onChange:J,placeholder:l.goalPlaceholder,className:`mt-1.5 min-h-24 w-full resize-y rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}),N?null:(0,$.jsx)(Et,{examples:M,labels:l,onSelect:B}),(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between px-3 py-2.5 text-left text-sm text-fg`,onClick:fe,children:[me,ge]}),T?(0,$.jsxs)(`div`,{className:`grid gap-3 border-t border-edge px-3 pb-3 pt-3 sm:grid-cols-2`,children:[(0,$.jsx)(`input`,{value:v,onChange:e=>x(e.target.value),placeholder:X(l.concurrencyPlaceholder,{default:r.defaults.concurrency}),inputMode:`numeric`,className:`rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}),(0,$.jsx)(`input`,{value:C,onChange:e=>w(e.target.value),placeholder:X(l.maxSubagentsPlaceholder,{default:r.defaults.maxSubagents}),inputMode:`numeric`,className:`rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`})]}):null]})]}),be]})]})})}function At(e){return!e}function jt(e,t){return(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[t>0?(0,$.jsx)(`span`,{className:`text-fg-subtle`,children:`→`}):null,(0,$.jsx)(`span`,{className:`rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1 text-[11px] text-fg-muted`,children:e.title})]},e.id)}function Mt(e,t){return e.args[t]??t}function Nt(e){let t=(0,Q.c)(28),{stats:n,language:r}=e,i,o,s;if(t[0]!==r||t[1]!==n){s=Symbol.for(`react.early_return_sentinel`);bb0:{if(i=a(r).workflows,!n||n.totalRuns===0){s=null;break bb0}o=n.topDefinitions[0]?X(i.statsTopWorkflow,{name:n.topDefinitions[0].definitionId,count:n.topDefinitions[0].count}):null}t[0]=r,t[1]=n,t[2]=i,t[3]=o,t[4]=s}else i=t[2],o=t[3],s=t[4];if(s!==Symbol.for(`react.early_return_sentinel`))return s;let c=o,l=i.statsTotalRuns,u=String(n.totalRuns),d;t[5]!==i.statsTotalRuns||t[6]!==u?(d=(0,$.jsx)(Pt,{label:l,value:u}),t[5]=i.statsTotalRuns,t[6]=u,t[7]=d):d=t[7];let f=i.statsActiveRuns,p=String(n.activeRuns),m;t[8]!==i.statsActiveRuns||t[9]!==p?(m=(0,$.jsx)(Pt,{label:f,value:p}),t[8]=i.statsActiveRuns,t[9]=p,t[10]=m):m=t[10];let h;t[11]!==n.succeededRuns||t[12]!==n.totalRuns?(h=n.totalRuns>0?`${Math.round(n.succeededRuns/n.totalRuns*100)}%`:`—`,t[11]=n.succeededRuns,t[12]=n.totalRuns,t[13]=h):h=t[13];let g;t[14]!==i.statsSuccessRate||t[15]!==h?(g=(0,$.jsx)(Pt,{label:i.statsSuccessRate,value:h}),t[14]=i.statsSuccessRate,t[15]=h,t[16]=g):g=t[16];let _;t[17]===n.averageDurationMs?_=t[18]:(_=n.averageDurationMs==null?`—`:we(n.averageDurationMs),t[17]=n.averageDurationMs,t[18]=_);let v=c??void 0,y;t[19]!==i.statsAvgDuration||t[20]!==_||t[21]!==v?(y=(0,$.jsx)(Pt,{label:i.statsAvgDuration,value:_,hint:v}),t[19]=i.statsAvgDuration,t[20]=_,t[21]=v,t[22]=y):y=t[22];let b;return t[23]!==g||t[24]!==y||t[25]!==d||t[26]!==m?(b=(0,$.jsxs)(`section`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,children:[d,m,g,y]}),t[23]=g,t[24]=y,t[25]=d,t[26]=m,t[27]=b):b=t[27],b}function Pt(e){let t=(0,Q.c)(10),{label:n,value:r,hint:i}=e,a;t[0]===n?a=t[1]:(a=(0,$.jsx)(`div`,{className:`text-xs text-fg-subtle`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=(0,$.jsx)(`div`,{className:`mt-1 text-lg font-semibold tabular-nums text-fg`,children:r}),t[2]=r,t[3]=o);let s;t[4]===i?s=t[5]:(s=i?(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] text-fg-muted`,children:i}):null,t[4]=i,t[5]=s);let c;return t[6]!==a||t[7]!==o||t[8]!==s?(c=(0,$.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-panel px-4 py-3`,children:[a,o,s]}),t[6]=a,t[7]=o,t[8]=s,t[9]=c):c=t[9],c}function Ft(e){let t=(0,Q.c)(27),{vm:n}=e,{labels:r,loading:i,searchQuery:a,setSearchQuery:o,refreshAll:s,setManageOpen:c}=n,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,$.jsx)(k,{className:`pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-fg-subtle`,"aria-hidden":!0}),t[0]=l):l=t[0];let u;t[1]===o?u=t[2]:(u=e=>o(e.target.value),t[1]=o,t[2]=u);let d=r.searchPlaceholder,f;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=P(`h-9 w-full rounded-lg border border-edge bg-surface-panel py-2 pl-9 pr-3 text-sm text-fg shadow-surface`,`placeholder:text-fg-subtle`,ce.focusRingPanel),t[3]=f):f=t[3];let p;t[4]!==r.searchPlaceholder||t[5]!==a||t[6]!==u?(p=(0,$.jsxs)(`div`,{className:`relative min-w-[12rem] flex-1 sm:max-w-xs`,children:[l,(0,$.jsx)(`input`,{value:a,onChange:u,placeholder:d,className:f})]}),t[4]=r.searchPlaceholder,t[5]=a,t[6]=u,t[7]=p):p=t[7];let m;t[8]===c?m=t[9]:(m=()=>c(!0),t[8]=c,t[9]=m);let h;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(G,{className:`size-4`,"aria-hidden":!0}),t[10]=h):h=t[10];let g;t[11]!==r.addWorkflow||t[12]!==m?(g=(0,$.jsxs)(q,{variant:`secondary`,onClick:m,children:[h,r.addWorkflow]}),t[11]=r.addWorkflow,t[12]=m,t[13]=g):g=t[13];let _=i&&`animate-spin`,v;t[14]===_?v=t[15]:(v=P(`size-4`,_),t[14]=_,t[15]=v);let y;t[16]===v?y=t[17]:(y=(0,$.jsx)(B,{className:v,"aria-hidden":!0}),t[16]=v,t[17]=y);let b;t[18]!==r.refresh||t[19]!==i||t[20]!==s||t[21]!==y?(b=(0,$.jsxs)(q,{variant:`secondary`,onClick:s,disabled:i,children:[y,r.refresh]}),t[18]=r.refresh,t[19]=i,t[20]=s,t[21]=y,t[22]=b):b=t[22];let x;return t[23]!==b||t[24]!==p||t[25]!==g?(x=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[p,g,b]}),t[23]=b,t[24]=p,t[25]=g,t[26]=x):x=t[26],x}function It(e){let t=(0,Q.c)(173),{vm:n}=e,{language:r,localeTag:i,labels:a,hasToken:o,definitions:s,runs:c,searchQuery:l,workflowFilterId:u,setWorkflowFilterId:d,triggerFilter:f,setTriggerFilter:p,selectedRunId:m,selectedRunView:h,selectedRunLoading:g,selectedRunError:_,openRunDetails:v,closeRunDetails:y,openRunInChat:b,pickStartOpen:x,setPickStartOpen:S,startDefinition:C,setStartDefinition:w,detailDefinition:T,setDetailDefinition:E,manageOpen:D,setManageOpen:O,actionError:k,actionFeedback:A,starting:ee,savingWorkflow:te,loading:j,error:M,stats:N,submitStart:ne,cancelRun:I,retryRun:re,saveCustomWorkflow:ie}=n,ae=he(zt),L=he(Rt),R;t[0]!==L||t[1]!==o||t[2]!==a.title||t[3]!==ae||t[4]!==n?(R=()=>{if(!o){L();return}return ae({startExtra:null,main:(0,$.jsx)(`div`,{className:`min-w-0`,children:(0,$.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:a.title})}),end:(0,$.jsx)(Ft,{vm:n})}),()=>L()},t[0]=L,t[1]=o,t[2]=a.title,t[3]=ae,t[4]=n,t[5]=R):R=t[5];let z;if(t[6]!==L||t[7]!==o||t[8]!==a.title||t[9]!==j||t[10]!==n?(z=[L,o,a.title,j,n,n.refreshAll,n.setManageOpen,n.setSearchQuery],t[6]=L,t[7]=o,t[8]=a.title,t[9]=j,t[10]=n,t[11]=z):z=t[11],(0,Z.useLayoutEffect)(R,z),!o){let e;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,$.jsx)(F,{className:`size-10 text-accent-fg`,"aria-hidden":!0}),t[12]=e):e=t[12];let n;t[13]===a.title?n=t[14]:(n=(0,$.jsx)(`h1`,{className:`mt-4 text-xl font-semibold text-fg`,children:a.title}),t[13]=a.title,t[14]=n);let r;t[15]===a.needToken?r=t[16]:(r=(0,$.jsx)(`p`,{className:`mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:a.needToken}),t[15]=a.needToken,t[16]=r);let i;return t[17]!==n||t[18]!==r?(i=(0,$.jsx)(`main`,{className:`min-h-0 flex-1 overflow-auto bg-surface-base`,children:(0,$.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col items-center px-4 py-16 text-center sm:px-8`,children:[e,n,r]})}),t[17]=n,t[18]=r,t[19]=i):i=t[19],i}let se=a.boardTriggerFilterAria,B;t[20]===p?B=t[21]:(B=e=>p(e.target.value),t[20]=p,t[21]=B);let V;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(V=P(`h-9 min-w-[7.5rem] rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,ce.focusRingPanel),t[22]=V):V=t[22];let H;t[23]===a.boardTriggerFilterAll?H=t[24]:(H=(0,$.jsx)(`option`,{value:`all`,children:a.boardTriggerFilterAll}),t[23]=a.boardTriggerFilterAll,t[24]=H);let U;t[25]===a.boardTriggerFilterCron?U=t[26]:(U=(0,$.jsx)(`option`,{value:`cron`,children:a.boardTriggerFilterCron}),t[25]=a.boardTriggerFilterCron,t[26]=U);let W;t[27]===a.boardTriggerFilterWebui?W=t[28]:(W=(0,$.jsx)(`option`,{value:`webui`,children:a.boardTriggerFilterWebui}),t[27]=a.boardTriggerFilterWebui,t[28]=W);let G;t[29]===a.boardTriggerFilterChat?G=t[30]:(G=(0,$.jsx)(`option`,{value:`chat`,children:a.boardTriggerFilterChat}),t[29]=a.boardTriggerFilterChat,t[30]=G);let K;t[31]===a.boardTriggerFilterApi?K=t[32]:(K=(0,$.jsx)(`option`,{value:`api`,children:a.boardTriggerFilterApi}),t[31]=a.boardTriggerFilterApi,t[32]=K);let le;t[33]!==a.boardTriggerFilterAria||t[34]!==K||t[35]!==B||t[36]!==H||t[37]!==U||t[38]!==W||t[39]!==G||t[40]!==f?(le=(0,$.jsxs)(`select`,{value:f,"aria-label":se,onChange:B,className:V,children:[H,U,W,G,K]}),t[33]=a.boardTriggerFilterAria,t[34]=K,t[35]=B,t[36]=H,t[37]=U,t[38]=W,t[39]=G,t[40]=f,t[41]=le):le=t[41];let ue=a.boardWorkflowFilterAria,J;t[42]===d?J=t[43]:(J=e=>d(e.target.value),t[42]=d,t[43]=J);let de;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(de=P(`h-9 min-w-40 rounded-lg border border-edge bg-surface-panel px-2.5 text-xs font-medium text-fg shadow-surface`,ce.focusRingPanel),t[44]=de):de=t[44];let fe;t[45]===a.boardWorkflowFilterAll?fe=t[46]:(fe=(0,$.jsx)(`option`,{value:``,children:a.boardWorkflowFilterAll}),t[45]=a.boardWorkflowFilterAll,t[46]=fe);let pe;t[47]===s?pe=t[48]:(pe=s.map(Lt),t[47]=s,t[48]=pe);let me;t[49]!==a.boardWorkflowFilterAria||t[50]!==J||t[51]!==fe||t[52]!==pe||t[53]!==u?(me=(0,$.jsxs)(`select`,{value:u,"aria-label":ue,onChange:J,className:de,children:[fe,pe]}),t[49]=a.boardWorkflowFilterAria,t[50]=J,t[51]=fe,t[52]=pe,t[53]=u,t[54]=me):me=t[54];let Y;t[55]===S?Y=t[56]:(Y=()=>S(!0),t[55]=S,t[56]=Y);let ge;t[57]===Symbol.for(`react.memo_cache_sentinel`)?(ge=(0,$.jsx)(oe,{className:`size-4`,"aria-hidden":!0}),t[57]=ge):ge=t[57];let _e;t[58]!==a.boardStart||t[59]!==Y?(_e=(0,$.jsxs)(q,{variant:`primary`,onClick:Y,children:[ge,a.boardStart]}),t[58]=a.boardStart,t[59]=Y,t[60]=_e):_e=t[60];let ve;t[61]!==le||t[62]!==me||t[63]!==_e?(ve=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[le,me,_e]}),t[61]=le,t[62]=me,t[63]=_e,t[64]=ve):ve=t[64];let ye;t[65]===A?ye=t[66]:(ye=A?(0,$.jsx)(`div`,{className:`rounded-xl border border-emerald-500/25 bg-emerald-500/10 px-3 py-2 text-sm text-emerald-800 dark:text-emerald-200`,children:A}):null,t[65]=A,t[66]=ye);let be;t[67]!==k||t[68]!==M?(be=k??M?(0,$.jsx)(`div`,{className:`rounded-xl border border-red-500/25 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:k??M}):null,t[67]=k,t[68]=M,t[69]=be):be=t[69];let xe;t[70]!==r||t[71]!==N?(xe=(0,$.jsx)(Nt,{stats:N,language:r}),t[70]=r,t[71]=N,t[72]=xe):xe=t[72];let Se;t[73]===_?Se=t[74]:(Se=_?(0,$.jsx)(`div`,{className:`rounded-xl border border-amber-500/25 bg-amber-500/10 px-3 py-2 text-sm text-amber-800 dark:text-amber-200`,children:_}):null,t[73]=_,t[74]=Se);let X;t[75]!==a.boardEmptyHint||t[76]!==a.boardEmptyTitle||t[77]!==a.boardStart||t[78]!==a.loading?(X={boardEmptyTitle:a.boardEmptyTitle,boardEmptyHint:a.boardEmptyHint,boardStart:a.boardStart,loading:a.loading},t[75]=a.boardEmptyHint,t[76]=a.boardEmptyTitle,t[77]=a.boardStart,t[78]=a.loading,t[79]=X):X=t[79];let Ce;t[80]===I?Ce=t[81]:(Ce=e=>void I(e),t[80]=I,t[81]=Ce);let we;t[82]===re?we=t[83]:(we=e=>void re(e),t[82]=re,t[83]=we);let Te;t[84]===S?Te=t[85]:(Te=()=>S(!0),t[84]=S,t[85]=Te);let Ee;t[86]!==r||t[87]!==j||t[88]!==i||t[89]!==v||t[90]!==b||t[91]!==c||t[92]!==l||t[93]!==m||t[94]!==X||t[95]!==Ce||t[96]!==we||t[97]!==Te||t[98]!==f||t[99]!==u?(Ee=(0,$.jsx)(`div`,{className:`min-w-0`,children:(0,$.jsx)(et,{runs:c,language:r,localeTag:i,labels:X,searchQuery:l,workflowFilterId:u,triggerFilter:f,selectedRunId:m,loading:j,onOpenRun:v,onOpenRunChat:b,onCancelRun:Ce,onRetryRun:we,onStart:Te})}),t[86]=r,t[87]=j,t[88]=i,t[89]=v,t[90]=b,t[91]=c,t[92]=l,t[93]=m,t[94]=X,t[95]=Ce,t[96]=we,t[97]=Te,t[98]=f,t[99]=u,t[100]=Ee):Ee=t[100];let De;t[101]!==ve||t[102]!==ye||t[103]!==be||t[104]!==xe||t[105]!==Se||t[106]!==Ee?(De=(0,$.jsxs)(`div`,{className:`mx-auto flex w-full max-w-400 flex-col gap-5 px-4 py-6 lg:px-6`,children:[ve,ye,be,xe,Se,Ee]}),t[101]=ve,t[102]=ye,t[103]=be,t[104]=xe,t[105]=Se,t[106]=Ee,t[107]=De):De=t[107];let Oe=!!m&&g,ke;t[108]!==I||t[109]!==m?(ke=()=>{m&&I(m)},t[108]=I,t[109]=m,t[110]=ke):ke=t[110];let Ae;t[111]!==re||t[112]!==m?(Ae=()=>{m&&re(m)},t[111]=re,t[112]=m,t[113]=Ae):Ae=t[113];let je;t[114]!==y||t[115]!==r||t[116]!==i||t[117]!==h||t[118]!==Oe||t[119]!==ke||t[120]!==Ae?(je=(0,$.jsx)(bt,{view:h,loading:Oe,language:r,localeTag:i,onCancel:ke,onRetry:Ae,onClose:y}),t[114]=y,t[115]=r,t[116]=i,t[117]=h,t[118]=Oe,t[119]=ke,t[120]=Ae,t[121]=je):je=t[121];let Me;t[122]===S?Me=t[123]:(Me=()=>S(!1),t[122]=S,t[123]=Me);let Ne;t[124]!==S||t[125]!==w?(Ne=e=>{S(!1),w(e)},t[124]=S,t[125]=w,t[126]=Ne):Ne=t[126];let Pe;t[127]!==s||t[128]!==r||t[129]!==x||t[130]!==Me||t[131]!==Ne?(Pe=(0,$.jsx)(ft,{open:x,definitions:s,language:r,onClose:Me,onPick:Ne}),t[127]=s,t[128]=r,t[129]=x,t[130]=Me,t[131]=Ne,t[132]=Pe):Pe=t[132];let Fe=C!=null,Ie;t[133]===w?Ie=t[134]:(Ie=()=>w(null),t[133]=w,t[134]=Ie);let Le;t[135]===ne?Le=t[136]:(Le=e=>void ne(e),t[135]=ne,t[136]=Le);let Re;t[137]!==r||t[138]!==C||t[139]!==ee||t[140]!==Fe||t[141]!==Ie||t[142]!==Le?(Re=(0,$.jsx)(kt,{open:Fe,definition:C,language:r,starting:ee,onClose:Ie,onStart:Le}),t[137]=r,t[138]=C,t[139]=ee,t[140]=Fe,t[141]=Ie,t[142]=Le,t[143]=Re):Re=t[143];let ze=T!=null,Be;t[144]===E?Be=t[145]:(Be=()=>E(null),t[144]=E,t[145]=Be);let Ve;t[146]!==T||t[147]!==E||t[148]!==w?(Ve=()=>{T&&(E(null),w(T))},t[146]=T,t[147]=E,t[148]=w,t[149]=Ve):Ve=t[149];let He;t[150]!==T||t[151]!==r||t[152]!==ze||t[153]!==Be||t[154]!==Ve?(He=(0,$.jsx)(it,{open:ze,definition:T,language:r,onClose:Be,onRun:Ve}),t[150]=T,t[151]=r,t[152]=ze,t[153]=Be,t[154]=Ve,t[155]=He):He=t[155];let Ue;t[156]===O?Ue=t[157]:(Ue=()=>O(!1),t[156]=O,t[157]=Ue);let We;t[158]===ie?We=t[159]:(We=e=>void ie(e),t[158]=ie,t[159]=We);let Ge;t[160]!==r||t[161]!==D||t[162]!==te||t[163]!==Ue||t[164]!==We?(Ge=(0,$.jsx)(ot,{open:D,language:r,saving:te,onClose:Ue,onSave:We}),t[160]=r,t[161]=D,t[162]=te,t[163]=Ue,t[164]=We,t[165]=Ge):Ge=t[165];let Ke;return t[166]!==De||t[167]!==je||t[168]!==Pe||t[169]!==Re||t[170]!==He||t[171]!==Ge?(Ke=(0,$.jsxs)(`main`,{className:`min-h-0 flex-1 overflow-auto bg-surface-base`,children:[De,je,Pe,Re,He,Ge]}),t[166]=De,t[167]=je,t[168]=Pe,t[169]=Re,t[170]=He,t[171]=Ge,t[172]=Ke):Ke=t[172],Ke}function Lt(e){return(0,$.jsx)(`option`,{value:e.id,children:e.title},e.id)}function Rt(e){return e.clearPageHeader}function zt(e){return e.setPageHeader}function Bt(){let e=i(e=>e.language),t=a(e).workflows,n=e===`zh`?`zh-CN`:`en-US`,r=c(e=>e.token),s=!!r,u=A(),[d,f]=l(),p=d.get(`q`)??``,m=d.get(`wf`)?.trim()??``,h=d.get(`trigger`)?.trim()||`all`,g=d.get(`run`)?.trim()??``,[_,v]=(0,Z.useState)(null),[y,b]=(0,Z.useState)(!1),[x,S]=(0,Z.useState)(null),[C,w]=(0,Z.useState)(!1),[T,E]=(0,Z.useState)(null),[D,O]=(0,Z.useState)(null),[k,te]=(0,Z.useState)(!1),[j,M]=(0,Z.useState)(!1),N=o(s?[`workflow-definitions`,r]:null,ie,{revalidateOnFocus:!1}),P=o(s?[`workflow-runs`,r]:null,()=>re(100),{revalidateOnFocus:!1,refreshInterval:e=>e?.length&&e.some(e=>e.status===`queued`||e.status===`running`)?3e3:0}),F=o(s?[`workflow-stats`,r,m]:null,()=>se(m),{revalidateOnFocus:!1});(0,Z.useEffect)(()=>{if(!D)return;let e=window.setTimeout(()=>O(null),4e3);return()=>window.clearTimeout(e)},[D]);let I=N.data??[],ae=P.data??[],L=g||null,R=W(L),oe=(0,Z.useMemo)(()=>Se(I,p,`all`,`all`),[I,p]),B=(0,Z.useCallback)(e=>{f(t=>{let n=new URLSearchParams(t);return e(n,t),n},{replace:!0})},[f]),ce=(0,Z.useCallback)(e=>{B(t=>{let n=e.trim();n?t.set(`q`,n):t.delete(`q`)})},[B]),V=(0,Z.useCallback)(e=>{B(t=>{let n=e.trim();n?t.set(`wf`,n):t.delete(`wf`)})},[B]),U=(0,Z.useCallback)(e=>{B(t=>{let n=e.trim();n&&n!==`all`?t.set(le,n):t.delete(le)})},[B]),G=(0,Z.useCallback)(e=>{B(t=>{t.set(`run`,e.id)})},[B]),K=(0,Z.useCallback)(()=>{B(e=>{e.delete(`run`)})},[B]),q=(0,Z.useCallback)(e=>{let t=je(e);t&&u(ve(t))},[u]);(0,Z.useEffect)(()=>{d.get(`tab`)&&B(e=>{e.delete(`tab`)})},[B,d]),(0,Z.useEffect)(()=>{let e=d.get(`def`),t=d.get(z)===`1`;if(!e||!I.length)return;let n=I.find(t=>t.id===e||t.name===e);n&&(t?v(n):S(n),B(e=>{e.delete(`def`),e.delete(z)}))},[I,B,d]),(0,Z.useEffect)(()=>{let e=()=>{P.mutate(),F.mutate()};return window.addEventListener(`workflow-event-appended`,e),window.addEventListener(`workflow-run-updated`,e),window.addEventListener(`workflow-run-error`,e),()=>{window.removeEventListener(`workflow-event-appended`,e),window.removeEventListener(`workflow-run-updated`,e),window.removeEventListener(`workflow-run-error`,e)}},[P,F]);let ue=(0,Z.useCallback)(()=>{N.mutate(),P.mutate(),F.mutate()},[N,P,F]),de=(0,Z.useCallback)(async e=>{if(_){te(!0),E(null);try{let n=await me({definitionId:_.id,goal:e.goal,input:e.input,concurrency:e.concurrency,maxSubagents:e.maxSubagents});v(null),await P.mutate(),await F.mutate(),O(t.startSuccess),B(e=>{e.set(`run`,n.runId)})}catch(e){E(e instanceof Error?e.message:t.startFailed)}finally{te(!1)}}},[t.startFailed,t.startSuccess,B,P,_,F]),fe=(0,Z.useCallback)(async e=>{try{await ne(e),await P.mutate(),await F.mutate()}catch(e){let n=e instanceof Error?e.message:t.cancelFailed;if(/not active|already finished/i.test(n)){await P.mutate(),await F.mutate();return}E(n)}},[t.cancelFailed,P,F]),pe=(0,Z.useCallback)(async e=>{try{let t=await ee(e);await P.mutate(),await F.mutate(),B(e=>{e.set(`run`,t.runId)})}catch(e){E(e instanceof Error?e.message:t.retryFailed)}},[t.retryFailed,B,P,F]),he=(0,Z.useCallback)(async e=>{M(!0),E(null);try{await J(e.name,e.script),w(!1),await N.mutate(),O(t.saveWorkflowSuccess)}catch(e){E(e instanceof Error?e.message:t.saveWorkflowFailed)}finally{M(!1)}},[N,t.saveWorkflowFailed,t.saveWorkflowSuccess]),Y=(0,Z.useCallback)(async e=>{if(e.metadata.source===`user`&&window.confirm(X(t.deleteConfirm,{name:e.name}))){E(null);try{await H(e.id),await N.mutate(),O(t.deleteWorkflowSuccess)}catch(e){E(e instanceof Error?e.message:t.deleteWorkflowFailed)}}},[N,t]),ge=N.isLoading||P.isLoading,_e=N.error?.message??P.error?.message??null;return{language:e,localeTag:n,labels:t,hasToken:s,searchQuery:p,setSearchQuery:ce,workflowFilterId:m,setWorkflowFilterId:V,triggerFilter:h,setTriggerFilter:U,definitions:I,filteredDefinitions:oe,runs:ae,selectedRunId:L,selectedRunView:R.view,selectedRunLoading:R.loading,selectedRunError:R.error?.message??null,openRunDetails:G,closeRunDetails:K,openRunInChat:q,pickStartOpen:y,setPickStartOpen:b,startDefinition:_,setStartDefinition:v,detailDefinition:x,setDetailDefinition:S,manageOpen:C,setManageOpen:w,actionError:T,actionFeedback:D,starting:k,savingWorkflow:j,loading:ge,error:_e,stats:F.data,refreshAll:ue,submitStart:de,cancelRun:fe,retryRun:pe,saveCustomWorkflow:he,removeCustomWorkflow:Y}}function Vt(){let e=(0,Q.c)(2),t=Bt(),n;return e[0]===t?n=e[1]:(n=(0,$.jsx)(It,{vm:t}),e[0]=t,e[1]=n),n}export{Vt as WorkflowsPage};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { serializeAgentToolResultForSse } from '../service-inbound-utils.js';
|
|
2
|
-
import type { EmbeddedStreamEvent } from './types.js';
|
|
3
|
-
export type GatewaySseEvent = {
|
|
4
|
-
type: string;
|
|
5
|
-
[key: string]: unknown;
|
|
6
|
-
};
|
|
7
|
-
/** Map embedded pi events to gateway / webchat SSE shape. */
|
|
8
|
-
export declare function mapEmbeddedEventToGatewaySse(event: EmbeddedStreamEvent): GatewaySseEvent | null;
|
|
9
|
-
export declare function mapEmbeddedToolEndResult(result: unknown): ReturnType<typeof serializeAgentToolResultForSse>;
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { serializeAgentToolResultForSse } from "../service-inbound-utils.js";
|
|
2
|
-
//#region src/agent/embedded/map-stream-events.ts
|
|
3
|
-
/** Map embedded pi events to gateway / webchat SSE shape. */
|
|
4
|
-
function mapEmbeddedEventToGatewaySse(event) {
|
|
5
|
-
switch (event.type) {
|
|
6
|
-
case "token": return {
|
|
7
|
-
type: "token",
|
|
8
|
-
content: event.content
|
|
9
|
-
};
|
|
10
|
-
case "thinking": return event.status ? {
|
|
11
|
-
type: "thinking",
|
|
12
|
-
status: event.status
|
|
13
|
-
} : {
|
|
14
|
-
type: "thinking",
|
|
15
|
-
content: event.content,
|
|
16
|
-
delta: true
|
|
17
|
-
};
|
|
18
|
-
case "tool_start": return {
|
|
19
|
-
type: "tool_start",
|
|
20
|
-
toolName: event.toolName,
|
|
21
|
-
toolCallId: event.toolCallId,
|
|
22
|
-
args: event.args
|
|
23
|
-
};
|
|
24
|
-
case "tool_end": return {
|
|
25
|
-
type: "tool_end",
|
|
26
|
-
toolName: event.toolName,
|
|
27
|
-
toolCallId: event.toolCallId,
|
|
28
|
-
isError: event.isError,
|
|
29
|
-
result: event.result
|
|
30
|
-
};
|
|
31
|
-
case "tool_update": return {
|
|
32
|
-
type: "tool_update",
|
|
33
|
-
toolName: event.toolName,
|
|
34
|
-
toolCallId: event.toolCallId,
|
|
35
|
-
details: event.details
|
|
36
|
-
};
|
|
37
|
-
case "message_end": return { type: "message_end" };
|
|
38
|
-
case "progress": return {
|
|
39
|
-
type: "progress",
|
|
40
|
-
stage: event.stage,
|
|
41
|
-
message: event.message
|
|
42
|
-
};
|
|
43
|
-
case "compaction": return {
|
|
44
|
-
type: "compaction",
|
|
45
|
-
status: event.status,
|
|
46
|
-
tokensBefore: event.tokensBefore,
|
|
47
|
-
tokensAfter: event.tokensAfter,
|
|
48
|
-
summary: event.summary
|
|
49
|
-
};
|
|
50
|
-
case "error": return {
|
|
51
|
-
type: "error",
|
|
52
|
-
content: event.content
|
|
53
|
-
};
|
|
54
|
-
default: return null;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
function mapEmbeddedToolEndResult(result) {
|
|
58
|
-
return serializeAgentToolResultForSse(result);
|
|
59
|
-
}
|
|
60
|
-
//#endregion
|
|
61
|
-
export { mapEmbeddedEventToGatewaySse, mapEmbeddedToolEndResult };
|
|
62
|
-
|
|
63
|
-
//# sourceMappingURL=map-stream-events.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"map-stream-events.js","names":[],"sources":["../../../../src/agent/embedded/map-stream-events.ts"],"sourcesContent":["import { serializeAgentToolResultForSse } from '../service-inbound-utils.js';\nimport type { EmbeddedStreamEvent } from './types.js';\n\nexport type GatewaySseEvent = { type: string; [key: string]: unknown };\n\n/** Map embedded pi events to gateway / webchat SSE shape. */\nexport function mapEmbeddedEventToGatewaySse(event: EmbeddedStreamEvent): GatewaySseEvent | null {\n switch (event.type) {\n case 'token':\n return { type: 'token', content: event.content };\n case 'thinking':\n return event.status\n ? { type: 'thinking', status: event.status }\n : { type: 'thinking', content: event.content, delta: true };\n case 'tool_start':\n return {\n type: 'tool_start',\n toolName: event.toolName,\n toolCallId: event.toolCallId,\n args: event.args,\n };\n case 'tool_end':\n return {\n type: 'tool_end',\n toolName: event.toolName,\n toolCallId: event.toolCallId,\n isError: event.isError,\n result: event.result,\n };\n case 'tool_update':\n return {\n type: 'tool_update',\n toolName: event.toolName,\n toolCallId: event.toolCallId,\n details: event.details,\n };\n case 'message_end':\n return { type: 'message_end' };\n case 'progress':\n return { type: 'progress', stage: event.stage, message: event.message };\n case 'compaction':\n return {\n type: 'compaction',\n status: event.status,\n tokensBefore: event.tokensBefore,\n tokensAfter: event.tokensAfter,\n summary: event.summary,\n };\n case 'error':\n return { type: 'error', content: event.content };\n default:\n return null;\n }\n}\n\nexport function mapEmbeddedToolEndResult(\n result: unknown,\n): ReturnType<typeof serializeAgentToolResultForSse> {\n return serializeAgentToolResultForSse(result);\n}\n"],"mappings":";;;AAMA,SAAgB,6BAA6B,OAAoD;AAC/F,SAAQ,MAAM,MAAd;EACE,KAAK,QACH,QAAO;GAAE,MAAM;GAAS,SAAS,MAAM;GAAS;EAClD,KAAK,WACH,QAAO,MAAM,SACT;GAAE,MAAM;GAAY,QAAQ,MAAM;GAAQ,GAC1C;GAAE,MAAM;GAAY,SAAS,MAAM;GAAS,OAAO;GAAM;EAC/D,KAAK,aACH,QAAO;GACL,MAAM;GACN,UAAU,MAAM;GAChB,YAAY,MAAM;GAClB,MAAM,MAAM;GACb;EACH,KAAK,WACH,QAAO;GACL,MAAM;GACN,UAAU,MAAM;GAChB,YAAY,MAAM;GAClB,SAAS,MAAM;GACf,QAAQ,MAAM;GACf;EACH,KAAK,cACH,QAAO;GACL,MAAM;GACN,UAAU,MAAM;GAChB,YAAY,MAAM;GAClB,SAAS,MAAM;GAChB;EACH,KAAK,cACH,QAAO,EAAE,MAAM,eAAe;EAChC,KAAK,WACH,QAAO;GAAE,MAAM;GAAY,OAAO,MAAM;GAAO,SAAS,MAAM;GAAS;EACzE,KAAK,aACH,QAAO;GACL,MAAM;GACN,QAAQ,MAAM;GACd,cAAc,MAAM;GACpB,aAAa,MAAM;GACnB,SAAS,MAAM;GAChB;EACH,KAAK,QACH,QAAO;GAAE,MAAM;GAAS,SAAS,MAAM;GAAS;EAClD,QACE,QAAO;;;AAIb,SAAgB,yBACd,QACmD;AACnD,QAAO,+BAA+B,OAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dock.js","names":[],"sources":["../../../src/channels/dock.ts"],"sourcesContent":["/**\n * Lightweight channel surface for gateway/UI/shared code without importing\n * GrammY or full plugin implementations (channel dock pattern).\n */\n\nimport type { ChannelCapabilities } from './plugin-types.js';\nimport { getChatChannelMeta, type ChatChannelId, isChatChannelId } from './registry.js';\n\nexport interface ChannelDock {\n id: string;\n label: string;\n description: string;\n capabilities: ChannelCapabilities;\n outbound?: {\n textChunkLimit?: number;\n };\n queue?: {\n debounceMs?: number;\n };\n}\n\nexport function getChannelDock(channelId: string): ChannelDock | undefined {\n if (!isChatChannelId(channelId)) {\n return undefined;\n }\n const meta = getChatChannelMeta(channelId);\n return {\n id: meta.id,\n label: meta.label,\n description: meta.description,\n capabilities: meta.capabilities,\n ...(meta.dock?.outbound && { outbound: meta.dock.outbound }),\n ...(meta.dock?.queue && { queue: meta.dock.queue }),\n };\n}\n\nexport function getDockForBuiltinChannel(id: ChatChannelId): ChannelDock {\n return getChannelDock(id)!;\n}\n"],"mappings":";;AAqBA,SAAgB,eAAe,WAA4C;AACzE,KAAI,CAAC,gBAAgB,UAAU,CAC7B;CAEF,MAAM,OAAO,mBAAmB,UAAU;AAC1C,QAAO;EACL,IAAI,KAAK;EACT,OAAO,KAAK;EACZ,aAAa,KAAK;EAClB,cAAc,KAAK;EACnB,GAAI,KAAK,MAAM,YAAY,EAAE,UAAU,KAAK,KAAK,UAAU;EAC3D,GAAI,KAAK,MAAM,SAAS,EAAE,OAAO,KAAK,KAAK,OAAO;EACnD;;AAGH,SAAgB,yBAAyB,IAAgC;AACvE,QAAO,eAAe,GAAG"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in channel plugins shipped with the core binary.
|
|
3
|
-
* Manifest: each extensions/<name>/package.json field `xopc.bundledChannel`.
|
|
4
|
-
* Generated: src/generated/bundled-channel-plugins.ts (pnpm run generate:bundled-channels).
|
|
5
|
-
*
|
|
6
|
-
* Side-effect: registers the channel config validator into the config loader so
|
|
7
|
-
* that loadConfig() can validate channel sections without a static import cycle:
|
|
8
|
-
* loader → validate-channel-configs → bundled-channel-plugins →
|
|
9
|
-
* telegram/command-handler → providers → sync-provider-auth → loader
|
|
10
|
-
*/
|
|
11
|
-
export { bundledChannelPlugins } from '../../generated/bundled-channel-plugins.js';
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { init_loader, registerChannelConfigValidator } from "../../config/loader.js";
|
|
2
|
-
import { bundledChannelPlugins } from "../../generated/bundled-channel-plugins.js";
|
|
3
|
-
import { assertChannelPluginConfigs } from "../../config/validate-channel-configs.js";
|
|
4
|
-
//#region src/channels/plugins/bundled.ts
|
|
5
|
-
init_loader();
|
|
6
|
-
registerChannelConfigValidator(assertChannelPluginConfigs);
|
|
7
|
-
//#endregion
|
|
8
|
-
export { bundledChannelPlugins };
|
|
9
|
-
|
|
10
|
-
//# sourceMappingURL=bundled.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundled.js","names":[],"sources":["../../../../src/channels/plugins/bundled.ts"],"sourcesContent":["/**\n * Built-in channel plugins shipped with the core binary.\n * Manifest: each extensions/<name>/package.json field `xopc.bundledChannel`.\n * Generated: src/generated/bundled-channel-plugins.ts (pnpm run generate:bundled-channels).\n *\n * Side-effect: registers the channel config validator into the config loader so\n * that loadConfig() can validate channel sections without a static import cycle:\n * loader → validate-channel-configs → bundled-channel-plugins →\n * telegram/command-handler → providers → sync-provider-auth → loader\n */\n\nimport { registerChannelConfigValidator } from '../../config/loader.js';\nimport { assertChannelPluginConfigs } from '../../config/validate-channel-configs.js';\n\nregisterChannelConfigValidator(assertChannelPluginConfigs);\n\nexport { bundledChannelPlugins } from '../../generated/bundled-channel-plugins.js';\n"],"mappings":";;;;aAWwE;AAGxE,+BAA+B,2BAA2B"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in chat channel registry: stable ordering and UI-facing metadata.
|
|
3
|
-
* Extension-provided channels register separately; keep protocol IDs aligned.
|
|
4
|
-
*/
|
|
5
|
-
import type { ChannelCapabilities } from './plugin-types.js';
|
|
6
|
-
export declare const CHAT_CHANNEL_ORDER: readonly ["telegram", "weixin", "feishu"];
|
|
7
|
-
export type ChatChannelId = (typeof CHAT_CHANNEL_ORDER)[number];
|
|
8
|
-
export interface ChatChannelMeta {
|
|
9
|
-
id: ChatChannelId;
|
|
10
|
-
label: string;
|
|
11
|
-
description: string;
|
|
12
|
-
capabilities: ChannelCapabilities;
|
|
13
|
-
/** Optional UI/dock tuning (queue debounce, outbound chunk size). */
|
|
14
|
-
dock?: {
|
|
15
|
-
outbound?: {
|
|
16
|
-
textChunkLimit?: number;
|
|
17
|
-
};
|
|
18
|
-
queue?: {
|
|
19
|
-
debounceMs?: number;
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
export declare function getChatChannelMeta(id: ChatChannelId): ChatChannelMeta;
|
|
24
|
-
export declare function isChatChannelId(id: string): id is ChatChannelId;
|
|
25
|
-
export declare function listChatChannelMeta(): ChatChannelMeta[];
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
//#region src/channels/registry.ts
|
|
2
|
-
const CHAT_CHANNEL_ORDER = [
|
|
3
|
-
"telegram",
|
|
4
|
-
"weixin",
|
|
5
|
-
"feishu"
|
|
6
|
-
];
|
|
7
|
-
const CHAT_CHANNEL_META = {
|
|
8
|
-
telegram: {
|
|
9
|
-
id: "telegram",
|
|
10
|
-
label: "Telegram",
|
|
11
|
-
description: "Telegram Bot API (GrammY)",
|
|
12
|
-
capabilities: {
|
|
13
|
-
chatTypes: [
|
|
14
|
-
"direct",
|
|
15
|
-
"group",
|
|
16
|
-
"channel",
|
|
17
|
-
"thread"
|
|
18
|
-
],
|
|
19
|
-
reactions: true,
|
|
20
|
-
threads: true,
|
|
21
|
-
media: true,
|
|
22
|
-
polls: false,
|
|
23
|
-
nativeCommands: true,
|
|
24
|
-
blockStreaming: true
|
|
25
|
-
},
|
|
26
|
-
dock: {
|
|
27
|
-
outbound: { textChunkLimit: 4e3 },
|
|
28
|
-
queue: { debounceMs: 300 }
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
weixin: {
|
|
32
|
-
id: "weixin",
|
|
33
|
-
label: "Weixin",
|
|
34
|
-
description: "WeChat via Tencent ilink (QR login)",
|
|
35
|
-
capabilities: {
|
|
36
|
-
chatTypes: ["direct"],
|
|
37
|
-
reactions: false,
|
|
38
|
-
threads: false,
|
|
39
|
-
media: true,
|
|
40
|
-
polls: false,
|
|
41
|
-
nativeCommands: false,
|
|
42
|
-
blockStreaming: true
|
|
43
|
-
},
|
|
44
|
-
dock: {
|
|
45
|
-
outbound: { textChunkLimit: 4e3 },
|
|
46
|
-
queue: { debounceMs: 0 }
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
feishu: {
|
|
50
|
-
id: "feishu",
|
|
51
|
-
label: "Feishu",
|
|
52
|
-
description: "Feishu/Lark enterprise messaging (Socket Mode)",
|
|
53
|
-
capabilities: {
|
|
54
|
-
chatTypes: ["direct", "channel"],
|
|
55
|
-
reactions: true,
|
|
56
|
-
threads: true,
|
|
57
|
-
media: true,
|
|
58
|
-
polls: false,
|
|
59
|
-
nativeCommands: false,
|
|
60
|
-
blockStreaming: false,
|
|
61
|
-
edit: true,
|
|
62
|
-
reply: true
|
|
63
|
-
},
|
|
64
|
-
dock: {
|
|
65
|
-
outbound: { textChunkLimit: 4e3 },
|
|
66
|
-
queue: { debounceMs: 350 }
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
function getChatChannelMeta(id) {
|
|
71
|
-
return CHAT_CHANNEL_META[id];
|
|
72
|
-
}
|
|
73
|
-
function isChatChannelId(id) {
|
|
74
|
-
return CHAT_CHANNEL_ORDER.includes(id);
|
|
75
|
-
}
|
|
76
|
-
function listChatChannelMeta() {
|
|
77
|
-
return CHAT_CHANNEL_ORDER.map((id) => CHAT_CHANNEL_META[id]);
|
|
78
|
-
}
|
|
79
|
-
//#endregion
|
|
80
|
-
export { CHAT_CHANNEL_ORDER, getChatChannelMeta, isChatChannelId, listChatChannelMeta };
|
|
81
|
-
|
|
82
|
-
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","names":[],"sources":["../../../src/channels/registry.ts"],"sourcesContent":["/**\n * Built-in chat channel registry: stable ordering and UI-facing metadata.\n * Extension-provided channels register separately; keep protocol IDs aligned.\n */\n\nimport type { ChannelCapabilities } from './plugin-types.js';\n\nexport const CHAT_CHANNEL_ORDER = ['telegram', 'weixin', 'feishu'] as const;\n\nexport type ChatChannelId = (typeof CHAT_CHANNEL_ORDER)[number];\n\nexport interface ChatChannelMeta {\n id: ChatChannelId;\n label: string;\n description: string;\n capabilities: ChannelCapabilities;\n /** Optional UI/dock tuning (queue debounce, outbound chunk size). */\n dock?: {\n outbound?: { textChunkLimit?: number };\n queue?: { debounceMs?: number };\n };\n}\n\nconst DEFAULT_CAPABILITIES: ChannelCapabilities = {\n chatTypes: ['direct', 'group', 'channel', 'thread'],\n reactions: true,\n threads: true,\n media: true,\n polls: false,\n nativeCommands: true,\n blockStreaming: true,\n};\n\nconst WEIXIN_CAPABILITIES: ChannelCapabilities = {\n chatTypes: ['direct'],\n reactions: false,\n threads: false,\n media: true,\n polls: false,\n nativeCommands: false,\n blockStreaming: true,\n};\n\nconst FEISHU_CAPABILITIES: ChannelCapabilities = {\n chatTypes: ['direct', 'channel'],\n reactions: true,\n threads: true,\n media: true,\n polls: false,\n nativeCommands: false,\n blockStreaming: false,\n edit: true,\n reply: true,\n};\n\nconst CHAT_CHANNEL_META: Record<ChatChannelId, ChatChannelMeta> = {\n telegram: {\n id: 'telegram',\n label: 'Telegram',\n description: 'Telegram Bot API (GrammY)',\n capabilities: DEFAULT_CAPABILITIES,\n dock: {\n outbound: { textChunkLimit: 4000 },\n queue: { debounceMs: 300 },\n },\n },\n weixin: {\n id: 'weixin',\n label: 'Weixin',\n description: 'WeChat via Tencent ilink (QR login)',\n capabilities: WEIXIN_CAPABILITIES,\n dock: {\n outbound: { textChunkLimit: 4000 },\n queue: { debounceMs: 0 },\n },\n },\n feishu: {\n id: 'feishu',\n label: 'Feishu',\n description: 'Feishu/Lark enterprise messaging (Socket Mode)',\n capabilities: FEISHU_CAPABILITIES,\n dock: {\n outbound: { textChunkLimit: 4000 },\n queue: { debounceMs: 350 },\n },\n },\n};\n\nexport function getChatChannelMeta(id: ChatChannelId): ChatChannelMeta {\n return CHAT_CHANNEL_META[id];\n}\n\nexport function isChatChannelId(id: string): id is ChatChannelId {\n return (CHAT_CHANNEL_ORDER as readonly string[]).includes(id);\n}\n\nexport function listChatChannelMeta(): ChatChannelMeta[] {\n return CHAT_CHANNEL_ORDER.map((id) => CHAT_CHANNEL_META[id]);\n}\n"],"mappings":";AAOA,MAAa,qBAAqB;CAAC;CAAY;CAAU;CAAS;AAgDlE,MAAM,oBAA4D;CAChE,UAAU;EACR,IAAI;EACJ,OAAO;EACP,aAAa;EACb,cAAc;GApChB,WAAW;IAAC;IAAU;IAAS;IAAW;IAAS;GACnD,WAAW;GACX,SAAS;GACT,OAAO;GACP,OAAO;GACP,gBAAgB;GAChB,gBAAgB;GA8BoB;EAClC,MAAM;GACJ,UAAU,EAAE,gBAAgB,KAAM;GAClC,OAAO,EAAE,YAAY,KAAK;GAC3B;EACF;CACD,QAAQ;EACN,IAAI;EACJ,OAAO;EACP,aAAa;EACb,cAAc;GApChB,WAAW,CAAC,SAAS;GACrB,WAAW;GACX,SAAS;GACT,OAAO;GACP,OAAO;GACP,gBAAgB;GAChB,gBAAgB;GA8BmB;EACjC,MAAM;GACJ,UAAU,EAAE,gBAAgB,KAAM;GAClC,OAAO,EAAE,YAAY,GAAG;GACzB;EACF;CACD,QAAQ;EACN,IAAI;EACJ,OAAO;EACP,aAAa;EACb,cAAc;GApChB,WAAW,CAAC,UAAU,UAAU;GAChC,WAAW;GACX,SAAS;GACT,OAAO;GACP,OAAO;GACP,gBAAgB;GAChB,gBAAgB;GAChB,MAAM;GACN,OAAO;GA4B4B;EACjC,MAAM;GACJ,UAAU,EAAE,gBAAgB,KAAM;GAClC,OAAO,EAAE,YAAY,KAAK;GAC3B;EACF;CACF;AAED,SAAgB,mBAAmB,IAAoC;AACrE,QAAO,kBAAkB;;AAG3B,SAAgB,gBAAgB,IAAiC;AAC/D,QAAQ,mBAAyC,SAAS,GAAG;;AAG/D,SAAgB,sBAAyC;AACvD,QAAO,mBAAmB,KAAK,OAAO,kBAAkB,IAAI"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export type LocalizedTextMap = Record<string, string>;
|
|
3
|
-
export type LocalizedText = string | LocalizedTextMap;
|
|
4
|
-
export declare const LocalizedTextSchema: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
|
|
5
|
-
export declare function normalizeLocalizedText(value: LocalizedText | undefined): LocalizedText | undefined;
|
|
6
|
-
export declare function resolveLocalizedText(value: LocalizedText | undefined, locale: string | undefined, fallbackLocale?: string): string | undefined;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
//#region src/config/localized-text.ts
|
|
4
|
-
function normalizeLocalizedText(value) {
|
|
5
|
-
if (typeof value === "string") {
|
|
6
|
-
const trimmed = value.trim();
|
|
7
|
-
return trimmed ? trimmed : void 0;
|
|
8
|
-
}
|
|
9
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) return;
|
|
10
|
-
const entries = Object.entries(value).map(([locale, text]) => [locale.trim(), String(text).trim()]).filter(([locale, text]) => locale.length > 0 && text.length > 0);
|
|
11
|
-
if (entries.length === 0) return;
|
|
12
|
-
return Object.fromEntries(entries);
|
|
13
|
-
}
|
|
14
|
-
function resolveLocalizedText(value, locale, fallbackLocale = "en") {
|
|
15
|
-
if (typeof value === "string") return value.trim() || void 0;
|
|
16
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) return;
|
|
17
|
-
const normalizedLocale = locale?.trim();
|
|
18
|
-
const candidates = [
|
|
19
|
-
normalizedLocale,
|
|
20
|
-
normalizedLocale?.split("-")[0],
|
|
21
|
-
fallbackLocale,
|
|
22
|
-
fallbackLocale.split("-")[0]
|
|
23
|
-
].filter((candidate) => Boolean(candidate));
|
|
24
|
-
for (const candidate of candidates) {
|
|
25
|
-
const text = value[candidate]?.trim();
|
|
26
|
-
if (text) return text;
|
|
27
|
-
}
|
|
28
|
-
for (const text of Object.values(value)) {
|
|
29
|
-
const trimmed = text.trim();
|
|
30
|
-
if (trimmed) return trimmed;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
var LOCALE_KEY_PATTERN, LocalizedTextSchema;
|
|
34
|
-
var init_localized_text = __esmMin((() => {
|
|
35
|
-
LOCALE_KEY_PATTERN = /^[a-z]{2}(?:-[A-Za-z]{2,8})?$/;
|
|
36
|
-
LocalizedTextSchema = z.union([z.string(), z.record(z.string().regex(LOCALE_KEY_PATTERN), z.string())]);
|
|
37
|
-
}));
|
|
38
|
-
//#endregion
|
|
39
|
-
init_localized_text();
|
|
40
|
-
export { LocalizedTextSchema, init_localized_text, normalizeLocalizedText, resolveLocalizedText };
|
|
41
|
-
|
|
42
|
-
//# sourceMappingURL=localized-text.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"localized-text.js","names":[],"sources":["../../../src/config/localized-text.ts"],"sourcesContent":["import { z } from 'zod';\n\nexport type LocalizedTextMap = Record<string, string>;\nexport type LocalizedText = string | LocalizedTextMap;\n\nconst LOCALE_KEY_PATTERN = /^[a-z]{2}(?:-[A-Za-z]{2,8})?$/;\n\nexport const LocalizedTextSchema = z.union([\n z.string(),\n z.record(z.string().regex(LOCALE_KEY_PATTERN), z.string()),\n]);\n\nexport function normalizeLocalizedText(value: LocalizedText | undefined): LocalizedText | undefined {\n if (typeof value === 'string') {\n const trimmed = value.trim();\n return trimmed ? trimmed : undefined;\n }\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return undefined;\n }\n const entries = Object.entries(value)\n .map(([locale, text]) => [locale.trim(), String(text).trim()] as const)\n .filter(([locale, text]) => locale.length > 0 && text.length > 0);\n if (entries.length === 0) {\n return undefined;\n }\n return Object.fromEntries(entries);\n}\n\nexport function resolveLocalizedText(\n value: LocalizedText | undefined,\n locale: string | undefined,\n fallbackLocale = 'en',\n): string | undefined {\n if (typeof value === 'string') {\n const trimmed = value.trim();\n return trimmed || undefined;\n }\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return undefined;\n }\n\n const normalizedLocale = locale?.trim();\n const localeBase = normalizedLocale?.split('-')[0];\n const fallbackBase = fallbackLocale.split('-')[0];\n const candidates = [\n normalizedLocale,\n localeBase,\n fallbackLocale,\n fallbackBase,\n ].filter((candidate): candidate is string => Boolean(candidate));\n\n for (const candidate of candidates) {\n const text = value[candidate]?.trim();\n if (text) {\n return text;\n }\n }\n\n for (const text of Object.values(value)) {\n const trimmed = text.trim();\n if (trimmed) {\n return trimmed;\n }\n }\n return undefined;\n}\n"],"mappings":";;;AAYA,SAAgB,uBAAuB,OAA6D;AAClG,KAAI,OAAO,UAAU,UAAU;EAC7B,MAAM,UAAU,MAAM,MAAM;AAC5B,SAAO,UAAU,UAAU,KAAA;;AAE7B,KAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,MAAM,CAC7D;CAEF,MAAM,UAAU,OAAO,QAAQ,MAAM,CAClC,KAAK,CAAC,QAAQ,UAAU,CAAC,OAAO,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,CAAC,CAAU,CACtE,QAAQ,CAAC,QAAQ,UAAU,OAAO,SAAS,KAAK,KAAK,SAAS,EAAE;AACnE,KAAI,QAAQ,WAAW,EACrB;AAEF,QAAO,OAAO,YAAY,QAAQ;;AAGpC,SAAgB,qBACd,OACA,QACA,iBAAiB,MACG;AACpB,KAAI,OAAO,UAAU,SAEnB,QADgB,MAAM,MACR,IAAI,KAAA;AAEpB,KAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,MAAM,CAC7D;CAGF,MAAM,mBAAmB,QAAQ,MAAM;CAGvC,MAAM,aAAa;EACjB;EAHiB,kBAAkB,MAAM,IAAI,CAAC;EAK9C;EAJmB,eAAe,MAAM,IAAI,CAAC;EAM9C,CAAC,QAAQ,cAAmC,QAAQ,UAAU,CAAC;AAEhE,MAAK,MAAM,aAAa,YAAY;EAClC,MAAM,OAAO,MAAM,YAAY,MAAM;AACrC,MAAI,KACF,QAAO;;AAIX,MAAK,MAAM,QAAQ,OAAO,OAAO,MAAM,EAAE;EACvC,MAAM,UAAU,KAAK,MAAM;AAC3B,MAAI,QACF,QAAO;;;;;AAzDP,sBAAqB;AAEd,uBAAsB,EAAE,MAAM,CACzC,EAAE,QAAQ,EACV,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,mBAAmB,EAAE,EAAE,QAAQ,CAAC,CAC3D,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Built-in channel plugins: sources under extensions/*, compiled to dist/extensions/*.
|
|
3
|
-
* Regenerate: pnpm run generate:bundled-channels
|
|
4
|
-
*/
|
|
5
|
-
import type { ChannelPlugin } from '../channels/plugin-types.js';
|
|
6
|
-
import { telegramPlugin } from '../../extensions/telegram/src/index.js';
|
|
7
|
-
import { weixinPlugin } from '../../extensions/weixin/src/index.js';
|
|
8
|
-
import { feishuPlugin } from '../../extensions/feishu/src/index.js';
|
|
9
|
-
export { telegramPlugin, weixinPlugin, feishuPlugin };
|
|
10
|
-
export declare const bundledChannelPlugins: ChannelPlugin[];
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { telegramPlugin } from "../../extensions/telegram/src/plugin.js";
|
|
2
|
-
import "../../extensions/telegram/src/index.js";
|
|
3
|
-
import { weixinPlugin } from "../../extensions/weixin/src/plugin.js";
|
|
4
|
-
import "../../extensions/weixin/src/index.js";
|
|
5
|
-
import { feishuPlugin } from "../../extensions/feishu/src/plugin.js";
|
|
6
|
-
import "../../extensions/feishu/src/index.js";
|
|
7
|
-
//#region src/generated/bundled-channel-plugins.ts
|
|
8
|
-
const bundledChannelPlugins = [
|
|
9
|
-
telegramPlugin,
|
|
10
|
-
weixinPlugin,
|
|
11
|
-
feishuPlugin
|
|
12
|
-
];
|
|
13
|
-
//#endregion
|
|
14
|
-
export { bundledChannelPlugins, feishuPlugin, telegramPlugin, weixinPlugin };
|
|
15
|
-
|
|
16
|
-
//# sourceMappingURL=bundled-channel-plugins.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundled-channel-plugins.js","names":[],"sources":["../../../src/generated/bundled-channel-plugins.ts"],"sourcesContent":["/**\n * Built-in channel plugins: sources under extensions/*, compiled to dist/extensions/*.\n * Regenerate: pnpm run generate:bundled-channels\n */\n\nimport type { ChannelPlugin } from '../channels/plugin-types.js';\nimport { telegramPlugin } from '../../extensions/telegram/src/index.js';\nimport { weixinPlugin } from '../../extensions/weixin/src/index.js';\nimport { feishuPlugin } from '../../extensions/feishu/src/index.js';\n\nexport { telegramPlugin, weixinPlugin, feishuPlugin };\nexport const bundledChannelPlugins: ChannelPlugin[] = [telegramPlugin, weixinPlugin, feishuPlugin];\n"],"mappings":";;;;;;;AAWA,MAAa,wBAAyC;CAAC;CAAgB;CAAc;CAAa"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Assembles incremental LLM streaming deltas into displayable text.
|
|
3
|
-
*
|
|
4
|
-
* Tracks per-run thinking + content text, composes them for display,
|
|
5
|
-
* and handles finalization.
|
|
6
|
-
*/
|
|
7
|
-
export declare class StreamAssembler {
|
|
8
|
-
private runs;
|
|
9
|
-
private getOrCreate;
|
|
10
|
-
/** Append a content token delta. Returns updated display text, or null if unchanged. */
|
|
11
|
-
ingestToken(runId: string, delta: string, showThinking: boolean): string | null;
|
|
12
|
-
/** Update thinking content. Returns updated display text, or null if unchanged. */
|
|
13
|
-
ingestThinking(runId: string, content: string, isDelta: boolean, showThinking: boolean): string | null;
|
|
14
|
-
/** Finalize a run and return the final display text. */
|
|
15
|
-
finalize(runId: string, showThinking: boolean): string;
|
|
16
|
-
/** Get current display text for a run. */
|
|
17
|
-
getDisplayText(runId: string): string;
|
|
18
|
-
/** Drop a run without finalizing. */
|
|
19
|
-
drop(runId: string): void;
|
|
20
|
-
/** Clear all run state. */
|
|
21
|
-
clear(): void;
|
|
22
|
-
}
|