@lobu/gateway 2.8.0
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/api/index.d.ts +2 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +6 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/platform.d.ts +92 -0
- package/dist/api/platform.d.ts.map +1 -0
- package/dist/api/platform.js +236 -0
- package/dist/api/platform.js.map +1 -0
- package/dist/api/response-renderer.d.ts +44 -0
- package/dist/api/response-renderer.d.ts.map +1 -0
- package/dist/api/response-renderer.js +123 -0
- package/dist/api/response-renderer.js.map +1 -0
- package/dist/auth/agent-metadata-store.d.ts +64 -0
- package/dist/auth/agent-metadata-store.d.ts.map +1 -0
- package/dist/auth/agent-metadata-store.js +115 -0
- package/dist/auth/agent-metadata-store.js.map +1 -0
- package/dist/auth/api-auth-middleware.d.ts +19 -0
- package/dist/auth/api-auth-middleware.d.ts.map +1 -0
- package/dist/auth/api-auth-middleware.js +61 -0
- package/dist/auth/api-auth-middleware.js.map +1 -0
- package/dist/auth/api-key-provider-module.d.ts +60 -0
- package/dist/auth/api-key-provider-module.d.ts.map +1 -0
- package/dist/auth/api-key-provider-module.js +148 -0
- package/dist/auth/api-key-provider-module.js.map +1 -0
- package/dist/auth/base-provider-module.d.ts +70 -0
- package/dist/auth/base-provider-module.d.ts.map +1 -0
- package/dist/auth/base-provider-module.js +118 -0
- package/dist/auth/base-provider-module.js.map +1 -0
- package/dist/auth/chatgpt/chatgpt-oauth-module.d.ts +34 -0
- package/dist/auth/chatgpt/chatgpt-oauth-module.d.ts.map +1 -0
- package/dist/auth/chatgpt/chatgpt-oauth-module.js +136 -0
- package/dist/auth/chatgpt/chatgpt-oauth-module.js.map +1 -0
- package/dist/auth/chatgpt/device-code-client.d.ts +40 -0
- package/dist/auth/chatgpt/device-code-client.d.ts.map +1 -0
- package/dist/auth/chatgpt/device-code-client.js +165 -0
- package/dist/auth/chatgpt/device-code-client.js.map +1 -0
- package/dist/auth/chatgpt/index.d.ts +2 -0
- package/dist/auth/chatgpt/index.d.ts.map +1 -0
- package/dist/auth/chatgpt/index.js +6 -0
- package/dist/auth/chatgpt/index.js.map +1 -0
- package/dist/auth/claude/oauth-module.d.ts +29 -0
- package/dist/auth/claude/oauth-module.d.ts.map +1 -0
- package/dist/auth/claude/oauth-module.js +201 -0
- package/dist/auth/claude/oauth-module.js.map +1 -0
- package/dist/auth/cli/token-service.d.ts +35 -0
- package/dist/auth/cli/token-service.d.ts.map +1 -0
- package/dist/auth/cli/token-service.js +171 -0
- package/dist/auth/cli/token-service.js.map +1 -0
- package/dist/auth/external/client.d.ts +65 -0
- package/dist/auth/external/client.d.ts.map +1 -0
- package/dist/auth/external/client.js +348 -0
- package/dist/auth/external/client.js.map +1 -0
- package/dist/auth/external/device-code-client.d.ts +41 -0
- package/dist/auth/external/device-code-client.d.ts.map +1 -0
- package/dist/auth/external/device-code-client.js +128 -0
- package/dist/auth/external/device-code-client.js.map +1 -0
- package/dist/auth/mcp/config-service.d.ts +70 -0
- package/dist/auth/mcp/config-service.d.ts.map +1 -0
- package/dist/auth/mcp/config-service.js +269 -0
- package/dist/auth/mcp/config-service.js.map +1 -0
- package/dist/auth/mcp/proxy.d.ts +68 -0
- package/dist/auth/mcp/proxy.d.ts.map +1 -0
- package/dist/auth/mcp/proxy.js +783 -0
- package/dist/auth/mcp/proxy.js.map +1 -0
- package/dist/auth/mcp/string-substitution.d.ts +11 -0
- package/dist/auth/mcp/string-substitution.d.ts.map +1 -0
- package/dist/auth/mcp/string-substitution.js +21 -0
- package/dist/auth/mcp/string-substitution.js.map +1 -0
- package/dist/auth/mcp/tool-cache.d.ts +26 -0
- package/dist/auth/mcp/tool-cache.d.ts.map +1 -0
- package/dist/auth/mcp/tool-cache.js +58 -0
- package/dist/auth/mcp/tool-cache.js.map +1 -0
- package/dist/auth/oauth/base-client.d.ts +54 -0
- package/dist/auth/oauth/base-client.d.ts.map +1 -0
- package/dist/auth/oauth/base-client.js +191 -0
- package/dist/auth/oauth/base-client.js.map +1 -0
- package/dist/auth/oauth/client.d.ts +35 -0
- package/dist/auth/oauth/client.d.ts.map +1 -0
- package/dist/auth/oauth/client.js +96 -0
- package/dist/auth/oauth/client.js.map +1 -0
- package/dist/auth/oauth/credentials.d.ts +8 -0
- package/dist/auth/oauth/credentials.d.ts.map +1 -0
- package/dist/auth/oauth/credentials.js +3 -0
- package/dist/auth/oauth/credentials.js.map +1 -0
- package/dist/auth/oauth/providers.d.ts +44 -0
- package/dist/auth/oauth/providers.d.ts.map +1 -0
- package/dist/auth/oauth/providers.js +37 -0
- package/dist/auth/oauth/providers.js.map +1 -0
- package/dist/auth/oauth/state-store.d.ts +62 -0
- package/dist/auth/oauth/state-store.d.ts.map +1 -0
- package/dist/auth/oauth/state-store.js +84 -0
- package/dist/auth/oauth/state-store.js.map +1 -0
- package/dist/auth/oauth-templates.d.ts +15 -0
- package/dist/auth/oauth-templates.d.ts.map +1 -0
- package/dist/auth/oauth-templates.js +161 -0
- package/dist/auth/oauth-templates.js.map +1 -0
- package/dist/auth/provider-catalog.d.ts +52 -0
- package/dist/auth/provider-catalog.d.ts.map +1 -0
- package/dist/auth/provider-catalog.js +155 -0
- package/dist/auth/provider-catalog.js.map +1 -0
- package/dist/auth/provider-model-options.d.ts +3 -0
- package/dist/auth/provider-model-options.d.ts.map +1 -0
- package/dist/auth/provider-model-options.js +29 -0
- package/dist/auth/provider-model-options.js.map +1 -0
- package/dist/auth/settings/agent-settings-store.d.ts +112 -0
- package/dist/auth/settings/agent-settings-store.d.ts.map +1 -0
- package/dist/auth/settings/agent-settings-store.js +376 -0
- package/dist/auth/settings/agent-settings-store.js.map +1 -0
- package/dist/auth/settings/auth-profiles-manager.d.ts +26 -0
- package/dist/auth/settings/auth-profiles-manager.d.ts.map +1 -0
- package/dist/auth/settings/auth-profiles-manager.js +146 -0
- package/dist/auth/settings/auth-profiles-manager.js.map +1 -0
- package/dist/auth/settings/index.d.ts +4 -0
- package/dist/auth/settings/index.d.ts.map +1 -0
- package/dist/auth/settings/index.js +9 -0
- package/dist/auth/settings/index.js.map +1 -0
- package/dist/auth/settings/model-preference-store.d.ts +25 -0
- package/dist/auth/settings/model-preference-store.d.ts.map +1 -0
- package/dist/auth/settings/model-preference-store.js +50 -0
- package/dist/auth/settings/model-preference-store.js.map +1 -0
- package/dist/auth/settings/model-selection.d.ts +11 -0
- package/dist/auth/settings/model-selection.d.ts.map +1 -0
- package/dist/auth/settings/model-selection.js +83 -0
- package/dist/auth/settings/model-selection.js.map +1 -0
- package/dist/auth/settings/resolved-settings-view.d.ts +45 -0
- package/dist/auth/settings/resolved-settings-view.d.ts.map +1 -0
- package/dist/auth/settings/resolved-settings-view.js +152 -0
- package/dist/auth/settings/resolved-settings-view.js.map +1 -0
- package/dist/auth/settings/template-utils.d.ts +3 -0
- package/dist/auth/settings/template-utils.d.ts.map +1 -0
- package/dist/auth/settings/template-utils.js +43 -0
- package/dist/auth/settings/template-utils.js.map +1 -0
- package/dist/auth/settings/token-service.d.ts +86 -0
- package/dist/auth/settings/token-service.d.ts.map +1 -0
- package/dist/auth/settings/token-service.js +3 -0
- package/dist/auth/settings/token-service.js.map +1 -0
- package/dist/auth/system-env-store.d.ts +26 -0
- package/dist/auth/system-env-store.d.ts.map +1 -0
- package/dist/auth/system-env-store.js +92 -0
- package/dist/auth/system-env-store.js.map +1 -0
- package/dist/auth/user-agents-store.d.ts +31 -0
- package/dist/auth/user-agents-store.d.ts.map +1 -0
- package/dist/auth/user-agents-store.js +54 -0
- package/dist/auth/user-agents-store.js.map +1 -0
- package/dist/channels/binding-service.d.ts +69 -0
- package/dist/channels/binding-service.d.ts.map +1 -0
- package/dist/channels/binding-service.js +144 -0
- package/dist/channels/binding-service.js.map +1 -0
- package/dist/channels/index.d.ts +2 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js +6 -0
- package/dist/channels/index.js.map +1 -0
- package/dist/cli/gateway.d.ts +31 -0
- package/dist/cli/gateway.d.ts.map +1 -0
- package/dist/cli/gateway.js +1062 -0
- package/dist/cli/gateway.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +56 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/commands/built-in-commands.d.ts +10 -0
- package/dist/commands/built-in-commands.d.ts.map +1 -0
- package/dist/commands/built-in-commands.js +63 -0
- package/dist/commands/built-in-commands.js.map +1 -0
- package/dist/commands/command-dispatcher.d.ts +25 -0
- package/dist/commands/command-dispatcher.d.ts.map +1 -0
- package/dist/commands/command-dispatcher.js +50 -0
- package/dist/commands/command-dispatcher.js.map +1 -0
- package/dist/commands/command-reply-adapters.d.ts +3 -0
- package/dist/commands/command-reply-adapters.d.ts.map +1 -0
- package/dist/commands/command-reply-adapters.js +60 -0
- package/dist/commands/command-reply-adapters.js.map +1 -0
- package/dist/config/file-loader.d.ts +23 -0
- package/dist/config/file-loader.d.ts.map +1 -0
- package/dist/config/file-loader.js +495 -0
- package/dist/config/file-loader.js.map +1 -0
- package/dist/config/index.d.ts +96 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +357 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/network-allowlist.d.ts +18 -0
- package/dist/config/network-allowlist.d.ts.map +1 -0
- package/dist/config/network-allowlist.js +60 -0
- package/dist/config/network-allowlist.js.map +1 -0
- package/dist/connections/chat-instance-manager.d.ts +107 -0
- package/dist/connections/chat-instance-manager.d.ts.map +1 -0
- package/dist/connections/chat-instance-manager.js +886 -0
- package/dist/connections/chat-instance-manager.js.map +1 -0
- package/dist/connections/chat-response-bridge.d.ts +31 -0
- package/dist/connections/chat-response-bridge.d.ts.map +1 -0
- package/dist/connections/chat-response-bridge.js +465 -0
- package/dist/connections/chat-response-bridge.js.map +1 -0
- package/dist/connections/index.d.ts +4 -0
- package/dist/connections/index.d.ts.map +1 -0
- package/dist/connections/index.js +8 -0
- package/dist/connections/index.js.map +1 -0
- package/dist/connections/interaction-bridge.d.ts +7 -0
- package/dist/connections/interaction-bridge.d.ts.map +1 -0
- package/dist/connections/interaction-bridge.js +593 -0
- package/dist/connections/interaction-bridge.js.map +1 -0
- package/dist/connections/message-handler-bridge.d.ts +21 -0
- package/dist/connections/message-handler-bridge.d.ts.map +1 -0
- package/dist/connections/message-handler-bridge.js +314 -0
- package/dist/connections/message-handler-bridge.js.map +1 -0
- package/dist/connections/platform-auth-methods.d.ts +5 -0
- package/dist/connections/platform-auth-methods.d.ts.map +1 -0
- package/dist/connections/platform-auth-methods.js +13 -0
- package/dist/connections/platform-auth-methods.js.map +1 -0
- package/dist/connections/types.d.ts +52 -0
- package/dist/connections/types.d.ts.map +1 -0
- package/dist/connections/types.js +20 -0
- package/dist/connections/types.js.map +1 -0
- package/dist/gateway/connection-manager.d.ts +87 -0
- package/dist/gateway/connection-manager.d.ts.map +1 -0
- package/dist/gateway/connection-manager.js +216 -0
- package/dist/gateway/connection-manager.js.map +1 -0
- package/dist/gateway/index.d.ts +71 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/gateway/index.js +509 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/gateway/job-router.d.ts +60 -0
- package/dist/gateway/job-router.d.ts.map +1 -0
- package/dist/gateway/job-router.js +148 -0
- package/dist/gateway/job-router.js.map +1 -0
- package/dist/gateway-main.d.ts +81 -0
- package/dist/gateway-main.d.ts.map +1 -0
- package/dist/gateway-main.js +143 -0
- package/dist/gateway-main.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/queue/index.d.ts +8 -0
- package/dist/infrastructure/queue/index.d.ts.map +1 -0
- package/dist/infrastructure/queue/index.js +12 -0
- package/dist/infrastructure/queue/index.js.map +1 -0
- package/dist/infrastructure/queue/queue-producer.d.ts +68 -0
- package/dist/infrastructure/queue/queue-producer.d.ts.map +1 -0
- package/dist/infrastructure/queue/queue-producer.js +72 -0
- package/dist/infrastructure/queue/queue-producer.js.map +1 -0
- package/dist/infrastructure/queue/redis-queue.d.ts +45 -0
- package/dist/infrastructure/queue/redis-queue.d.ts.map +1 -0
- package/dist/infrastructure/queue/redis-queue.js +273 -0
- package/dist/infrastructure/queue/redis-queue.js.map +1 -0
- package/dist/infrastructure/queue/types.d.ts +107 -0
- package/dist/infrastructure/queue/types.d.ts.map +1 -0
- package/dist/infrastructure/queue/types.js +7 -0
- package/dist/infrastructure/queue/types.js.map +1 -0
- package/dist/infrastructure/redis/system-message-limiter.d.ts +35 -0
- package/dist/infrastructure/redis/system-message-limiter.d.ts.map +1 -0
- package/dist/infrastructure/redis/system-message-limiter.js +61 -0
- package/dist/infrastructure/redis/system-message-limiter.js.map +1 -0
- package/dist/interactions/config-request-store.d.ts +41 -0
- package/dist/interactions/config-request-store.d.ts.map +1 -0
- package/dist/interactions/config-request-store.js +103 -0
- package/dist/interactions/config-request-store.js.map +1 -0
- package/dist/interactions.d.ts +134 -0
- package/dist/interactions.d.ts.map +1 -0
- package/dist/interactions.js +175 -0
- package/dist/interactions.js.map +1 -0
- package/dist/lobu.d.ts +78 -0
- package/dist/lobu.d.ts.map +1 -0
- package/dist/lobu.js +248 -0
- package/dist/lobu.js.map +1 -0
- package/dist/metrics/prometheus.d.ts +6 -0
- package/dist/metrics/prometheus.d.ts.map +1 -0
- package/dist/metrics/prometheus.js +78 -0
- package/dist/metrics/prometheus.js.map +1 -0
- package/dist/modules/module-system.d.ts +82 -0
- package/dist/modules/module-system.d.ts.map +1 -0
- package/dist/modules/module-system.js +53 -0
- package/dist/modules/module-system.js.map +1 -0
- package/dist/orchestration/base-deployment-manager.d.ts +173 -0
- package/dist/orchestration/base-deployment-manager.d.ts.map +1 -0
- package/dist/orchestration/base-deployment-manager.js +553 -0
- package/dist/orchestration/base-deployment-manager.js.map +1 -0
- package/dist/orchestration/deployment-utils.d.ts +25 -0
- package/dist/orchestration/deployment-utils.d.ts.map +1 -0
- package/dist/orchestration/deployment-utils.js +65 -0
- package/dist/orchestration/deployment-utils.js.map +1 -0
- package/dist/orchestration/impl/docker-deployment.d.ts +43 -0
- package/dist/orchestration/impl/docker-deployment.d.ts.map +1 -0
- package/dist/orchestration/impl/docker-deployment.js +480 -0
- package/dist/orchestration/impl/docker-deployment.js.map +1 -0
- package/dist/orchestration/impl/embedded-deployment.d.ts +16 -0
- package/dist/orchestration/impl/embedded-deployment.d.ts.map +1 -0
- package/dist/orchestration/impl/embedded-deployment.js +195 -0
- package/dist/orchestration/impl/embedded-deployment.js.map +1 -0
- package/dist/orchestration/impl/index.d.ts +8 -0
- package/dist/orchestration/impl/index.d.ts.map +1 -0
- package/dist/orchestration/impl/index.js +14 -0
- package/dist/orchestration/impl/index.js.map +1 -0
- package/dist/orchestration/impl/k8s/deployment.d.ts +204 -0
- package/dist/orchestration/impl/k8s/deployment.d.ts.map +1 -0
- package/dist/orchestration/impl/k8s/deployment.js +620 -0
- package/dist/orchestration/impl/k8s/deployment.js.map +1 -0
- package/dist/orchestration/impl/k8s/helpers.d.ts +34 -0
- package/dist/orchestration/impl/k8s/helpers.d.ts.map +1 -0
- package/dist/orchestration/impl/k8s/helpers.js +377 -0
- package/dist/orchestration/impl/k8s/helpers.js.map +1 -0
- package/dist/orchestration/impl/k8s/index.d.ts +2 -0
- package/dist/orchestration/impl/k8s/index.d.ts.map +1 -0
- package/dist/orchestration/impl/k8s/index.js +6 -0
- package/dist/orchestration/impl/k8s/index.js.map +1 -0
- package/dist/orchestration/index.d.ts +53 -0
- package/dist/orchestration/index.d.ts.map +1 -0
- package/dist/orchestration/index.js +257 -0
- package/dist/orchestration/index.js.map +1 -0
- package/dist/orchestration/message-consumer.d.ts +49 -0
- package/dist/orchestration/message-consumer.d.ts.map +1 -0
- package/dist/orchestration/message-consumer.js +406 -0
- package/dist/orchestration/message-consumer.js.map +1 -0
- package/dist/orchestration/scheduled-wakeup.d.ts +110 -0
- package/dist/orchestration/scheduled-wakeup.d.ts.map +1 -0
- package/dist/orchestration/scheduled-wakeup.js +500 -0
- package/dist/orchestration/scheduled-wakeup.js.map +1 -0
- package/dist/permissions/approval-policy.d.ts +28 -0
- package/dist/permissions/approval-policy.d.ts.map +1 -0
- package/dist/permissions/approval-policy.js +33 -0
- package/dist/permissions/approval-policy.js.map +1 -0
- package/dist/permissions/grant-store.d.ts +52 -0
- package/dist/permissions/grant-store.d.ts.map +1 -0
- package/dist/permissions/grant-store.js +192 -0
- package/dist/permissions/grant-store.js.map +1 -0
- package/dist/platform/file-handler.d.ts +51 -0
- package/dist/platform/file-handler.d.ts.map +1 -0
- package/dist/platform/file-handler.js +6 -0
- package/dist/platform/file-handler.js.map +1 -0
- package/dist/platform/link-buttons.d.ts +21 -0
- package/dist/platform/link-buttons.d.ts.map +1 -0
- package/dist/platform/link-buttons.js +43 -0
- package/dist/platform/link-buttons.js.map +1 -0
- package/dist/platform/renderer-utils.d.ts +10 -0
- package/dist/platform/renderer-utils.d.ts.map +1 -0
- package/dist/platform/renderer-utils.js +42 -0
- package/dist/platform/renderer-utils.js.map +1 -0
- package/dist/platform/response-renderer.d.ts +66 -0
- package/dist/platform/response-renderer.d.ts.map +1 -0
- package/dist/platform/response-renderer.js +8 -0
- package/dist/platform/response-renderer.js.map +1 -0
- package/dist/platform/unified-thread-consumer.d.ts +41 -0
- package/dist/platform/unified-thread-consumer.d.ts.map +1 -0
- package/dist/platform/unified-thread-consumer.js +143 -0
- package/dist/platform/unified-thread-consumer.js.map +1 -0
- package/dist/platform.d.ts +255 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +40 -0
- package/dist/platform.js.map +1 -0
- package/dist/proxy/http-proxy.d.ts +32 -0
- package/dist/proxy/http-proxy.d.ts.map +1 -0
- package/dist/proxy/http-proxy.js +636 -0
- package/dist/proxy/http-proxy.js.map +1 -0
- package/dist/proxy/proxy-manager.d.ts +13 -0
- package/dist/proxy/proxy-manager.d.ts.map +1 -0
- package/dist/proxy/proxy-manager.js +68 -0
- package/dist/proxy/proxy-manager.js.map +1 -0
- package/dist/proxy/secret-proxy.d.ts +78 -0
- package/dist/proxy/secret-proxy.d.ts.map +1 -0
- package/dist/proxy/secret-proxy.js +309 -0
- package/dist/proxy/secret-proxy.js.map +1 -0
- package/dist/proxy/token-refresh-job.d.ts +29 -0
- package/dist/proxy/token-refresh-job.d.ts.map +1 -0
- package/dist/proxy/token-refresh-job.js +104 -0
- package/dist/proxy/token-refresh-job.js.map +1 -0
- package/dist/routes/internal/audio.d.ts +14 -0
- package/dist/routes/internal/audio.d.ts.map +1 -0
- package/dist/routes/internal/audio.js +118 -0
- package/dist/routes/internal/audio.js.map +1 -0
- package/dist/routes/internal/device-auth.d.ts +42 -0
- package/dist/routes/internal/device-auth.d.ts.map +1 -0
- package/dist/routes/internal/device-auth.js +397 -0
- package/dist/routes/internal/device-auth.js.map +1 -0
- package/dist/routes/internal/files.d.ts +9 -0
- package/dist/routes/internal/files.d.ts.map +1 -0
- package/dist/routes/internal/files.js +175 -0
- package/dist/routes/internal/files.js.map +1 -0
- package/dist/routes/internal/history.d.ts +9 -0
- package/dist/routes/internal/history.d.ts.map +1 -0
- package/dist/routes/internal/history.js +55 -0
- package/dist/routes/internal/history.js.map +1 -0
- package/dist/routes/internal/images.d.ts +10 -0
- package/dist/routes/internal/images.d.ts.map +1 -0
- package/dist/routes/internal/images.js +101 -0
- package/dist/routes/internal/images.js.map +1 -0
- package/dist/routes/internal/interactions.d.ts +9 -0
- package/dist/routes/internal/interactions.d.ts.map +1 -0
- package/dist/routes/internal/interactions.js +53 -0
- package/dist/routes/internal/interactions.js.map +1 -0
- package/dist/routes/internal/middleware.d.ts +7 -0
- package/dist/routes/internal/middleware.d.ts.map +1 -0
- package/dist/routes/internal/middleware.js +24 -0
- package/dist/routes/internal/middleware.js.map +1 -0
- package/dist/routes/internal/schedule.d.ts +14 -0
- package/dist/routes/internal/schedule.d.ts.map +1 -0
- package/dist/routes/internal/schedule.js +169 -0
- package/dist/routes/internal/schedule.js.map +1 -0
- package/dist/routes/internal/types.d.ts +22 -0
- package/dist/routes/internal/types.d.ts.map +1 -0
- package/dist/routes/internal/types.js +6 -0
- package/dist/routes/internal/types.js.map +1 -0
- package/dist/routes/openapi-auto.d.ts +8 -0
- package/dist/routes/openapi-auto.d.ts.map +1 -0
- package/dist/routes/openapi-auto.js +196 -0
- package/dist/routes/openapi-auto.js.map +1 -0
- package/dist/routes/public/agent-access.d.ts +11 -0
- package/dist/routes/public/agent-access.d.ts.map +1 -0
- package/dist/routes/public/agent-access.js +11 -0
- package/dist/routes/public/agent-access.js.map +1 -0
- package/dist/routes/public/agent-config.d.ts +42 -0
- package/dist/routes/public/agent-config.d.ts.map +1 -0
- package/dist/routes/public/agent-config.js +415 -0
- package/dist/routes/public/agent-config.js.map +1 -0
- package/dist/routes/public/agent-history.d.ts +17 -0
- package/dist/routes/public/agent-history.d.ts.map +1 -0
- package/dist/routes/public/agent-history.js +335 -0
- package/dist/routes/public/agent-history.js.map +1 -0
- package/dist/routes/public/agent-schedules.d.ts +18 -0
- package/dist/routes/public/agent-schedules.d.ts.map +1 -0
- package/dist/routes/public/agent-schedules.js +242 -0
- package/dist/routes/public/agent-schedules.js.map +1 -0
- package/dist/routes/public/agent.d.ts +23 -0
- package/dist/routes/public/agent.d.ts.map +1 -0
- package/dist/routes/public/agent.js +864 -0
- package/dist/routes/public/agent.js.map +1 -0
- package/dist/routes/public/agents.d.ts +22 -0
- package/dist/routes/public/agents.d.ts.map +1 -0
- package/dist/routes/public/agents.js +257 -0
- package/dist/routes/public/agents.js.map +1 -0
- package/dist/routes/public/channels.d.ts +23 -0
- package/dist/routes/public/channels.d.ts.map +1 -0
- package/dist/routes/public/channels.js +131 -0
- package/dist/routes/public/channels.js.map +1 -0
- package/dist/routes/public/cli-auth.d.ts +12 -0
- package/dist/routes/public/cli-auth.d.ts.map +1 -0
- package/dist/routes/public/cli-auth.js +552 -0
- package/dist/routes/public/cli-auth.js.map +1 -0
- package/dist/routes/public/connections.d.ts +20 -0
- package/dist/routes/public/connections.d.ts.map +1 -0
- package/dist/routes/public/connections.js +464 -0
- package/dist/routes/public/connections.js.map +1 -0
- package/dist/routes/public/landing.d.ts +3 -0
- package/dist/routes/public/landing.d.ts.map +1 -0
- package/dist/routes/public/landing.js +17 -0
- package/dist/routes/public/landing.js.map +1 -0
- package/dist/routes/public/oauth.d.ts +24 -0
- package/dist/routes/public/oauth.d.ts.map +1 -0
- package/dist/routes/public/oauth.js +108 -0
- package/dist/routes/public/oauth.js.map +1 -0
- package/dist/routes/public/settings-auth.d.ts +28 -0
- package/dist/routes/public/settings-auth.d.ts.map +1 -0
- package/dist/routes/public/settings-auth.js +90 -0
- package/dist/routes/public/settings-auth.js.map +1 -0
- package/dist/routes/public/slack.d.ts +4 -0
- package/dist/routes/public/slack.d.ts.map +1 -0
- package/dist/routes/public/slack.js +119 -0
- package/dist/routes/public/slack.js.map +1 -0
- package/dist/routes/shared/agent-ownership.d.ts +15 -0
- package/dist/routes/shared/agent-ownership.d.ts.map +1 -0
- package/dist/routes/shared/agent-ownership.js +61 -0
- package/dist/routes/shared/agent-ownership.js.map +1 -0
- package/dist/routes/shared/token-verifier.d.ts +21 -0
- package/dist/routes/shared/token-verifier.d.ts.map +1 -0
- package/dist/routes/shared/token-verifier.js +25 -0
- package/dist/routes/shared/token-verifier.js.map +1 -0
- package/dist/services/core-services.d.ts +133 -0
- package/dist/services/core-services.d.ts.map +1 -0
- package/dist/services/core-services.js +728 -0
- package/dist/services/core-services.js.map +1 -0
- package/dist/services/image-generation-service.d.ts +38 -0
- package/dist/services/image-generation-service.d.ts.map +1 -0
- package/dist/services/image-generation-service.js +167 -0
- package/dist/services/image-generation-service.js.map +1 -0
- package/dist/services/instruction-service.d.ts +41 -0
- package/dist/services/instruction-service.d.ts.map +1 -0
- package/dist/services/instruction-service.js +252 -0
- package/dist/services/instruction-service.js.map +1 -0
- package/dist/services/mcp-registry.d.ts +31 -0
- package/dist/services/mcp-registry.d.ts.map +1 -0
- package/dist/services/mcp-registry.js +69 -0
- package/dist/services/mcp-registry.js.map +1 -0
- package/dist/services/platform-helpers.d.ts +47 -0
- package/dist/services/platform-helpers.d.ts.map +1 -0
- package/dist/services/platform-helpers.js +200 -0
- package/dist/services/platform-helpers.js.map +1 -0
- package/dist/services/session-manager.d.ts +72 -0
- package/dist/services/session-manager.d.ts.map +1 -0
- package/dist/services/session-manager.js +199 -0
- package/dist/services/session-manager.js.map +1 -0
- package/dist/services/settings-resolver.d.ts +25 -0
- package/dist/services/settings-resolver.d.ts.map +1 -0
- package/dist/services/settings-resolver.js +55 -0
- package/dist/services/settings-resolver.js.map +1 -0
- package/dist/services/system-config-resolver.d.ts +25 -0
- package/dist/services/system-config-resolver.d.ts.map +1 -0
- package/dist/services/system-config-resolver.js +73 -0
- package/dist/services/system-config-resolver.js.map +1 -0
- package/dist/services/system-skills-service.d.ts +38 -0
- package/dist/services/system-skills-service.d.ts.map +1 -0
- package/dist/services/system-skills-service.js +186 -0
- package/dist/services/system-skills-service.js.map +1 -0
- package/dist/services/transcription-service.d.ts +91 -0
- package/dist/services/transcription-service.d.ts.map +1 -0
- package/dist/services/transcription-service.js +465 -0
- package/dist/services/transcription-service.js.map +1 -0
- package/dist/session.d.ts +75 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +19 -0
- package/dist/session.js.map +1 -0
- package/dist/spaces/index.d.ts +2 -0
- package/dist/spaces/index.d.ts.map +1 -0
- package/dist/spaces/index.js +18 -0
- package/dist/spaces/index.js.map +1 -0
- package/dist/spaces/space-resolver.d.ts +10 -0
- package/dist/spaces/space-resolver.d.ts.map +1 -0
- package/dist/spaces/space-resolver.js +17 -0
- package/dist/spaces/space-resolver.js.map +1 -0
- package/dist/stores/in-memory-agent-store.d.ts +57 -0
- package/dist/stores/in-memory-agent-store.d.ts.map +1 -0
- package/dist/stores/in-memory-agent-store.js +304 -0
- package/dist/stores/in-memory-agent-store.js.map +1 -0
- package/dist/stores/redis-agent-store.d.ts +57 -0
- package/dist/stores/redis-agent-store.d.ts.map +1 -0
- package/dist/stores/redis-agent-store.js +163 -0
- package/dist/stores/redis-agent-store.js.map +1 -0
- package/dist/utils/public-url.d.ts +6 -0
- package/dist/utils/public-url.d.ts.map +1 -0
- package/dist/utils/public-url.js +33 -0
- package/dist/utils/public-url.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +32 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +56 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AgentMetadataStore = void 0;
|
|
4
|
+
const core_1 = require("@lobu/core");
|
|
5
|
+
const logger = (0, core_1.createLogger)("agent-metadata-store");
|
|
6
|
+
/**
|
|
7
|
+
* Store agent metadata in Redis.
|
|
8
|
+
* Pattern: agent_metadata:{agentId}
|
|
9
|
+
*/
|
|
10
|
+
class AgentMetadataStore extends core_1.BaseRedisStore {
|
|
11
|
+
constructor(redis) {
|
|
12
|
+
super({
|
|
13
|
+
redis,
|
|
14
|
+
keyPrefix: "agent_metadata",
|
|
15
|
+
loggerName: "agent-metadata-store",
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Create a new agent with metadata
|
|
20
|
+
*/
|
|
21
|
+
async createAgent(agentId, name, platform, userId, options) {
|
|
22
|
+
const metadata = {
|
|
23
|
+
agentId,
|
|
24
|
+
name,
|
|
25
|
+
owner: { platform, userId },
|
|
26
|
+
isWorkspaceAgent: options === null || options === void 0 ? void 0 : options.isWorkspaceAgent,
|
|
27
|
+
workspaceId: options === null || options === void 0 ? void 0 : options.workspaceId,
|
|
28
|
+
parentConnectionId: options === null || options === void 0 ? void 0 : options.parentConnectionId,
|
|
29
|
+
createdAt: Date.now(),
|
|
30
|
+
};
|
|
31
|
+
if (options === null || options === void 0 ? void 0 : options.description) {
|
|
32
|
+
metadata.description = options.description;
|
|
33
|
+
}
|
|
34
|
+
const key = this.buildKey(agentId);
|
|
35
|
+
await this.set(key, metadata);
|
|
36
|
+
// Index sandbox under its parent connection
|
|
37
|
+
if (options === null || options === void 0 ? void 0 : options.parentConnectionId) {
|
|
38
|
+
await this.redis.sadd(`sandboxes:connection:${options.parentConnectionId}`, agentId);
|
|
39
|
+
}
|
|
40
|
+
logger.info(`Created agent metadata for ${agentId}: "${name}"`);
|
|
41
|
+
return metadata;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get metadata for an agent
|
|
45
|
+
*/
|
|
46
|
+
async getMetadata(agentId) {
|
|
47
|
+
const key = this.buildKey(agentId);
|
|
48
|
+
return this.get(key);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Update agent metadata (partial update)
|
|
52
|
+
*/
|
|
53
|
+
async updateMetadata(agentId, updates) {
|
|
54
|
+
const existing = await this.getMetadata(agentId);
|
|
55
|
+
if (!existing) {
|
|
56
|
+
logger.warn(`Cannot update metadata: agent ${agentId} not found`);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const updated = Object.assign(Object.assign({}, existing), updates);
|
|
60
|
+
const key = this.buildKey(agentId);
|
|
61
|
+
await this.set(key, updated);
|
|
62
|
+
logger.info(`Updated metadata for agent ${agentId}`);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Delete agent metadata
|
|
66
|
+
*/
|
|
67
|
+
async deleteAgent(agentId) {
|
|
68
|
+
// Clean up sandbox index if this agent has a parent connection
|
|
69
|
+
const metadata = await this.getMetadata(agentId);
|
|
70
|
+
if (metadata === null || metadata === void 0 ? void 0 : metadata.parentConnectionId) {
|
|
71
|
+
await this.redis.srem(`sandboxes:connection:${metadata.parentConnectionId}`, agentId);
|
|
72
|
+
}
|
|
73
|
+
const key = this.buildKey(agentId);
|
|
74
|
+
await this.delete(key);
|
|
75
|
+
logger.info(`Deleted metadata for agent ${agentId}`);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Check if agent exists
|
|
79
|
+
*/
|
|
80
|
+
async hasAgent(agentId) {
|
|
81
|
+
const key = this.buildKey(agentId);
|
|
82
|
+
return this.exists(key);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* List sandbox agents belonging to a connection
|
|
86
|
+
*/
|
|
87
|
+
async listSandboxes(connectionId) {
|
|
88
|
+
const agentIds = await this.redis.smembers(`sandboxes:connection:${connectionId}`);
|
|
89
|
+
const sandboxes = [];
|
|
90
|
+
for (const agentId of agentIds) {
|
|
91
|
+
const data = await this.getMetadata(agentId);
|
|
92
|
+
if (data)
|
|
93
|
+
sandboxes.push(data);
|
|
94
|
+
}
|
|
95
|
+
sandboxes.sort((a, b) => { var _a, _b; return ((_a = b.lastUsedAt) !== null && _a !== void 0 ? _a : 0) - ((_b = a.lastUsedAt) !== null && _b !== void 0 ? _b : 0); });
|
|
96
|
+
return sandboxes;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* List all agents in the system, sorted by lastUsedAt descending
|
|
100
|
+
*/
|
|
101
|
+
async listAllAgents() {
|
|
102
|
+
const prefix = `${this.keyPrefix}:`;
|
|
103
|
+
const keys = await this.scanByPrefix(prefix);
|
|
104
|
+
const agents = [];
|
|
105
|
+
for (const key of keys) {
|
|
106
|
+
const data = await this.get(key);
|
|
107
|
+
if (data)
|
|
108
|
+
agents.push(data);
|
|
109
|
+
}
|
|
110
|
+
agents.sort((a, b) => { var _a, _b; return ((_a = b.lastUsedAt) !== null && _a !== void 0 ? _a : 0) - ((_b = a.lastUsedAt) !== null && _b !== void 0 ? _b : 0); });
|
|
111
|
+
return agents;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
exports.AgentMetadataStore = AgentMetadataStore;
|
|
115
|
+
//# sourceMappingURL=agent-metadata-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-metadata-store.js","sourceRoot":"","sources":["../../src/auth/agent-metadata-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Context, Next } from "hono";
|
|
2
|
+
import type { CliTokenService } from "./cli/token-service";
|
|
3
|
+
import type { ExternalAuthClient } from "./external/client";
|
|
4
|
+
export declare const TOKEN_EXPIRATION_MS: number;
|
|
5
|
+
/**
|
|
6
|
+
* Creates a Hono middleware that enforces the standard auth check:
|
|
7
|
+
* 1. Settings session cookie 2. CLI JWT 3. External OAuth 4. Admin password 5. Worker token
|
|
8
|
+
*/
|
|
9
|
+
export declare function createApiAuthMiddleware(opts: {
|
|
10
|
+
adminPassword?: string;
|
|
11
|
+
cliTokenService?: CliTokenService;
|
|
12
|
+
externalAuthClient?: ExternalAuthClient;
|
|
13
|
+
allowWorkerToken?: boolean;
|
|
14
|
+
allowSettingsSession?: boolean;
|
|
15
|
+
}): (c: Context, next: Next) => Promise<void | (Response & import("hono").TypedResponse<{
|
|
16
|
+
success: false;
|
|
17
|
+
error: string;
|
|
18
|
+
}, 401, "json">)>;
|
|
19
|
+
//# sourceMappingURL=api-auth-middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-auth-middleware.d.ts","sourceRoot":"","sources":["../../src/auth/api-auth-middleware.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,QAAsB,CAAC;AAEvD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,IACe,GAAG,OAAO,EAAE,MAAM,IAAI;;;kBAgDrC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TOKEN_EXPIRATION_MS = void 0;
|
|
4
|
+
exports.createApiAuthMiddleware = createApiAuthMiddleware;
|
|
5
|
+
const node_crypto_1 = require("node:crypto");
|
|
6
|
+
const core_1 = require("@lobu/core");
|
|
7
|
+
const settings_auth_1 = require("../routes/public/settings-auth");
|
|
8
|
+
exports.TOKEN_EXPIRATION_MS = 24 * 60 * 60 * 1000;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a Hono middleware that enforces the standard auth check:
|
|
11
|
+
* 1. Settings session cookie 2. CLI JWT 3. External OAuth 4. Admin password 5. Worker token
|
|
12
|
+
*/
|
|
13
|
+
function createApiAuthMiddleware(opts) {
|
|
14
|
+
return async (c, next) => {
|
|
15
|
+
// 1. Try settings session cookie when explicitly allowed.
|
|
16
|
+
if (opts.allowSettingsSession && (0, settings_auth_1.verifySettingsSession)(c))
|
|
17
|
+
return next();
|
|
18
|
+
const authHeader = c.req.header("Authorization");
|
|
19
|
+
if (!authHeader || !authHeader.startsWith("Bearer ")) {
|
|
20
|
+
return c.json({ success: false, error: "Unauthorized" }, 401);
|
|
21
|
+
}
|
|
22
|
+
const token = authHeader.substring(7);
|
|
23
|
+
// 2. Try CLI JWT
|
|
24
|
+
if (opts.cliTokenService) {
|
|
25
|
+
const identity = await opts.cliTokenService.verifyAccessToken(token);
|
|
26
|
+
if (identity)
|
|
27
|
+
return next();
|
|
28
|
+
}
|
|
29
|
+
// 3. Try external OAuth token (validated against MEMORY_URL userinfo)
|
|
30
|
+
if (opts.externalAuthClient) {
|
|
31
|
+
try {
|
|
32
|
+
const userInfo = await opts.externalAuthClient.fetchUserInfo(token);
|
|
33
|
+
if (userInfo === null || userInfo === void 0 ? void 0 : userInfo.sub)
|
|
34
|
+
return next();
|
|
35
|
+
}
|
|
36
|
+
catch (_a) {
|
|
37
|
+
// Token not valid for external auth, continue to next method
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// 4. Try admin password
|
|
41
|
+
if (opts.adminPassword) {
|
|
42
|
+
const a = Buffer.from(token);
|
|
43
|
+
const b = Buffer.from(opts.adminPassword);
|
|
44
|
+
if (a.length === b.length && (0, node_crypto_1.timingSafeEqual)(a, b)) {
|
|
45
|
+
return next();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// 5. Try worker token when explicitly allowed for the route
|
|
49
|
+
if (opts.allowWorkerToken !== false) {
|
|
50
|
+
const workerData = (0, core_1.verifyWorkerToken)(token);
|
|
51
|
+
if (workerData) {
|
|
52
|
+
const tokenAge = Date.now() - workerData.timestamp;
|
|
53
|
+
if (tokenAge <= exports.TOKEN_EXPIRATION_MS) {
|
|
54
|
+
return next();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return c.json({ success: false, error: "Unauthorized" }, 401);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=api-auth-middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-auth-middleware.js","sourceRoot":"","sources":["../../src/auth/api-auth-middleware.ts"],"names":[],"mappings":";;;AAaA,0DAuDC;AApED,6CAA8C;AAC9C,qCAA+C;AAE/C,kEAAuE;AAI1D,QAAA,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvD;;;GAGG;AACH,SAAgB,uBAAuB,CAAC,IAMvC;IACC,OAAO,KAAK,EAAE,CAAU,EAAE,IAAU,EAAE,EAAE;QACtC,0DAA0D;QAC1D,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAA,qCAAqB,EAAC,CAAC,CAAC;YAAE,OAAO,IAAI,EAAE,CAAC;QAEzE,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAEtC,iBAAiB;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACrE,IAAI,QAAQ;gBAAE,OAAO,IAAI,EAAE,CAAC;QAC9B,CAAC;QAED,sEAAsE;QACtE,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACpE,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG;oBAAE,OAAO,IAAI,EAAE,CAAC;YACnC,CAAC;YAAC,WAAM,CAAC;gBACP,6DAA6D;YAC/D,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,IAAA,6BAAe,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACnD,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,IAAA,wBAAiB,EAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC;gBACnD,IAAI,QAAQ,IAAI,2BAAmB,EAAE,CAAC;oBACpC,OAAO,IAAI,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { ConfigProviderMeta } from "@lobu/core";
|
|
2
|
+
import type { ModelOption } from "../modules/module-system";
|
|
3
|
+
import { BaseProviderModule } from "./base-provider-module";
|
|
4
|
+
import type { AgentSettingsStore } from "./settings/agent-settings-store";
|
|
5
|
+
export interface ApiKeyProviderConfig {
|
|
6
|
+
providerId: string;
|
|
7
|
+
providerDisplayName: string;
|
|
8
|
+
providerIconUrl: string;
|
|
9
|
+
envVarName: string;
|
|
10
|
+
apiKeyInstructions: string;
|
|
11
|
+
apiKeyPlaceholder: string;
|
|
12
|
+
systemEnvVarName?: string;
|
|
13
|
+
/** Provider slug for proxy path routing (e.g. "gemini") */
|
|
14
|
+
slug?: string;
|
|
15
|
+
/** Upstream base URL for proxy forwarding (e.g. "https://generativelanguage.googleapis.com") */
|
|
16
|
+
upstreamBaseUrl?: string;
|
|
17
|
+
/** Explicit base URL env var name (defaults to envVarName with _KEY replaced by _BASE_URL) */
|
|
18
|
+
baseUrlEnvVarName?: string;
|
|
19
|
+
/** Relative path to fetch model list (e.g. "/v1/models"). Enables generic model fetching. */
|
|
20
|
+
modelsEndpoint?: string;
|
|
21
|
+
/** SDK compatibility — "openai" means OpenAI-compatible format. Also maps OPENAI_BASE_URL in proxy. */
|
|
22
|
+
sdkCompat?: "openai";
|
|
23
|
+
/** Default model ID when none is configured */
|
|
24
|
+
defaultModel?: string;
|
|
25
|
+
/** Override provider name for model registry lookup */
|
|
26
|
+
registryAlias?: string;
|
|
27
|
+
/** Whether to show in "Add Provider" catalog (default: true) */
|
|
28
|
+
catalogVisible?: boolean;
|
|
29
|
+
agentSettingsStore: AgentSettingsStore;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Generic API-key provider module.
|
|
33
|
+
* Any model provider that only needs a "paste your API key" flow
|
|
34
|
+
* can be instantiated from this class without writing a full module.
|
|
35
|
+
*
|
|
36
|
+
* Config-driven providers (from system-skills.json) set sdkCompat,
|
|
37
|
+
* defaultModel, and registryAlias to enable dynamic worker model resolution.
|
|
38
|
+
*/
|
|
39
|
+
export declare class ApiKeyProviderModule extends BaseProviderModule {
|
|
40
|
+
protected readonly apiKeyConfig: ApiKeyProviderConfig;
|
|
41
|
+
constructor(config: ApiKeyProviderConfig);
|
|
42
|
+
/**
|
|
43
|
+
* For openai-compatible providers, also map OPENAI_BASE_URL so the
|
|
44
|
+
* OpenAI SDK resolves through our proxy.
|
|
45
|
+
*/
|
|
46
|
+
getProxyBaseUrlMappings(proxyUrl: string, agentId?: string): Record<string, string>;
|
|
47
|
+
/**
|
|
48
|
+
* Returns metadata for config-driven providers (sdkCompat, defaultModel, etc.)
|
|
49
|
+
* so the worker can register them dynamically. Returns null for hardcoded providers.
|
|
50
|
+
*/
|
|
51
|
+
getProviderMetadata(): ConfigProviderMeta | null;
|
|
52
|
+
getModelOptions(agentId: string, _userId: string): Promise<ModelOption[]>;
|
|
53
|
+
/**
|
|
54
|
+
* Generic model fetcher using Bearer auth. Works with OpenAI-compatible
|
|
55
|
+
* endpoints ({data:[{id}]}) and Ollama ({models:[{name}]}).
|
|
56
|
+
*/
|
|
57
|
+
private fetchModelsGeneric;
|
|
58
|
+
private fetchGeminiModels;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=api-key-provider-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-key-provider-module.d.ts","sourceRoot":"","sources":["../../src/auth/api-key-provider-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gGAAgG;IAChG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uGAAuG;IACvG,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC1D,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;gBAE1C,MAAM,EAAE,oBAAoB;IA4BxC;;;OAGG;IACM,uBAAuB,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAUzB;;;OAGG;IACH,mBAAmB,IAAI,kBAAkB,GAAG,IAAI;IAkB1C,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC;IAsBzB;;;OAGG;YACW,kBAAkB;YA8ClB,iBAAiB;CA0BhC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApiKeyProviderModule = void 0;
|
|
4
|
+
const base_provider_module_1 = require("./base-provider-module");
|
|
5
|
+
const auth_profiles_manager_1 = require("./settings/auth-profiles-manager");
|
|
6
|
+
/**
|
|
7
|
+
* Generic API-key provider module.
|
|
8
|
+
* Any model provider that only needs a "paste your API key" flow
|
|
9
|
+
* can be instantiated from this class without writing a full module.
|
|
10
|
+
*
|
|
11
|
+
* Config-driven providers (from system-skills.json) set sdkCompat,
|
|
12
|
+
* defaultModel, and registryAlias to enable dynamic worker model resolution.
|
|
13
|
+
*/
|
|
14
|
+
class ApiKeyProviderModule extends base_provider_module_1.BaseProviderModule {
|
|
15
|
+
constructor(config) {
|
|
16
|
+
const authProfilesManager = new auth_profiles_manager_1.AuthProfilesManager(config.agentSettingsStore);
|
|
17
|
+
super({
|
|
18
|
+
providerId: config.providerId,
|
|
19
|
+
providerDisplayName: config.providerDisplayName,
|
|
20
|
+
providerIconUrl: config.providerIconUrl,
|
|
21
|
+
credentialEnvVarName: config.envVarName,
|
|
22
|
+
secretEnvVarNames: [config.envVarName],
|
|
23
|
+
systemEnvVarName: config.systemEnvVarName,
|
|
24
|
+
slug: config.slug || config.providerId,
|
|
25
|
+
upstreamBaseUrl: config.upstreamBaseUrl,
|
|
26
|
+
baseUrlEnvVarName: config.baseUrlEnvVarName ||
|
|
27
|
+
config.envVarName.replace("_KEY", "_BASE_URL"),
|
|
28
|
+
authType: "api-key",
|
|
29
|
+
apiKeyInstructions: config.apiKeyInstructions,
|
|
30
|
+
apiKeyPlaceholder: config.apiKeyPlaceholder,
|
|
31
|
+
catalogVisible: config.catalogVisible,
|
|
32
|
+
}, authProfilesManager);
|
|
33
|
+
this.apiKeyConfig = config;
|
|
34
|
+
this.name = `${config.providerId}-api-key`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* For openai-compatible providers, also map OPENAI_BASE_URL so the
|
|
38
|
+
* OpenAI SDK resolves through our proxy.
|
|
39
|
+
*/
|
|
40
|
+
getProxyBaseUrlMappings(proxyUrl, agentId) {
|
|
41
|
+
const mappings = super.getProxyBaseUrlMappings(proxyUrl, agentId);
|
|
42
|
+
if (this.apiKeyConfig.sdkCompat === "openai") {
|
|
43
|
+
const slug = this.providerConfig.slug || this.providerId;
|
|
44
|
+
const base = `${proxyUrl}/${slug}`;
|
|
45
|
+
mappings.OPENAI_BASE_URL = agentId ? `${base}/a/${agentId}` : base;
|
|
46
|
+
}
|
|
47
|
+
return mappings;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns metadata for config-driven providers (sdkCompat, defaultModel, etc.)
|
|
51
|
+
* so the worker can register them dynamically. Returns null for hardcoded providers.
|
|
52
|
+
*/
|
|
53
|
+
getProviderMetadata() {
|
|
54
|
+
if (!this.apiKeyConfig.sdkCompat &&
|
|
55
|
+
!this.apiKeyConfig.defaultModel &&
|
|
56
|
+
!this.apiKeyConfig.registryAlias) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
sdkCompat: this.apiKeyConfig.sdkCompat,
|
|
61
|
+
defaultModel: this.apiKeyConfig.defaultModel,
|
|
62
|
+
registryAlias: this.apiKeyConfig.registryAlias,
|
|
63
|
+
baseUrlEnvVar: this.providerConfig.baseUrlEnvVarName ||
|
|
64
|
+
this.apiKeyConfig.envVarName.replace("_KEY", "_BASE_URL"),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
async getModelOptions(agentId, _userId) {
|
|
68
|
+
const key = await this.getCredential(agentId);
|
|
69
|
+
if (!key)
|
|
70
|
+
return [];
|
|
71
|
+
// Gemini uses a non-standard models endpoint with key-in-query auth
|
|
72
|
+
if (this.providerId === "gemini") {
|
|
73
|
+
return this.fetchGeminiModels(key);
|
|
74
|
+
}
|
|
75
|
+
// Generic modelsEndpoint: supports OpenAI format ({data:[{id}]}) and Ollama format ({models:[{name}]})
|
|
76
|
+
const modelsEndpoint = this.apiKeyConfig.modelsEndpoint;
|
|
77
|
+
if (modelsEndpoint && this.apiKeyConfig.upstreamBaseUrl) {
|
|
78
|
+
return this.fetchModelsGeneric(key, this.apiKeyConfig.upstreamBaseUrl, modelsEndpoint);
|
|
79
|
+
}
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Generic model fetcher using Bearer auth. Works with OpenAI-compatible
|
|
84
|
+
* endpoints ({data:[{id}]}) and Ollama ({models:[{name}]}).
|
|
85
|
+
*/
|
|
86
|
+
async fetchModelsGeneric(apiKey, baseUrl, endpoint) {
|
|
87
|
+
const url = `${baseUrl.replace(/\/$/, "")}${endpoint}`;
|
|
88
|
+
const response = await fetch(url, {
|
|
89
|
+
headers: {
|
|
90
|
+
Accept: "application/json",
|
|
91
|
+
Authorization: `Bearer ${apiKey}`,
|
|
92
|
+
},
|
|
93
|
+
}).catch(() => null);
|
|
94
|
+
if (!response || !response.ok)
|
|
95
|
+
return [];
|
|
96
|
+
const payload = (await response.json().catch(() => ({})));
|
|
97
|
+
const prefix = this.providerId;
|
|
98
|
+
// OpenAI format: { data: [{ id: "model-name" }] }
|
|
99
|
+
if (payload.data && Array.isArray(payload.data)) {
|
|
100
|
+
return payload.data
|
|
101
|
+
.map((model) => {
|
|
102
|
+
var _a;
|
|
103
|
+
const id = (_a = model.id) === null || _a === void 0 ? void 0 : _a.trim();
|
|
104
|
+
if (!id)
|
|
105
|
+
return null;
|
|
106
|
+
return { value: `${prefix}/${id}`, label: id };
|
|
107
|
+
})
|
|
108
|
+
.filter((item) => Boolean(item));
|
|
109
|
+
}
|
|
110
|
+
// Ollama format: { models: [{ name: "model-name", model: "model-name" }] }
|
|
111
|
+
if (payload.models && Array.isArray(payload.models)) {
|
|
112
|
+
return payload.models
|
|
113
|
+
.map((model) => {
|
|
114
|
+
var _a;
|
|
115
|
+
const id = (_a = (model.model || model.name)) === null || _a === void 0 ? void 0 : _a.trim();
|
|
116
|
+
if (!id)
|
|
117
|
+
return null;
|
|
118
|
+
return { value: `${prefix}/${id}`, label: id };
|
|
119
|
+
})
|
|
120
|
+
.filter((item) => Boolean(item));
|
|
121
|
+
}
|
|
122
|
+
return [];
|
|
123
|
+
}
|
|
124
|
+
async fetchGeminiModels(apiKey) {
|
|
125
|
+
const url = new URL("https://generativelanguage.googleapis.com/v1beta/models");
|
|
126
|
+
url.searchParams.set("key", apiKey);
|
|
127
|
+
const response = await fetch(url.toString(), {
|
|
128
|
+
headers: { Accept: "application/json" },
|
|
129
|
+
}).catch(() => null);
|
|
130
|
+
if (!response || !response.ok)
|
|
131
|
+
return [];
|
|
132
|
+
const payload = (await response.json().catch(() => ({})));
|
|
133
|
+
return (payload.models || [])
|
|
134
|
+
.map((model) => {
|
|
135
|
+
var _a;
|
|
136
|
+
const raw = (_a = model.name) === null || _a === void 0 ? void 0 : _a.replace(/^models\//, "").trim();
|
|
137
|
+
if (!raw)
|
|
138
|
+
return null;
|
|
139
|
+
return {
|
|
140
|
+
value: `gemini/${raw}`,
|
|
141
|
+
label: model.displayName || raw,
|
|
142
|
+
};
|
|
143
|
+
})
|
|
144
|
+
.filter((item) => Boolean(item));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
exports.ApiKeyProviderModule = ApiKeyProviderModule;
|
|
148
|
+
//# sourceMappingURL=api-key-provider-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-key-provider-module.js","sourceRoot":"","sources":["../../src/auth/api-key-provider-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import { BaseModule, type ModelProviderModule, type ProviderUpstreamConfig } from "../modules/module-system";
|
|
3
|
+
import type { AuthProfilesManager } from "./settings/auth-profiles-manager";
|
|
4
|
+
export interface BaseProviderConfig {
|
|
5
|
+
providerId: string;
|
|
6
|
+
providerDisplayName: string;
|
|
7
|
+
providerIconUrl: string;
|
|
8
|
+
/** Env var name the SDK expects for the API credential (e.g. "ANTHROPIC_API_KEY") */
|
|
9
|
+
credentialEnvVarName: string;
|
|
10
|
+
/** All env vars this provider considers secrets */
|
|
11
|
+
secretEnvVarNames: string[];
|
|
12
|
+
/** Env var to check for system key (defaults to credentialEnvVarName) */
|
|
13
|
+
systemEnvVarName?: string;
|
|
14
|
+
/** Provider slug for proxy path routing (e.g. "anthropic") */
|
|
15
|
+
slug?: string;
|
|
16
|
+
/** Upstream base URL for proxy forwarding (e.g. "https://api.anthropic.com") */
|
|
17
|
+
upstreamBaseUrl?: string;
|
|
18
|
+
/** Explicit base URL env var name (defaults to slug-derived name) */
|
|
19
|
+
baseUrlEnvVarName?: string;
|
|
20
|
+
authType: "oauth" | "device-code" | "api-key";
|
|
21
|
+
supportedAuthTypes?: ("oauth" | "device-code" | "api-key")[];
|
|
22
|
+
apiKeyInstructions?: string;
|
|
23
|
+
apiKeyPlaceholder?: string;
|
|
24
|
+
catalogDescription?: string;
|
|
25
|
+
catalogVisible?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Base class for model provider modules.
|
|
29
|
+
* Implements shared logic: credential lookup, proxy mappings, env var injection,
|
|
30
|
+
* and Hono app management. Save-key and logout routes are handled by the
|
|
31
|
+
* parameterized auth router in gateway.ts.
|
|
32
|
+
*
|
|
33
|
+
* Subclasses provide a config object and optionally override:
|
|
34
|
+
* - `setupRoutes(app)` to add provider-specific routes
|
|
35
|
+
* - `getModelOptions()` for model listing
|
|
36
|
+
* - `buildEnvVars()` for custom env var injection
|
|
37
|
+
* - `hasSystemKey()` / `injectSystemKeyFallback()` for multi-env-var logic
|
|
38
|
+
*/
|
|
39
|
+
export declare abstract class BaseProviderModule extends BaseModule implements ModelProviderModule {
|
|
40
|
+
name: string;
|
|
41
|
+
providerId: string;
|
|
42
|
+
providerDisplayName: string;
|
|
43
|
+
providerIconUrl: string;
|
|
44
|
+
authType: "oauth" | "device-code" | "api-key";
|
|
45
|
+
supportedAuthTypes?: ("oauth" | "device-code" | "api-key")[];
|
|
46
|
+
apiKeyInstructions?: string;
|
|
47
|
+
apiKeyPlaceholder?: string;
|
|
48
|
+
catalogDescription?: string;
|
|
49
|
+
catalogVisible?: boolean;
|
|
50
|
+
protected readonly providerConfig: BaseProviderConfig;
|
|
51
|
+
protected readonly authProfilesManager: AuthProfilesManager;
|
|
52
|
+
protected readonly app: Hono;
|
|
53
|
+
constructor(config: BaseProviderConfig, authProfilesManager: AuthProfilesManager);
|
|
54
|
+
isEnabled(): boolean;
|
|
55
|
+
getSecretEnvVarNames(): string[];
|
|
56
|
+
getCredentialEnvVarName(): string;
|
|
57
|
+
getUpstreamConfig(): ProviderUpstreamConfig | null;
|
|
58
|
+
hasCredentials(agentId: string): Promise<boolean>;
|
|
59
|
+
hasSystemKey(): boolean;
|
|
60
|
+
getProxyBaseUrlMappings(proxyUrl: string, agentId?: string): Record<string, string>;
|
|
61
|
+
injectSystemKeyFallback(envVars: Record<string, string>): Record<string, string>;
|
|
62
|
+
buildEnvVars(agentId: string, envVars: Record<string, string>): Promise<Record<string, string>>;
|
|
63
|
+
getApp(): Hono;
|
|
64
|
+
protected getCredential(agentId: string): Promise<string | null>;
|
|
65
|
+
/** Build a structured placeholder for proxy mode (default: "lobu-proxy"). */
|
|
66
|
+
buildCredentialPlaceholder(_agentId: string): Promise<string> | string;
|
|
67
|
+
/** Override in subclasses to add provider-specific routes. */
|
|
68
|
+
protected setupRoutes(): void;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=base-provider-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-provider-module.d.ts","sourceRoot":"","sources":["../../src/auth/base-provider-module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseProviderModule = void 0;
|
|
4
|
+
const core_1 = require("@lobu/core");
|
|
5
|
+
const hono_1 = require("hono");
|
|
6
|
+
const module_system_1 = require("../modules/module-system");
|
|
7
|
+
const string_substitution_1 = require("./mcp/string-substitution");
|
|
8
|
+
const logger = (0, core_1.createLogger)("base-provider-module");
|
|
9
|
+
/**
|
|
10
|
+
* Base class for model provider modules.
|
|
11
|
+
* Implements shared logic: credential lookup, proxy mappings, env var injection,
|
|
12
|
+
* and Hono app management. Save-key and logout routes are handled by the
|
|
13
|
+
* parameterized auth router in gateway.ts.
|
|
14
|
+
*
|
|
15
|
+
* Subclasses provide a config object and optionally override:
|
|
16
|
+
* - `setupRoutes(app)` to add provider-specific routes
|
|
17
|
+
* - `getModelOptions()` for model listing
|
|
18
|
+
* - `buildEnvVars()` for custom env var injection
|
|
19
|
+
* - `hasSystemKey()` / `injectSystemKeyFallback()` for multi-env-var logic
|
|
20
|
+
*/
|
|
21
|
+
class BaseProviderModule extends module_system_1.BaseModule {
|
|
22
|
+
constructor(config, authProfilesManager) {
|
|
23
|
+
super();
|
|
24
|
+
this.providerConfig = config;
|
|
25
|
+
this.authProfilesManager = authProfilesManager;
|
|
26
|
+
this.providerId = config.providerId;
|
|
27
|
+
this.name = `${config.providerId}-provider`;
|
|
28
|
+
this.providerDisplayName = config.providerDisplayName;
|
|
29
|
+
this.providerIconUrl = config.providerIconUrl;
|
|
30
|
+
this.authType = config.authType;
|
|
31
|
+
this.supportedAuthTypes = config.supportedAuthTypes;
|
|
32
|
+
this.apiKeyInstructions = config.apiKeyInstructions;
|
|
33
|
+
this.apiKeyPlaceholder = config.apiKeyPlaceholder;
|
|
34
|
+
this.catalogDescription = config.catalogDescription;
|
|
35
|
+
this.catalogVisible = config.catalogVisible;
|
|
36
|
+
this.app = new hono_1.Hono();
|
|
37
|
+
this.setupRoutes();
|
|
38
|
+
}
|
|
39
|
+
isEnabled() {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
getSecretEnvVarNames() {
|
|
43
|
+
return this.providerConfig.secretEnvVarNames;
|
|
44
|
+
}
|
|
45
|
+
getCredentialEnvVarName() {
|
|
46
|
+
return this.providerConfig.credentialEnvVarName;
|
|
47
|
+
}
|
|
48
|
+
getUpstreamConfig() {
|
|
49
|
+
const { slug, upstreamBaseUrl, baseUrlEnvVarName } = this.providerConfig;
|
|
50
|
+
if (!slug || !upstreamBaseUrl)
|
|
51
|
+
return null;
|
|
52
|
+
// Check env for base URL override (e.g., ANTHROPIC_BASE_URL=https://api.z.ai)
|
|
53
|
+
const envOverride = baseUrlEnvVarName
|
|
54
|
+
? (0, string_substitution_1.resolveEnv)(baseUrlEnvVarName)
|
|
55
|
+
: undefined;
|
|
56
|
+
return { slug, upstreamBaseUrl: envOverride || upstreamBaseUrl };
|
|
57
|
+
}
|
|
58
|
+
async hasCredentials(agentId) {
|
|
59
|
+
return this.authProfilesManager.hasProviderProfiles(agentId, this.providerId);
|
|
60
|
+
}
|
|
61
|
+
hasSystemKey() {
|
|
62
|
+
const envVar = this.providerConfig.systemEnvVarName ||
|
|
63
|
+
this.providerConfig.credentialEnvVarName;
|
|
64
|
+
return !!(0, string_substitution_1.resolveEnv)(envVar);
|
|
65
|
+
}
|
|
66
|
+
getProxyBaseUrlMappings(proxyUrl, agentId) {
|
|
67
|
+
const { slug, baseUrlEnvVarName, credentialEnvVarName } = this.providerConfig;
|
|
68
|
+
if (!slug)
|
|
69
|
+
return {};
|
|
70
|
+
const envVar = baseUrlEnvVarName || credentialEnvVarName.replace("_KEY", "_BASE_URL");
|
|
71
|
+
const base = `${proxyUrl}/${slug}`;
|
|
72
|
+
return { [envVar]: agentId ? `${base}/a/${agentId}` : base };
|
|
73
|
+
}
|
|
74
|
+
injectSystemKeyFallback(envVars) {
|
|
75
|
+
const credVar = this.providerConfig.credentialEnvVarName;
|
|
76
|
+
if (!envVars[credVar]) {
|
|
77
|
+
const sysVar = this.providerConfig.systemEnvVarName || credVar;
|
|
78
|
+
const systemKey = (0, string_substitution_1.resolveEnv)(sysVar);
|
|
79
|
+
if (systemKey) {
|
|
80
|
+
envVars[credVar] = systemKey;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return envVars;
|
|
84
|
+
}
|
|
85
|
+
async buildEnvVars(agentId, envVars) {
|
|
86
|
+
const credVar = this.providerConfig.credentialEnvVarName;
|
|
87
|
+
if (!envVars[credVar]) {
|
|
88
|
+
const profile = await this.authProfilesManager.getBestProfile(agentId, this.providerId);
|
|
89
|
+
if (profile === null || profile === void 0 ? void 0 : profile.credential) {
|
|
90
|
+
logger.info(`Injecting ${credVar} for agent ${agentId} (${this.providerId})`);
|
|
91
|
+
envVars[credVar] = profile.credential;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return envVars;
|
|
95
|
+
}
|
|
96
|
+
getApp() {
|
|
97
|
+
return this.app;
|
|
98
|
+
}
|
|
99
|
+
async getCredential(agentId) {
|
|
100
|
+
const profile = await this.authProfilesManager.getBestProfile(agentId, this.providerId);
|
|
101
|
+
if (profile === null || profile === void 0 ? void 0 : profile.credential) {
|
|
102
|
+
return profile.credential;
|
|
103
|
+
}
|
|
104
|
+
const sysVar = this.providerConfig.systemEnvVarName ||
|
|
105
|
+
this.providerConfig.credentialEnvVarName;
|
|
106
|
+
return process.env[sysVar] || null;
|
|
107
|
+
}
|
|
108
|
+
/** Build a structured placeholder for proxy mode (default: "lobu-proxy"). */
|
|
109
|
+
buildCredentialPlaceholder(_agentId) {
|
|
110
|
+
return "lobu-proxy";
|
|
111
|
+
}
|
|
112
|
+
/** Override in subclasses to add provider-specific routes. */
|
|
113
|
+
setupRoutes() {
|
|
114
|
+
// Default: no extra routes
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.BaseProviderModule = BaseProviderModule;
|
|
118
|
+
//# sourceMappingURL=base-provider-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-provider-module.js","sourceRoot":"","sources":["../../src/auth/base-provider-module.ts"],"names":[],"mappings":"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"}
|