@0xmaxma/claude-gateway 1.8.14 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -1613
- package/config.template.json +7 -1
- package/dist/agent/runner.d.ts +419 -0
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +736 -24
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/skill-learning/index.d.ts +6 -4
- package/dist/agent/skill-learning/index.d.ts.map +1 -1
- package/dist/agent/skill-learning/index.js +3 -3
- package/dist/agent/skill-learning/index.js.map +1 -1
- package/dist/agent/skill-learning/notifier.d.ts +3 -4
- package/dist/agent/skill-learning/notifier.d.ts.map +1 -1
- package/dist/agent/skill-learning/notifier.js +15 -13
- package/dist/agent/skill-learning/notifier.js.map +1 -1
- package/dist/agent/skill-learning/reviewer.d.ts.map +1 -1
- package/dist/agent/skill-learning/reviewer.js +3 -1
- package/dist/agent/skill-learning/reviewer.js.map +1 -1
- package/dist/api/connectors-router.d.ts.map +1 -1
- package/dist/api/connectors-router.js +110 -4
- package/dist/api/connectors-router.js.map +1 -1
- package/dist/api/gateway-router.d.ts +1 -0
- package/dist/api/gateway-router.d.ts.map +1 -1
- package/dist/api/gateway-router.js +13 -1
- package/dist/api/gateway-router.js.map +1 -1
- package/dist/api/line-webhook-router.d.ts +2 -2
- package/dist/api/line-webhook-router.d.ts.map +1 -1
- package/dist/api/line-webhook-router.js +264 -230
- package/dist/api/line-webhook-router.js.map +1 -1
- package/dist/api/router.d.ts.map +1 -1
- package/dist/api/router.js +162 -10
- package/dist/api/router.js.map +1 -1
- package/dist/api/share-router.d.ts.map +1 -1
- package/dist/api/share-router.js +29 -10
- package/dist/api/share-router.js.map +1 -1
- package/dist/api/slack-client.d.ts +2 -0
- package/dist/api/slack-client.d.ts.map +1 -1
- package/dist/api/slack-client.js +6 -2
- package/dist/api/slack-client.js.map +1 -1
- package/dist/api/slack-webhook-router.d.ts +3 -0
- package/dist/api/slack-webhook-router.d.ts.map +1 -1
- package/dist/api/slack-webhook-router.js +226 -131
- package/dist/api/slack-webhook-router.js.map +1 -1
- package/dist/api/voice-router.d.ts +21 -0
- package/dist/api/voice-router.d.ts.map +1 -0
- package/dist/api/voice-router.js +372 -0
- package/dist/api/voice-router.js.map +1 -0
- package/dist/api/voice-settings-router.d.ts +5 -0
- package/dist/api/voice-settings-router.d.ts.map +1 -0
- package/dist/api/voice-settings-router.js +318 -0
- package/dist/api/voice-settings-router.js.map +1 -0
- package/dist/apps/agent-container-migration.d.ts +11 -0
- package/dist/apps/agent-container-migration.d.ts.map +1 -0
- package/dist/apps/agent-container-migration.js +85 -0
- package/dist/apps/agent-container-migration.js.map +1 -0
- package/dist/apps/installer.d.ts +1 -1
- package/dist/apps/installer.d.ts.map +1 -1
- package/dist/apps/installer.js +2 -1
- package/dist/apps/installer.js.map +1 -1
- package/dist/cli/commands/tasks.d.ts +5 -0
- package/dist/cli/commands/tasks.d.ts.map +1 -0
- package/dist/cli/commands/tasks.js +92 -0
- package/dist/cli/commands/tasks.js.map +1 -0
- package/dist/cli/http-client.d.ts +2 -0
- package/dist/cli/http-client.d.ts.map +1 -1
- package/dist/cli/http-client.js +8 -3
- package/dist/cli/http-client.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/config/config-write-lock.d.ts +2 -0
- package/dist/config/config-write-lock.d.ts.map +1 -1
- package/dist/config/config-write-lock.js +5 -0
- package/dist/config/config-write-lock.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +87 -2
- package/dist/config/loader.js.map +1 -1
- package/dist/config/migrator.d.ts.map +1 -1
- package/dist/config/migrator.js +12 -1
- package/dist/config/migrator.js.map +1 -1
- package/dist/config/watcher.d.ts.map +1 -1
- package/dist/config/watcher.js +6 -0
- package/dist/config/watcher.js.map +1 -1
- package/dist/connectors/resolve.d.ts.map +1 -1
- package/dist/connectors/resolve.js +3 -1
- package/dist/connectors/resolve.js.map +1 -1
- package/dist/connectors/types.d.ts +8 -0
- package/dist/connectors/types.d.ts.map +1 -1
- package/dist/cron/manager.d.ts.map +1 -1
- package/dist/cron/manager.js +21 -2
- package/dist/cron/manager.js.map +1 -1
- package/dist/discord/receiver.d.ts +2 -1
- package/dist/discord/receiver.d.ts.map +1 -1
- package/dist/discord/receiver.js +5 -1
- package/dist/discord/receiver.js.map +1 -1
- package/dist/history/db.d.ts +3 -0
- package/dist/history/db.d.ts.map +1 -1
- package/dist/history/db.js +21 -1
- package/dist/history/db.js.map +1 -1
- package/dist/history/types.d.ts +2 -0
- package/dist/history/types.d.ts.map +1 -1
- package/dist/index.js +48 -9
- package/dist/index.js.map +1 -1
- package/dist/orchestration/bounded-queue.d.ts +15 -0
- package/dist/orchestration/bounded-queue.d.ts.map +1 -0
- package/dist/orchestration/bounded-queue.js +58 -0
- package/dist/orchestration/bounded-queue.js.map +1 -0
- package/dist/orchestration/bridge.d.ts +55 -0
- package/dist/orchestration/bridge.d.ts.map +1 -0
- package/dist/orchestration/bridge.js +234 -0
- package/dist/orchestration/bridge.js.map +1 -0
- package/dist/orchestration/browser-routing.d.ts +7 -0
- package/dist/orchestration/browser-routing.d.ts.map +1 -0
- package/dist/orchestration/browser-routing.js +22 -0
- package/dist/orchestration/browser-routing.js.map +1 -0
- package/dist/orchestration/capabilities.d.ts +49 -0
- package/dist/orchestration/capabilities.d.ts.map +1 -0
- package/dist/orchestration/capabilities.js +417 -0
- package/dist/orchestration/capabilities.js.map +1 -0
- package/dist/orchestration/capacity.d.ts +14 -0
- package/dist/orchestration/capacity.d.ts.map +1 -0
- package/dist/orchestration/capacity.js +52 -0
- package/dist/orchestration/capacity.js.map +1 -0
- package/dist/orchestration/channel-activity.d.ts +21 -0
- package/dist/orchestration/channel-activity.d.ts.map +1 -0
- package/dist/orchestration/channel-activity.js +72 -0
- package/dist/orchestration/channel-activity.js.map +1 -0
- package/dist/orchestration/channel-controls.d.ts +32 -0
- package/dist/orchestration/channel-controls.d.ts.map +1 -0
- package/dist/orchestration/channel-controls.js +105 -0
- package/dist/orchestration/channel-controls.js.map +1 -0
- package/dist/orchestration/channel-input-media.d.ts +11 -0
- package/dist/orchestration/channel-input-media.d.ts.map +1 -0
- package/dist/orchestration/channel-input-media.js +54 -0
- package/dist/orchestration/channel-input-media.js.map +1 -0
- package/dist/orchestration/channel-media.d.ts +4 -0
- package/dist/orchestration/channel-media.d.ts.map +1 -0
- package/dist/orchestration/channel-media.js +70 -0
- package/dist/orchestration/channel-media.js.map +1 -0
- package/dist/orchestration/channel-speech.d.ts +7 -0
- package/dist/orchestration/channel-speech.d.ts.map +1 -0
- package/dist/orchestration/channel-speech.js +65 -0
- package/dist/orchestration/channel-speech.js.map +1 -0
- package/dist/orchestration/cli-skills.d.ts +12 -0
- package/dist/orchestration/cli-skills.d.ts.map +1 -0
- package/dist/orchestration/cli-skills.js +132 -0
- package/dist/orchestration/cli-skills.js.map +1 -0
- package/dist/orchestration/config.d.ts +260 -0
- package/dist/orchestration/config.d.ts.map +1 -0
- package/dist/orchestration/config.js +110 -0
- package/dist/orchestration/config.js.map +1 -0
- package/dist/orchestration/container.d.ts +21 -0
- package/dist/orchestration/container.d.ts.map +1 -0
- package/dist/orchestration/container.js +195 -0
- package/dist/orchestration/container.js.map +1 -0
- package/dist/orchestration/control-delivery.d.ts +5 -0
- package/dist/orchestration/control-delivery.d.ts.map +1 -0
- package/dist/orchestration/control-delivery.js +50 -0
- package/dist/orchestration/control-delivery.js.map +1 -0
- package/dist/orchestration/conversation-intake.d.ts +32 -0
- package/dist/orchestration/conversation-intake.d.ts.map +1 -0
- package/dist/orchestration/conversation-intake.js +92 -0
- package/dist/orchestration/conversation-intake.js.map +1 -0
- package/dist/orchestration/decisions.d.ts +27 -0
- package/dist/orchestration/decisions.d.ts.map +1 -0
- package/dist/orchestration/decisions.js +151 -0
- package/dist/orchestration/decisions.js.map +1 -0
- package/dist/orchestration/delivery.d.ts +34 -0
- package/dist/orchestration/delivery.d.ts.map +1 -0
- package/dist/orchestration/delivery.js +235 -0
- package/dist/orchestration/delivery.js.map +1 -0
- package/dist/orchestration/display-stream.d.ts +4 -0
- package/dist/orchestration/display-stream.d.ts.map +1 -0
- package/dist/orchestration/display-stream.js +77 -0
- package/dist/orchestration/display-stream.js.map +1 -0
- package/dist/orchestration/events.d.ts +30 -0
- package/dist/orchestration/events.d.ts.map +1 -0
- package/dist/orchestration/events.js +65 -0
- package/dist/orchestration/events.js.map +1 -0
- package/dist/orchestration/execution-observation.d.ts +38 -0
- package/dist/orchestration/execution-observation.d.ts.map +1 -0
- package/dist/orchestration/execution-observation.js +25 -0
- package/dist/orchestration/execution-observation.js.map +1 -0
- package/dist/orchestration/file-delivery.d.ts +16 -0
- package/dist/orchestration/file-delivery.d.ts.map +1 -0
- package/dist/orchestration/file-delivery.js +139 -0
- package/dist/orchestration/file-delivery.js.map +1 -0
- package/dist/orchestration/gateway-config.d.ts +17 -0
- package/dist/orchestration/gateway-config.d.ts.map +1 -0
- package/dist/orchestration/gateway-config.js +128 -0
- package/dist/orchestration/gateway-config.js.map +1 -0
- package/dist/orchestration/history.d.ts +13 -0
- package/dist/orchestration/history.d.ts.map +1 -0
- package/dist/orchestration/history.js +48 -0
- package/dist/orchestration/history.js.map +1 -0
- package/dist/orchestration/identity.d.ts +6 -0
- package/dist/orchestration/identity.d.ts.map +1 -0
- package/dist/orchestration/identity.js +13 -0
- package/dist/orchestration/identity.js.map +1 -0
- package/dist/orchestration/inference-errors.d.ts +3 -0
- package/dist/orchestration/inference-errors.d.ts.map +1 -0
- package/dist/orchestration/inference-errors.js +16 -0
- package/dist/orchestration/inference-errors.js.map +1 -0
- package/dist/orchestration/input-images.d.ts +12 -0
- package/dist/orchestration/input-images.d.ts.map +1 -0
- package/dist/orchestration/input-images.js +66 -0
- package/dist/orchestration/input-images.js.map +1 -0
- package/dist/orchestration/instance-lock.d.ts +5 -0
- package/dist/orchestration/instance-lock.d.ts.map +1 -0
- package/dist/orchestration/instance-lock.js +33 -0
- package/dist/orchestration/instance-lock.js.map +1 -0
- package/dist/orchestration/line-loading.d.ts +21 -0
- package/dist/orchestration/line-loading.d.ts.map +1 -0
- package/dist/orchestration/line-loading.js +89 -0
- package/dist/orchestration/line-loading.js.map +1 -0
- package/dist/orchestration/media.d.ts +3 -0
- package/dist/orchestration/media.d.ts.map +1 -0
- package/dist/orchestration/media.js +46 -0
- package/dist/orchestration/media.js.map +1 -0
- package/dist/orchestration/migrations/schema.d.ts +3 -0
- package/dist/orchestration/migrations/schema.d.ts.map +1 -0
- package/dist/orchestration/migrations/schema.js +80 -0
- package/dist/orchestration/migrations/schema.js.map +1 -0
- package/dist/orchestration/notification-mailbox.d.ts +5 -0
- package/dist/orchestration/notification-mailbox.d.ts.map +1 -0
- package/dist/orchestration/notification-mailbox.js +29 -0
- package/dist/orchestration/notification-mailbox.js.map +1 -0
- package/dist/orchestration/process-activity.d.ts +23 -0
- package/dist/orchestration/process-activity.d.ts.map +1 -0
- package/dist/orchestration/process-activity.js +95 -0
- package/dist/orchestration/process-activity.js.map +1 -0
- package/dist/orchestration/process-supervisor.d.ts +15 -0
- package/dist/orchestration/process-supervisor.d.ts.map +1 -0
- package/dist/orchestration/process-supervisor.js +92 -0
- package/dist/orchestration/process-supervisor.js.map +1 -0
- package/dist/orchestration/process-turn.d.ts +35 -0
- package/dist/orchestration/process-turn.d.ts.map +1 -0
- package/dist/orchestration/process-turn.js +246 -0
- package/dist/orchestration/process-turn.js.map +1 -0
- package/dist/orchestration/progress-review.d.ts +28 -0
- package/dist/orchestration/progress-review.d.ts.map +1 -0
- package/dist/orchestration/progress-review.js +48 -0
- package/dist/orchestration/progress-review.js.map +1 -0
- package/dist/orchestration/recovery.d.ts +8 -0
- package/dist/orchestration/recovery.d.ts.map +1 -0
- package/dist/orchestration/recovery.js +35 -0
- package/dist/orchestration/recovery.js.map +1 -0
- package/dist/orchestration/reply-context.d.ts +7 -0
- package/dist/orchestration/reply-context.d.ts.map +1 -0
- package/dist/orchestration/reply-context.js +54 -0
- package/dist/orchestration/reply-context.js.map +1 -0
- package/dist/orchestration/runtime.d.ts +237 -0
- package/dist/orchestration/runtime.d.ts.map +1 -0
- package/dist/orchestration/runtime.js +1031 -0
- package/dist/orchestration/runtime.js.map +1 -0
- package/dist/orchestration/skills.d.ts +17 -0
- package/dist/orchestration/skills.d.ts.map +1 -0
- package/dist/orchestration/skills.js +32 -0
- package/dist/orchestration/skills.js.map +1 -0
- package/dist/orchestration/source-policy.d.ts +6 -0
- package/dist/orchestration/source-policy.d.ts.map +1 -0
- package/dist/orchestration/source-policy.js +16 -0
- package/dist/orchestration/source-policy.js.map +1 -0
- package/dist/orchestration/speech.d.ts +24 -0
- package/dist/orchestration/speech.d.ts.map +1 -0
- package/dist/orchestration/speech.js +61 -0
- package/dist/orchestration/speech.js.map +1 -0
- package/dist/orchestration/stop-controls.d.ts +30 -0
- package/dist/orchestration/stop-controls.d.ts.map +1 -0
- package/dist/orchestration/stop-controls.js +79 -0
- package/dist/orchestration/stop-controls.js.map +1 -0
- package/dist/orchestration/store.d.ts +92 -0
- package/dist/orchestration/store.d.ts.map +1 -0
- package/dist/orchestration/store.js +326 -0
- package/dist/orchestration/store.js.map +1 -0
- package/dist/orchestration/task-controls.d.ts +172 -0
- package/dist/orchestration/task-controls.d.ts.map +1 -0
- package/dist/orchestration/task-controls.js +59 -0
- package/dist/orchestration/task-controls.js.map +1 -0
- package/dist/orchestration/task-files.d.ts +29 -0
- package/dist/orchestration/task-files.d.ts.map +1 -0
- package/dist/orchestration/task-files.js +200 -0
- package/dist/orchestration/task-files.js.map +1 -0
- package/dist/orchestration/task-questions.d.ts +26 -0
- package/dist/orchestration/task-questions.d.ts.map +1 -0
- package/dist/orchestration/task-questions.js +160 -0
- package/dist/orchestration/task-questions.js.map +1 -0
- package/dist/orchestration/task-report.d.ts +7 -0
- package/dist/orchestration/task-report.d.ts.map +1 -0
- package/dist/orchestration/task-report.js +33 -0
- package/dist/orchestration/task-report.js.map +1 -0
- package/dist/orchestration/tasks/checkpoint-hook.d.ts +19 -0
- package/dist/orchestration/tasks/checkpoint-hook.d.ts.map +1 -0
- package/dist/orchestration/tasks/checkpoint-hook.js +49 -0
- package/dist/orchestration/tasks/checkpoint-hook.js.map +1 -0
- package/dist/orchestration/tasks/cleanup.d.ts +18 -0
- package/dist/orchestration/tasks/cleanup.d.ts.map +1 -0
- package/dist/orchestration/tasks/cleanup.js +113 -0
- package/dist/orchestration/tasks/cleanup.js.map +1 -0
- package/dist/orchestration/tasks/driver.d.ts +23 -0
- package/dist/orchestration/tasks/driver.d.ts.map +1 -0
- package/dist/orchestration/tasks/driver.js +209 -0
- package/dist/orchestration/tasks/driver.js.map +1 -0
- package/dist/orchestration/tasks/failure.d.ts +5 -0
- package/dist/orchestration/tasks/failure.d.ts.map +1 -0
- package/dist/orchestration/tasks/failure.js +17 -0
- package/dist/orchestration/tasks/failure.js.map +1 -0
- package/dist/orchestration/tasks/pool.d.ts +18 -0
- package/dist/orchestration/tasks/pool.d.ts.map +1 -0
- package/dist/orchestration/tasks/pool.js +73 -0
- package/dist/orchestration/tasks/pool.js.map +1 -0
- package/dist/orchestration/tasks/scheduler.d.ts +38 -0
- package/dist/orchestration/tasks/scheduler.d.ts.map +1 -0
- package/dist/orchestration/tasks/scheduler.js +160 -0
- package/dist/orchestration/tasks/scheduler.js.map +1 -0
- package/dist/orchestration/tasks/service.d.ts +114 -0
- package/dist/orchestration/tasks/service.d.ts.map +1 -0
- package/dist/orchestration/tasks/service.js +760 -0
- package/dist/orchestration/tasks/service.js.map +1 -0
- package/dist/orchestration/tasks/shared-workspace.d.ts +25 -0
- package/dist/orchestration/tasks/shared-workspace.d.ts.map +1 -0
- package/dist/orchestration/tasks/shared-workspace.js +162 -0
- package/dist/orchestration/tasks/shared-workspace.js.map +1 -0
- package/dist/orchestration/tasks/task-directive.d.ts +6 -0
- package/dist/orchestration/tasks/task-directive.d.ts.map +1 -0
- package/dist/orchestration/tasks/task-directive.js +41 -0
- package/dist/orchestration/tasks/task-directive.js.map +1 -0
- package/dist/orchestration/tasks/timing.d.ts +15 -0
- package/dist/orchestration/tasks/timing.d.ts.map +1 -0
- package/dist/orchestration/tasks/timing.js +48 -0
- package/dist/orchestration/tasks/timing.js.map +1 -0
- package/dist/orchestration/tasks/tool-repetition.d.ts +3 -0
- package/dist/orchestration/tasks/tool-repetition.d.ts.map +1 -0
- package/dist/orchestration/tasks/tool-repetition.js +30 -0
- package/dist/orchestration/tasks/tool-repetition.js.map +1 -0
- package/dist/orchestration/tasks/workspace.d.ts +24 -0
- package/dist/orchestration/tasks/workspace.d.ts.map +1 -0
- package/dist/orchestration/tasks/workspace.js +147 -0
- package/dist/orchestration/tasks/workspace.js.map +1 -0
- package/dist/orchestration/telegram-speech.d.ts +17 -0
- package/dist/orchestration/telegram-speech.d.ts.map +1 -0
- package/dist/orchestration/telegram-speech.js +55 -0
- package/dist/orchestration/telegram-speech.js.map +1 -0
- package/dist/orchestration/telegram-tool-status.d.ts +23 -0
- package/dist/orchestration/telegram-tool-status.d.ts.map +1 -0
- package/dist/orchestration/telegram-tool-status.js +207 -0
- package/dist/orchestration/telegram-tool-status.js.map +1 -0
- package/dist/orchestration/telegram-voices.d.ts +42 -0
- package/dist/orchestration/telegram-voices.d.ts.map +1 -0
- package/dist/orchestration/telegram-voices.js +70 -0
- package/dist/orchestration/telegram-voices.js.map +1 -0
- package/dist/orchestration/tool-activity.d.ts +10 -0
- package/dist/orchestration/tool-activity.d.ts.map +1 -0
- package/dist/orchestration/tool-activity.js +38 -0
- package/dist/orchestration/tool-activity.js.map +1 -0
- package/dist/orchestration/types.d.ts +177 -0
- package/dist/orchestration/types.d.ts.map +1 -0
- package/dist/orchestration/types.js +13 -0
- package/dist/orchestration/types.js.map +1 -0
- package/dist/orchestration/voice-reply-policy.d.ts +8 -0
- package/dist/orchestration/voice-reply-policy.d.ts.map +1 -0
- package/dist/orchestration/voice-reply-policy.js +46 -0
- package/dist/orchestration/voice-reply-policy.js.map +1 -0
- package/dist/orchestration/worker-shares.d.ts +8 -0
- package/dist/orchestration/worker-shares.d.ts.map +1 -0
- package/dist/orchestration/worker-shares.js +59 -0
- package/dist/orchestration/worker-shares.js.map +1 -0
- package/dist/orchestration/workflow.d.ts +121 -0
- package/dist/orchestration/workflow.d.ts.map +1 -0
- package/dist/orchestration/workflow.js +69 -0
- package/dist/orchestration/workflow.js.map +1 -0
- package/dist/session/input-image.d.ts +10 -0
- package/dist/session/input-image.d.ts.map +1 -0
- package/dist/session/input-image.js +3 -0
- package/dist/session/input-image.js.map +1 -0
- package/dist/session/process.d.ts +15 -3
- package/dist/session/process.d.ts.map +1 -1
- package/dist/session/process.js +143 -35
- package/dist/session/process.js.map +1 -1
- package/dist/session/runtime-profile.d.ts +36 -0
- package/dist/session/runtime-profile.d.ts.map +1 -0
- package/dist/session/runtime-profile.js +63 -0
- package/dist/session/runtime-profile.js.map +1 -0
- package/dist/session/store.d.ts.map +1 -1
- package/dist/session/store.js +23 -1
- package/dist/session/store.js.map +1 -1
- package/dist/share/share-store.d.ts +3 -1
- package/dist/share/share-store.d.ts.map +1 -1
- package/dist/share/share-store.js +13 -2
- package/dist/share/share-store.js.map +1 -1
- package/dist/shared/line-request-order.d.ts +2 -0
- package/dist/shared/line-request-order.d.ts.map +1 -0
- package/dist/shared/line-request-order.js +16 -0
- package/dist/shared/line-request-order.js.map +1 -0
- package/dist/shared/task-elapsed.d.ts +3 -0
- package/dist/shared/task-elapsed.d.ts.map +1 -0
- package/dist/shared/task-elapsed.js +12 -0
- package/dist/shared/task-elapsed.js.map +1 -0
- package/dist/shared/task-updated-time.d.ts +3 -0
- package/dist/shared/task-updated-time.d.ts.map +1 -0
- package/dist/shared/task-updated-time.js +15 -0
- package/dist/shared/task-updated-time.js.map +1 -0
- package/dist/skills/loader.d.ts +2 -0
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js.map +1 -1
- package/dist/telegram/chunks.d.ts +19 -0
- package/dist/telegram/chunks.d.ts.map +1 -0
- package/dist/telegram/chunks.js +129 -0
- package/dist/telegram/chunks.js.map +1 -0
- package/dist/telegram/markdown.d.ts.map +1 -1
- package/dist/telegram/markdown.js +18 -3
- package/dist/telegram/markdown.js.map +1 -1
- package/dist/telegram/receiver.d.ts +2 -1
- package/dist/telegram/receiver.d.ts.map +1 -1
- package/dist/telegram/receiver.js +6 -1
- package/dist/telegram/receiver.js.map +1 -1
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/web-ui.d.ts.map +1 -1
- package/dist/ui/web-ui.js +31 -5
- package/dist/ui/web-ui.js.map +1 -1
- package/dist/voice/diagnostics.d.ts +29 -0
- package/dist/voice/diagnostics.d.ts.map +1 -0
- package/dist/voice/diagnostics.js +37 -0
- package/dist/voice/diagnostics.js.map +1 -0
- package/dist/voice/errors.d.ts +19 -0
- package/dist/voice/errors.d.ts.map +1 -0
- package/dist/voice/errors.js +133 -0
- package/dist/voice/errors.js.map +1 -0
- package/dist/voice/line-audio.d.ts +4 -0
- package/dist/voice/line-audio.d.ts.map +1 -0
- package/dist/voice/line-audio.js +27 -0
- package/dist/voice/line-audio.js.map +1 -0
- package/dist/voice/managed-quota.d.ts +5 -0
- package/dist/voice/managed-quota.d.ts.map +1 -0
- package/dist/voice/managed-quota.js +35 -0
- package/dist/voice/managed-quota.js.map +1 -0
- package/dist/voice/mp3.d.ts +3 -0
- package/dist/voice/mp3.d.ts.map +1 -0
- package/dist/voice/mp3.js +30 -0
- package/dist/voice/mp3.js.map +1 -0
- package/dist/voice/notes.d.ts +9 -0
- package/dist/voice/notes.d.ts.map +1 -0
- package/dist/voice/notes.js +68 -0
- package/dist/voice/notes.js.map +1 -0
- package/dist/voice/playback.d.ts +22 -0
- package/dist/voice/playback.d.ts.map +1 -0
- package/dist/voice/playback.js +52 -0
- package/dist/voice/playback.js.map +1 -0
- package/dist/voice/preview.d.ts +6 -0
- package/dist/voice/preview.d.ts.map +1 -0
- package/dist/voice/preview.js +44 -0
- package/dist/voice/preview.js.map +1 -0
- package/dist/voice/protocol.d.ts +10 -0
- package/dist/voice/protocol.d.ts.map +1 -0
- package/dist/voice/protocol.js +30 -0
- package/dist/voice/protocol.js.map +1 -0
- package/dist/voice/providers/cartesia-tts.d.ts +26 -0
- package/dist/voice/providers/cartesia-tts.d.ts.map +1 -0
- package/dist/voice/providers/cartesia-tts.js +95 -0
- package/dist/voice/providers/cartesia-tts.js.map +1 -0
- package/dist/voice/providers/deepgram-stt.d.ts +20 -0
- package/dist/voice/providers/deepgram-stt.d.ts.map +1 -0
- package/dist/voice/providers/deepgram-stt.js +66 -0
- package/dist/voice/providers/deepgram-stt.js.map +1 -0
- package/dist/voice/providers/elevenlabs-stt.d.ts +20 -0
- package/dist/voice/providers/elevenlabs-stt.d.ts.map +1 -0
- package/dist/voice/providers/elevenlabs-stt.js +92 -0
- package/dist/voice/providers/elevenlabs-stt.js.map +1 -0
- package/dist/voice/providers/elevenlabs-tts.d.ts +26 -0
- package/dist/voice/providers/elevenlabs-tts.d.ts.map +1 -0
- package/dist/voice/providers/elevenlabs-tts.js +82 -0
- package/dist/voice/providers/elevenlabs-tts.js.map +1 -0
- package/dist/voice/providers/encoded-audio-tts.d.ts +21 -0
- package/dist/voice/providers/encoded-audio-tts.d.ts.map +1 -0
- package/dist/voice/providers/encoded-audio-tts.js +175 -0
- package/dist/voice/providers/encoded-audio-tts.js.map +1 -0
- package/dist/voice/providers/fake.d.ts +39 -0
- package/dist/voice/providers/fake.d.ts.map +1 -0
- package/dist/voice/providers/fake.js +41 -0
- package/dist/voice/providers/fake.js.map +1 -0
- package/dist/voice/providers/gemini-live-stt.d.ts +21 -0
- package/dist/voice/providers/gemini-live-stt.d.ts.map +1 -0
- package/dist/voice/providers/gemini-live-stt.js +158 -0
- package/dist/voice/providers/gemini-live-stt.js.map +1 -0
- package/dist/voice/providers/gemini.d.ts +60 -0
- package/dist/voice/providers/gemini.d.ts.map +1 -0
- package/dist/voice/providers/gemini.js +124 -0
- package/dist/voice/providers/gemini.js.map +1 -0
- package/dist/voice/providers/model-ref.d.ts +9 -0
- package/dist/voice/providers/model-ref.d.ts.map +1 -0
- package/dist/voice/providers/model-ref.js +31 -0
- package/dist/voice/providers/model-ref.js.map +1 -0
- package/dist/voice/providers/openrouter.d.ts +39 -0
- package/dist/voice/providers/openrouter.d.ts.map +1 -0
- package/dist/voice/providers/openrouter.js +154 -0
- package/dist/voice/providers/openrouter.js.map +1 -0
- package/dist/voice/providers/paxalabs-stt.d.ts +12 -0
- package/dist/voice/providers/paxalabs-stt.d.ts.map +1 -0
- package/dist/voice/providers/paxalabs-stt.js +41 -0
- package/dist/voice/providers/paxalabs-stt.js.map +1 -0
- package/dist/voice/providers/paxalabs-tts.d.ts +23 -0
- package/dist/voice/providers/paxalabs-tts.d.ts.map +1 -0
- package/dist/voice/providers/paxalabs-tts.js +80 -0
- package/dist/voice/providers/paxalabs-tts.js.map +1 -0
- package/dist/voice/providers/recorded-stt.d.ts +34 -0
- package/dist/voice/providers/recorded-stt.d.ts.map +1 -0
- package/dist/voice/providers/recorded-stt.js +59 -0
- package/dist/voice/providers/recorded-stt.js.map +1 -0
- package/dist/voice/providers/registry.d.ts +10 -0
- package/dist/voice/providers/registry.d.ts.map +1 -0
- package/dist/voice/providers/registry.js +77 -0
- package/dist/voice/providers/registry.js.map +1 -0
- package/dist/voice/providers/socket.d.ts +10 -0
- package/dist/voice/providers/socket.d.ts.map +1 -0
- package/dist/voice/providers/socket.js +91 -0
- package/dist/voice/providers/socket.js.map +1 -0
- package/dist/voice/providers/upstream.d.ts +9 -0
- package/dist/voice/providers/upstream.d.ts.map +1 -0
- package/dist/voice/providers/upstream.js +51 -0
- package/dist/voice/providers/upstream.js.map +1 -0
- package/dist/voice/providers/voice-catalog.d.ts +17 -0
- package/dist/voice/providers/voice-catalog.d.ts.map +1 -0
- package/dist/voice/providers/voice-catalog.js +167 -0
- package/dist/voice/providers/voice-catalog.js.map +1 -0
- package/dist/voice/queue.d.ts +2 -0
- package/dist/voice/queue.d.ts.map +1 -0
- package/dist/voice/queue.js +6 -0
- package/dist/voice/queue.js.map +1 -0
- package/dist/voice/session.d.ts +86 -0
- package/dist/voice/session.d.ts.map +1 -0
- package/dist/voice/session.js +464 -0
- package/dist/voice/session.js.map +1 -0
- package/dist/voice/turn-manager.d.ts +27 -0
- package/dist/voice/turn-manager.d.ts.map +1 -0
- package/dist/voice/turn-manager.js +75 -0
- package/dist/voice/turn-manager.js.map +1 -0
- package/dist/voice/types.d.ts +78 -0
- package/dist/voice/types.d.ts.map +1 -0
- package/dist/voice/types.js +18 -0
- package/dist/voice/types.js.map +1 -0
- package/dist/voice/wav.d.ts +2 -0
- package/dist/voice/wav.d.ts.map +1 -0
- package/dist/voice/wav.js +21 -0
- package/dist/voice/wav.js.map +1 -0
- package/dist/wechat/ilink-client.d.ts +13 -0
- package/dist/wechat/ilink-client.d.ts.map +1 -1
- package/dist/wechat/ilink-client.js +19 -0
- package/dist/wechat/ilink-client.js.map +1 -1
- package/dist/whatsapp/manager.d.ts.map +1 -1
- package/dist/whatsapp/manager.js +51 -1
- package/dist/whatsapp/manager.js.map +1 -1
- package/mcp/capability-catalog.ts +206 -0
- package/mcp/modules.ts +56 -0
- package/mcp/server.ts +18 -37
- package/mcp/tools/browser/module.ts +1 -1
- package/mcp/tools/browser/skills/open-browser/SKILL.md +5 -3
- package/mcp/tools/discord/commands.ts +17 -1
- package/mcp/tools/discord/inbound.ts +11 -0
- package/mcp/tools/discord/module.ts +42 -2
- package/mcp/tools/discord/receiver-server.ts +10 -0
- package/mcp/tools/discord/types.ts +4 -1
- package/mcp/tools/image/module.ts +3 -1
- package/mcp/tools/receiver-spool.test.ts +28 -0
- package/mcp/tools/receiver-spool.ts +56 -0
- package/mcp/tools/share-file/module.ts +9 -1
- package/mcp/tools/shared/share-client.ts +19 -0
- package/mcp/tools/tasks/module.ts +35 -0
- package/mcp/tools/telegram/media-group.ts +21 -0
- package/mcp/tools/telegram/receiver-server.ts +246 -11
- package/mcp/tools/telegram/selection-confirmation.ts +20 -0
- package/mcp/tools/telegram/task-browser.ts +117 -0
- package/mcp/tools/telegram/task-detail.ts +36 -0
- package/mcp/tools/telegram/task-elapsed.ts +1 -0
- package/mcp/tools/telegram/typing.ts +6 -116
- package/mcp/tools/video/module.ts +1 -1
- package/mcp/types.ts +5 -0
- package/package.json +2 -1
- package/resource/claude_gateway.jpeg +0 -0
- package/scripts/orchestration/bench-store.cjs +30 -0
- package/scripts/orchestration/inspect.cjs +16 -0
- package/scripts/orchestration/probe-profile.cjs +67 -0
- package/scripts/orchestration/reconcile.cjs +21 -0
- package/scripts/orchestration/smoke-elevenlabs.cjs +90 -0
- package/scripts/orchestration/smoke-media.cjs +70 -0
- package/scripts/orchestration/smoke-text.cjs +101 -0
- package/scripts/orchestration/smoke-vision.cjs +49 -0
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.voiceSettingsRouter = voiceSettingsRouter;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const errors_1 = require("../voice/errors");
|
|
6
|
+
const preview_1 = require("../voice/preview");
|
|
7
|
+
const model_ref_1 = require("../voice/providers/model-ref");
|
|
8
|
+
const openrouter_1 = require("../voice/providers/openrouter");
|
|
9
|
+
const gemini_1 = require("../voice/providers/gemini");
|
|
10
|
+
const registry_1 = require("../voice/providers/registry");
|
|
11
|
+
const voice_catalog_1 = require("../voice/providers/voice-catalog");
|
|
12
|
+
const types_1 = require("../voice/types");
|
|
13
|
+
const wav_1 = require("../voice/wav");
|
|
14
|
+
const paxalabs_tts_1 = require("../voice/providers/paxalabs-tts");
|
|
15
|
+
const express_1 = require("express");
|
|
16
|
+
const promises_1 = require("fs/promises");
|
|
17
|
+
const auth_1 = require("./auth");
|
|
18
|
+
const config_write_lock_1 = require("../config/config-write-lock");
|
|
19
|
+
const config_1 = require("../orchestration/config");
|
|
20
|
+
const gateway_config_1 = require("../orchestration/gateway-config");
|
|
21
|
+
const voice_catalog_2 = require("../voice/providers/voice-catalog");
|
|
22
|
+
const upstream_1 = require("../voice/providers/upstream");
|
|
23
|
+
function publicVoiceSettings(config) {
|
|
24
|
+
const { allowedOrigins: _legacyOrigins, ...voice } = (0, config_1.resolveOrchestrationConfig)(config.orchestration, config.voice ?? { enabled: false }).voice;
|
|
25
|
+
return voice;
|
|
26
|
+
}
|
|
27
|
+
function catalogErrorMessage(error) {
|
|
28
|
+
if (error instanceof Error && error.message === 'INVALID_UPSTREAM_VOICE_URL') {
|
|
29
|
+
return 'Upstream voice URL is missing or invalid. Check the Claude provider settings.';
|
|
30
|
+
}
|
|
31
|
+
return (0, errors_1.describeVoiceError)(error).message;
|
|
32
|
+
}
|
|
33
|
+
function voiceSettingsRouter(configs, runners, keys, path) {
|
|
34
|
+
const router = (0, express_1.Router)(), auth = (0, auth_1.createApiAuthMiddleware)(keys);
|
|
35
|
+
const key = (req) => req.apiKey;
|
|
36
|
+
router.get('/v1/agents/:agentId/voice-settings', auth, (req, res) => {
|
|
37
|
+
const id = String(req.params.agentId), config = configs.get(id);
|
|
38
|
+
if (!config || !(0, auth_1.canAccessAgent)(key(req), id)) {
|
|
39
|
+
res.status(403).json({ error: 'Access denied' });
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
res.json({
|
|
43
|
+
orchestration_enabled: config.orchestration?.enabled === true,
|
|
44
|
+
voice: publicVoiceSettings(config),
|
|
45
|
+
direct_providers: [
|
|
46
|
+
...(process.env.ELEVENLABS_API_KEY ? ['elevenlabs'] : []),
|
|
47
|
+
...(process.env.PAXALABS_API_KEY ? ['paxalabs'] : []),
|
|
48
|
+
...(process.env.GEMINI_API_KEY ? ['gemini'] : []),
|
|
49
|
+
...(process.env.OPENROUTER_API_KEY ? ['openrouter'] : []),
|
|
50
|
+
...(process.env.DEEPGRAM_API_KEY ? ['deepgram'] : []),
|
|
51
|
+
...(process.env.CARTESIA_API_KEY ? ['cartesia'] : []),
|
|
52
|
+
],
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
router.patch('/v1/agents/:agentId/voice-settings', auth, async (req, res) => {
|
|
56
|
+
const id = String(req.params.agentId), config = configs.get(id);
|
|
57
|
+
if (!config || !(0, auth_1.canWriteAgent)(key(req), id)) {
|
|
58
|
+
res.status(403).json({ error: 'Write permission required' });
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (!path) {
|
|
62
|
+
res.status(501).json({ error: 'Config management unavailable' });
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
try {
|
|
66
|
+
(0, config_1.validateTree)(req.body, config_1.ORCHESTRATION_DEFAULTS.voice, 'voice');
|
|
67
|
+
if (!req.body || typeof req.body !== 'object' || Array.isArray(req.body))
|
|
68
|
+
throw Error('Invalid voice settings');
|
|
69
|
+
await (0, config_write_lock_1.withConfigWriteLock)(path, async () => {
|
|
70
|
+
const raw = JSON.parse(await (0, promises_1.readFile)(path, 'utf8'));
|
|
71
|
+
(0, gateway_config_1.migrateAgentVoiceConfig)(raw);
|
|
72
|
+
const agent = raw.agents.find((a) => a.id === id);
|
|
73
|
+
if (!agent)
|
|
74
|
+
throw Error('Agent no longer exists');
|
|
75
|
+
const previous = agent.voice ?? {};
|
|
76
|
+
const voice = { ...previous, ...req.body };
|
|
77
|
+
for (const field of [
|
|
78
|
+
'stt',
|
|
79
|
+
'tts',
|
|
80
|
+
'notes',
|
|
81
|
+
'turns',
|
|
82
|
+
'playback',
|
|
83
|
+
])
|
|
84
|
+
if (req.body[field])
|
|
85
|
+
voice[field] = { ...previous[field], ...req.body[field] };
|
|
86
|
+
const orchestration = { ...agent.orchestration };
|
|
87
|
+
const effective = (0, gateway_config_1.effectiveOrchestration)(orchestration, raw.gateway.orchestration);
|
|
88
|
+
const resolved = (0, config_1.resolveOrchestrationConfig)(effective, voice).voice;
|
|
89
|
+
if (!['', 'elevenlabs', 'upstream:elevenlabs', 'deepgram', 'paxalabs', 'upstream:paxalabs', 'managed:paxalabs', 'managed:elevenlabs', 'gemini', 'upstream:gemini', 'openrouter', 'upstream:openrouter'].includes(resolved.stt.provider) ||
|
|
90
|
+
!['', 'elevenlabs', 'upstream:elevenlabs', 'cartesia', 'paxalabs', 'upstream:paxalabs', 'managed:paxalabs', 'managed:elevenlabs', 'gemini', 'upstream:gemini', 'openrouter', 'upstream:openrouter'].includes(resolved.tts.provider) ||
|
|
91
|
+
!['', 'elevenlabs', 'upstream:elevenlabs', 'paxalabs', 'upstream:paxalabs', 'managed:paxalabs', 'managed:elevenlabs', 'gemini', 'upstream:gemini', 'openrouter', 'upstream:openrouter'].includes(resolved.notes.provider))
|
|
92
|
+
throw Error('Unsupported voice provider');
|
|
93
|
+
if (resolved.enabled && (!resolved.stt.model.trim() ||
|
|
94
|
+
!resolved.tts.model.trim() ||
|
|
95
|
+
(resolved.notes.enabled && !resolved.notes.model.trim())))
|
|
96
|
+
throw Error('Voice models are required');
|
|
97
|
+
for (const role of ['tts', 'stt', 'notes'])
|
|
98
|
+
if (resolved[role].model && resolved[role].provider)
|
|
99
|
+
(0, model_ref_1.nativeVoiceModel)(resolved[role].provider, resolved[role].model);
|
|
100
|
+
for (const role of ['tts', 'stt', 'notes'])
|
|
101
|
+
if (typeof voice[role]?.provider === 'string')
|
|
102
|
+
voice[role].provider = (0, model_ref_1.canonicalVoiceProvider)(voice[role].provider);
|
|
103
|
+
delete voice.allowedOrigins;
|
|
104
|
+
agent.voice = voice;
|
|
105
|
+
await (0, config_write_lock_1.writeConfigAtomic)(path, raw);
|
|
106
|
+
const updated = { ...config, voice, orchestration: effective };
|
|
107
|
+
runners.get(id)?.updateAgentConfig(updated);
|
|
108
|
+
configs.set(id, updated);
|
|
109
|
+
});
|
|
110
|
+
res.json({
|
|
111
|
+
voice: publicVoiceSettings(configs.get(id)),
|
|
112
|
+
applies_to: 'next voice connection and subsequent replies',
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
res.status(400).json({
|
|
117
|
+
error: error instanceof Error ? error.message : 'Invalid voice settings',
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
router.get('/v1/agents/:agentId/voice-settings/catalog', auth, async (req, res) => {
|
|
122
|
+
const id = String(req.params.agentId);
|
|
123
|
+
if (!configs.has(id) || !(0, auth_1.canAccessAgent)(key(req), id)) {
|
|
124
|
+
res.status(403).json({ error: 'Access denied' });
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const provider = (0, model_ref_1.canonicalVoiceProvider)(String(req.query.provider ||
|
|
128
|
+
(0, config_1.resolveOrchestrationConfig)(configs.get(id).orchestration, configs.get(id).voice ?? { enabled: false }).voice.tts
|
|
129
|
+
.provider));
|
|
130
|
+
if (!['upstream:elevenlabs', 'elevenlabs', 'cartesia', 'deepgram', 'paxalabs', 'upstream:paxalabs', 'managed:paxalabs', 'managed:elevenlabs', 'gemini', 'upstream:gemini', 'openrouter', 'upstream:openrouter'].includes(provider)) {
|
|
131
|
+
res.status(400).json({ error: 'Unsupported provider' });
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
if (provider.startsWith('managed:')) {
|
|
136
|
+
const nativeProvider = provider.slice('managed:'.length);
|
|
137
|
+
const { base, key: token } = (0, upstream_1.upstreamVoiceConnection)(nativeProvider, true);
|
|
138
|
+
const response = await fetch(new URL('../models', base), { headers: { Authorization: `Bearer ${token}` }, signal: AbortSignal.timeout(10000), redirect: 'error' });
|
|
139
|
+
if (!response.ok)
|
|
140
|
+
throw await (0, errors_1.providerHttpError)('VOICE', response);
|
|
141
|
+
const body = await response.json();
|
|
142
|
+
const models = body.models.filter(m => m.provider === nativeProvider).map(m => ({ ...m, name: m.display_name, source: 'managed', metered: true, can_do_text_to_speech: m.kind === 'tts', can_do_speech_to_text: m.kind === 'stt', voice_messages: m.kind === 'stt' && !m.realtime, conversation: !(nativeProvider === 'elevenlabs' && m.kind === 'stt' && !m.realtime), supported_languages: (0, preview_1.voicePreviewLanguages)(provider, m.native_model_id) }));
|
|
143
|
+
const voices = await (0, voice_catalog_2.voiceChoices)({ provider, voiceId: '' });
|
|
144
|
+
res.json({ provider, voices, models, warnings: [] });
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const warnings = [];
|
|
148
|
+
let voices = [];
|
|
149
|
+
if (provider !== 'deepgram') {
|
|
150
|
+
try {
|
|
151
|
+
voices = await (0, voice_catalog_2.voiceChoices)({ provider, voiceId: '' });
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
warnings.push(`Voice list unavailable. ${catalogErrorMessage(error)}`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
let models = [];
|
|
158
|
+
try {
|
|
159
|
+
if (provider === 'elevenlabs' || provider === 'upstream:elevenlabs') {
|
|
160
|
+
try {
|
|
161
|
+
const connection = provider === 'upstream:elevenlabs' ? (0, upstream_1.upstreamVoiceConnection)() : undefined;
|
|
162
|
+
const response = await fetch(connection
|
|
163
|
+
? new URL('models', connection.base)
|
|
164
|
+
: 'https://api.elevenlabs.io/v1/models', {
|
|
165
|
+
headers: connection
|
|
166
|
+
? { Authorization: `Bearer ${connection.key}` }
|
|
167
|
+
: { 'xi-api-key': process.env.ELEVENLABS_API_KEY ?? '' },
|
|
168
|
+
signal: AbortSignal.timeout(10000),
|
|
169
|
+
redirect: 'error',
|
|
170
|
+
});
|
|
171
|
+
if (!response.ok)
|
|
172
|
+
throw await (0, errors_1.providerHttpError)('VOICE', response);
|
|
173
|
+
const result = await response.json();
|
|
174
|
+
if (!Array.isArray(result))
|
|
175
|
+
throw Error('Invalid model catalog');
|
|
176
|
+
models = result;
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
// Voice and model catalog permissions are independent. A restricted
|
|
180
|
+
// models_read permission must not hide otherwise usable voices.
|
|
181
|
+
warnings.push(`Provider model list unavailable. ${catalogErrorMessage(error)} Showing supported models; check models_read permission if access is denied.`);
|
|
182
|
+
models = [
|
|
183
|
+
['eleven_v3_conversational', 'Eleven v3 Conversational'],
|
|
184
|
+
['eleven_v3', 'Eleven v3'],
|
|
185
|
+
['eleven_multilingual_v2', 'Eleven Multilingual v2'],
|
|
186
|
+
['eleven_flash_v2_5', 'Eleven Flash v2.5'],
|
|
187
|
+
['eleven_turbo_v2_5', 'Eleven Turbo v2.5'],
|
|
188
|
+
].map(([model_id, name]) => ({ model_id, name, can_do_text_to_speech: true, catalog_source: 'supported_defaults' }));
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
if (provider === 'paxalabs' || provider === 'upstream:paxalabs') {
|
|
192
|
+
const { base, key } = (0, paxalabs_tts_1.paxaConnection)(provider);
|
|
193
|
+
const response = await fetch(new URL('models', base), { headers: { Authorization: `Bearer ${key}` }, signal: AbortSignal.timeout(10000), redirect: 'error' });
|
|
194
|
+
if (!response.ok)
|
|
195
|
+
throw await (0, errors_1.providerHttpError)('VOICE', response);
|
|
196
|
+
const result = await response.json();
|
|
197
|
+
models = (result.models ?? []).filter(m => /^paxa-(tts|stt)-/.test(m.id)).map(m => ({ model_id: m.id, name: m.name ?? m.id, can_do_text_to_speech: m.id.startsWith('paxa-tts-'), can_do_speech_to_text: m.id.startsWith('paxa-stt-'), realtime: false, voice_messages: m.id.startsWith('paxa-stt-') }));
|
|
198
|
+
}
|
|
199
|
+
if (provider === 'elevenlabs' || provider === 'upstream:elevenlabs') {
|
|
200
|
+
// /models exposes synthesis capabilities; Scribe transports have documented IDs.
|
|
201
|
+
models.push({ model_id: 'scribe_v2_realtime', name: 'Scribe v2 Realtime', can_do_text_to_speech: false, can_do_speech_to_text: true, realtime: true, voice_messages: false }, { model_id: 'scribe_v2', name: 'Scribe v2', can_do_text_to_speech: false, can_do_speech_to_text: true, realtime: false, voice_messages: true, conversation: false }, { model_id: 'scribe_v1', name: 'Scribe v1', can_do_text_to_speech: false, can_do_speech_to_text: true, realtime: false, voice_messages: true, conversation: false });
|
|
202
|
+
}
|
|
203
|
+
if (provider === 'openrouter' || provider === 'upstream:openrouter') {
|
|
204
|
+
const catalog = await (0, openrouter_1.openRouterVoiceModels)(provider);
|
|
205
|
+
if (catalog.some(m => m.architecture?.output_modalities?.includes('speech') && !m.supported_voices?.length))
|
|
206
|
+
warnings.push('Voice-cloning models without preset voices are not offered by these voice controls.');
|
|
207
|
+
models = catalog.filter(m => !m.architecture?.output_modalities?.includes('speech') || !!m.supported_voices?.length).map(m => ({ model_id: m.id, name: m.name ?? m.id, can_do_text_to_speech: !!m.architecture?.output_modalities?.includes('speech'), can_do_speech_to_text: !!m.architecture?.output_modalities?.includes('transcription'), realtime: false, voice_messages: !!m.architecture?.output_modalities?.includes('transcription') }));
|
|
208
|
+
}
|
|
209
|
+
if (provider === 'gemini' || provider === 'upstream:gemini') {
|
|
210
|
+
const { base, headers } = (0, gemini_1.geminiConnection)(provider);
|
|
211
|
+
const signal = AbortSignal.timeout(15000);
|
|
212
|
+
let pageToken = '';
|
|
213
|
+
for (let page = 0; page < 20; page++) {
|
|
214
|
+
const url = new URL('models', base);
|
|
215
|
+
url.searchParams.set('pageSize', '100');
|
|
216
|
+
if (pageToken)
|
|
217
|
+
url.searchParams.set('pageToken', pageToken);
|
|
218
|
+
const response = await fetch(url, { headers, signal, redirect: 'error' });
|
|
219
|
+
if (!response.ok)
|
|
220
|
+
throw await (0, errors_1.providerHttpError)('VOICE', response);
|
|
221
|
+
const body = await response.json();
|
|
222
|
+
for (const model of body.models ?? []) {
|
|
223
|
+
const id = model.name.replace(/^models\//, '');
|
|
224
|
+
const live = id === 'gemini-3.5-transcribe-live' && !!model.supportedGenerationMethods?.includes('bidiGenerateContent');
|
|
225
|
+
if (!live && !model.supportedGenerationMethods?.includes('generateContent'))
|
|
226
|
+
continue;
|
|
227
|
+
const tts = /^gemini-[\d.]+-(flash|pro)-(preview-tts|tts-preview)$/.test(id);
|
|
228
|
+
const stt = live || id === 'gemini-3.5-transcribe' || /^gemini-(2\.5-(flash|pro|flash-lite)|3(-|\.\d+-)(flash|pro)(-preview)?)$/.test(id);
|
|
229
|
+
if (tts || stt)
|
|
230
|
+
models.push({ model_id: id, name: model.displayName ?? id, can_do_text_to_speech: tts, can_do_speech_to_text: stt, realtime: live, voice_messages: stt && !live });
|
|
231
|
+
}
|
|
232
|
+
if (!body.nextPageToken)
|
|
233
|
+
break;
|
|
234
|
+
pageToken = body.nextPageToken;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
if (provider === 'cartesia') {
|
|
238
|
+
models = [{ model_id: 'sonic-3', name: 'Sonic 3', can_do_text_to_speech: true }];
|
|
239
|
+
warnings.push('Showing the models supported by the Cartesia adapter.');
|
|
240
|
+
}
|
|
241
|
+
if (provider === 'deepgram') {
|
|
242
|
+
const response = await fetch('https://api.deepgram.com/v1/models', { headers: { Authorization: `Token ${process.env.DEEPGRAM_API_KEY ?? ''}` }, signal: AbortSignal.timeout(10000), redirect: 'error' });
|
|
243
|
+
if (!response.ok)
|
|
244
|
+
throw await (0, errors_1.providerHttpError)('VOICE', response);
|
|
245
|
+
const result = await response.json();
|
|
246
|
+
models = (result.stt ?? []).filter(m => m.streaming !== false && /nova|enhanced|base/.test(m.canonical_name ?? m.name)).map(m => ({ model_id: m.canonical_name ?? m.name, name: m.name, can_do_text_to_speech: false, can_do_speech_to_text: true, realtime: true, voice_messages: false }));
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
warnings.push(`Provider model list unavailable. ${catalogErrorMessage(error)}`);
|
|
251
|
+
}
|
|
252
|
+
const byok = provider.startsWith('upstream:');
|
|
253
|
+
const namespace = provider.replace(/^upstream:/, '');
|
|
254
|
+
const catalogModels = models.map(value => {
|
|
255
|
+
const model = value;
|
|
256
|
+
const supported = model.languages?.length ? model.languages.map(language => language.language_id) : (0, preview_1.voicePreviewLanguages)(provider, model.model_id);
|
|
257
|
+
return { ...model, model_id: byok ? `${namespace}/${model.model_id}` : model.model_id,
|
|
258
|
+
native_model_id: model.model_id, provider: namespace, metered: false,
|
|
259
|
+
source: byok ? 'byok' : 'gateway', supported_languages: supported };
|
|
260
|
+
});
|
|
261
|
+
res.json({ provider, voices, models: catalogModels, warnings });
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
res.status(503).json({
|
|
265
|
+
error: `Voice catalog unavailable. ${catalogErrorMessage(error)}`,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
router.post('/v1/agents/:agentId/voice-settings/preview', auth, async (req, res) => {
|
|
270
|
+
const id = String(req.params.agentId);
|
|
271
|
+
if (!configs.has(id) || !(0, auth_1.canWriteAgent)(key(req), id)) {
|
|
272
|
+
res.status(403).json({ error: 'Write permission required' });
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
const { provider: requestedProvider, model, voiceId = '', language = 'en' } = req.body ?? {};
|
|
276
|
+
const provider = typeof requestedProvider === 'string' ? (0, model_ref_1.canonicalVoiceProvider)(requestedProvider) : requestedProvider;
|
|
277
|
+
if (typeof provider !== 'string' || typeof model !== 'string' || typeof voiceId !== 'string' || model.length > 128 || voiceId.length > 128) {
|
|
278
|
+
res.status(400).json({ error: 'Invalid voice selection' });
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
if (typeof language !== 'string' || !Object.prototype.hasOwnProperty.call(preview_1.VOICE_PREVIEW_TEXT, language)) {
|
|
282
|
+
res.status(400).json({ error: 'Unsupported preview language' });
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
if (!(0, preview_1.voicePreviewLanguages)(provider, model).includes(language)) {
|
|
286
|
+
res.status(400).json({ error: `Preview language '${language}' is not supported by this model. Choose another language or model.` });
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
const abort = new AbortController();
|
|
290
|
+
res.on('close', () => abort.abort());
|
|
291
|
+
try {
|
|
292
|
+
const voice = await (0, voice_catalog_1.resolveVoiceId)({ provider, voiceId, model });
|
|
293
|
+
const signal = AbortSignal.any([abort.signal, AbortSignal.timeout(60000)]);
|
|
294
|
+
const chunks = [];
|
|
295
|
+
let size = 0;
|
|
296
|
+
for await (const chunk of (0, registry_1.ttsProvider)({ provider, model }).synthesize({ text: (async function* () { yield preview_1.VOICE_PREVIEW_TEXT[language]; })(), voiceId: voice, language, outputFormat: types_1.PCM16, signal })) {
|
|
297
|
+
size += chunk.bytes.length;
|
|
298
|
+
if (size > 2 * 1024 * 1024)
|
|
299
|
+
throw Error('Preview too large');
|
|
300
|
+
chunks.push(Buffer.from(chunk.bytes));
|
|
301
|
+
}
|
|
302
|
+
if (!size)
|
|
303
|
+
throw Error('No audio');
|
|
304
|
+
res.setHeader('Cache-Control', 'no-store');
|
|
305
|
+
res.json({ mime: 'audio/wav', audio: (0, wav_1.pcmToWav)(Buffer.concat(chunks)).toString('base64') });
|
|
306
|
+
}
|
|
307
|
+
catch (error) {
|
|
308
|
+
if (!res.destroyed) {
|
|
309
|
+
const referenceId = (0, crypto_1.randomUUID)();
|
|
310
|
+
const diagnostic = (0, errors_1.describeVoiceError)(error);
|
|
311
|
+
console.warn(JSON.stringify({ event: 'Voice preview failed', agentId: id, provider, model, referenceId, ...diagnostic }));
|
|
312
|
+
res.status(503).json({ error: diagnostic.message, referenceId, ...diagnostic });
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
});
|
|
316
|
+
return router;
|
|
317
|
+
}
|
|
318
|
+
//# sourceMappingURL=voice-settings-router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice-settings-router.js","sourceRoot":"","sources":["../../src/api/voice-settings-router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AgentConfig } from '../types';
|
|
2
|
+
import type { AgentManager } from './agent-manager';
|
|
3
|
+
import type { AppsRegistry, AppEntry } from './registry';
|
|
4
|
+
export type DockerCommand = (args: string[], cwd: string) => Promise<string>;
|
|
5
|
+
/** Only installer-owned legacy credential mounts qualify; unknown mounts still fail admission. */
|
|
6
|
+
export declare function migrateAppAgentContainer(entry: AppEntry, agent: AgentConfig, manager: Pick<AgentManager, 'injectAgentService'>, run?: DockerCommand): Promise<boolean>;
|
|
7
|
+
export declare function migrateAppAgentContainers(registry: Pick<AppsRegistry, 'list'>, manager: Pick<AgentManager, 'injectAgentService'>, agents: AgentConfig[]): Promise<Array<{
|
|
8
|
+
app: string;
|
|
9
|
+
error: string;
|
|
10
|
+
}>>;
|
|
11
|
+
//# sourceMappingURL=agent-container-migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-container-migration.d.ts","sourceRoot":"","sources":["../../src/apps/agent-container-migration.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIzD,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAM7E,kGAAkG;AAClG,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAE,GAAG,GAAE,aAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CAsCpL;AAED,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC,CAY5M"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.migrateAppAgentContainer = migrateAppAgentContainer;
|
|
4
|
+
exports.migrateAppAgentContainers = migrateAppAgentContainers;
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
const util_1 = require("util");
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const os_1 = require("os");
|
|
10
|
+
const crypto_1 = require("crypto");
|
|
11
|
+
const claude_settings_1 = require("../config/claude-settings");
|
|
12
|
+
const container_1 = require("../orchestration/container");
|
|
13
|
+
const docker = async (args, cwd) => {
|
|
14
|
+
const result = await (0, util_1.promisify)(child_process_1.execFile)('docker', args, { cwd, encoding: 'utf8', timeout: 120000, maxBuffer: 1024 * 1024 });
|
|
15
|
+
return result.stdout;
|
|
16
|
+
};
|
|
17
|
+
/** Only installer-owned legacy credential mounts qualify; unknown mounts still fail admission. */
|
|
18
|
+
async function migrateAppAgentContainer(entry, agent, manager, run = docker) {
|
|
19
|
+
if (!agent.orchestration?.enabled || agent.type !== 'app-agent' || entry.status !== 'running' || !entry.agentDeclaration || !entry.agentPaths)
|
|
20
|
+
return false;
|
|
21
|
+
if (entry.agentDeclaration.name !== agent.id || agent.container !== `${entry.name}-agent`)
|
|
22
|
+
throw new Error('CONTAINER_MIGRATION_IDENTITY_MISMATCH');
|
|
23
|
+
const inspect = JSON.parse(await run(['inspect', agent.container], entry.installPath))[0];
|
|
24
|
+
const labels = inspect.Config?.Labels ?? {};
|
|
25
|
+
if (labels['com.docker.compose.service'] !== 'agent' || labels['com.docker.compose.project'] !== entry.name ||
|
|
26
|
+
(0, fs_1.realpathSync)(labels['com.docker.compose.project.working_dir'] || '/') !== (0, fs_1.realpathSync)(entry.installPath))
|
|
27
|
+
throw new Error('CONTAINER_MIGRATION_OWNERSHIP_REQUIRED');
|
|
28
|
+
const oldSources = new Set([(0, path_1.join)((0, os_1.homedir)(), '.claude', 'settings.json'), (0, claude_settings_1.claudeSettingsPath)()]);
|
|
29
|
+
const legacy = (m) => m.Type === 'bind' && !m.RW && ((oldSources.has(m.Source) && m.Destination === (0, path_1.join)((0, os_1.homedir)(), '.claude', 'settings.json')) ||
|
|
30
|
+
(m.Source === (0, path_1.join)((0, os_1.homedir)(), '.claude.json') && m.Destination === (0, path_1.join)((0, os_1.homedir)(), '.claude.json.seed')));
|
|
31
|
+
if (!(inspect.Mounts ?? []).some(legacy))
|
|
32
|
+
return false;
|
|
33
|
+
// Validate all other mounts and privileges before changing anything. Do not
|
|
34
|
+
// turn an arbitrary/privileged container into an implicitly approved one.
|
|
35
|
+
await (0, container_1.validateContainerInspection)(agent, { ...inspect, Mounts: inspect.Mounts.filter((m) => !legacy(m)) }, { requireRunning: false });
|
|
36
|
+
const compose = (0, path_1.join)(entry.installPath, 'docker-compose.yml');
|
|
37
|
+
const dockerfile = (0, path_1.join)(entry.installPath, 'Dockerfile.agent');
|
|
38
|
+
const previous = (0, fs_1.readFileSync)(compose);
|
|
39
|
+
const previousDockerfile = (0, fs_1.existsSync)(dockerfile) ? (0, fs_1.readFileSync)(dockerfile) : undefined;
|
|
40
|
+
const backup = (0, path_1.join)(entry.installPath, '.gateway-agent-migrations', (0, crypto_1.randomUUID)());
|
|
41
|
+
(0, fs_1.mkdirSync)(backup, { recursive: true, mode: 0o700 });
|
|
42
|
+
(0, fs_1.copyFileSync)(compose, (0, path_1.join)(backup, 'docker-compose.yml'));
|
|
43
|
+
if (previousDockerfile)
|
|
44
|
+
(0, fs_1.copyFileSync)(dockerfile, (0, path_1.join)(backup, 'Dockerfile.agent'));
|
|
45
|
+
try {
|
|
46
|
+
manager.injectAgentService(entry);
|
|
47
|
+
// Existing image already has the CLI runtime/home. Recreate ONLY agent:
|
|
48
|
+
// no app/db restart, dependency traversal, image rebuild or volume removal.
|
|
49
|
+
await run(['compose', '-p', entry.name, '-f', compose, 'up', '-d', '--no-deps', '--no-build', '--force-recreate', 'agent'], entry.installPath);
|
|
50
|
+
const updated = JSON.parse(await run(['inspect', agent.container], entry.installPath))[0];
|
|
51
|
+
await (0, container_1.validateContainerInspection)(agent, updated);
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
(0, fs_1.writeFileSync)(compose, previous);
|
|
56
|
+
if (previousDockerfile)
|
|
57
|
+
(0, fs_1.writeFileSync)(dockerfile, previousDockerfile);
|
|
58
|
+
// Do not recreate the rejected legacy mounts as a rollback. Admission stays
|
|
59
|
+
// closed; the durable backup remains available for explicit recovery.
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async function migrateAppAgentContainers(registry, manager, agents) {
|
|
64
|
+
const errors = [];
|
|
65
|
+
let entries;
|
|
66
|
+
try {
|
|
67
|
+
entries = await registry.list();
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return [{ app: 'registry', error: 'APP_REGISTRY_UNAVAILABLE' }];
|
|
71
|
+
}
|
|
72
|
+
for (const entry of entries) {
|
|
73
|
+
const agent = agents.find(a => a.id === entry.agentDeclaration?.name);
|
|
74
|
+
if (!agent)
|
|
75
|
+
continue;
|
|
76
|
+
try {
|
|
77
|
+
await migrateAppAgentContainer(entry, agent, manager);
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
errors.push({ app: entry.name, error: error instanceof Error ? error.message : 'CONTAINER_MIGRATION_FAILED' });
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return errors;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=agent-container-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-container-migration.js","sourceRoot":"","sources":["../../src/apps/agent-container-migration.ts"],"names":[],"mappings":"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"}
|
package/dist/apps/installer.d.ts
CHANGED
|
@@ -450,7 +450,7 @@ export declare class AppInstaller {
|
|
|
450
450
|
* listening; omitting it marks the batch here, which is correct for any
|
|
451
451
|
* caller that is not racing live status reads.
|
|
452
452
|
*/
|
|
453
|
-
restoreRunningApps(pending?: AppEntry[]): Promise<{
|
|
453
|
+
restoreRunningApps(pending?: AppEntry[], onRestored?: (entry: AppEntry) => Promise<void>): Promise<{
|
|
454
454
|
attempted: number;
|
|
455
455
|
failures: Array<{
|
|
456
456
|
app: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/apps/installer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/apps/installer.ts"],"names":[],"mappings":"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"}
|
package/dist/apps/installer.js
CHANGED
|
@@ -1214,7 +1214,7 @@ class AppInstaller {
|
|
|
1214
1214
|
* listening; omitting it marks the batch here, which is correct for any
|
|
1215
1215
|
* caller that is not racing live status reads.
|
|
1216
1216
|
*/
|
|
1217
|
-
async restoreRunningApps(pending) {
|
|
1217
|
+
async restoreRunningApps(pending, onRestored) {
|
|
1218
1218
|
const running = pending ?? (await this.markRestorePending());
|
|
1219
1219
|
const failures = [];
|
|
1220
1220
|
// Mark the WHOLE batch in flight before any worker starts, not per worker.
|
|
@@ -1239,6 +1239,7 @@ class AppInstaller {
|
|
|
1239
1239
|
try {
|
|
1240
1240
|
await this.composeUpAsync(entry.name, entry.installPath);
|
|
1241
1241
|
this.restoreFailures.delete(entry.name);
|
|
1242
|
+
await onRestored?.(entry);
|
|
1242
1243
|
}
|
|
1243
1244
|
catch (err) {
|
|
1244
1245
|
const error = err.message;
|