@xopcai/xopc 0.0.99 → 0.0.101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/src/account-manager.d.ts +3 -3
- package/dist/extensions/telegram/src/account-manager.js +8 -8
- package/dist/extensions/telegram/src/account-manager.js.map +1 -1
- package/dist/extensions/telegram/src/actions/message-actions.d.ts +4 -0
- package/dist/extensions/telegram/src/actions/message-actions.js +71 -0
- package/dist/extensions/telegram/src/actions/message-actions.js.map +1 -0
- package/dist/extensions/telegram/src/adapters/config-adapter.js +9 -1
- package/dist/extensions/telegram/src/adapters/config-adapter.js.map +1 -1
- package/dist/extensions/telegram/src/adapters/config-surface.js +1 -1
- package/dist/extensions/telegram/src/adapters/config-surface.js.map +1 -1
- package/dist/extensions/telegram/src/adapters/outbound-adapter.d.ts +2 -1
- package/dist/extensions/telegram/src/adapters/outbound-adapter.js +18 -4
- package/dist/extensions/telegram/src/adapters/outbound-adapter.js.map +1 -1
- package/dist/extensions/telegram/src/adapters/security-adapter.js +2 -1
- package/dist/extensions/telegram/src/adapters/security-adapter.js.map +1 -1
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js +90 -6
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js.map +1 -1
- package/dist/extensions/telegram/src/adapters/types.d.ts +9 -1
- package/dist/extensions/telegram/src/api-root.d.ts +4 -0
- package/dist/extensions/telegram/src/api-root.js +42 -0
- package/dist/extensions/telegram/src/api-root.js.map +1 -0
- package/dist/extensions/telegram/src/approval-delivery.d.ts +9 -0
- package/dist/extensions/telegram/src/approval-delivery.js +36 -0
- package/dist/extensions/telegram/src/approval-delivery.js.map +1 -0
- package/dist/extensions/telegram/src/approval-store.d.ts +25 -0
- package/dist/extensions/telegram/src/approval-store.js +61 -0
- package/dist/extensions/telegram/src/approval-store.js.map +1 -0
- package/dist/extensions/telegram/src/config-schema.d.ts +185 -35
- package/dist/extensions/telegram/src/config-schema.js +67 -45
- package/dist/extensions/telegram/src/config-schema.js.map +1 -1
- package/dist/extensions/telegram/src/conversation-id.d.ts +6 -0
- package/dist/extensions/telegram/src/conversation-id.js +18 -0
- package/dist/extensions/telegram/src/conversation-id.js.map +1 -0
- package/dist/extensions/telegram/src/doctor.d.ts +5 -0
- package/dist/extensions/telegram/src/doctor.js +80 -0
- package/dist/extensions/telegram/src/doctor.js.map +1 -0
- package/dist/extensions/telegram/src/exec-approval-handler.d.ts +7 -0
- package/dist/extensions/telegram/src/exec-approval-handler.js +36 -0
- package/dist/extensions/telegram/src/exec-approval-handler.js.map +1 -0
- package/dist/extensions/telegram/src/exec-approvals.d.ts +8 -0
- package/dist/extensions/telegram/src/exec-approvals.js +20 -0
- package/dist/extensions/telegram/src/exec-approvals.js.map +1 -0
- package/dist/extensions/telegram/src/focus-handler.d.ts +12 -0
- package/dist/extensions/telegram/src/focus-handler.js +55 -0
- package/dist/extensions/telegram/src/focus-handler.js.map +1 -0
- package/dist/extensions/telegram/src/group-config-resolver.d.ts +12 -0
- package/dist/extensions/telegram/src/group-config-resolver.js +17 -0
- package/dist/extensions/telegram/src/group-config-resolver.js.map +1 -0
- package/dist/extensions/telegram/src/inbound-coalescer.d.ts +15 -0
- package/dist/extensions/telegram/src/inbound-coalescer.js +107 -0
- package/dist/extensions/telegram/src/inbound-coalescer.js.map +1 -0
- package/dist/extensions/telegram/src/inbound-processor.d.ts +1 -0
- package/dist/extensions/telegram/src/inbound-processor.js +41 -4
- package/dist/extensions/telegram/src/inbound-processor.js.map +1 -1
- package/dist/extensions/telegram/src/network-errors.d.ts +2 -0
- package/dist/extensions/telegram/src/network-errors.js +23 -0
- package/dist/extensions/telegram/src/network-errors.js.map +1 -0
- package/dist/extensions/telegram/src/plugin.d.ts +11 -0
- package/dist/extensions/telegram/src/plugin.js +191 -57
- package/dist/extensions/telegram/src/plugin.js.map +1 -1
- package/dist/extensions/telegram/src/polling-session.d.ts +17 -0
- package/dist/extensions/telegram/src/polling-session.js +112 -0
- package/dist/extensions/telegram/src/polling-session.js.map +1 -0
- package/dist/extensions/telegram/src/proxy-fetch.d.ts +2 -0
- package/dist/extensions/telegram/src/proxy-fetch.js +14 -0
- package/dist/extensions/telegram/src/proxy-fetch.js.map +1 -0
- package/dist/extensions/telegram/src/reactions.d.ts +14 -0
- package/dist/extensions/telegram/src/reactions.js +48 -0
- package/dist/extensions/telegram/src/reactions.js.map +1 -0
- package/dist/extensions/telegram/src/reply-params.d.ts +15 -0
- package/dist/extensions/telegram/src/reply-params.js +28 -0
- package/dist/extensions/telegram/src/reply-params.js.map +1 -0
- package/dist/extensions/telegram/src/startup-errors.d.ts +3 -0
- package/dist/extensions/telegram/src/startup-errors.js +27 -0
- package/dist/extensions/telegram/src/startup-errors.js.map +1 -0
- package/dist/extensions/telegram/src/telegram-actions.d.ts +25 -0
- package/dist/extensions/telegram/src/telegram-actions.js +65 -0
- package/dist/extensions/telegram/src/telegram-actions.js.map +1 -0
- package/dist/extensions/telegram/src/thread-bindings.d.ts +15 -0
- package/dist/extensions/telegram/src/thread-bindings.js +22 -0
- package/dist/extensions/telegram/src/thread-bindings.js.map +1 -0
- package/dist/extensions/telegram/src/token-resolver.d.ts +8 -0
- package/dist/extensions/telegram/src/token-resolver.js +34 -0
- package/dist/extensions/telegram/src/token-resolver.js.map +1 -0
- package/dist/extensions/telegram/src/update-offset-store.d.ts +9 -0
- package/dist/extensions/telegram/src/update-offset-store.js +66 -0
- package/dist/extensions/telegram/src/update-offset-store.js.map +1 -0
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +5 -3
- package/dist/extensions/weixin/src/api/api.js.map +1 -1
- package/dist/gateway/static/root/assets/{agents-4KTK-Ku7.js → agents-u8cmUfGQ.js} +2 -2
- package/dist/gateway/static/root/assets/{apps-page-DkgInY2w.js → apps-page-DF8m9cUE.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-preview-renderer-DBAxQXb-.js → attachment-preview-renderer-CybMSIoS.js} +2 -2
- package/dist/gateway/static/root/assets/{attachment-process-heavy-Csq3TrrP.js → attachment-process-heavy-RnGYy9bC.js} +2 -2
- package/dist/gateway/static/root/assets/channels-settings-BM3doRvi.js +1 -0
- package/dist/gateway/static/root/assets/channels-status-swr-ah4zWEIP.js +8 -0
- package/dist/gateway/static/root/assets/{cron-api-BRDli2Mm.js → cron-api-DgMuL_2b.js} +1 -1
- package/dist/gateway/static/root/assets/{cron-page-BzEr5Za8.js → cron-page-COfUPKfq.js} +1 -1
- package/dist/gateway/static/root/assets/{dist-BsHh1vX0.js → dist-Dzy3Q0ZH.js} +1 -1
- package/dist/gateway/static/root/assets/{docx-preview-Dxj1EkCO.js → docx-preview-CajIk2FR.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-TWt5q_ef.js → extension-debug-page-kyxxefKh.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-C3kV8ZvZ.js → extension-page-BVbCBHoI.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-Csy9LNC6.js → extension-settings-page-t1lb2A7v.js} +1 -1
- package/dist/gateway/static/root/assets/{fetch-BLLOP2CM.js → fetch-drJUxxKP.js} +1 -1
- package/dist/gateway/static/root/assets/{field-primitives-MXbM8HvY.js → field-primitives-6Vo1Yga4.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-config-api-CkoyqfRx.js → heartbeat-config-api-BF3psu4O.js} +1 -1
- package/dist/gateway/static/root/assets/index-DjNDHzwG.css +1 -0
- package/dist/gateway/static/root/assets/index-WAyKAilR.js +4840 -0
- package/dist/gateway/static/root/assets/{logs-page-B2vY41ph.js → logs-page-BTVPXcHV.js} +1 -1
- package/dist/gateway/static/root/assets/{note-detail-page-B7qE5pkO.js → note-detail-page-DqSAg_5Z.js} +1 -1
- package/dist/gateway/static/root/assets/{note-time-NBBReVR4.js → note-time-FSOjchic.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-CsWYaqYM.js → notes-page-DkRX7BE2.js} +1 -1
- package/dist/gateway/static/root/assets/{sessions-page-BPGY3SCT.js → sessions-page-Khdw35Zk.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-advanced-gate-DtA451RM.js → settings-advanced-gate-DspC8oEm.js} +2 -2
- package/dist/gateway/static/root/assets/{settings-form-section-DYR_SPlX.js → settings-form-section-DuxvUuur.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-BJUgZQzN.js → settings-page-DN8JBZ8F.js} +2 -2
- package/dist/gateway/static/root/assets/{share-preview-page-3u8VFmdo.js → share-preview-page-UNAcbiMb.js} +2 -2
- package/dist/gateway/static/root/assets/{skills-page-DuyhcH4U.js → skills-page-ByYT0fXZ.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-e2q2yjs4.js → theme-store-B6KXPHgK.js} +1 -1
- package/dist/gateway/static/root/assets/url-q28QhI7l.js +3 -0
- package/dist/gateway/static/root/assets/{utils-B4Vw3fnc.js → utils-DK_1H47k.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-BFY67Hhp.js → voice-api-key-field-BYN2EIMs.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-page.utils-yUJ5jexd.js → workflow-page.utils-Bi19YNTr.js} +1 -1
- package/dist/gateway/static/root/assets/{workflows-page-DIMHCpNt.js → workflows-page-DP57FEKW.js} +1 -1
- package/dist/gateway/static/root/index.html +5 -5
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +4 -0
- package/dist/src/agent/agent-manager.js +84 -4
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/child-agent-factory.d.ts +1 -0
- package/dist/src/agent/child-agent-factory.js +13 -10
- package/dist/src/agent/child-agent-factory.js.map +1 -1
- package/dist/src/agent/embedded/run-for-session.d.ts +1 -0
- package/dist/src/agent/embedded/run-for-session.js +2 -0
- package/dist/src/agent/embedded/run-for-session.js.map +1 -1
- package/dist/src/agent/embedded/run-turn.js +1 -17
- package/dist/src/agent/embedded/run-turn.js.map +1 -1
- package/dist/src/agent/embedded/session-runner.js +3 -1
- package/dist/src/agent/embedded/session-runner.js.map +1 -1
- package/dist/src/agent/embedded/session-tool-result-guard.d.ts +1 -0
- package/dist/src/agent/embedded/session-tool-result-guard.js +1 -0
- package/dist/src/agent/embedded/session-tool-result-guard.js.map +1 -1
- package/dist/src/agent/inbound/attachment-pipeline.d.ts +37 -0
- package/dist/src/agent/inbound/attachment-pipeline.js +169 -0
- package/dist/src/agent/inbound/attachment-pipeline.js.map +1 -0
- package/dist/src/agent/inbound/turn-dispatcher.d.ts +3 -5
- package/dist/src/agent/inbound/turn-dispatcher.js +1 -2
- package/dist/src/agent/inbound/turn-dispatcher.js.map +1 -1
- package/dist/src/agent/memory/index.d.ts +2 -0
- package/dist/src/agent/memory/index.js +2 -1
- package/dist/src/agent/memory/memory-flush.d.ts +27 -0
- package/dist/src/agent/memory/memory-flush.js +124 -0
- package/dist/src/agent/memory/memory-flush.js.map +1 -0
- package/dist/src/agent/messaging/outbound-coordinator.js +2 -1
- package/dist/src/agent/messaging/outbound-coordinator.js.map +1 -1
- package/dist/src/agent/messaging/stream-manager.d.ts +2 -0
- package/dist/src/agent/messaging/stream-manager.js +3 -0
- package/dist/src/agent/messaging/stream-manager.js.map +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.d.ts +0 -4
- package/dist/src/agent/orchestration/agent-orchestrator.js +40 -107
- package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
- package/dist/src/agent/prompt/contribution.d.ts +9 -0
- package/dist/src/agent/prompt/contribution.js +1 -0
- package/dist/src/agent/prompt/safety.js +0 -10
- package/dist/src/agent/prompt/safety.js.map +1 -1
- package/dist/src/agent/prompt/sanitize-for-prompt.d.ts +6 -0
- package/dist/src/agent/prompt/sanitize-for-prompt.js +13 -0
- package/dist/src/agent/prompt/sanitize-for-prompt.js.map +1 -0
- package/dist/src/agent/prompt/sections/behavior.d.ts +5 -0
- package/dist/src/agent/prompt/sections/behavior.js +50 -0
- package/dist/src/agent/prompt/sections/behavior.js.map +1 -0
- package/dist/src/agent/prompt/sections/memory-skills.d.ts +9 -0
- package/dist/src/agent/prompt/sections/memory-skills.js +59 -0
- package/dist/src/agent/prompt/sections/memory-skills.js.map +1 -0
- package/dist/src/agent/prompt/sections/messaging-runtime.d.ts +16 -0
- package/dist/src/agent/prompt/sections/messaging-runtime.js +69 -0
- package/dist/src/agent/prompt/sections/messaging-runtime.js.map +1 -0
- package/dist/src/agent/prompt/sections/project-context.d.ts +16 -0
- package/dist/src/agent/prompt/sections/project-context.js +58 -0
- package/dist/src/agent/prompt/sections/project-context.js.map +1 -0
- package/dist/src/agent/prompt/sections/tooling.d.ts +5 -0
- package/dist/src/agent/prompt/sections/tooling.js +119 -0
- package/dist/src/agent/prompt/sections/tooling.js.map +1 -0
- package/dist/src/agent/prompt/sections/workspace-runtime.d.ts +11 -0
- package/dist/src/agent/prompt/sections/workspace-runtime.js +32 -0
- package/dist/src/agent/prompt/sections/workspace-runtime.js.map +1 -0
- package/dist/src/agent/prompt/service-prompt-builder.d.ts +13 -0
- package/dist/src/agent/prompt/service-prompt-builder.js +54 -13
- package/dist/src/agent/prompt/service-prompt-builder.js.map +1 -1
- package/dist/src/agent/prompt/subagent-context.d.ts +15 -0
- package/dist/src/agent/prompt/subagent-context.js +68 -0
- package/dist/src/agent/prompt/subagent-context.js.map +1 -0
- package/dist/src/agent/prompt/system-prompt-params.d.ts +53 -0
- package/dist/src/agent/prompt/system-prompt-params.js +74 -0
- package/dist/src/agent/prompt/system-prompt-params.js.map +1 -0
- package/dist/src/agent/prompt/system-prompt.d.ts +22 -11
- package/dist/src/agent/prompt/system-prompt.js +79 -193
- package/dist/src/agent/prompt/system-prompt.js.map +1 -1
- package/dist/src/agent/prompt/types.d.ts +3 -0
- package/dist/src/agent/service/build-direct-message-content.d.ts +5 -21
- package/dist/src/agent/service/build-direct-message-content.js +11 -64
- package/dist/src/agent/service/build-direct-message-content.js.map +1 -1
- package/dist/src/agent/service/direct-turn-helpers.d.ts +1 -1
- package/dist/src/agent/service/direct-turn-helpers.js +7 -0
- package/dist/src/agent/service/direct-turn-helpers.js.map +1 -1
- package/dist/src/agent/service/process-direct-one-shot.d.ts +3 -3
- package/dist/src/agent/service/process-direct-one-shot.js +22 -17
- package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
- package/dist/src/agent/service/process-direct-streaming.d.ts +6 -20
- package/dist/src/agent/service/process-direct-streaming.js +39 -40
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service/webchat-tts.d.ts +4 -9
- package/dist/src/agent/service/webchat-tts.js +9 -20
- package/dist/src/agent/service/webchat-tts.js.map +1 -1
- package/dist/src/agent/service.d.ts +8 -19
- package/dist/src/agent/service.js +53 -11
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/tools/factory.js +2 -0
- 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 +2 -1
- package/dist/src/agent/tools/media-read-tool.d.ts +2 -0
- package/dist/src/agent/tools/media-read-tool.js +89 -0
- package/dist/src/agent/tools/media-read-tool.js.map +1 -0
- package/dist/src/auth/credentials.js +0 -1
- package/dist/src/auth/credentials.js.map +1 -1
- package/dist/src/channels/attachments/attachment-classifiers.d.ts +8 -0
- package/dist/src/channels/attachments/attachment-classifiers.js +11 -0
- package/dist/src/channels/attachments/attachment-classifiers.js.map +1 -0
- package/dist/src/channels/attachments/inbound-persist.d.ts +13 -34
- package/dist/src/channels/attachments/inbound-persist.js +34 -102
- package/dist/src/channels/attachments/inbound-persist.js.map +1 -1
- package/dist/src/channels/attachments/inbound-types.d.ts +13 -0
- package/dist/src/channels/attachments/inbound-types.js +30 -0
- package/dist/src/channels/attachments/inbound-types.js.map +1 -0
- package/dist/src/channels/attachments/outbound-tts-persist.d.ts +3 -12
- package/dist/src/channels/attachments/outbound-tts-persist.js +28 -48
- package/dist/src/channels/attachments/outbound-tts-persist.js.map +1 -1
- package/dist/src/channels/attachments/voice-stt-webchat.d.ts +3 -3
- package/dist/src/channels/attachments/voice-stt-webchat.js +8 -14
- package/dist/src/channels/attachments/voice-stt-webchat.js.map +1 -1
- package/dist/src/channels/channel-domain.d.ts +30 -2
- package/dist/src/channels/exec-approval-runtime.d.ts +29 -0
- package/dist/src/channels/exec-approval-runtime.js +30 -0
- package/dist/src/channels/exec-approval-runtime.js.map +1 -0
- package/dist/src/channels/index.js +1 -1
- package/dist/src/channels/plugin-types.d.ts +1 -0
- package/dist/src/channels/transport-types.d.ts +2 -2
- package/dist/src/cli/bin.d.ts +1 -0
- package/dist/src/cli/bin.js +1 -0
- package/dist/src/cli/bin.js.map +1 -1
- package/dist/src/cli/commands/channels.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/database-schema.js +62 -0
- package/dist/src/cli/commands/doctor/checks/database-schema.js.map +1 -0
- package/dist/src/cli/commands/doctor/flow.js +2 -0
- package/dist/src/cli/commands/doctor/flow.js.map +1 -1
- package/dist/src/cli/commands/init.js +2 -57
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/onboard/channels/registry.js +1 -1
- package/dist/src/cli/commands/setup.js +6 -5
- package/dist/src/cli/commands/setup.js.map +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +1 -2
- package/dist/src/cli/utils/init-workspace-core.js.map +1 -1
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/paths.d.ts +0 -13
- package/dist/src/config/paths.js +1 -20
- package/dist/src/config/paths.js.map +1 -1
- package/dist/src/config/rules.js +1 -1
- package/dist/src/config/schema.d.ts +24 -0
- package/dist/src/config/schema.js +33 -2
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/cron/executor.js +2 -2
- package/dist/src/gateway/hono/lib/config-payload.js +1 -1
- package/dist/src/gateway/hono/oauth-async.js +36 -3
- package/dist/src/gateway/hono/oauth-async.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/channels.js +3 -3
- package/dist/src/gateway/hono/routes/config-patch/channels.js.map +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/media.d.ts +3 -0
- package/dist/src/gateway/hono/routes/media.js +50 -0
- package/dist/src/gateway/hono/routes/media.js.map +1 -0
- package/dist/src/gateway/hono/routes/sessions.js +6 -0
- package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
- package/dist/src/gateway/hono/routes/workspace.js +1 -87
- package/dist/src/gateway/hono/routes/workspace.js.map +1 -1
- package/dist/src/gateway/service/sessions-api.js +3 -0
- package/dist/src/gateway/service/sessions-api.js.map +1 -1
- package/dist/src/infra/http-proxy-env.d.ts +4 -0
- package/dist/src/infra/http-proxy-env.js +23 -0
- package/dist/src/infra/http-proxy-env.js.map +1 -0
- package/dist/src/media/index.d.ts +5 -0
- package/dist/src/media/index.js +5 -0
- package/dist/src/media/media-reference.d.ts +23 -0
- package/dist/src/media/media-reference.js +34 -0
- package/dist/src/media/media-reference.js.map +1 -0
- package/dist/src/media/paths.d.ts +5 -0
- package/dist/src/media/paths.js +20 -0
- package/dist/src/media/paths.js.map +1 -0
- package/dist/src/media/session-references.d.ts +8 -0
- package/dist/src/media/session-references.js +45 -0
- package/dist/src/media/session-references.js.map +1 -0
- package/dist/src/media/store.d.ts +19 -0
- package/dist/src/media/store.js +131 -0
- package/dist/src/media/store.js.map +1 -0
- package/dist/src/media/types.d.ts +34 -0
- package/dist/src/media/types.js +1 -0
- package/dist/src/media/uri.d.ts +15 -0
- package/dist/src/media/uri.js +51 -0
- package/dist/src/media/uri.js.map +1 -0
- package/dist/src/session/session-title.js +6 -3
- package/dist/src/session/session-title.js.map +1 -1
- package/dist/src/session/store.js +1 -1
- package/dist/src/session/store.js.map +1 -1
- package/dist/src/session/types.d.ts +12 -7
- package/dist/src/session/types.js.map +1 -1
- package/dist/src/storage/sqlite/index.d.ts +4 -1
- package/dist/src/storage/sqlite/index.js +6 -2
- package/dist/src/storage/sqlite/migrations/002_add_flush_columns.sql +3 -0
- package/dist/src/storage/sqlite/migrations/discover.d.ts +4 -0
- package/dist/src/storage/sqlite/migrations/discover.js +38 -0
- package/dist/src/storage/sqlite/migrations/discover.js.map +1 -0
- package/dist/src/storage/sqlite/migrations/discover.ts +52 -0
- package/dist/src/storage/sqlite/migrations/errors.d.ts +11 -0
- package/dist/src/storage/sqlite/migrations/errors.js +27 -0
- package/dist/src/storage/sqlite/migrations/errors.js.map +1 -0
- package/dist/src/storage/sqlite/migrations/errors.ts +32 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +22 -0
- package/dist/src/storage/sqlite/migrations/runner.js +97 -0
- package/dist/src/storage/sqlite/migrations/runner.js.map +1 -0
- package/dist/src/storage/sqlite/migrations/runner.ts +153 -0
- package/dist/src/storage/sqlite/migrations/types.d.ts +12 -0
- package/dist/src/storage/sqlite/migrations/types.js +1 -0
- package/dist/src/storage/sqlite/migrations/types.ts +13 -0
- package/dist/src/storage/sqlite/row-mappers.d.ts +4 -0
- package/dist/src/storage/sqlite/row-mappers.js +4 -0
- package/dist/src/storage/sqlite/row-mappers.js.map +1 -1
- package/dist/src/storage/sqlite/schema-version.d.ts +6 -0
- package/dist/src/storage/sqlite/schema-version.js +29 -0
- package/dist/src/storage/sqlite/schema-version.js.map +1 -0
- package/dist/src/storage/sqlite/schema.d.ts +5 -3
- package/dist/src/storage/sqlite/schema.js +24 -28
- package/dist/src/storage/sqlite/schema.js.map +1 -1
- package/dist/src/storage/sqlite/schema.sql +2 -0
- 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 +7 -3
- package/dist/src/storage/sqlite/session-repository.js.map +1 -1
- package/package.json +3 -3
- package/dist/gateway/static/root/assets/channels-settings-BxW1Xio4.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-Cxm6AvQO.js +0 -8
- package/dist/gateway/static/root/assets/index-BJDmBCSl.css +0 -1
- package/dist/gateway/static/root/assets/index-Cbg5TS5m.js +0 -4707
- package/dist/gateway/static/root/assets/url-DpFBIyN9.js +0 -3
- package/dist/src/cli/commands/onboard/workspace.d.ts +0 -14
- package/dist/src/cli/commands/onboard/workspace.js +0 -33
- package/dist/src/cli/commands/onboard/workspace.js.map +0 -1
- package/dist/src/cli/utils/workspace.d.ts +0 -35
- package/dist/src/cli/utils/workspace.js +0 -72
- package/dist/src/cli/utils/workspace.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ci as e,di as t,li as n,oi as r}from"./index-
|
|
1
|
+
import{ci as e,di as t,li as n,oi as r}from"./index-WAyKAilR.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 +1 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./url-DpFBIyN9.js";import{o as a}from"./vendor-swr-BIWyz7Rc.js";import{a as o,n as s}from"./fetch-BLLOP2CM.js";import{$i as c,Jo as l,Mo as u,Oa as d,Q as f,U as p,Z as m,Zr as h,di as g,dr as _,li as v,lo as y,ui as b,ur as x}from"./index-Cbg5TS5m.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&&!(p(n)&&p(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 p;t[5]!==s||t[6]!==o?(p=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:[f(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]=p):p=t[7];let m=`img-cred-key-${n}`,g;t[8]!==a||t[9]!==i||t[10]!==l||t[11]!==m||t[12]!==r?(g=(0,M.jsx)(h,{id:m,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]=m,t[12]=r,t[13]=g):g=t[13];let _;return t[14]!==d||t[15]!==p||t[16]!==g?(_=(0,M.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[d,p,g]}),t[14]=d,t[15]=p,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:f,credNoopFlash:p,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)(l,{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]!==p||t[35]!==f||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:[f?(0,M.jsx)(`span`,{className:`text-sm text-fg-muted`,children:O.credentialsSaved}):null,p?(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)(d,{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]=p,t[35]=f,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)(u,{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)(l,{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:m(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
|
+
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-q28QhI7l.js";import{o as a}from"./vendor-swr-BIWyz7Rc.js";import{a as o,n as s}from"./fetch-drJUxxKP.js";import{$i as c,Jo as l,Mo as u,Oa as d,Q as f,U as p,Z as m,Zr as h,di as g,dr as _,li as v,lo as y,ui as b,ur as x}from"./index-WAyKAilR.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&&!(p(n)&&p(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 p;t[5]!==s||t[6]!==o?(p=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:[f(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]=p):p=t[7];let m=`img-cred-key-${n}`,g;t[8]!==a||t[9]!==i||t[10]!==l||t[11]!==m||t[12]!==r?(g=(0,M.jsx)(h,{id:m,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]=m,t[12]=r,t[13]=g):g=t[13];let _;return t[14]!==d||t[15]!==p||t[16]!==g?(_=(0,M.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[d,p,g]}),t[14]=d,t[15]=p,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:f,credNoopFlash:p,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)(l,{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]!==p||t[35]!==f||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:[f?(0,M.jsx)(`span`,{className:`text-sm text-fg-muted`,children:O.credentialsSaved}):null,p?(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)(d,{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]=p,t[35]=f,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)(u,{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)(l,{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:m(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 +1 @@
|
|
|
1
|
-
import{Qn as e,c as t,s as n}from"./index-
|
|
1
|
+
import{Qn as e,c as t,s as n}from"./index-WAyKAilR.js";function r(e){return e===`zh`?`zh`:`en`}function i(e,t){let n=r(t),i=n===`en`?void 0:e.metadata.i18n?.[n],a=i?.examplePrompts&&i.examplePrompts.length>0?i.examplePrompts:e.metadata.examplePrompts??[];return{description:o(i?.description,e.description),whenToUse:s(i?.whenToUse,e.metadata.whenToUse),examplePrompts:a}}function a(e){return[e.name,e.title,e.description,e.metadata.whenToUse??``,...(e.metadata.examplePrompts??[]).map(e=>e.text),...Object.values(e.metadata.i18n??{}).flatMap(e=>[e.description??``,e.whenToUse??``,...(e.examplePrompts??[]).map(e=>e.text)]),...e.metadata.tags].join(` `).toLowerCase()}function o(e,t){return e?.trim()||t}function s(e,t){return e?.trim()||t?.trim()||void 0}function c(e,t,n){if(e.field===`goal`){t(e.text);return}n(t=>({...t,[e.field]:e.text}))}function l(e,t){return e.replace(/\{\{(\w+)\}\}/g,(e,n)=>String(t[n]??``))}function u(e,t){return e?new Intl.DateTimeFormat(t,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`}).format(new Date(e)):`—`}function d(e){if(!e||!Number.isFinite(e))return`—`;let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;if(n<60)return r?`${n}m ${r}s`:`${n}m`;let i=Math.floor(n/60),a=n%60;return a?`${i}h ${a}m`:`${i}h`}function f(e){return e===`succeeded`?`bg-emerald-500/15 text-emerald-700 dark:text-emerald-300`:e===`failed`||e===`timeout`?`bg-red-500/15 text-red-700 dark:text-red-300`:e===`cancelled`?`bg-amber-500/15 text-amber-700 dark:text-amber-300`:`bg-accent-soft text-accent-fg`}function p(e){let r=e.metadata.tags.map(e=>e.toLowerCase());for(let e of n)if(t[e].some(e=>r.includes(e)))return e;return null}function m(e,n){if(n===`all`)return!0;let r=e.metadata.tags.map(e=>e.toLowerCase());return t[n].some(e=>r.includes(e))}function h(e){let t=new Map;for(let n of e){let e=p(n)??`uncategorized`,r=t.get(e)??[];r.push(n),t.set(e,r)}let r=[];for(let e of n){let n=t.get(e);n?.length&&r.push({category:e,items:n})}let i=t.get(`uncategorized`);return i?.length&&r.push({category:`uncategorized`,items:i}),r}function g(e,t){return t===`all`?!0:t===`builtin`?e.metadata.builtIn:e.metadata.source===`user`}function _(e,t,n,r){let i=t.trim().toLowerCase();return e.filter(e=>!m(e,n)||!g(e,r)?!1:i?a(e).includes(i):!0)}function v(e){if(e==null)return``;if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function y(e){if(e==null)return e;if(typeof e==`object`&&e&&`raw`in e){let t=e.raw;return t===void 0?e:t}return e}function b(t){let n=t.run.metadata?.sessionKey?.trim();return n&&e(n)?n:null}function x(e){return`/chat/${encodeURIComponent(e)}`}function S(e){let t=e.source;return t&&typeof t==`object`&&`kind`in t&&typeof t.kind==`string`?t.kind:e.metadata?.triggerSource?.trim()||`unknown`}function C(e,t){let n=t.trim();return!n||n===`all`?!0:S(e)===n}function w(e){let t={};for(let[n,r]of Object.entries(e)){let e=r.trim();e&&(t[n]=e)}return Object.keys(t).length>0?t:void 0}export{h as a,b as c,v as d,x as f,u as i,C as l,i as m,_ as n,l as o,c as p,d as r,y as s,w as t,f as u};
|
package/dist/gateway/static/root/assets/{workflows-page-DIMHCpNt.js → workflows-page-DP57FEKW.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
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-DpFBIyN9.js";import{i as o}from"./vendor-swr-BIWyz7Rc.js";import{t as s}from"./copy-Dv6d4Dvw.js";import{a as c}from"./fetch-BLLOP2CM.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-Cbg5TS5m.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-yUJ5jexd.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 = {
|
|
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-q28QhI7l.js";import{i as o}from"./vendor-swr-BIWyz7Rc.js";import{t as s}from"./copy-Dv6d4Dvw.js";import{a as c}from"./fetch-drJUxxKP.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-WAyKAilR.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-Bi19YNTr.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
2
|
name: 'my_workflow',
|
|
3
3
|
description: 'Describe what this workflow does.',
|
|
4
4
|
whenToUse: 'When the user asks for …',
|
|
@@ -9,21 +9,21 @@
|
|
|
9
9
|
<link rel="icon" type="image/svg+xml" href="/logo.svg" />
|
|
10
10
|
<link rel="apple-touch-icon" href="/logo.svg" />
|
|
11
11
|
<title>xopc</title>
|
|
12
|
-
<script type="module" crossorigin src="/assets/index-
|
|
12
|
+
<script type="module" crossorigin src="/assets/index-WAyKAilR.js"></script>
|
|
13
13
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
|
|
15
15
|
<link rel="modulepreload" crossorigin href="/assets/vendor-codemirror-DYoKfS8f.js">
|
|
16
16
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-BOUWij0V.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="/assets/Combination-HAlzriaz.js">
|
|
18
18
|
<link rel="modulepreload" crossorigin href="/assets/vendor-swr-BIWyz7Rc.js">
|
|
19
|
-
<link rel="modulepreload" crossorigin href="/assets/url-
|
|
19
|
+
<link rel="modulepreload" crossorigin href="/assets/url-q28QhI7l.js">
|
|
20
20
|
<link rel="modulepreload" crossorigin href="/assets/createLucideIcon-DPHK1VkS.js">
|
|
21
21
|
<link rel="modulepreload" crossorigin href="/assets/circle-check-C23XjkUj.js">
|
|
22
22
|
<link rel="modulepreload" crossorigin href="/assets/copy-Dv6d4Dvw.js">
|
|
23
|
-
<link rel="modulepreload" crossorigin href="/assets/theme-store-
|
|
24
|
-
<link rel="modulepreload" crossorigin href="/assets/fetch-
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/assets/theme-store-B6KXPHgK.js">
|
|
24
|
+
<link rel="modulepreload" crossorigin href="/assets/fetch-drJUxxKP.js">
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/toast-z0toXu32.js">
|
|
26
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
26
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DjNDHzwG.css">
|
|
27
27
|
</head>
|
|
28
28
|
<body>
|
|
29
29
|
<div id="root"></div>
|
package/dist/package.js
CHANGED
|
@@ -180,6 +180,10 @@ export declare class AgentManager implements AgentInstanceGateway {
|
|
|
180
180
|
* Get agent count
|
|
181
181
|
*/
|
|
182
182
|
getAgentCount(): number;
|
|
183
|
+
/**
|
|
184
|
+
* Merge per-turn channel system prompt (e.g. Telegram group/topic override) into the agent.
|
|
185
|
+
*/
|
|
186
|
+
applyTurnChannelSystemPrompt(sessionKey: string, channelSystemPrompt: string): void;
|
|
183
187
|
/**
|
|
184
188
|
* Set thinking level for a session's agent
|
|
185
189
|
*/
|
|
@@ -28,6 +28,7 @@ import { isUnderManagedSkillsDir } from "./skills/managed-store.js";
|
|
|
28
28
|
import { MemoryPrefetchCoordinator } from "./memory/prefetch-coordinator.js";
|
|
29
29
|
import { WorkspaceRuntimeRegistry } from "./workspace-runtime/registry.js";
|
|
30
30
|
import { BackgroundReviewCoordinator } from "./background-review/coordinator.js";
|
|
31
|
+
import { maybeRequestChannelExecApproval } from "../channels/exec-approval-runtime.js";
|
|
31
32
|
import { Agent } from "@earendil-works/pi-agent-core";
|
|
32
33
|
import { basename, resolve, sep } from "node:path";
|
|
33
34
|
//#region src/agent/agent-manager.ts
|
|
@@ -339,7 +340,11 @@ var AgentManager = class {
|
|
|
339
340
|
profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
|
|
340
341
|
systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
|
|
341
342
|
skillAllowlist: instance.effectiveProfile.skillsAllowlist,
|
|
342
|
-
registeredToolNames: instance.registeredToolNames
|
|
343
|
+
registeredToolNames: instance.registeredToolNames,
|
|
344
|
+
sessionKey: instance.sessionKey,
|
|
345
|
+
modelRef: instance.effectiveProfile.primaryModelRef?.trim() || this.defaultModel,
|
|
346
|
+
agentId: instance.effectiveProfile.agentId,
|
|
347
|
+
thinkingLevel: instance.effectiveProfile.thinkingDefault ?? this.config.thinkingLevel ?? "medium"
|
|
343
348
|
});
|
|
344
349
|
instance.agent.state.systemPrompt = newPrompt;
|
|
345
350
|
}
|
|
@@ -362,7 +367,11 @@ var AgentManager = class {
|
|
|
362
367
|
profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
|
|
363
368
|
systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
|
|
364
369
|
skillAllowlist: instance.effectiveProfile.skillsAllowlist,
|
|
365
|
-
registeredToolNames: instance.registeredToolNames
|
|
370
|
+
registeredToolNames: instance.registeredToolNames,
|
|
371
|
+
sessionKey: instance.sessionKey,
|
|
372
|
+
modelRef: instance.effectiveProfile.primaryModelRef?.trim() || this.defaultModel,
|
|
373
|
+
agentId: instance.effectiveProfile.agentId,
|
|
374
|
+
thinkingLevel: instance.effectiveProfile.thinkingDefault ?? this.config.thinkingLevel ?? "medium"
|
|
366
375
|
});
|
|
367
376
|
instance.agent.state.systemPrompt = newPrompt;
|
|
368
377
|
}
|
|
@@ -461,6 +470,33 @@ var AgentManager = class {
|
|
|
461
470
|
return this.agents.size;
|
|
462
471
|
}
|
|
463
472
|
/**
|
|
473
|
+
* Merge per-turn channel system prompt (e.g. Telegram group/topic override) into the agent.
|
|
474
|
+
*/
|
|
475
|
+
applyTurnChannelSystemPrompt(sessionKey, channelSystemPrompt) {
|
|
476
|
+
const trimmed = channelSystemPrompt.trim();
|
|
477
|
+
if (!trimmed) return;
|
|
478
|
+
const instance = this.agents.get(sessionKey);
|
|
479
|
+
if (!instance) return;
|
|
480
|
+
const cfg = this.config.config;
|
|
481
|
+
const rt = this.workspaceRuntimes.getOrCreate(instance.resolvedWorkspacePath);
|
|
482
|
+
const contextFiles = this.resolveContextFilesForSession(sessionKey, instance.effectiveProfile);
|
|
483
|
+
const modelRef = instance.effectiveProfile.primaryModelRef?.trim() || this.defaultModel;
|
|
484
|
+
const thinkingLevel = instance.effectiveProfile.thinkingDefault ?? this.config.thinkingLevel ?? "medium";
|
|
485
|
+
instance.agent.state.systemPrompt = rt.systemPromptBuilder.build(contextFiles, {
|
|
486
|
+
externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
|
|
487
|
+
workspaceOverride: instance.resolvedWorkspacePath,
|
|
488
|
+
profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
|
|
489
|
+
systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
|
|
490
|
+
skillAllowlist: instance.effectiveProfile.skillsAllowlist,
|
|
491
|
+
registeredToolNames: instance.registeredToolNames,
|
|
492
|
+
sessionKey,
|
|
493
|
+
modelRef,
|
|
494
|
+
agentId: instance.effectiveProfile.agentId,
|
|
495
|
+
thinkingLevel,
|
|
496
|
+
extraSystemPrompt: trimmed
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
464
500
|
* Set thinking level for a session's agent
|
|
465
501
|
*/
|
|
466
502
|
setThinkingLevel(sessionKey, level) {
|
|
@@ -539,7 +575,11 @@ var AgentManager = class {
|
|
|
539
575
|
profileMarkdownPathRoot: resolveAgentProfileDir(this.config.config, profile.agentId),
|
|
540
576
|
systemPromptOverride: profile.systemPromptOverride,
|
|
541
577
|
skillAllowlist: profile.skillsAllowlist,
|
|
542
|
-
registeredToolNames
|
|
578
|
+
registeredToolNames,
|
|
579
|
+
sessionKey,
|
|
580
|
+
modelRef,
|
|
581
|
+
agentId: profile.agentId,
|
|
582
|
+
thinkingLevel
|
|
543
583
|
}),
|
|
544
584
|
model,
|
|
545
585
|
thinkingLevel,
|
|
@@ -549,8 +589,32 @@ var AgentManager = class {
|
|
|
549
589
|
streamFn: createExtensionAwareStreamFn(),
|
|
550
590
|
getApiKey: (provider) => this.resolveApiKeyWithCache(provider),
|
|
551
591
|
beforeToolCall: async ({ toolCall, args }) => {
|
|
552
|
-
if (!this.config.hookRunner) return;
|
|
553
592
|
const toolName = toolCall.name;
|
|
593
|
+
if (toolName === "shell") {
|
|
594
|
+
const ctx = this.config.getCurrentContext();
|
|
595
|
+
const cfg = this.mergedConfig();
|
|
596
|
+
if (ctx && cfg) {
|
|
597
|
+
const command = typeof args?.command === "string" ? args.command : JSON.stringify(args ?? {});
|
|
598
|
+
const accountId = typeof ctx.metadata?.accountId === "string" ? ctx.metadata.accountId : void 0;
|
|
599
|
+
const approval = await maybeRequestChannelExecApproval({
|
|
600
|
+
cfg,
|
|
601
|
+
payload: {
|
|
602
|
+
sessionKey: ctx.sessionKey,
|
|
603
|
+
channel: ctx.channel,
|
|
604
|
+
chatId: ctx.chatId,
|
|
605
|
+
accountId,
|
|
606
|
+
toolName,
|
|
607
|
+
summary: command.slice(0, 500),
|
|
608
|
+
details: { command: command.slice(0, 2e3) }
|
|
609
|
+
}
|
|
610
|
+
});
|
|
611
|
+
if (approval.required && !approval.approved) return {
|
|
612
|
+
block: true,
|
|
613
|
+
reason: approval.reason ?? "Exec approval denied or timed out."
|
|
614
|
+
};
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
if (!this.config.hookRunner) return;
|
|
554
618
|
const parsed = parseMcpToolName(toolName);
|
|
555
619
|
const hookResult = await this.config.hookRunner.runBeforeToolCall(toolName, args ?? {}, {
|
|
556
620
|
sessionKey,
|
|
@@ -582,6 +646,22 @@ var AgentManager = class {
|
|
|
582
646
|
try {
|
|
583
647
|
const model = resolveModel(modelId);
|
|
584
648
|
instance.agent.state.model = model;
|
|
649
|
+
const cfg = this.config.config;
|
|
650
|
+
const rt = this.workspaceRuntimes.getOrCreate(instance.resolvedWorkspacePath);
|
|
651
|
+
const contextFiles = this.resolveContextFilesForSession(sessionKey, instance.effectiveProfile);
|
|
652
|
+
const thinkingLevel = instance.agent.state.thinkingLevel ?? instance.effectiveProfile.thinkingDefault ?? this.config.thinkingLevel ?? "medium";
|
|
653
|
+
instance.agent.state.systemPrompt = rt.systemPromptBuilder.build(contextFiles, {
|
|
654
|
+
externalMemoryInstructions: rt.memoryManager.buildExternalSystemPrompt(),
|
|
655
|
+
workspaceOverride: instance.resolvedWorkspacePath,
|
|
656
|
+
profileMarkdownPathRoot: resolveAgentProfileDir(cfg, instance.effectiveProfile.agentId),
|
|
657
|
+
systemPromptOverride: instance.effectiveProfile.systemPromptOverride,
|
|
658
|
+
skillAllowlist: instance.effectiveProfile.skillsAllowlist,
|
|
659
|
+
registeredToolNames: instance.registeredToolNames,
|
|
660
|
+
sessionKey,
|
|
661
|
+
modelRef: modelId,
|
|
662
|
+
agentId: instance.effectiveProfile.agentId,
|
|
663
|
+
thinkingLevel
|
|
664
|
+
});
|
|
585
665
|
log.info({
|
|
586
666
|
sessionKey,
|
|
587
667
|
modelId
|