@xopcai/xopc 0.0.99 → 0.0.100
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/gateway/static/root/assets/{agents-4KTK-Ku7.js → agents-C5jtBK-H.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-DkgInY2w.js → apps-page-smJl-qf_.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-CH6KgFK6.js +1 -0
- package/dist/gateway/static/root/assets/channels-status-swr-CV70xvY7.js +8 -0
- package/dist/gateway/static/root/assets/{cron-api-BRDli2Mm.js → cron-api-CgBO8B7I.js} +1 -1
- package/dist/gateway/static/root/assets/{cron-page-BzEr5Za8.js → cron-page-Be0cW1cR.js} +1 -1
- package/dist/gateway/static/root/assets/{dist-BsHh1vX0.js → dist-P8HRGUuh.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-TWt5q_ef.js → extension-debug-page-BowuycYu.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-C3kV8ZvZ.js → extension-page-27-Zpv8O.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-Csy9LNC6.js → extension-settings-page-DDFa_rIq.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-BWLssxEb.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-config-api-CkoyqfRx.js → heartbeat-config-api-BVuYNYT_.js} +1 -1
- package/dist/gateway/static/root/assets/index-CRDAmr3W.js +4840 -0
- package/dist/gateway/static/root/assets/index-DjNDHzwG.css +1 -0
- package/dist/gateway/static/root/assets/{logs-page-B2vY41ph.js → logs-page-BDX8IrDQ.js} +1 -1
- package/dist/gateway/static/root/assets/{note-detail-page-B7qE5pkO.js → note-detail-page-BmQ9KeiA.js} +1 -1
- package/dist/gateway/static/root/assets/{note-time-NBBReVR4.js → note-time-14I9Sgqh.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-CsWYaqYM.js → notes-page-BMfP0FFf.js} +1 -1
- package/dist/gateway/static/root/assets/{sessions-page-BPGY3SCT.js → sessions-page-C3scyChq.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-advanced-gate-DtA451RM.js → settings-advanced-gate-2ODuCjHP.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-DYR_SPlX.js → settings-form-section-DUoGKAiW.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-BJUgZQzN.js → settings-page-CttAfOWV.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-3u8VFmdo.js → share-preview-page-B77xqiiI.js} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-DuyhcH4U.js → skills-page-B_bAZGzB.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-e2q2yjs4.js → theme-store-BgCPrmxU.js} +1 -1
- package/dist/gateway/static/root/assets/url-q28QhI7l.js +3 -0
- package/dist/gateway/static/root/assets/{utils-B4Vw3fnc.js → utils-CCGejlcX.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-BFY67Hhp.js → voice-api-key-field-DZzzihcY.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-page.utils-yUJ5jexd.js → workflow-page.utils-D5RMAmT4.js} +1 -1
- package/dist/gateway/static/root/assets/{workflows-page-DIMHCpNt.js → workflows-page-DEYpC6Bv.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 +68 -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 +1 -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/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/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/heartbeat/service.js +1 -1
- package/dist/src/gateway/hono/lib/config-payload.js +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/heartbeat/index.js +1 -1
- 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 +1 -1
- 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
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
//#region extensions/telegram/src/api-root.ts
|
|
2
|
+
const DEFAULT_TELEGRAM_API_ROOT = "https://api.telegram.org";
|
|
3
|
+
const TELEGRAM_BOT_ENDPOINT_SEGMENT_RE = /^bot\d+:[^/]+$/u;
|
|
4
|
+
function isTelegramBotEndpointSegment(segment) {
|
|
5
|
+
try {
|
|
6
|
+
return TELEGRAM_BOT_ENDPOINT_SEGMENT_RE.test(decodeURIComponent(segment));
|
|
7
|
+
} catch {
|
|
8
|
+
return TELEGRAM_BOT_ENDPOINT_SEGMENT_RE.test(segment);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
/** Strip trailing `/bot<token>` from a misconfigured apiRoot URL. */
|
|
12
|
+
function normalizeTelegramApiRoot(apiRoot) {
|
|
13
|
+
const trimmed = apiRoot?.trim();
|
|
14
|
+
if (!trimmed) return DEFAULT_TELEGRAM_API_ROOT;
|
|
15
|
+
let normalized = trimmed.replace(/\/+$/u, "");
|
|
16
|
+
try {
|
|
17
|
+
const url = new URL(normalized);
|
|
18
|
+
const segments = url.pathname.split("/").filter(Boolean);
|
|
19
|
+
if (segments.length > 0 && isTelegramBotEndpointSegment(segments[segments.length - 1] ?? "")) {
|
|
20
|
+
segments.pop();
|
|
21
|
+
url.pathname = segments.length > 0 ? `/${segments.join("/")}` : "/";
|
|
22
|
+
url.search = "";
|
|
23
|
+
url.hash = "";
|
|
24
|
+
normalized = url.toString().replace(/\/+$/u, "");
|
|
25
|
+
}
|
|
26
|
+
} catch {}
|
|
27
|
+
return normalized;
|
|
28
|
+
}
|
|
29
|
+
function hasTelegramBotEndpointApiRoot(apiRoot) {
|
|
30
|
+
if (typeof apiRoot !== "string" || !apiRoot.trim()) return false;
|
|
31
|
+
try {
|
|
32
|
+
const segments = new URL(apiRoot.trim()).pathname.split("/").filter(Boolean);
|
|
33
|
+
const last = segments[segments.length - 1];
|
|
34
|
+
return Boolean(last && isTelegramBotEndpointSegment(last));
|
|
35
|
+
} catch {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
export { DEFAULT_TELEGRAM_API_ROOT, hasTelegramBotEndpointApiRoot, normalizeTelegramApiRoot };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=api-root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-root.js","names":[],"sources":["../../../../extensions/telegram/src/api-root.ts"],"sourcesContent":["export const DEFAULT_TELEGRAM_API_ROOT = 'https://api.telegram.org';\n\nconst TELEGRAM_BOT_ENDPOINT_SEGMENT_RE = /^bot\\d+:[^/]+$/u;\n\nfunction isTelegramBotEndpointSegment(segment: string): boolean {\n try {\n return TELEGRAM_BOT_ENDPOINT_SEGMENT_RE.test(decodeURIComponent(segment));\n } catch {\n return TELEGRAM_BOT_ENDPOINT_SEGMENT_RE.test(segment);\n }\n}\n\n/** Strip trailing `/bot<token>` from a misconfigured apiRoot URL. */\nexport function normalizeTelegramApiRoot(apiRoot?: string): string {\n const trimmed = apiRoot?.trim();\n if (!trimmed) {\n return DEFAULT_TELEGRAM_API_ROOT;\n }\n\n let normalized = trimmed.replace(/\\/+$/u, '');\n try {\n const url = new URL(normalized);\n const segments = url.pathname.split('/').filter(Boolean);\n if (segments.length > 0 && isTelegramBotEndpointSegment(segments[segments.length - 1] ?? '')) {\n segments.pop();\n url.pathname = segments.length > 0 ? `/${segments.join('/')}` : '/';\n url.search = '';\n url.hash = '';\n normalized = url.toString().replace(/\\/+$/u, '');\n }\n } catch {\n // Invalid URLs are caught at config validation; keep trimmed value for runtime callers.\n }\n return normalized;\n}\n\nexport function hasTelegramBotEndpointApiRoot(apiRoot: unknown): boolean {\n if (typeof apiRoot !== 'string' || !apiRoot.trim()) {\n return false;\n }\n try {\n const url = new URL(apiRoot.trim());\n const segments = url.pathname.split('/').filter(Boolean);\n const last = segments[segments.length - 1];\n return Boolean(last && isTelegramBotEndpointSegment(last));\n } catch {\n return false;\n }\n}\n"],"mappings":";AAAA,MAAa,4BAA4B;AAEzC,MAAM,mCAAmC;AAEzC,SAAS,6BAA6B,SAA0B;AAC9D,KAAI;AACF,SAAO,iCAAiC,KAAK,mBAAmB,QAAQ,CAAC;SACnE;AACN,SAAO,iCAAiC,KAAK,QAAQ;;;;AAKzD,SAAgB,yBAAyB,SAA0B;CACjE,MAAM,UAAU,SAAS,MAAM;AAC/B,KAAI,CAAC,QACH,QAAO;CAGT,IAAI,aAAa,QAAQ,QAAQ,SAAS,GAAG;AAC7C,KAAI;EACF,MAAM,MAAM,IAAI,IAAI,WAAW;EAC/B,MAAM,WAAW,IAAI,SAAS,MAAM,IAAI,CAAC,OAAO,QAAQ;AACxD,MAAI,SAAS,SAAS,KAAK,6BAA6B,SAAS,SAAS,SAAS,MAAM,GAAG,EAAE;AAC5F,YAAS,KAAK;AACd,OAAI,WAAW,SAAS,SAAS,IAAI,IAAI,SAAS,KAAK,IAAI,KAAK;AAChE,OAAI,SAAS;AACb,OAAI,OAAO;AACX,gBAAa,IAAI,UAAU,CAAC,QAAQ,SAAS,GAAG;;SAE5C;AAGR,QAAO;;AAGT,SAAgB,8BAA8B,SAA2B;AACvE,KAAI,OAAO,YAAY,YAAY,CAAC,QAAQ,MAAM,CAChD,QAAO;AAET,KAAI;EAEF,MAAM,WAAW,IADD,IAAI,QAAQ,MAAM,CACd,CAAC,SAAS,MAAM,IAAI,CAAC,OAAO,QAAQ;EACxD,MAAM,OAAO,SAAS,SAAS,SAAS;AACxC,SAAO,QAAQ,QAAQ,6BAA6B,KAAK,CAAC;SACpD;AACN,SAAO"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Bot } from 'grammy';
|
|
2
|
+
import type { TelegramPendingApproval } from './approval-store.js';
|
|
3
|
+
import type { Config } from '@xopcai/xopc/config/index.js';
|
|
4
|
+
export declare function deliverTelegramExecApprovalPrompt(params: {
|
|
5
|
+
bot: Bot;
|
|
6
|
+
cfg: Config;
|
|
7
|
+
accountId: string;
|
|
8
|
+
approval: TelegramPendingApproval;
|
|
9
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { createLogger } from "../../../src/utils/logger/index.js";
|
|
2
|
+
import { init_logger } from "../../../src/utils/logger.js";
|
|
3
|
+
import { resolveTelegramExecApprovers } from "./exec-approvals.js";
|
|
4
|
+
import { InlineKeyboard } from "grammy";
|
|
5
|
+
//#region extensions/telegram/src/approval-delivery.ts
|
|
6
|
+
init_logger();
|
|
7
|
+
const log = createLogger("TelegramApprovalDelivery");
|
|
8
|
+
async function deliverTelegramExecApprovalPrompt(params) {
|
|
9
|
+
const approvers = resolveTelegramExecApprovers(params.cfg, params.accountId);
|
|
10
|
+
if (approvers.length === 0) {
|
|
11
|
+
log.warn({ accountId: params.accountId }, "No exec approvers configured");
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const keyboard = new InlineKeyboard().text("✅ Approve", `approval:approve:${params.approval.id}`).text("❌ Deny", `approval:deny:${params.approval.id}`);
|
|
15
|
+
const text = [
|
|
16
|
+
"⚠️ Exec approval required",
|
|
17
|
+
"",
|
|
18
|
+
`Tool: ${params.approval.toolName}`,
|
|
19
|
+
params.approval.summary,
|
|
20
|
+
"",
|
|
21
|
+
`ID: ${params.approval.id}`
|
|
22
|
+
].join("\n");
|
|
23
|
+
for (const approver of approvers) try {
|
|
24
|
+
await params.bot.api.sendMessage(approver, text, { reply_markup: keyboard });
|
|
25
|
+
} catch (err) {
|
|
26
|
+
log.warn({
|
|
27
|
+
err,
|
|
28
|
+
approver,
|
|
29
|
+
approvalId: params.approval.id
|
|
30
|
+
}, "Failed to send approval prompt");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { deliverTelegramExecApprovalPrompt };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=approval-delivery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval-delivery.js","names":[],"sources":["../../../../extensions/telegram/src/approval-delivery.ts"],"sourcesContent":["import type { Bot } from 'grammy';\nimport { InlineKeyboard } from 'grammy';\nimport { createLogger } from '@xopcai/xopc/utils/logger.js';\nimport type { TelegramPendingApproval } from './approval-store.js';\nimport { resolveTelegramExecApprovers } from './exec-approvals.js';\nimport type { Config } from '@xopcai/xopc/config/index.js';\n\nconst log = createLogger('TelegramApprovalDelivery');\n\nexport async function deliverTelegramExecApprovalPrompt(params: {\n bot: Bot;\n cfg: Config;\n accountId: string;\n approval: TelegramPendingApproval;\n}): Promise<void> {\n const approvers = resolveTelegramExecApprovers(params.cfg, params.accountId);\n if (approvers.length === 0) {\n log.warn({ accountId: params.accountId }, 'No exec approvers configured');\n return;\n }\n\n const keyboard = new InlineKeyboard()\n .text('✅ Approve', `approval:approve:${params.approval.id}`)\n .text('❌ Deny', `approval:deny:${params.approval.id}`);\n\n const text = [\n '⚠️ Exec approval required',\n '',\n `Tool: ${params.approval.toolName}`,\n params.approval.summary,\n '',\n `ID: ${params.approval.id}`,\n ].join('\\n');\n\n for (const approver of approvers) {\n try {\n await params.bot.api.sendMessage(approver, text, { reply_markup: keyboard });\n } catch (err) {\n log.warn({ err, approver, approvalId: params.approval.id }, 'Failed to send approval prompt');\n }\n }\n}\n"],"mappings":";;;;;aAE4D;AAK5D,MAAM,MAAM,aAAa,2BAA2B;AAEpD,eAAsB,kCAAkC,QAKtC;CAChB,MAAM,YAAY,6BAA6B,OAAO,KAAK,OAAO,UAAU;AAC5E,KAAI,UAAU,WAAW,GAAG;AAC1B,MAAI,KAAK,EAAE,WAAW,OAAO,WAAW,EAAE,+BAA+B;AACzE;;CAGF,MAAM,WAAW,IAAI,gBAAgB,CAClC,KAAK,aAAa,oBAAoB,OAAO,SAAS,KAAK,CAC3D,KAAK,UAAU,iBAAiB,OAAO,SAAS,KAAK;CAExD,MAAM,OAAO;EACX;EACA;EACA,SAAS,OAAO,SAAS;EACzB,OAAO,SAAS;EAChB;EACA,OAAO,OAAO,SAAS;EACxB,CAAC,KAAK,KAAK;AAEZ,MAAK,MAAM,YAAY,UACrB,KAAI;AACF,QAAM,OAAO,IAAI,IAAI,YAAY,UAAU,MAAM,EAAE,cAAc,UAAU,CAAC;UACrE,KAAK;AACZ,MAAI,KAAK;GAAE;GAAK;GAAU,YAAY,OAAO,SAAS;GAAI,EAAE,iCAAiC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export type TelegramApprovalStatus = 'pending' | 'approved' | 'denied' | 'expired';
|
|
2
|
+
export interface TelegramPendingApproval {
|
|
3
|
+
id: string;
|
|
4
|
+
accountId: string;
|
|
5
|
+
sessionKey: string;
|
|
6
|
+
chatId: string;
|
|
7
|
+
toolName: string;
|
|
8
|
+
summary: string;
|
|
9
|
+
createdAtMs: number;
|
|
10
|
+
expiresAtMs: number;
|
|
11
|
+
status: TelegramApprovalStatus;
|
|
12
|
+
resolve?: (approved: boolean) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function createTelegramPendingApproval(params: {
|
|
15
|
+
accountId: string;
|
|
16
|
+
sessionKey: string;
|
|
17
|
+
chatId: string;
|
|
18
|
+
toolName: string;
|
|
19
|
+
summary: string;
|
|
20
|
+
ttlMs?: number;
|
|
21
|
+
}): TelegramPendingApproval;
|
|
22
|
+
export declare function waitForTelegramApproval(id: string, timeoutMs?: number): Promise<boolean>;
|
|
23
|
+
export declare function resolveTelegramApproval(id: string, approved: boolean): boolean;
|
|
24
|
+
export declare function getTelegramPendingApproval(id: string): TelegramPendingApproval | undefined;
|
|
25
|
+
export declare function listTelegramPendingApprovals(): TelegramPendingApproval[];
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
//#region extensions/telegram/src/approval-store.ts
|
|
3
|
+
const DEFAULT_TTL_MS = 300 * 1e3;
|
|
4
|
+
const pending = /* @__PURE__ */ new Map();
|
|
5
|
+
function createTelegramPendingApproval(params) {
|
|
6
|
+
const id = randomUUID().slice(0, 8);
|
|
7
|
+
const now = Date.now();
|
|
8
|
+
const entry = {
|
|
9
|
+
id,
|
|
10
|
+
accountId: params.accountId,
|
|
11
|
+
sessionKey: params.sessionKey,
|
|
12
|
+
chatId: params.chatId,
|
|
13
|
+
toolName: params.toolName,
|
|
14
|
+
summary: params.summary,
|
|
15
|
+
createdAtMs: now,
|
|
16
|
+
expiresAtMs: now + (params.ttlMs ?? DEFAULT_TTL_MS),
|
|
17
|
+
status: "pending"
|
|
18
|
+
};
|
|
19
|
+
pending.set(id, entry);
|
|
20
|
+
return entry;
|
|
21
|
+
}
|
|
22
|
+
function waitForTelegramApproval(id, timeoutMs = DEFAULT_TTL_MS) {
|
|
23
|
+
const entry = pending.get(id);
|
|
24
|
+
if (!entry || entry.status !== "pending") return Promise.resolve(false);
|
|
25
|
+
return new Promise((resolve) => {
|
|
26
|
+
const timer = setTimeout(() => {
|
|
27
|
+
if (entry.status === "pending") {
|
|
28
|
+
entry.status = "expired";
|
|
29
|
+
pending.delete(id);
|
|
30
|
+
}
|
|
31
|
+
resolve(false);
|
|
32
|
+
}, timeoutMs);
|
|
33
|
+
entry.resolve = (approved) => {
|
|
34
|
+
clearTimeout(timer);
|
|
35
|
+
resolve(approved);
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function resolveTelegramApproval(id, approved) {
|
|
40
|
+
const entry = pending.get(id);
|
|
41
|
+
if (!entry || entry.status !== "pending") return false;
|
|
42
|
+
entry.status = approved ? "approved" : "denied";
|
|
43
|
+
entry.resolve?.(approved);
|
|
44
|
+
pending.delete(id);
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
function getTelegramPendingApproval(id) {
|
|
48
|
+
return pending.get(id);
|
|
49
|
+
}
|
|
50
|
+
function listTelegramPendingApprovals() {
|
|
51
|
+
const now = Date.now();
|
|
52
|
+
for (const [id, entry] of pending) if (entry.status === "pending" && entry.expiresAtMs <= now) {
|
|
53
|
+
entry.status = "expired";
|
|
54
|
+
pending.delete(id);
|
|
55
|
+
}
|
|
56
|
+
return [...pending.values()].filter((e) => e.status === "pending");
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
export { createTelegramPendingApproval, getTelegramPendingApproval, listTelegramPendingApprovals, resolveTelegramApproval, waitForTelegramApproval };
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=approval-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval-store.js","names":[],"sources":["../../../../extensions/telegram/src/approval-store.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\n\nexport type TelegramApprovalStatus = 'pending' | 'approved' | 'denied' | 'expired';\n\nexport interface TelegramPendingApproval {\n id: string;\n accountId: string;\n sessionKey: string;\n chatId: string;\n toolName: string;\n summary: string;\n createdAtMs: number;\n expiresAtMs: number;\n status: TelegramApprovalStatus;\n resolve?: (approved: boolean) => void;\n}\n\nconst DEFAULT_TTL_MS = 5 * 60 * 1000;\nconst pending = new Map<string, TelegramPendingApproval>();\n\nexport function createTelegramPendingApproval(params: {\n accountId: string;\n sessionKey: string;\n chatId: string;\n toolName: string;\n summary: string;\n ttlMs?: number;\n}): TelegramPendingApproval {\n const id = randomUUID().slice(0, 8);\n const now = Date.now();\n const entry: TelegramPendingApproval = {\n id,\n accountId: params.accountId,\n sessionKey: params.sessionKey,\n chatId: params.chatId,\n toolName: params.toolName,\n summary: params.summary,\n createdAtMs: now,\n expiresAtMs: now + (params.ttlMs ?? DEFAULT_TTL_MS),\n status: 'pending',\n };\n pending.set(id, entry);\n return entry;\n}\n\nexport function waitForTelegramApproval(id: string, timeoutMs = DEFAULT_TTL_MS): Promise<boolean> {\n const entry = pending.get(id);\n if (!entry || entry.status !== 'pending') {\n return Promise.resolve(false);\n }\n return new Promise((resolve) => {\n const timer = setTimeout(() => {\n if (entry.status === 'pending') {\n entry.status = 'expired';\n pending.delete(id);\n }\n resolve(false);\n }, timeoutMs);\n entry.resolve = (approved) => {\n clearTimeout(timer);\n resolve(approved);\n };\n });\n}\n\nexport function resolveTelegramApproval(id: string, approved: boolean): boolean {\n const entry = pending.get(id);\n if (!entry || entry.status !== 'pending') {\n return false;\n }\n entry.status = approved ? 'approved' : 'denied';\n entry.resolve?.(approved);\n pending.delete(id);\n return true;\n}\n\nexport function getTelegramPendingApproval(id: string): TelegramPendingApproval | undefined {\n return pending.get(id);\n}\n\nexport function listTelegramPendingApprovals(): TelegramPendingApproval[] {\n const now = Date.now();\n for (const [id, entry] of pending) {\n if (entry.status === 'pending' && entry.expiresAtMs <= now) {\n entry.status = 'expired';\n pending.delete(id);\n }\n }\n return [...pending.values()].filter((e) => e.status === 'pending');\n}\n"],"mappings":";;AAiBA,MAAM,iBAAiB,MAAS;AAChC,MAAM,0BAAU,IAAI,KAAsC;AAE1D,SAAgB,8BAA8B,QAOlB;CAC1B,MAAM,KAAK,YAAY,CAAC,MAAM,GAAG,EAAE;CACnC,MAAM,MAAM,KAAK,KAAK;CACtB,MAAM,QAAiC;EACrC;EACA,WAAW,OAAO;EAClB,YAAY,OAAO;EACnB,QAAQ,OAAO;EACf,UAAU,OAAO;EACjB,SAAS,OAAO;EAChB,aAAa;EACb,aAAa,OAAO,OAAO,SAAS;EACpC,QAAQ;EACT;AACD,SAAQ,IAAI,IAAI,MAAM;AACtB,QAAO;;AAGT,SAAgB,wBAAwB,IAAY,YAAY,gBAAkC;CAChG,MAAM,QAAQ,QAAQ,IAAI,GAAG;AAC7B,KAAI,CAAC,SAAS,MAAM,WAAW,UAC7B,QAAO,QAAQ,QAAQ,MAAM;AAE/B,QAAO,IAAI,SAAS,YAAY;EAC9B,MAAM,QAAQ,iBAAiB;AAC7B,OAAI,MAAM,WAAW,WAAW;AAC9B,UAAM,SAAS;AACf,YAAQ,OAAO,GAAG;;AAEpB,WAAQ,MAAM;KACb,UAAU;AACb,QAAM,WAAW,aAAa;AAC5B,gBAAa,MAAM;AACnB,WAAQ,SAAS;;GAEnB;;AAGJ,SAAgB,wBAAwB,IAAY,UAA4B;CAC9E,MAAM,QAAQ,QAAQ,IAAI,GAAG;AAC7B,KAAI,CAAC,SAAS,MAAM,WAAW,UAC7B,QAAO;AAET,OAAM,SAAS,WAAW,aAAa;AACvC,OAAM,UAAU,SAAS;AACzB,SAAQ,OAAO,GAAG;AAClB,QAAO;;AAGT,SAAgB,2BAA2B,IAAiD;AAC1F,QAAO,QAAQ,IAAI,GAAG;;AAGxB,SAAgB,+BAA0D;CACxE,MAAM,MAAM,KAAK,KAAK;AACtB,MAAK,MAAM,CAAC,IAAI,UAAU,QACxB,KAAI,MAAM,WAAW,aAAa,MAAM,eAAe,KAAK;AAC1D,QAAM,SAAS;AACf,UAAQ,OAAO,GAAG;;AAGtB,QAAO,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC,QAAQ,MAAM,EAAE,WAAW,UAAU"}
|
|
@@ -1,27 +1,71 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
export declare const TelegramStreamingBlockCoalesceSchema: z.ZodObject<{
|
|
3
|
+
minChars: z.ZodDefault<z.ZodNumber>;
|
|
4
|
+
idleMs: z.ZodDefault<z.ZodNumber>;
|
|
5
|
+
}, z.core.$strict>;
|
|
6
|
+
export declare const TelegramStreamingPreviewSchema: z.ZodObject<{
|
|
7
|
+
toolProgress: z.ZodDefault<z.ZodBoolean>;
|
|
8
|
+
}, z.core.$strict>;
|
|
9
|
+
export declare const TelegramStreamingConfigSchema: z.ZodObject<{
|
|
10
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
11
|
+
off: "off";
|
|
12
|
+
partial: "partial";
|
|
13
|
+
block: "block";
|
|
14
|
+
}>>;
|
|
15
|
+
preview: z.ZodOptional<z.ZodObject<{
|
|
16
|
+
toolProgress: z.ZodDefault<z.ZodBoolean>;
|
|
17
|
+
}, z.core.$strict>>;
|
|
18
|
+
block: z.ZodOptional<z.ZodObject<{
|
|
19
|
+
coalesce: z.ZodOptional<z.ZodObject<{
|
|
20
|
+
minChars: z.ZodDefault<z.ZodNumber>;
|
|
21
|
+
idleMs: z.ZodDefault<z.ZodNumber>;
|
|
22
|
+
}, z.core.$strict>>;
|
|
23
|
+
}, z.core.$strict>>;
|
|
24
|
+
}, z.core.$strict>;
|
|
2
25
|
export declare const TelegramTopicConfigSchema: z.ZodObject<{
|
|
3
|
-
topicId: z.ZodString
|
|
26
|
+
topicId: z.ZodOptional<z.ZodString>;
|
|
4
27
|
requireMention: z.ZodOptional<z.ZodBoolean>;
|
|
5
28
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
6
29
|
allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
7
30
|
systemPrompt: z.ZodOptional<z.ZodString>;
|
|
8
|
-
|
|
31
|
+
agentId: z.ZodOptional<z.ZodString>;
|
|
32
|
+
}, z.core.$strict>;
|
|
9
33
|
export declare const TelegramGroupConfigSchema: z.ZodObject<{
|
|
10
|
-
groupId: z.ZodString
|
|
34
|
+
groupId: z.ZodOptional<z.ZodString>;
|
|
11
35
|
requireMention: z.ZodOptional<z.ZodBoolean>;
|
|
12
36
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
13
37
|
allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
14
38
|
systemPrompt: z.ZodOptional<z.ZodString>;
|
|
39
|
+
agentId: z.ZodOptional<z.ZodString>;
|
|
15
40
|
topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
16
|
-
topicId: z.ZodString
|
|
41
|
+
topicId: z.ZodOptional<z.ZodString>;
|
|
17
42
|
requireMention: z.ZodOptional<z.ZodBoolean>;
|
|
18
43
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
19
44
|
allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
20
45
|
systemPrompt: z.ZodOptional<z.ZodString>;
|
|
21
|
-
|
|
22
|
-
}, z.core.$
|
|
46
|
+
agentId: z.ZodOptional<z.ZodString>;
|
|
47
|
+
}, z.core.$strict>>>;
|
|
48
|
+
}, z.core.$strict>;
|
|
49
|
+
export declare const TelegramActionsConfigSchema: z.ZodObject<{
|
|
50
|
+
reactions: z.ZodDefault<z.ZodBoolean>;
|
|
51
|
+
sendMessage: z.ZodDefault<z.ZodBoolean>;
|
|
52
|
+
editMessage: z.ZodDefault<z.ZodBoolean>;
|
|
53
|
+
deleteMessage: z.ZodDefault<z.ZodBoolean>;
|
|
54
|
+
poll: z.ZodDefault<z.ZodBoolean>;
|
|
55
|
+
sticker: z.ZodDefault<z.ZodBoolean>;
|
|
56
|
+
createForumTopic: z.ZodDefault<z.ZodBoolean>;
|
|
57
|
+
}, z.core.$strict>;
|
|
58
|
+
export declare const TelegramExecApprovalsConfigSchema: z.ZodObject<{
|
|
59
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
60
|
+
approvers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
61
|
+
}, z.core.$strict>;
|
|
62
|
+
export declare const TelegramThreadBindingsConfigSchema: z.ZodObject<{
|
|
63
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
64
|
+
idleTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
65
|
+
maxAgeMs: z.ZodOptional<z.ZodNumber>;
|
|
66
|
+
}, z.core.$strict>;
|
|
23
67
|
export declare const TelegramAccountConfigSchema: z.ZodObject<{
|
|
24
|
-
accountId: z.ZodString
|
|
68
|
+
accountId: z.ZodOptional<z.ZodString>;
|
|
25
69
|
name: z.ZodOptional<z.ZodString>;
|
|
26
70
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
27
71
|
botToken: z.ZodDefault<z.ZodString>;
|
|
@@ -45,37 +89,81 @@ export declare const TelegramAccountConfigSchema: z.ZodObject<{
|
|
|
45
89
|
all: "all";
|
|
46
90
|
}>>;
|
|
47
91
|
groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
48
|
-
groupId: z.ZodString
|
|
92
|
+
groupId: z.ZodOptional<z.ZodString>;
|
|
49
93
|
requireMention: z.ZodOptional<z.ZodBoolean>;
|
|
50
94
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
51
95
|
allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
52
96
|
systemPrompt: z.ZodOptional<z.ZodString>;
|
|
97
|
+
agentId: z.ZodOptional<z.ZodString>;
|
|
53
98
|
topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
54
|
-
topicId: z.ZodString
|
|
99
|
+
topicId: z.ZodOptional<z.ZodString>;
|
|
55
100
|
requireMention: z.ZodOptional<z.ZodBoolean>;
|
|
56
101
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
57
102
|
allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
58
103
|
systemPrompt: z.ZodOptional<z.ZodString>;
|
|
59
|
-
|
|
60
|
-
|
|
104
|
+
agentId: z.ZodOptional<z.ZodString>;
|
|
105
|
+
}, z.core.$strict>>>;
|
|
106
|
+
}, z.core.$strict>>>;
|
|
61
107
|
historyLimit: z.ZodDefault<z.ZodNumber>;
|
|
62
108
|
textChunkLimit: z.ZodDefault<z.ZodNumber>;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
109
|
+
streaming: z.ZodOptional<z.ZodObject<{
|
|
110
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
111
|
+
off: "off";
|
|
112
|
+
partial: "partial";
|
|
113
|
+
block: "block";
|
|
114
|
+
}>>;
|
|
115
|
+
preview: z.ZodOptional<z.ZodObject<{
|
|
116
|
+
toolProgress: z.ZodDefault<z.ZodBoolean>;
|
|
117
|
+
}, z.core.$strict>>;
|
|
118
|
+
block: z.ZodOptional<z.ZodObject<{
|
|
119
|
+
coalesce: z.ZodOptional<z.ZodObject<{
|
|
120
|
+
minChars: z.ZodDefault<z.ZodNumber>;
|
|
121
|
+
idleMs: z.ZodDefault<z.ZodNumber>;
|
|
122
|
+
}, z.core.$strict>>;
|
|
123
|
+
}, z.core.$strict>>;
|
|
124
|
+
}, z.core.$strict>>;
|
|
68
125
|
proxy: z.ZodOptional<z.ZodString>;
|
|
69
126
|
apiRoot: z.ZodOptional<z.ZodString>;
|
|
70
|
-
|
|
71
|
-
|
|
127
|
+
pollingStallThresholdMs: z.ZodOptional<z.ZodNumber>;
|
|
128
|
+
reactionLevel: z.ZodDefault<z.ZodEnum<{
|
|
129
|
+
off: "off";
|
|
130
|
+
minimal: "minimal";
|
|
131
|
+
ack: "ack";
|
|
132
|
+
extensive: "extensive";
|
|
133
|
+
}>>;
|
|
134
|
+
reactionNotifications: z.ZodDefault<z.ZodEnum<{
|
|
135
|
+
off: "off";
|
|
136
|
+
all: "all";
|
|
137
|
+
own: "own";
|
|
138
|
+
}>>;
|
|
139
|
+
ackReaction: z.ZodOptional<z.ZodString>;
|
|
140
|
+
actions: z.ZodOptional<z.ZodObject<{
|
|
141
|
+
reactions: z.ZodDefault<z.ZodBoolean>;
|
|
142
|
+
sendMessage: z.ZodDefault<z.ZodBoolean>;
|
|
143
|
+
editMessage: z.ZodDefault<z.ZodBoolean>;
|
|
144
|
+
deleteMessage: z.ZodDefault<z.ZodBoolean>;
|
|
145
|
+
poll: z.ZodDefault<z.ZodBoolean>;
|
|
146
|
+
sticker: z.ZodDefault<z.ZodBoolean>;
|
|
147
|
+
createForumTopic: z.ZodDefault<z.ZodBoolean>;
|
|
148
|
+
}, z.core.$strict>>;
|
|
149
|
+
execApprovals: z.ZodOptional<z.ZodObject<{
|
|
150
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
151
|
+
approvers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
152
|
+
}, z.core.$strict>>;
|
|
153
|
+
threadBindings: z.ZodOptional<z.ZodObject<{
|
|
154
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
155
|
+
idleTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
156
|
+
maxAgeMs: z.ZodOptional<z.ZodNumber>;
|
|
157
|
+
}, z.core.$strict>>;
|
|
158
|
+
}, z.core.$strict>;
|
|
159
|
+
export declare const TelegramConfigSchema: z.ZodObject<{
|
|
72
160
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
73
161
|
allowFrom: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
74
162
|
groupAllowFrom: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
75
163
|
apiRoot: z.ZodOptional<z.ZodString>;
|
|
76
164
|
debug: z.ZodDefault<z.ZodBoolean>;
|
|
77
165
|
accounts: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
78
|
-
accountId: z.ZodString
|
|
166
|
+
accountId: z.ZodOptional<z.ZodString>;
|
|
79
167
|
name: z.ZodOptional<z.ZodString>;
|
|
80
168
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
81
169
|
botToken: z.ZodDefault<z.ZodString>;
|
|
@@ -99,29 +187,73 @@ export declare const TelegramConfigSchema: z.ZodPreprocess<z.ZodObject<{
|
|
|
99
187
|
all: "all";
|
|
100
188
|
}>>;
|
|
101
189
|
groups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
102
|
-
groupId: z.ZodString
|
|
190
|
+
groupId: z.ZodOptional<z.ZodString>;
|
|
103
191
|
requireMention: z.ZodOptional<z.ZodBoolean>;
|
|
104
192
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
105
193
|
allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
106
194
|
systemPrompt: z.ZodOptional<z.ZodString>;
|
|
195
|
+
agentId: z.ZodOptional<z.ZodString>;
|
|
107
196
|
topics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
108
|
-
topicId: z.ZodString
|
|
197
|
+
topicId: z.ZodOptional<z.ZodString>;
|
|
109
198
|
requireMention: z.ZodOptional<z.ZodBoolean>;
|
|
110
199
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
111
200
|
allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
112
201
|
systemPrompt: z.ZodOptional<z.ZodString>;
|
|
113
|
-
|
|
114
|
-
|
|
202
|
+
agentId: z.ZodOptional<z.ZodString>;
|
|
203
|
+
}, z.core.$strict>>>;
|
|
204
|
+
}, z.core.$strict>>>;
|
|
115
205
|
historyLimit: z.ZodDefault<z.ZodNumber>;
|
|
116
206
|
textChunkLimit: z.ZodDefault<z.ZodNumber>;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
207
|
+
streaming: z.ZodOptional<z.ZodObject<{
|
|
208
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
209
|
+
off: "off";
|
|
210
|
+
partial: "partial";
|
|
211
|
+
block: "block";
|
|
212
|
+
}>>;
|
|
213
|
+
preview: z.ZodOptional<z.ZodObject<{
|
|
214
|
+
toolProgress: z.ZodDefault<z.ZodBoolean>;
|
|
215
|
+
}, z.core.$strict>>;
|
|
216
|
+
block: z.ZodOptional<z.ZodObject<{
|
|
217
|
+
coalesce: z.ZodOptional<z.ZodObject<{
|
|
218
|
+
minChars: z.ZodDefault<z.ZodNumber>;
|
|
219
|
+
idleMs: z.ZodDefault<z.ZodNumber>;
|
|
220
|
+
}, z.core.$strict>>;
|
|
221
|
+
}, z.core.$strict>>;
|
|
222
|
+
}, z.core.$strict>>;
|
|
122
223
|
proxy: z.ZodOptional<z.ZodString>;
|
|
123
224
|
apiRoot: z.ZodOptional<z.ZodString>;
|
|
124
|
-
|
|
225
|
+
pollingStallThresholdMs: z.ZodOptional<z.ZodNumber>;
|
|
226
|
+
reactionLevel: z.ZodDefault<z.ZodEnum<{
|
|
227
|
+
off: "off";
|
|
228
|
+
minimal: "minimal";
|
|
229
|
+
ack: "ack";
|
|
230
|
+
extensive: "extensive";
|
|
231
|
+
}>>;
|
|
232
|
+
reactionNotifications: z.ZodDefault<z.ZodEnum<{
|
|
233
|
+
off: "off";
|
|
234
|
+
all: "all";
|
|
235
|
+
own: "own";
|
|
236
|
+
}>>;
|
|
237
|
+
ackReaction: z.ZodOptional<z.ZodString>;
|
|
238
|
+
actions: z.ZodOptional<z.ZodObject<{
|
|
239
|
+
reactions: z.ZodDefault<z.ZodBoolean>;
|
|
240
|
+
sendMessage: z.ZodDefault<z.ZodBoolean>;
|
|
241
|
+
editMessage: z.ZodDefault<z.ZodBoolean>;
|
|
242
|
+
deleteMessage: z.ZodDefault<z.ZodBoolean>;
|
|
243
|
+
poll: z.ZodDefault<z.ZodBoolean>;
|
|
244
|
+
sticker: z.ZodDefault<z.ZodBoolean>;
|
|
245
|
+
createForumTopic: z.ZodDefault<z.ZodBoolean>;
|
|
246
|
+
}, z.core.$strict>>;
|
|
247
|
+
execApprovals: z.ZodOptional<z.ZodObject<{
|
|
248
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
249
|
+
approvers: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
|
|
250
|
+
}, z.core.$strict>>;
|
|
251
|
+
threadBindings: z.ZodOptional<z.ZodObject<{
|
|
252
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
253
|
+
idleTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
254
|
+
maxAgeMs: z.ZodOptional<z.ZodNumber>;
|
|
255
|
+
}, z.core.$strict>>;
|
|
256
|
+
}, z.core.$strict>>>;
|
|
125
257
|
dmPolicy: z.ZodDefault<z.ZodEnum<{
|
|
126
258
|
pairing: "pairing";
|
|
127
259
|
allowlist: "allowlist";
|
|
@@ -138,13 +270,31 @@ export declare const TelegramConfigSchema: z.ZodPreprocess<z.ZodObject<{
|
|
|
138
270
|
first: "first";
|
|
139
271
|
all: "all";
|
|
140
272
|
}>>;
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
273
|
+
streaming: z.ZodOptional<z.ZodObject<{
|
|
274
|
+
mode: z.ZodDefault<z.ZodEnum<{
|
|
275
|
+
off: "off";
|
|
276
|
+
partial: "partial";
|
|
277
|
+
block: "block";
|
|
278
|
+
}>>;
|
|
279
|
+
preview: z.ZodOptional<z.ZodObject<{
|
|
280
|
+
toolProgress: z.ZodDefault<z.ZodBoolean>;
|
|
281
|
+
}, z.core.$strict>>;
|
|
282
|
+
block: z.ZodOptional<z.ZodObject<{
|
|
283
|
+
coalesce: z.ZodOptional<z.ZodObject<{
|
|
284
|
+
minChars: z.ZodDefault<z.ZodNumber>;
|
|
285
|
+
idleMs: z.ZodDefault<z.ZodNumber>;
|
|
286
|
+
}, z.core.$strict>>;
|
|
287
|
+
}, z.core.$strict>>;
|
|
288
|
+
}, z.core.$strict>>;
|
|
146
289
|
historyLimit: z.ZodDefault<z.ZodNumber>;
|
|
147
290
|
textChunkLimit: z.ZodDefault<z.ZodNumber>;
|
|
148
291
|
proxy: z.ZodOptional<z.ZodString>;
|
|
149
|
-
}, z.core.$
|
|
292
|
+
}, z.core.$strict>;
|
|
150
293
|
export type TelegramConfig = z.infer<typeof TelegramConfigSchema>;
|
|
294
|
+
export type TelegramStreamingConfig = z.infer<typeof TelegramStreamingConfigSchema>;
|
|
295
|
+
/** Resolve effective streaming mode for an account. */
|
|
296
|
+
export declare function resolveTelegramStreamingMode(account: {
|
|
297
|
+
streaming?: {
|
|
298
|
+
mode?: 'off' | 'partial' | 'block';
|
|
299
|
+
};
|
|
300
|
+
}): 'off' | 'partial' | 'block';
|
|
@@ -1,48 +1,63 @@
|
|
|
1
1
|
import { __esmMin } from "../../../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
//#region extensions/telegram/src/config-schema.ts
|
|
4
|
-
/**
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
-
if (typeof raw !== "object" || Array.isArray(raw)) return raw;
|
|
8
|
-
const o = { ...raw };
|
|
9
|
-
const legacyToken = typeof o.botToken === "string" ? o.botToken.trim() : "";
|
|
10
|
-
if (legacyToken) {
|
|
11
|
-
const acc = { ...o.accounts && typeof o.accounts === "object" && !Array.isArray(o.accounts) ? o.accounts : {} };
|
|
12
|
-
const rawDef = acc.default;
|
|
13
|
-
const def = rawDef && typeof rawDef === "object" && !Array.isArray(rawDef) ? { ...rawDef } : {};
|
|
14
|
-
if (!(typeof def.botToken === "string" ? def.botToken.trim() : "")) acc.default = {
|
|
15
|
-
...def,
|
|
16
|
-
accountId: "default",
|
|
17
|
-
botToken: legacyToken
|
|
18
|
-
};
|
|
19
|
-
o.accounts = acc;
|
|
20
|
-
}
|
|
21
|
-
delete o.botToken;
|
|
22
|
-
const defaultAcc = o.accounts?.default;
|
|
23
|
-
const token = defaultAcc && typeof defaultAcc === "object" && typeof defaultAcc.botToken === "string" ? defaultAcc.botToken : "";
|
|
24
|
-
if (o.enabled === void 0 && token.trim().length > 0) o.enabled = true;
|
|
25
|
-
return o;
|
|
4
|
+
/** Resolve effective streaming mode for an account. */
|
|
5
|
+
function resolveTelegramStreamingMode(account) {
|
|
6
|
+
return account.streaming?.mode ?? "partial";
|
|
26
7
|
}
|
|
27
|
-
var TelegramTopicConfigSchema, TelegramGroupConfigSchema,
|
|
8
|
+
var TelegramStreamingBlockCoalesceSchema, TelegramStreamingPreviewSchema, TelegramStreamingConfigSchema, TelegramTopicConfigSchema, TelegramGroupConfigSchema, TelegramActionsConfigSchema, TelegramExecApprovalsConfigSchema, TelegramThreadBindingsConfigSchema, TelegramAccountConfigSchema, TelegramConfigSchema;
|
|
28
9
|
var init_config_schema = __esmMin((() => {
|
|
10
|
+
TelegramStreamingBlockCoalesceSchema = z.object({
|
|
11
|
+
minChars: z.number().default(800),
|
|
12
|
+
idleMs: z.number().default(1e3)
|
|
13
|
+
}).strict();
|
|
14
|
+
TelegramStreamingPreviewSchema = z.object({ toolProgress: z.boolean().default(true) }).strict();
|
|
15
|
+
TelegramStreamingConfigSchema = z.object({
|
|
16
|
+
mode: z.enum([
|
|
17
|
+
"off",
|
|
18
|
+
"partial",
|
|
19
|
+
"block"
|
|
20
|
+
]).default("partial"),
|
|
21
|
+
preview: TelegramStreamingPreviewSchema.optional(),
|
|
22
|
+
block: z.object({ coalesce: TelegramStreamingBlockCoalesceSchema.optional() }).strict().optional()
|
|
23
|
+
}).strict();
|
|
29
24
|
TelegramTopicConfigSchema = z.object({
|
|
30
|
-
topicId: z.string(),
|
|
25
|
+
topicId: z.string().optional(),
|
|
31
26
|
requireMention: z.boolean().optional(),
|
|
32
27
|
enabled: z.boolean().optional(),
|
|
33
28
|
allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
|
|
34
|
-
systemPrompt: z.string().optional()
|
|
35
|
-
|
|
29
|
+
systemPrompt: z.string().optional(),
|
|
30
|
+
agentId: z.string().optional()
|
|
31
|
+
}).strict();
|
|
36
32
|
TelegramGroupConfigSchema = z.object({
|
|
37
|
-
groupId: z.string(),
|
|
33
|
+
groupId: z.string().optional(),
|
|
38
34
|
requireMention: z.boolean().optional(),
|
|
39
35
|
enabled: z.boolean().optional(),
|
|
40
36
|
allowFrom: z.array(z.union([z.string(), z.number()])).optional(),
|
|
41
37
|
systemPrompt: z.string().optional(),
|
|
38
|
+
agentId: z.string().optional(),
|
|
42
39
|
topics: z.record(z.string(), TelegramTopicConfigSchema).optional()
|
|
43
|
-
});
|
|
40
|
+
}).strict();
|
|
41
|
+
TelegramActionsConfigSchema = z.object({
|
|
42
|
+
reactions: z.boolean().default(true),
|
|
43
|
+
sendMessage: z.boolean().default(true),
|
|
44
|
+
editMessage: z.boolean().default(true),
|
|
45
|
+
deleteMessage: z.boolean().default(false),
|
|
46
|
+
poll: z.boolean().default(false),
|
|
47
|
+
sticker: z.boolean().default(false),
|
|
48
|
+
createForumTopic: z.boolean().default(false)
|
|
49
|
+
}).strict();
|
|
50
|
+
TelegramExecApprovalsConfigSchema = z.object({
|
|
51
|
+
enabled: z.boolean().default(false),
|
|
52
|
+
approvers: z.array(z.union([z.string(), z.number()])).optional()
|
|
53
|
+
}).strict();
|
|
54
|
+
TelegramThreadBindingsConfigSchema = z.object({
|
|
55
|
+
enabled: z.boolean().default(false),
|
|
56
|
+
idleTimeoutMs: z.number().optional(),
|
|
57
|
+
maxAgeMs: z.number().optional()
|
|
58
|
+
}).strict();
|
|
44
59
|
TelegramAccountConfigSchema = z.object({
|
|
45
|
-
accountId: z.string(),
|
|
60
|
+
accountId: z.string().optional(),
|
|
46
61
|
name: z.string().optional(),
|
|
47
62
|
enabled: z.boolean().default(true),
|
|
48
63
|
botToken: z.string().default(""),
|
|
@@ -68,15 +83,27 @@ var init_config_schema = __esmMin((() => {
|
|
|
68
83
|
groups: z.record(z.string(), TelegramGroupConfigSchema).optional(),
|
|
69
84
|
historyLimit: z.number().default(50),
|
|
70
85
|
textChunkLimit: z.number().default(4e3),
|
|
71
|
-
|
|
72
|
-
"off",
|
|
73
|
-
"partial",
|
|
74
|
-
"block"
|
|
75
|
-
]).default("partial"),
|
|
86
|
+
streaming: TelegramStreamingConfigSchema.optional(),
|
|
76
87
|
proxy: z.string().optional(),
|
|
77
|
-
apiRoot: z.string().optional()
|
|
78
|
-
|
|
79
|
-
|
|
88
|
+
apiRoot: z.string().optional(),
|
|
89
|
+
pollingStallThresholdMs: z.number().min(3e4).max(6e5).optional(),
|
|
90
|
+
reactionLevel: z.enum([
|
|
91
|
+
"off",
|
|
92
|
+
"ack",
|
|
93
|
+
"minimal",
|
|
94
|
+
"extensive"
|
|
95
|
+
]).default("ack"),
|
|
96
|
+
reactionNotifications: z.enum([
|
|
97
|
+
"off",
|
|
98
|
+
"own",
|
|
99
|
+
"all"
|
|
100
|
+
]).default("own"),
|
|
101
|
+
ackReaction: z.string().optional(),
|
|
102
|
+
actions: TelegramActionsConfigSchema.optional(),
|
|
103
|
+
execApprovals: TelegramExecApprovalsConfigSchema.optional(),
|
|
104
|
+
threadBindings: TelegramThreadBindingsConfigSchema.optional()
|
|
105
|
+
}).strict();
|
|
106
|
+
TelegramConfigSchema = z.object({
|
|
80
107
|
enabled: z.boolean().default(false),
|
|
81
108
|
allowFrom: z.array(z.union([z.string(), z.number()])).default([]),
|
|
82
109
|
groupAllowFrom: z.array(z.union([z.string(), z.number()])).default([]),
|
|
@@ -99,19 +126,14 @@ var init_config_schema = __esmMin((() => {
|
|
|
99
126
|
"first",
|
|
100
127
|
"all"
|
|
101
128
|
]).default("off"),
|
|
102
|
-
|
|
103
|
-
"off",
|
|
104
|
-
"partial",
|
|
105
|
-
"block"
|
|
106
|
-
]).optional(),
|
|
129
|
+
streaming: TelegramStreamingConfigSchema.optional(),
|
|
107
130
|
historyLimit: z.number().default(50),
|
|
108
131
|
textChunkLimit: z.number().default(4e3),
|
|
109
132
|
proxy: z.string().optional()
|
|
110
|
-
});
|
|
111
|
-
TelegramConfigSchema = z.preprocess(preprocessTelegramConfigInput, TelegramConfigSchemaInner);
|
|
133
|
+
}).strict();
|
|
112
134
|
}));
|
|
113
135
|
//#endregion
|
|
114
136
|
init_config_schema();
|
|
115
|
-
export { TelegramAccountConfigSchema, TelegramConfigSchema, TelegramGroupConfigSchema, TelegramTopicConfigSchema, init_config_schema };
|
|
137
|
+
export { TelegramAccountConfigSchema, TelegramActionsConfigSchema, TelegramConfigSchema, TelegramExecApprovalsConfigSchema, TelegramGroupConfigSchema, TelegramStreamingBlockCoalesceSchema, TelegramStreamingConfigSchema, TelegramStreamingPreviewSchema, TelegramThreadBindingsConfigSchema, TelegramTopicConfigSchema, init_config_schema, resolveTelegramStreamingMode };
|
|
116
138
|
|
|
117
139
|
//# sourceMappingURL=config-schema.js.map
|