@undefineds.co/xpod 0.3.57 → 0.3.61
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 +3 -0
- package/config/cli.json +88 -0
- package/config/cloud.json +32 -1
- package/config/components-ignore.json +3 -0
- package/config/extensions.local.initializer.json +44 -0
- package/config/resolver.json +86 -0
- package/config/xpod.base.json +4 -0
- package/dist/agents/AgentExecutorFactory.d.ts +3 -3
- package/dist/agents/AgentExecutorFactory.js +28 -15
- package/dist/agents/AgentExecutorFactory.js.map +1 -1
- package/dist/agents/BaseAgentExecutor.d.ts +2 -1
- package/dist/agents/BaseAgentExecutor.js +1 -0
- package/dist/agents/BaseAgentExecutor.js.map +1 -1
- package/dist/agents/ClaudeExecutor.d.ts +3 -1
- package/dist/agents/ClaudeExecutor.js +18 -12
- package/dist/agents/ClaudeExecutor.js.map +1 -1
- package/dist/agents/config/resolve.js +0 -21
- package/dist/agents/config/resolve.js.map +1 -1
- package/dist/agents/config/types.d.ts +2 -7
- package/dist/agents/config/types.js +2 -1
- package/dist/agents/config/types.js.map +1 -1
- package/dist/agents/types.d.ts +18 -0
- package/dist/agents/types.js.map +1 -1
- package/dist/ai/schema/types.d.ts +2 -1
- package/dist/ai/schema/types.js +1 -0
- package/dist/ai/schema/types.js.map +1 -1
- package/dist/ai/service/CredentialReader.d.ts +3 -1
- package/dist/ai/service/CredentialReader.js.map +1 -1
- package/dist/ai/service/CredentialReaderImpl.d.ts +3 -1
- package/dist/ai/service/CredentialReaderImpl.js +24 -2
- package/dist/ai/service/CredentialReaderImpl.js.map +1 -1
- package/dist/ai/service/EmbeddingServiceImpl.js +13 -2
- package/dist/ai/service/EmbeddingServiceImpl.js.map +1 -1
- package/dist/ai/service/ProviderRegistry.d.ts +4 -0
- package/dist/ai/service/ProviderRegistry.js.map +1 -1
- package/dist/ai/service/ProviderRegistry.jsonld +4 -0
- package/dist/ai/service/ProviderRegistryImpl.d.ts +4 -1
- package/dist/ai/service/ProviderRegistryImpl.js +26 -4
- package/dist/ai/service/ProviderRegistryImpl.js.map +1 -1
- package/dist/ai/service/ProviderRegistryImpl.jsonld +12 -0
- package/dist/ai/service/defaultEmbeddingProfile.d.ts +5 -0
- package/dist/ai/service/defaultEmbeddingProfile.js +31 -0
- package/dist/ai/service/defaultEmbeddingProfile.js.map +1 -0
- package/dist/ai/service/index.d.ts +1 -0
- package/dist/ai/service/index.js +1 -0
- package/dist/ai/service/index.js.map +1 -1
- package/dist/ai/service/types.d.ts +1 -0
- package/dist/ai/service/types.js.map +1 -1
- package/dist/api/ApiServer.js +17 -2
- package/dist/api/ApiServer.js.map +1 -1
- package/dist/api/ai-gateway/AiGatewayService.d.ts +106 -0
- package/dist/api/ai-gateway/AiGatewayService.js +527 -0
- package/dist/api/ai-gateway/AiGatewayService.js.map +1 -0
- package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.d.ts +38 -0
- package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.js +128 -0
- package/dist/api/ai-gateway/auth/AiConnectionInvocationKeyIssuer.js.map +1 -0
- package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.d.ts +25 -0
- package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.js +91 -0
- package/dist/api/ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider.js.map +1 -0
- package/dist/api/ai-gateway/auth/GatewayApiKey.d.ts +28 -0
- package/dist/api/ai-gateway/auth/GatewayApiKey.js +162 -0
- package/dist/api/ai-gateway/auth/GatewayApiKey.js.map +1 -0
- package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.d.ts +56 -0
- package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.js +143 -0
- package/dist/api/ai-gateway/auth/GatewayApiKeyAuthenticator.js.map +1 -0
- package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.d.ts +26 -0
- package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.js +97 -0
- package/dist/api/ai-gateway/auth/GatewayKeyLocatorCodec.js.map +1 -0
- package/dist/api/ai-gateway/auth/GatewayPrincipal.d.ts +20 -0
- package/dist/api/ai-gateway/auth/GatewayPrincipal.js +37 -0
- package/dist/api/ai-gateway/auth/GatewayPrincipal.js.map +1 -0
- package/dist/api/ai-gateway/auth/InvocationTokenCodec.d.ts +41 -0
- package/dist/api/ai-gateway/auth/InvocationTokenCodec.js +221 -0
- package/dist/api/ai-gateway/auth/InvocationTokenCodec.js.map +1 -0
- package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.d.ts +54 -0
- package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.js +152 -0
- package/dist/api/ai-gateway/auth/PodGatewayAccessKeyRepository.js.map +1 -0
- package/dist/api/ai-gateway/connect/index.d.ts +367 -0
- package/dist/api/ai-gateway/connect/index.js +1061 -0
- package/dist/api/ai-gateway/connect/index.js.map +1 -0
- package/dist/api/ai-gateway/credentials/CloudKmsWrapper.d.ts +40 -0
- package/dist/api/ai-gateway/credentials/CloudKmsWrapper.js +59 -0
- package/dist/api/ai-gateway/credentials/CloudKmsWrapper.js.map +1 -0
- package/dist/api/ai-gateway/credentials/CredentialVault.d.ts +14 -0
- package/dist/api/ai-gateway/credentials/CredentialVault.js +11 -0
- package/dist/api/ai-gateway/credentials/CredentialVault.js.map +1 -0
- package/dist/api/ai-gateway/credentials/KeyWrapper.d.ts +27 -0
- package/dist/api/ai-gateway/credentials/KeyWrapper.js +3 -0
- package/dist/api/ai-gateway/credentials/KeyWrapper.js.map +1 -0
- package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.d.ts +27 -0
- package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.js +145 -0
- package/dist/api/ai-gateway/credentials/LocalKeychainWrapper.js.map +1 -0
- package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.d.ts +13 -0
- package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.js +133 -0
- package/dist/api/ai-gateway/credentials/SecretCellCredentialVault.js.map +1 -0
- package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.d.ts +23 -0
- package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.js +62 -0
- package/dist/api/ai-gateway/credentials/SecretCellKeyWrapper.js.map +1 -0
- package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.d.ts +23 -0
- package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.js +173 -0
- package/dist/api/ai-gateway/credentials/WebCryptoCredentialVault.js.map +1 -0
- package/dist/api/ai-gateway/errors.d.ts +21 -0
- package/dist/api/ai-gateway/errors.js +50 -0
- package/dist/api/ai-gateway/errors.js.map +1 -0
- package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.d.ts +6 -0
- package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.js +111 -0
- package/dist/api/ai-gateway/protocol/ChatCompletionsFrontend.js.map +1 -0
- package/dist/api/ai-gateway/protocol/MessagesFrontend.d.ts +6 -0
- package/dist/api/ai-gateway/protocol/MessagesFrontend.js +99 -0
- package/dist/api/ai-gateway/protocol/MessagesFrontend.js.map +1 -0
- package/dist/api/ai-gateway/protocol/ResponsesFrontend.d.ts +6 -0
- package/dist/api/ai-gateway/protocol/ResponsesFrontend.js +232 -0
- package/dist/api/ai-gateway/protocol/ResponsesFrontend.js.map +1 -0
- package/dist/api/ai-gateway/protocol/index.d.ts +3 -0
- package/dist/api/ai-gateway/protocol/index.js +10 -0
- package/dist/api/ai-gateway/protocol/index.js.map +1 -0
- package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.d.ts +7 -0
- package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.js +37 -0
- package/dist/api/ai-gateway/providers/AnthropicRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.d.ts +9 -0
- package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.js +127 -0
- package/dist/api/ai-gateway/providers/BailianRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.d.ts +8 -0
- package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.js +47 -0
- package/dist/api/ai-gateway/providers/DeepSeekRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.d.ts +8 -0
- package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.js +57 -0
- package/dist/api/ai-gateway/providers/KimiRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.d.ts +1 -0
- package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.js +6 -0
- package/dist/api/ai-gateway/providers/OpenAiCompatibleRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.d.ts +13 -0
- package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.js +34 -0
- package/dist/api/ai-gateway/providers/OpenAiRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/ProviderRegistry.d.ts +68 -0
- package/dist/api/ai-gateway/providers/ProviderRegistry.js +288 -0
- package/dist/api/ai-gateway/providers/ProviderRegistry.js.map +1 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.d.ts +88 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.js +645 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeAdapter.js.map +1 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.d.ts +13 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.js +48 -0
- package/dist/api/ai-gateway/providers/ProviderRuntimeRegistry.js.map +1 -0
- package/dist/api/ai-gateway/providers/index.d.ts +9 -0
- package/dist/api/ai-gateway/providers/index.js +26 -0
- package/dist/api/ai-gateway/providers/index.js.map +1 -0
- package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.d.ts +5 -0
- package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.js +21 -0
- package/dist/api/ai-gateway/quota/AnthropicQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/BailianQuotaAdapter.d.ts +5 -0
- package/dist/api/ai-gateway/quota/BailianQuotaAdapter.js +21 -0
- package/dist/api/ai-gateway/quota/BailianQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.d.ts +10 -0
- package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.js +83 -0
- package/dist/api/ai-gateway/quota/DeepSeekQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/KimiQuotaAdapter.d.ts +10 -0
- package/dist/api/ai-gateway/quota/KimiQuotaAdapter.js +70 -0
- package/dist/api/ai-gateway/quota/KimiQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.d.ts +5 -0
- package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.js +21 -0
- package/dist/api/ai-gateway/quota/OpenAiQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.d.ts +214 -0
- package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.js +511 -0
- package/dist/api/ai-gateway/quota/ProviderQuotaAdapter.js.map +1 -0
- package/dist/api/ai-gateway/quota/index.d.ts +6 -0
- package/dist/api/ai-gateway/quota/index.js +23 -0
- package/dist/api/ai-gateway/quota/index.js.map +1 -0
- package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.d.ts +26 -0
- package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.js +67 -0
- package/dist/api/ai-gateway/routing/InMemorySessionAffinityStore.js.map +1 -0
- package/dist/api/ai-gateway/routing/ModelRouter.d.ts +84 -0
- package/dist/api/ai-gateway/routing/ModelRouter.js +274 -0
- package/dist/api/ai-gateway/routing/ModelRouter.js.map +1 -0
- package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.d.ts +39 -0
- package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.js +122 -0
- package/dist/api/ai-gateway/routing/RedisSessionAffinityStore.js.map +1 -0
- package/dist/api/ai-gateway/routing/SessionAffinityStore.d.ts +49 -0
- package/dist/api/ai-gateway/routing/SessionAffinityStore.js +66 -0
- package/dist/api/ai-gateway/routing/SessionAffinityStore.js.map +1 -0
- package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.d.ts +25 -0
- package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.js +50 -0
- package/dist/api/ai-gateway/service-access/AiConnectionServiceAccess.js.map +1 -0
- package/dist/api/ai-gateway/types.d.ts +112 -0
- package/dist/api/ai-gateway/types.js +305 -0
- package/dist/api/ai-gateway/types.js.map +1 -0
- package/dist/api/auth/AuthContext.d.ts +18 -3
- package/dist/api/auth/AuthContext.js +13 -2
- package/dist/api/auth/AuthContext.js.map +1 -1
- package/dist/api/auth/Authenticator.d.ts +3 -0
- package/dist/api/auth/Authenticator.js.map +1 -1
- package/dist/api/auth/ClientCredentialsAuthenticator.d.ts +2 -6
- package/dist/api/auth/ClientCredentialsAuthenticator.js +12 -30
- package/dist/api/auth/ClientCredentialsAuthenticator.js.map +1 -1
- package/dist/api/auth/SolidTokenAuthenticator.d.ts +2 -0
- package/dist/api/auth/SolidTokenAuthenticator.js +88 -2
- package/dist/api/auth/SolidTokenAuthenticator.js.map +1 -1
- package/dist/api/auth/TokenIdentity.d.ts +6 -0
- package/dist/api/auth/TokenIdentity.js +31 -0
- package/dist/api/auth/TokenIdentity.js.map +1 -0
- package/dist/api/chatkit/ai-provider.d.ts +9 -23
- package/dist/api/chatkit/ai-provider.js +30 -153
- package/dist/api/chatkit/ai-provider.js.map +1 -1
- package/dist/api/chatkit/default-agent.d.ts +24 -15
- package/dist/api/chatkit/default-agent.js +24 -83
- package/dist/api/chatkit/default-agent.js.map +1 -1
- package/dist/api/chatkit/index.d.ts +2 -1
- package/dist/api/chatkit/index.js +3 -1
- package/dist/api/chatkit/index.js.map +1 -1
- package/dist/api/chatkit/pod-store.d.ts +13 -1
- package/dist/api/chatkit/pod-store.js +127 -7
- package/dist/api/chatkit/pod-store.js.map +1 -1
- package/dist/api/chatkit/runtime/AcpAgentRuntime.d.ts +0 -1
- package/dist/api/chatkit/runtime/AcpAgentRuntime.js +14 -51
- package/dist/api/chatkit/runtime/AcpAgentRuntime.js.map +1 -1
- package/dist/api/chatkit/runtime/AcpRunner.js +2 -1
- package/dist/api/chatkit/runtime/AcpRunner.js.map +1 -1
- package/dist/api/chatkit/runtime/CodexRuntimeProjector.d.ts +15 -1
- package/dist/api/chatkit/runtime/CodexRuntimeProjector.js +52 -34
- package/dist/api/chatkit/runtime/CodexRuntimeProjector.js.map +1 -1
- package/dist/api/chatkit/service.d.ts +8 -1
- package/dist/api/chatkit/service.js +46 -5
- package/dist/api/chatkit/service.js.map +1 -1
- package/dist/api/chatkit/store.d.ts +23 -1
- package/dist/api/chatkit/store.js +56 -0
- package/dist/api/chatkit/store.js.map +1 -1
- package/dist/api/chatkit/types.d.ts +1 -0
- package/dist/api/chatkit/types.js.map +1 -1
- package/dist/api/container/common.js +286 -13
- package/dist/api/container/common.js.map +1 -1
- package/dist/api/container/index.js +126 -6
- package/dist/api/container/index.js.map +1 -1
- package/dist/api/container/local.js +50 -6
- package/dist/api/container/local.js.map +1 -1
- package/dist/api/container/rdf.d.ts +15 -0
- package/dist/api/container/rdf.js +90 -0
- package/dist/api/container/rdf.js.map +1 -0
- package/dist/api/container/routes.js +151 -11
- package/dist/api/container/routes.js.map +1 -1
- package/dist/api/container/types.d.ts +96 -0
- package/dist/api/container/types.js.map +1 -1
- package/dist/api/handlers/AdminHandler.d.ts +25 -2
- package/dist/api/handlers/AdminHandler.js +60 -10
- package/dist/api/handlers/AdminHandler.js.map +1 -1
- package/dist/api/handlers/AiClientConfigurationHandler.d.ts +7 -0
- package/dist/api/handlers/AiClientConfigurationHandler.js +202 -0
- package/dist/api/handlers/AiClientConfigurationHandler.js.map +1 -0
- package/dist/api/handlers/AiGatewayHandler.d.ts +23 -0
- package/dist/api/handlers/AiGatewayHandler.js +231 -0
- package/dist/api/handlers/AiGatewayHandler.js.map +1 -0
- package/dist/api/handlers/AiGatewayManagementHandler.d.ts +24 -0
- package/dist/api/handlers/AiGatewayManagementHandler.js +503 -0
- package/dist/api/handlers/AiGatewayManagementHandler.js.map +1 -0
- package/dist/api/handlers/ChatHandler.d.ts +11 -12
- package/dist/api/handlers/ChatHandler.js +12 -219
- package/dist/api/handlers/ChatHandler.js.map +1 -1
- package/dist/api/handlers/DashboardHandler.js +22 -116
- package/dist/api/handlers/DashboardHandler.js.map +1 -1
- package/dist/api/handlers/NetworkSettingsHandler.d.ts +97 -0
- package/dist/api/handlers/NetworkSettingsHandler.js +511 -0
- package/dist/api/handlers/NetworkSettingsHandler.js.map +1 -0
- package/dist/api/handlers/PodSettingsHandler.d.ts +79 -0
- package/dist/api/handlers/PodSettingsHandler.js +162 -0
- package/dist/api/handlers/PodSettingsHandler.js.map +1 -0
- package/dist/api/handlers/ProvisionHandler.d.ts +3 -1
- package/dist/api/handlers/ProvisionHandler.js +22 -87
- package/dist/api/handlers/ProvisionHandler.js.map +1 -1
- package/dist/api/handlers/RdfStatsHandler.d.ts +6 -0
- package/dist/api/handlers/RdfStatsHandler.js +85 -0
- package/dist/api/handlers/RdfStatsHandler.js.map +1 -0
- package/dist/api/handlers/SettingsHandler.d.ts +5 -0
- package/dist/api/handlers/SettingsHandler.js +13 -0
- package/dist/api/handlers/SettingsHandler.js.map +1 -0
- package/dist/api/handlers/StaticSpaHandler.d.ts +8 -0
- package/dist/api/handlers/StaticSpaHandler.js +102 -0
- package/dist/api/handlers/StaticSpaHandler.js.map +1 -0
- package/dist/api/handlers/index.d.ts +1 -0
- package/dist/api/handlers/index.js +1 -0
- package/dist/api/handlers/index.js.map +1 -1
- package/dist/api/http/readBoundedJsonBody.d.ts +14 -0
- package/dist/api/http/readBoundedJsonBody.js +58 -0
- package/dist/api/http/readBoundedJsonBody.js.map +1 -0
- package/dist/api/middleware/AuthMiddleware.d.ts +1 -0
- package/dist/api/middleware/AuthMiddleware.js +33 -4
- package/dist/api/middleware/AuthMiddleware.js.map +1 -1
- package/dist/api/runs/AgentRuntimeTypes.d.ts +18 -3
- package/dist/api/runs/AgentRuntimeTypes.js +61 -0
- package/dist/api/runs/AgentRuntimeTypes.js.map +1 -1
- package/dist/api/runs/InngestRunExecutionBackend.d.ts +28 -3
- package/dist/api/runs/InngestRunExecutionBackend.js +26 -3
- package/dist/api/runs/InngestRunExecutionBackend.js.map +1 -1
- package/dist/api/runs/ManagedRunWorker.d.ts +4 -1
- package/dist/api/runs/ManagedRunWorker.js +39 -8
- package/dist/api/runs/ManagedRunWorker.js.map +1 -1
- package/dist/api/runs/PiAgentRuntimeDriver.d.ts +5 -1
- package/dist/api/runs/PiAgentRuntimeDriver.js +94 -57
- package/dist/api/runs/PiAgentRuntimeDriver.js.map +1 -1
- package/dist/api/runs/RdfRunContextRetriever.d.ts +46 -0
- package/dist/api/runs/RdfRunContextRetriever.js +277 -0
- package/dist/api/runs/RdfRunContextRetriever.js.map +1 -0
- package/dist/api/runs/RunExecutionBackend.d.ts +38 -0
- package/dist/api/runs/RunExecutionBackend.js.map +1 -1
- package/dist/api/runs/RunStateCenter.d.ts +18 -3
- package/dist/api/runs/RunStateCenter.js +85 -24
- package/dist/api/runs/RunStateCenter.js.map +1 -1
- package/dist/api/runtime.js +163 -3
- package/dist/api/runtime.js.map +1 -1
- package/dist/api/service/AiClientConfigurationService.d.ts +97 -0
- package/dist/api/service/AiClientConfigurationService.js +379 -0
- package/dist/api/service/AiClientConfigurationService.js.map +1 -0
- package/dist/api/service/RdfBenchmarkReportCatalog.d.ts +86 -0
- package/dist/api/service/RdfBenchmarkReportCatalog.js +349 -0
- package/dist/api/service/RdfBenchmarkReportCatalog.js.map +1 -0
- package/dist/api/service/RdfBenchmarkReportGate.d.ts +78 -0
- package/dist/api/service/RdfBenchmarkReportGate.js +197 -0
- package/dist/api/service/RdfBenchmarkReportGate.js.map +1 -0
- package/dist/api/service/RdfSearchIndexingService.d.ts +113 -0
- package/dist/api/service/RdfSearchIndexingService.js +272 -0
- package/dist/api/service/RdfSearchIndexingService.js.map +1 -0
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.d.ts +27 -0
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js +90 -0
- package/dist/api/service/RdfSearchIndexingSolidFsSyncer.js.map +1 -0
- package/dist/api/service/RdfStorageStatsService.d.ts +31 -0
- package/dist/api/service/RdfStorageStatsService.js +97 -0
- package/dist/api/service/RdfStorageStatsService.js.map +1 -0
- package/dist/api/service/VectorStoreService.d.ts +2 -0
- package/dist/api/service/VectorStoreService.js +70 -2
- package/dist/api/service/VectorStoreService.js.map +1 -1
- package/dist/api/service/VercelChatService.d.ts +27 -38
- package/dist/api/service/VercelChatService.js +153 -505
- package/dist/api/service/VercelChatService.js.map +1 -1
- package/dist/api/service/provider-http-transport.d.ts +21 -0
- package/dist/api/service/provider-http-transport.js +108 -2
- package/dist/api/service/provider-http-transport.js.map +1 -1
- package/dist/api/service/provider-registry.d.ts +5 -7
- package/dist/api/service/provider-registry.js +81 -64
- package/dist/api/service/provider-registry.js.map +1 -1
- package/dist/api/tasks/InngestTaskScheduler.d.ts +44 -4
- package/dist/api/tasks/TaskMaterializer.d.ts +10 -1
- package/dist/api/tasks/TaskMaterializer.js +39 -4
- package/dist/api/tasks/TaskMaterializer.js.map +1 -1
- package/dist/api/tasks/TaskService.d.ts +5 -1
- package/dist/api/tasks/TaskService.js +3 -0
- package/dist/api/tasks/TaskService.js.map +1 -1
- package/dist/cli/commands/obj.d.ts +9 -0
- package/dist/cli/commands/obj.js +74 -3
- package/dist/cli/commands/obj.js.map +1 -1
- package/dist/cli/commands/rdf.d.ts +9 -0
- package/dist/cli/commands/rdf.js +66 -1
- package/dist/cli/commands/rdf.js.map +1 -1
- package/dist/cli/commands/start.js +3 -0
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/lib/solid-auth.d.ts +3 -3
- package/dist/cli/lib/solid-auth.js +4 -4
- package/dist/cli/lib/solid-auth.js.map +1 -1
- package/dist/components/components.jsonld +16 -0
- package/dist/components/context.jsonld +815 -28
- package/dist/document/Chunker.jsonld +110 -0
- package/dist/document/{DocumentParser.d.ts → DocumentReader.d.ts} +23 -11
- package/dist/document/{DocumentParser.js → DocumentReader.js} +2 -2
- package/dist/document/DocumentReader.js.map +1 -0
- package/dist/document/DocumentReader.jsonld +82 -0
- package/dist/document/HeadingChunker.jsonld +41 -0
- package/dist/document/{JinaDocumentParser.d.ts → JinaReader.d.ts} +7 -7
- package/dist/document/{JinaDocumentParser.js → JinaReader.js} +12 -12
- package/dist/document/JinaReader.js.map +1 -0
- package/dist/document/JinaReader.jsonld +133 -0
- package/dist/document/L0SourceSummary.d.ts +103 -0
- package/dist/document/L0SourceSummary.js +157 -0
- package/dist/document/L0SourceSummary.js.map +1 -0
- package/dist/document/L0SourceSummary.jsonld +326 -0
- package/dist/document/PaddleOcrReader.d.ts +40 -0
- package/dist/document/PaddleOcrReader.js +53 -0
- package/dist/document/PaddleOcrReader.js.map +1 -0
- package/dist/document/PaddleOcrReader.jsonld +234 -0
- package/dist/document/ReaderAiConfig.d.ts +50 -0
- package/dist/document/ReaderAiConfig.js +109 -0
- package/dist/document/ReaderAiConfig.js.map +1 -0
- package/dist/document/ReaderAiConfig.jsonld +185 -0
- package/dist/document/ReaderPolicy.d.ts +89 -0
- package/dist/document/ReaderPolicy.js +158 -0
- package/dist/document/ReaderPolicy.js.map +1 -0
- package/dist/document/ReaderPolicy.jsonld +218 -0
- package/dist/document/index.d.ts +6 -2
- package/dist/document/index.js +6 -2
- package/dist/document/index.js.map +1 -1
- package/dist/edge/DdnsManager.d.ts +1 -1
- package/dist/edge/DdnsManager.js.map +1 -1
- package/dist/edge/EdgeNodeAgent.d.ts +4 -0
- package/dist/edge/EdgeNodeAgent.js +6 -0
- package/dist/edge/EdgeNodeAgent.js.map +1 -1
- package/dist/edge/EdgeNodeAgent.jsonld +8 -0
- package/dist/edge/EdgeNodeAgentInitializer.d.ts +16 -0
- package/dist/edge/EdgeNodeAgentInitializer.js +51 -0
- package/dist/edge/EdgeNodeAgentInitializer.js.map +1 -1
- package/dist/edge/EdgeNodeAgentInitializer.jsonld +250 -0
- package/dist/edge/EdgeNodeCertificateCapabilityBridge.d.ts +34 -0
- package/dist/edge/EdgeNodeCertificateCapabilityBridge.js +111 -0
- package/dist/edge/EdgeNodeCertificateCapabilityBridge.js.map +1 -0
- package/dist/edge/acme/AcmeCertificateManager.d.ts +14 -1
- package/dist/edge/acme/AcmeCertificateManager.js +67 -7
- package/dist/edge/acme/AcmeCertificateManager.js.map +1 -1
- package/dist/edge/acme/AcmeCertificateManager.jsonld +22 -2
- package/dist/edge/acme/ClusterCertificateManager.d.ts +12 -0
- package/dist/edge/acme/ClusterCertificateManager.js +38 -0
- package/dist/edge/acme/ClusterCertificateManager.js.map +1 -1
- package/dist/extensions/ExtensionRuntime.d.ts +17 -0
- package/dist/extensions/ExtensionRuntime.js +171 -0
- package/dist/extensions/ExtensionRuntime.js.map +1 -0
- package/dist/extensions/PodCredentialResolver.d.ts +23 -0
- package/dist/extensions/PodCredentialResolver.js +139 -0
- package/dist/extensions/PodCredentialResolver.js.map +1 -0
- package/dist/extensions/index.d.ts +3 -0
- package/dist/extensions/index.js +20 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/types.d.ts +73 -0
- package/dist/extensions/types.js +3 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/http/SubgraphSparqlHttpHandler.d.ts +20 -1
- package/dist/http/SubgraphSparqlHttpHandler.js +324 -43
- package/dist/http/SubgraphSparqlHttpHandler.js.map +1 -1
- package/dist/http/SubgraphSparqlHttpHandler.jsonld +87 -0
- package/dist/identity/drizzle/EdgeNodeRepository.js +3 -2
- package/dist/identity/drizzle/EdgeNodeRepository.js.map +1 -1
- package/dist/identity/drizzle/schema.pg.js +1 -1
- package/dist/identity/drizzle/schema.pg.js.map +1 -1
- package/dist/identity/drizzle/schema.sqlite.js +1 -1
- package/dist/identity/drizzle/schema.sqlite.js.map +1 -1
- package/dist/identity/oidc/ScopedPickWebIdHandler.js +5 -5
- package/dist/identity/oidc/ScopedPickWebIdHandler.js.map +1 -1
- package/dist/index.d.ts +12 -2
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/main.js +3 -0
- package/dist/main.js.map +1 -1
- package/dist/provision/LocalProvisionState.d.ts +28 -0
- package/dist/provision/LocalProvisionState.js +124 -0
- package/dist/provision/LocalProvisionState.js.map +1 -0
- package/dist/provision/ProvisionCodeCodec.d.ts +7 -3
- package/dist/provision/ProvisionCodeCodec.js +10 -3
- package/dist/provision/ProvisionCodeCodec.js.map +1 -1
- package/dist/provision/ProvisionPodCreator.d.ts +15 -1
- package/dist/provision/ProvisionPodCreator.js +68 -1
- package/dist/provision/ProvisionPodCreator.js.map +1 -1
- package/dist/provision/ProvisionPodCreator.jsonld +31 -0
- package/dist/provision/ServiceAccessTokenCodec.d.ts +45 -0
- package/dist/provision/ServiceAccessTokenCodec.js +86 -0
- package/dist/provision/ServiceAccessTokenCodec.js.map +1 -0
- package/dist/runtime/GatewayAdminProxyAuth.d.ts +29 -0
- package/dist/runtime/GatewayAdminProxyAuth.js +108 -0
- package/dist/runtime/GatewayAdminProxyAuth.js.map +1 -0
- package/dist/runtime/Proxy.d.ts +10 -0
- package/dist/runtime/Proxy.js +64 -6
- package/dist/runtime/Proxy.js.map +1 -1
- package/dist/runtime/XpodRuntime.js +1 -0
- package/dist/runtime/XpodRuntime.js.map +1 -1
- package/dist/runtime/bootstrap.d.ts +1 -0
- package/dist/runtime/bootstrap.js +29 -0
- package/dist/runtime/bootstrap.js.map +1 -1
- package/dist/runtime/css-process.d.ts +1 -0
- package/dist/runtime/css-process.js +1 -0
- package/dist/runtime/css-process.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -0
- package/dist/runtime/index.js +3 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/lifecycle.d.ts +3 -1
- package/dist/runtime/lifecycle.js +3 -1
- package/dist/runtime/lifecycle.js.map +1 -1
- package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js +2 -0
- package/dist/runtime/runner/node/NodeGatewayRuntimeRunner.js.map +1 -1
- package/dist/runtime/runner/types.d.ts +3 -0
- package/dist/runtime/runner/types.js.map +1 -1
- package/dist/runtime/runtime-types.d.ts +2 -0
- package/dist/runtime/runtime-types.js.map +1 -1
- package/dist/runtime/safe-env.d.ts +15 -0
- package/dist/runtime/safe-env.js +109 -0
- package/dist/runtime/safe-env.js.map +1 -0
- package/dist/security/index.d.ts +1 -0
- package/dist/security/index.js +18 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/secret-cell/DeploymentRootKeyProvider.d.ts +17 -0
- package/dist/security/secret-cell/DeploymentRootKeyProvider.js +61 -0
- package/dist/security/secret-cell/DeploymentRootKeyProvider.js.map +1 -0
- package/dist/security/secret-cell/DeploymentRootKeyProvider.jsonld +124 -0
- package/dist/security/secret-cell/SecretCellVault.d.ts +55 -0
- package/dist/security/secret-cell/SecretCellVault.js +242 -0
- package/dist/security/secret-cell/SecretCellVault.js.map +1 -0
- package/dist/security/secret-cell/SecretCellVault.jsonld +207 -0
- package/dist/security/secret-cell/index.d.ts +2 -0
- package/dist/security/secret-cell/index.js +11 -0
- package/dist/security/secret-cell/index.js.map +1 -0
- package/dist/solidfs/CompositeSolidFsSyncer.d.ts +18 -0
- package/dist/solidfs/CompositeSolidFsSyncer.js +32 -0
- package/dist/solidfs/CompositeSolidFsSyncer.js.map +1 -0
- package/dist/solidfs/LocalSolidFS.js +25 -1
- package/dist/solidfs/LocalSolidFS.js.map +1 -1
- package/dist/solidfs/RdfIndexSolidFsSyncer.d.ts +41 -2
- package/dist/solidfs/RdfIndexSolidFsSyncer.js +331 -21
- package/dist/solidfs/RdfIndexSolidFsSyncer.js.map +1 -1
- package/dist/solidfs/SolidFsMetaNotes.d.ts +25 -0
- package/dist/solidfs/SolidFsMetaNotes.js +103 -0
- package/dist/solidfs/SolidFsMetaNotes.js.map +1 -0
- package/dist/solidfs/SolidFsSyncJournal.d.ts +2 -2
- package/dist/solidfs/SolidFsSyncJournal.js +9 -4
- package/dist/solidfs/SolidFsSyncJournal.js.map +1 -1
- package/dist/solidfs/SolidFsSyncJournal.jsonld +119 -0
- package/dist/solidfs/WorkspacePrompt.d.ts +13 -0
- package/dist/solidfs/WorkspacePrompt.js +42 -0
- package/dist/solidfs/WorkspacePrompt.js.map +1 -0
- package/dist/solidfs/index.d.ts +3 -0
- package/dist/solidfs/index.js +3 -0
- package/dist/solidfs/index.js.map +1 -1
- package/dist/solidfs/types.d.ts +12 -2
- package/dist/solidfs/types.js.map +1 -1
- package/dist/storage/accessors/MixDataAccessor.d.ts +36 -4
- package/dist/storage/accessors/MixDataAccessor.js +222 -23
- package/dist/storage/accessors/MixDataAccessor.js.map +1 -1
- package/dist/storage/accessors/MixDataAccessor.jsonld +89 -0
- package/dist/storage/accessors/SolidRdfDataAccessor.d.ts +6 -1
- package/dist/storage/accessors/SolidRdfDataAccessor.js +35 -0
- package/dist/storage/accessors/SolidRdfDataAccessor.js.map +1 -1
- package/dist/storage/accessors/SolidRdfDataAccessor.jsonld +20 -0
- package/dist/storage/database/PostgresPoolManager.d.ts +1 -0
- package/dist/storage/database/PostgresPoolManager.js +2 -2
- package/dist/storage/database/PostgresPoolManager.js.map +1 -1
- package/dist/storage/locking/UrlAwareRedisLocker.d.ts +2 -0
- package/dist/storage/locking/UrlAwareRedisLocker.js +65 -0
- package/dist/storage/locking/UrlAwareRedisLocker.js.map +1 -1
- package/dist/storage/locking/UrlAwareRedisLocker.jsonld +19 -0
- package/dist/storage/rdf/PostgresRdfEngine.d.ts +286 -9
- package/dist/storage/rdf/PostgresRdfEngine.js +10773 -2084
- package/dist/storage/rdf/PostgresRdfEngine.js.map +1 -1
- package/dist/storage/rdf/PostgresRdfEngine.jsonld +1693 -89
- package/dist/storage/rdf/PostgresRdfSqlExecutor.d.ts +24 -0
- package/dist/storage/rdf/PostgresRdfSqlExecutor.js +131 -0
- package/dist/storage/rdf/PostgresRdfSqlExecutor.js.map +1 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.d.ts +54 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.js +1255 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.js.map +1 -0
- package/dist/storage/rdf/PostgresRdfTextIndex.jsonld +487 -0
- package/dist/storage/rdf/PostgresRdfVectorIndex.d.ts +46 -0
- package/dist/storage/rdf/PostgresRdfVectorIndex.js +1165 -0
- package/dist/storage/rdf/PostgresRdfVectorIndex.js.map +1 -0
- package/dist/storage/rdf/PostgresRdfVectorIndex.jsonld +423 -0
- package/dist/storage/rdf/Rdf3xIndex.d.ts +14 -1
- package/dist/storage/rdf/Rdf3xIndex.js +286 -2
- package/dist/storage/rdf/Rdf3xIndex.js.map +1 -1
- package/dist/storage/rdf/Rdf3xIndex.jsonld +36 -0
- package/dist/storage/rdf/Rdf3xSchema.d.ts +5 -1
- package/dist/storage/rdf/Rdf3xSchema.js +17 -3
- package/dist/storage/rdf/Rdf3xSchema.js.map +1 -1
- package/dist/storage/rdf/RdfAccessScope.d.ts +22 -0
- package/dist/storage/rdf/RdfAccessScope.js +345 -0
- package/dist/storage/rdf/RdfAccessScope.js.map +1 -0
- package/dist/storage/rdf/RdfAccessScope.jsonld +45 -0
- package/dist/storage/rdf/RdfFusionRankPlan.d.ts +2 -0
- package/dist/storage/rdf/RdfFusionRankPlan.js +186 -0
- package/dist/storage/rdf/RdfFusionRankPlan.js.map +1 -0
- package/dist/storage/rdf/RdfJoinShape.d.ts +8 -0
- package/dist/storage/rdf/RdfJoinShape.js +31 -0
- package/dist/storage/rdf/RdfJoinShape.js.map +1 -0
- package/dist/storage/rdf/RdfQuadIndex.d.ts +5 -2
- package/dist/storage/rdf/RdfQuadIndex.js +94 -6
- package/dist/storage/rdf/RdfQuadIndex.js.map +1 -1
- package/dist/storage/rdf/RdfQuadIndex.jsonld +12 -0
- package/dist/storage/rdf/RdfQueryExecutor.d.ts +3 -4
- package/dist/storage/rdf/RdfQueryExecutor.js +235 -8
- package/dist/storage/rdf/RdfQueryExecutor.js.map +1 -1
- package/dist/storage/rdf/RdfSearchSourceFilter.d.ts +10 -0
- package/dist/storage/rdf/RdfSearchSourceFilter.js +83 -0
- package/dist/storage/rdf/RdfSearchSourceFilter.js.map +1 -0
- package/dist/storage/rdf/RdfSparqlAdapter.d.ts +27 -1
- package/dist/storage/rdf/RdfSparqlAdapter.js +265 -3
- package/dist/storage/rdf/RdfSparqlAdapter.js.map +1 -1
- package/dist/storage/rdf/RdfSparqlAdapter.jsonld +8 -0
- package/dist/storage/rdf/RdfTermDictionary.d.ts +7 -1
- package/dist/storage/rdf/RdfTermDictionary.js +139 -0
- package/dist/storage/rdf/RdfTermDictionary.js.map +1 -1
- package/dist/storage/rdf/RdfTermDictionary.jsonld +4 -0
- package/dist/storage/rdf/RdfTextIndex.d.ts +45 -2
- package/dist/storage/rdf/RdfTextIndex.js +810 -114
- package/dist/storage/rdf/RdfTextIndex.js.map +1 -1
- package/dist/storage/rdf/RdfTextIndex.jsonld +193 -0
- package/dist/storage/rdf/RdfTextProjection.d.ts +10 -0
- package/dist/storage/rdf/RdfTextProjection.js +258 -0
- package/dist/storage/rdf/RdfTextProjection.js.map +1 -0
- package/dist/storage/rdf/RdfVectorIndex.d.ts +30 -2
- package/dist/storage/rdf/RdfVectorIndex.js +461 -38
- package/dist/storage/rdf/RdfVectorIndex.js.map +1 -1
- package/dist/storage/rdf/RdfVectorIndex.jsonld +163 -0
- package/dist/storage/rdf/SolidRdfEngine.d.ts +12 -9
- package/dist/storage/rdf/SolidRdfEngine.js +48 -22
- package/dist/storage/rdf/SolidRdfEngine.js.map +1 -1
- package/dist/storage/rdf/SolidRdfEngine.jsonld +33 -43
- package/dist/storage/rdf/SolidRdfSparqlEngine.d.ts +19 -8
- package/dist/storage/rdf/SolidRdfSparqlEngine.js +674 -44
- package/dist/storage/rdf/SolidRdfSparqlEngine.js.map +1 -1
- package/dist/storage/rdf/SolidRdfSparqlEngine.jsonld +51 -0
- package/dist/storage/rdf/index.d.ts +9 -5
- package/dist/storage/rdf/index.js +42 -1
- package/dist/storage/rdf/index.js.map +1 -1
- package/dist/storage/rdf/models-benchmark.d.ts +264 -2
- package/dist/storage/rdf/models-benchmark.js +4207 -155
- package/dist/storage/rdf/models-benchmark.js.map +1 -1
- package/dist/storage/rdf/types.d.ts +833 -4
- package/dist/storage/rdf/types.js.map +1 -1
- package/dist/storage/rdf/types.jsonld +348 -0
- package/dist/storage/sparql/CompatibilitySparqlEngine.d.ts +14 -13
- package/dist/storage/sparql/CompatibilitySparqlEngine.js +24 -24
- package/dist/storage/sparql/CompatibilitySparqlEngine.js.map +1 -1
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.d.ts +14 -13
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js +30 -18
- package/dist/storage/sparql/CompatibilitySparqlEngineImpl.js.map +1 -1
- package/dist/storage/sparql/SubgraphQueryEngine.d.ts +21 -12
- package/dist/storage/sparql/SubgraphQueryEngine.js +12 -12
- package/dist/storage/sparql/SubgraphQueryEngine.js.map +1 -1
- package/dist/terminal/sandbox/MacOSSandbox.js +2 -1
- package/dist/terminal/sandbox/MacOSSandbox.js.map +1 -1
- package/dist/terminal/sandbox/index.js +2 -1
- package/dist/terminal/sandbox/index.js.map +1 -1
- package/dist/test-utils/no-auth-xpod.js +3 -0
- package/dist/test-utils/no-auth-xpod.js.map +1 -1
- package/dist/tunnel/LocalTunnelProvider.d.ts +3 -0
- package/dist/tunnel/LocalTunnelProvider.js +17 -1
- package/dist/tunnel/LocalTunnelProvider.js.map +1 -1
- package/dist/tunnel/LocalTunnelProvider.jsonld +23 -0
- package/dist/tunnel/SakuraFrpTunnelProvider.d.ts +3 -0
- package/dist/tunnel/SakuraFrpTunnelProvider.js +18 -2
- package/dist/tunnel/SakuraFrpTunnelProvider.js.map +1 -1
- package/dist/tunnel/TunnelProfiles.d.ts +22 -0
- package/dist/tunnel/TunnelProfiles.js +208 -0
- package/dist/tunnel/TunnelProfiles.js.map +1 -0
- package/dist/tunnel/index.d.ts +2 -0
- package/dist/tunnel/index.js +4 -1
- package/dist/tunnel/index.js.map +1 -1
- package/dist/util/identifiers/ClusterIdentifierStrategy.d.ts +3 -0
- package/dist/util/identifiers/ClusterIdentifierStrategy.js +18 -2
- package/dist/util/identifiers/ClusterIdentifierStrategy.js.map +1 -1
- package/dist/util/identifiers/ClusterIdentifierStrategy.jsonld +5 -1
- package/node_modules/@undefineds.co/ai-connection/dist/AiClientConfigurationSection.d.ts +55 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiClientConfigurationSection.js +167 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionHeader.d.ts +3 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionHeader.js +8 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionList.d.ts +4 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionList.js +36 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMain.d.ts +4 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMain.js +37 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMainHeader.d.ts +3 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionMainHeader.js +7 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionPanel.d.ts +14 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiConnectionPanel.js +333 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiProviderCard.d.ts +22 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiProviderCard.js +43 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiQuotaCard.d.ts +8 -0
- package/node_modules/@undefineds.co/ai-connection/dist/AiQuotaCard.js +6 -0
- package/node_modules/@undefineds.co/ai-connection/dist/ai-connection-client.d.ts +120 -0
- package/node_modules/@undefineds.co/ai-connection/dist/ai-connection-client.js +414 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/base-adapter.d.ts +32 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/base-adapter.js +212 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/codex.d.ts +14 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/codex.js +90 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.cjs +668 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.d.ts +6 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/index.js +6 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/json-env-adapter.d.ts +21 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/json-env-adapter.js +82 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/pi.d.ts +13 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/pi.js +83 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/transaction.d.ts +17 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/transaction.js +153 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/types.d.ts +40 -0
- package/node_modules/@undefineds.co/ai-connection/dist/client-config/types.js +1 -0
- package/node_modules/@undefineds.co/ai-connection/dist/controller.d.ts +42 -0
- package/node_modules/@undefineds.co/ai-connection/dist/controller.js +289 -0
- package/node_modules/@undefineds.co/ai-connection/dist/index.d.ts +16 -0
- package/node_modules/@undefineds.co/ai-connection/dist/index.js +41 -0
- package/node_modules/@undefineds.co/ai-connection/dist/manifest.d.ts +1 -0
- package/node_modules/@undefineds.co/ai-connection/dist/manifest.js +18 -0
- package/node_modules/@undefineds.co/ai-connection/dist/service-access.d.ts +3 -0
- package/node_modules/@undefineds.co/ai-connection/dist/service-access.js +133 -0
- package/node_modules/@undefineds.co/ai-connection/package.json +50 -0
- package/node_modules/@undefineds.co/extension-sdk/README.md +299 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/index.d.ts +5 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/index.js +5 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/layout.d.ts +16 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/layout.js +36 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/manifest.d.ts +27 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/manifest.js +79 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.d.ts +7 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/app-layout.js +8 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/auth-boundary.d.ts +27 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/auth-boundary.js +49 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/layout-context.d.ts +11 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/layout-context.js +9 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.d.ts +38 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react/workspace-layout.js +132 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react.d.ts +12 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/react.js +19 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/testing.d.ts +7 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/testing.js +27 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/web.d.ts +225 -0
- package/node_modules/@undefineds.co/extension-sdk/dist/web.js +142 -0
- package/node_modules/@undefineds.co/extension-sdk/package.json +49 -0
- package/node_modules/@undefineds.co/shared-ui/dist/badge.d.ts +8 -0
- package/node_modules/@undefineds.co/shared-ui/dist/badge.js +17 -0
- package/node_modules/@undefineds.co/shared-ui/dist/button.d.ts +10 -0
- package/node_modules/@undefineds.co/shared-ui/dist/button.js +30 -0
- package/node_modules/@undefineds.co/shared-ui/dist/card.d.ts +7 -0
- package/node_modules/@undefineds.co/shared-ui/dist/card.js +15 -0
- package/node_modules/@undefineds.co/shared-ui/dist/index.d.ts +6 -0
- package/node_modules/@undefineds.co/shared-ui/dist/index.js +6 -0
- package/node_modules/@undefineds.co/shared-ui/dist/input.d.ts +4 -0
- package/node_modules/@undefineds.co/shared-ui/dist/input.js +5 -0
- package/node_modules/@undefineds.co/shared-ui/dist/theme.css +121 -0
- package/node_modules/@undefineds.co/shared-ui/dist/utils.d.ts +2 -0
- package/node_modules/@undefineds.co/shared-ui/dist/utils.js +5 -0
- package/node_modules/@undefineds.co/shared-ui/dist/workspace.d.ts +23 -0
- package/node_modules/@undefineds.co/shared-ui/dist/workspace.js +38 -0
- package/node_modules/@undefineds.co/shared-ui/package.json +39 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/index.d.ts +3 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/index.js +3 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/pod-runtime.d.ts +45 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/pod-runtime.js +147 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/react.d.ts +15 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/react.js +15 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/session.d.ts +42 -0
- package/node_modules/@undefineds.co/solid-sdk/dist/session.js +127 -0
- package/node_modules/@undefineds.co/solid-sdk/package.json +45 -0
- package/package.json +32 -12
- package/static/app/assets/index-BoYHJ6si.js +230 -0
- package/static/app/assets/inrupt-smoke.js +2 -2
- package/static/app/assets/main.css +1 -1
- package/static/app/assets/main.js +9 -9
- package/static/dashboard/assets/NetworkPage-Brt79fuQ.js +2 -0
- package/static/dashboard/assets/PaneListHeader-57nvMwH6.js +1 -0
- package/static/dashboard/assets/PodPage-CM6do1vB.js +2 -0
- package/static/dashboard/assets/ServicesPage-BUNxGJRz.js +1 -0
- package/static/dashboard/assets/card-B9Zjf_2p.js +1 -0
- package/static/dashboard/assets/dashboard-8C6o666W.js +305 -0
- package/static/dashboard/assets/dashboard-CSdewNeA.css +1 -0
- package/static/dashboard/assets/database-DPh9wDY9.js +1 -0
- package/static/dashboard/assets/external-link-VbMQvVMz.js +1 -0
- package/static/dashboard/assets/index-RfiFckzb.js +51 -0
- package/static/dashboard/assets/refresh-cw-BxVxNxNr.js +1 -0
- package/static/dashboard/assets/services-status-context-DKmJ7ISr.js +1 -0
- package/static/dashboard/dashboard.html +2 -2
- package/static/settings/assets/ModelsPage-D_IH7AH3.js +1 -0
- package/static/settings/assets/PaneListHeader-Bgaze006.js +1 -0
- package/static/settings/assets/PodPage-Cy1VNObw.js +2 -0
- package/static/settings/assets/ServicesPage-BsFaxVWC.js +1 -0
- package/static/settings/assets/SettingsPage-UafNWE_p.js +48 -0
- package/static/settings/assets/card-B_bXSIn-.js +1 -0
- package/static/settings/assets/services-status-context-DiX-AbrP.js +1 -0
- package/static/settings/assets/settings-B30oMfZq.js +305 -0
- package/static/settings/assets/settings-CSdewNeA.css +1 -0
- package/static/settings/assets/workspace-layout-Dv1Yn9Ci.js +1 -0
- package/static/settings/auth.html +21 -0
- package/static/settings/reachability.html +221 -0
- package/static/settings/reachability.svg +7 -0
- package/static/settings/reachability.webmanifest +18 -0
- package/static/settings/settings.html +13 -0
- package/static/settings/signal-pod.html +293 -0
- package/static/settings/vite.svg +1 -0
- package/dist/api/service/ai-gateway-transport.d.ts +0 -25
- package/dist/api/service/ai-gateway-transport.js +0 -136
- package/dist/api/service/ai-gateway-transport.js.map +0 -1
- package/dist/api/service/chat-protocol-adapters.d.ts +0 -5
- package/dist/api/service/chat-protocol-adapters.js +0 -146
- package/dist/api/service/chat-protocol-adapters.js.map +0 -1
- package/dist/api/service/chat-routing.d.ts +0 -8
- package/dist/api/service/chat-routing.js +0 -16
- package/dist/api/service/chat-routing.js.map +0 -1
- package/dist/api/service/platform-ai-config.d.ts +0 -10
- package/dist/api/service/platform-ai-config.js +0 -76
- package/dist/api/service/platform-ai-config.js.map +0 -1
- package/dist/document/DocumentParser.js.map +0 -1
- package/dist/document/JinaDocumentParser.js.map +0 -1
- package/static/app/assets/index-C1yksyT4.js +0 -171
- package/static/dashboard/assets/dashboard-BssaVKTn.css +0 -1
- package/static/dashboard/assets/dashboard-Ckuadl3C.js +0 -54
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderRuntimeAdapter.js","sourceRoot":"","sources":["../../../../src/api/ai-gateway/providers/ProviderRuntimeAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["import { GatewayProtocolError } from '../errors';\nimport {\n type GatewayContentPart,\n type GatewayEvent,\n type GatewayMessage,\n type GatewayRequest,\n type GatewayTool,\n type GatewayUsage,\n ToolArgumentTracker,\n} from '../types';\nimport { type ProviderSseEvent, ProviderHttpTransport } from '../../service/provider-http-transport';\nimport type { ProviderDescriptor, ProviderModelDescriptor } from './ProviderRegistry';\n\nexport interface ProviderRuntimeCredential {\n baseUrl?: string;\n keyType?: 'apiKey' | 'dashscope' | 'codingPlan' | string;\n proxy?: string;\n region?: string;\n workspaceId?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface ProviderRuntimeExecuteInput {\n request: GatewayRequest;\n apiKey: string;\n credential?: ProviderRuntimeCredential;\n signal?: AbortSignal;\n}\n\nexport interface ProviderRuntimeAdapter {\n readonly provider: string;\n execute(input: ProviderRuntimeExecuteInput): AsyncIterable<GatewayEvent>;\n}\n\nexport interface ProviderRuntimeAdapterOptions {\n transport?: ProviderHttpTransport;\n maxOutputTokensDefault?: number;\n}\n\nexport interface CompatibleChatAdapterOptions extends ProviderRuntimeAdapterOptions {\n provider: string;\n defaultBaseUrl: string;\n safeBaseUrls: string[];\n descriptor?: ProviderDescriptor;\n supportsImages?: boolean;\n supportsDeveloperMessages?: boolean;\n allowToolChoiceRequired?: boolean;\n reasoningEffortMapper?: (effort: string, request: GatewayRequest, model?: ProviderModelDescriptor) => string | undefined;\n fallbackReasoningBody?: (effort: string, request: GatewayRequest, model?: ProviderModelDescriptor) => Record<string, unknown>;\n preserveReasoningContent?: boolean;\n}\n\nexport abstract class BaseProviderRuntimeAdapter implements ProviderRuntimeAdapter {\n public abstract readonly provider: string;\n protected readonly transport: ProviderHttpTransport;\n protected readonly maxOutputTokensDefault: number;\n\n protected constructor(options: ProviderRuntimeAdapterOptions = {}) {\n this.transport = options.transport ?? new ProviderHttpTransport();\n this.maxOutputTokensDefault = options.maxOutputTokensDefault ?? 4096;\n }\n\n public abstract execute(input: ProviderRuntimeExecuteInput): AsyncIterable<GatewayEvent>;\n\n protected resolveBaseUrl(input: {\n configuredBaseUrl?: string;\n defaultBaseUrl: string;\n safeBaseUrls: string[];\n }): string {\n const candidate = trimTrailingSlash(input.configuredBaseUrl ?? input.defaultBaseUrl);\n if (!input.safeBaseUrls.map(trimTrailingSlash).includes(candidate)) {\n throw new GatewayProtocolError('Configured provider endpoint is not allowed', {\n code: 'invalid_request',\n status: 400,\n details: {\n provider: this.provider,\n },\n });\n }\n return candidate;\n }\n\n protected handleTransportError(error: unknown, secret: string): never {\n if (error instanceof GatewayProtocolError) {\n throw error;\n }\n\n const status = typeof (error as { status?: unknown })?.status === 'number'\n ? (error as { status: number }).status\n : 502;\n const headers = (error as { headers?: Headers })?.headers;\n const retryAfter = headers?.get('Retry-After') ?? headers?.get('retry-after') ?? undefined;\n const body = typeof (error as { body?: unknown })?.body === 'string'\n ? redactSecret((error as { body: string }).body, secret)\n : undefined;\n\n throw new GatewayProtocolError(`Provider request failed with status ${status}`, {\n code: 'provider_error',\n status,\n details: {\n provider: this.provider,\n providerStatusCode: status,\n classification: classifyProviderStatus(status),\n ...(retryAfter ? { retryAfter } : {}),\n ...(body ? { body } : {}),\n },\n cause: error,\n });\n }\n}\n\nexport class OpenAiCompatibleRuntimeAdapter extends BaseProviderRuntimeAdapter {\n public readonly provider: string;\n private readonly defaultBaseUrl: string;\n private readonly safeBaseUrls: string[];\n private readonly supportsImages: boolean;\n private readonly supportsDeveloperMessages: boolean;\n private readonly allowToolChoiceRequired: boolean;\n private readonly descriptor?: ProviderDescriptor;\n private readonly reasoningEffortMapper?: CompatibleChatAdapterOptions['reasoningEffortMapper'];\n private readonly fallbackReasoningBody?: CompatibleChatAdapterOptions['fallbackReasoningBody'];\n private readonly preserveReasoningContent: boolean;\n\n public constructor(options: CompatibleChatAdapterOptions) {\n super(options);\n this.provider = options.provider;\n this.defaultBaseUrl = options.defaultBaseUrl;\n this.safeBaseUrls = options.safeBaseUrls;\n this.supportsImages = options.supportsImages ?? true;\n this.supportsDeveloperMessages = options.supportsDeveloperMessages ?? true;\n this.allowToolChoiceRequired = options.allowToolChoiceRequired ?? true;\n this.descriptor = options.descriptor;\n this.reasoningEffortMapper = options.reasoningEffortMapper;\n this.fallbackReasoningBody = options.fallbackReasoningBody;\n this.preserveReasoningContent = options.preserveReasoningContent ?? false;\n }\n\n public async *execute(input: ProviderRuntimeExecuteInput): AsyncIterable<GatewayEvent> {\n this.validateRequest(input.request);\n const baseUrl = this.resolveBaseUrl({\n configuredBaseUrl: input.credential?.baseUrl,\n defaultBaseUrl: this.defaultBaseUrl,\n safeBaseUrls: this.safeBaseUrls,\n });\n const model = this.findRegisteredModel(input.request.model);\n const body = toChatCompletionsBody(input.request, {\n reasoningEffort: this.resolveReasoningEffort(input.request, model),\n extraReasoningBody: this.resolveFallbackReasoningBody(input.request, model),\n preserveReasoningContent: this.preserveReasoningContent,\n });\n\n try {\n yield* parseCompatibleChatSse(this.transport.postSse({\n url: `${baseUrl}/chat/completions`,\n apiKey: input.apiKey,\n body,\n proxy: input.credential?.proxy,\n signal: input.signal,\n }), input.apiKey);\n } catch (error) {\n this.handleTransportError(error, input.apiKey);\n }\n }\n\n private validateRequest(request: GatewayRequest): void {\n if (!this.supportsImages && request.messages.some((message) => message.content.some((part) => part.type === 'image'))) {\n throw new GatewayProtocolError(`${this.provider} does not support image input through this gateway`, {\n code: 'invalid_request',\n status: 400,\n details: { provider: this.provider, capability: 'imageInput' },\n });\n }\n if (!this.supportsDeveloperMessages && request.messages.some((message) => message.role === 'developer')) {\n throw new GatewayProtocolError(`${this.provider} does not support developer role messages`, {\n code: 'invalid_request',\n status: 400,\n details: { provider: this.provider, capability: 'developerMessages' },\n });\n }\n const chatExtensions = request.protocolExtensions.chatCompletions ?? {};\n if (!this.allowToolChoiceRequired && chatExtensions.tool_choice === 'required') {\n throw new GatewayProtocolError(`${this.provider} does not support required tool_choice`, {\n code: 'invalid_request',\n status: 400,\n details: { provider: this.provider, capability: 'tool_choice.required' },\n });\n }\n }\n\n private findRegisteredModel(model: string): ProviderModelDescriptor | undefined {\n return this.descriptor?.models.find((candidate) => candidate.id === model);\n }\n\n private resolveReasoningEffort(\n request: GatewayRequest,\n model: ProviderModelDescriptor | undefined,\n ): string | undefined {\n const effort = request.reasoning?.effort;\n if (!effort) {\n return undefined;\n }\n if (this.reasoningEffortMapper) {\n return this.reasoningEffortMapper(effort, request, model);\n }\n return undefined;\n }\n\n private resolveFallbackReasoningBody(\n request: GatewayRequest,\n model: ProviderModelDescriptor | undefined,\n ): Record<string, unknown> {\n const effort = request.reasoning?.effort;\n if (!effort || !this.fallbackReasoningBody) {\n return {};\n }\n return this.fallbackReasoningBody(effort, request, model);\n }\n}\n\nexport function toResponsesBody(request: GatewayRequest): Record<string, unknown> {\n return {\n ...request.protocolExtensions.responses,\n model: request.model,\n stream: true,\n ...(request.instructions ? { instructions: request.instructions } : {}),\n ...(request.previousResponseId ? { previous_response_id: request.previousResponseId } : {}),\n ...(request.maxOutputTokens !== undefined ? { max_output_tokens: request.maxOutputTokens } : {}),\n ...(request.reasoning?.effort ? { reasoning: { effort: request.reasoning.effort } } : {}),\n input: request.messages.map((message) => ({\n role: message.role,\n content: message.content.flatMap(toOpenAiContentPart),\n ...(message.name ? { name: message.name } : {}),\n ...(message.toolCallId ? { tool_call_id: message.toolCallId } : {}),\n })),\n ...(request.tools.length > 0 ? { tools: request.tools.map(toOpenAiTool) } : {}),\n };\n}\n\nexport function toAnthropicBody(request: GatewayRequest, options: { maxOutputTokensDefault?: number } = {}): Record<string, unknown> {\n const maxTokens = request.maxOutputTokens ?? options.maxOutputTokensDefault ?? 4096;\n return {\n ...request.protocolExtensions.anthropic,\n model: request.model,\n stream: true,\n max_tokens: maxTokens,\n ...(request.instructions ? { system: request.instructions } : {}),\n messages: request.messages.map((message) => ({\n role: message.role === 'tool' ? 'user' : message.role,\n content: message.role === 'tool'\n ? [{ type: 'tool_result', tool_use_id: message.toolCallId, content: contentToText(message.content) }]\n : message.content.map(toAnthropicContentPart),\n })),\n ...(request.tools.length > 0 ? { tools: request.tools.map(toAnthropicTool) } : {}),\n ...(request.reasoning?.effort\n ? {\n thinking: {\n type: 'enabled',\n budget_tokens: Number.isFinite(Number(request.reasoning.effort))\n ? Number(request.reasoning.effort)\n : 1024,\n },\n }\n : {}),\n };\n}\n\nexport function toChatCompletionsBody(\n request: GatewayRequest,\n options: { reasoningEffort?: string; extraReasoningBody?: Record<string, unknown>; preserveReasoningContent?: boolean },\n): Record<string, unknown> {\n return {\n ...request.protocolExtensions.chatCompletions,\n ...options.extraReasoningBody,\n model: request.model,\n stream: true,\n ...(request.maxOutputTokens !== undefined ? { max_tokens: request.maxOutputTokens } : {}),\n ...(options.reasoningEffort ? { reasoning_effort: options.reasoningEffort } : {}),\n messages: [\n ...(request.instructions ? [{ role: 'system', content: request.instructions }] : []),\n ...request.messages.map((message) => toChatMessage(message, options)),\n ],\n ...(request.tools.length > 0 ? { tools: request.tools.map(toChatTool) } : {}),\n };\n}\n\nexport async function* parseOpenAiResponsesSse(events: AsyncIterable<ProviderSseEvent>, secret?: string): AsyncIterable<GatewayEvent> {\n const toolArguments = new ToolArgumentTracker();\n const itemCallIds = new Map<string, string>();\n for await (const event of events) {\n const payload = parseJsonSseData(event.data);\n if (!payload) {\n continue;\n }\n const type = stringField(payload, 'type');\n if (type === 'response.created' || type === 'response.in_progress') {\n const response = objectField(payload, 'response');\n const id = stringField(response, 'id');\n if (id) {\n toolArguments.reset();\n itemCallIds.clear();\n yield { type: 'response.started', id };\n }\n } else if (type === 'response.output_text.delta') {\n const delta = stringField(payload, 'delta');\n if (delta) {\n yield { type: 'text.delta', text: delta };\n }\n } else if (type === 'response.reasoning_summary_text.delta') {\n const delta = stringField(payload, 'delta');\n if (delta) {\n yield { type: 'reasoning.delta', text: delta };\n }\n } else if (type === 'response.output_item.added') {\n const item = objectField(payload, 'item');\n if (stringField(item, 'type') === 'function_call') {\n const callId = stringField(item, 'call_id') ?? stringField(item, 'id');\n const itemId = stringField(item, 'id');\n const name = stringField(item, 'name');\n if (callId && name) {\n toolArguments.start(callId);\n if (itemId) {\n itemCallIds.set(itemId, callId);\n }\n yield { type: 'tool.started', callId, name };\n }\n }\n } else if (type === 'response.function_call_arguments.delta') {\n const itemId = stringField(payload, 'item_id');\n const callId = stringField(payload, 'call_id') ?? (itemId ? itemCallIds.get(itemId) : undefined);\n const delta = stringField(payload, 'delta');\n if (callId && delta !== undefined) {\n toolArguments.append(callId, delta);\n yield { type: 'tool.arguments.delta', callId, delta };\n }\n } else if (type === 'response.output_item.done') {\n const item = objectField(payload, 'item');\n if (stringField(item, 'type') === 'function_call') {\n const callId = stringField(payload, 'call_id') ?? stringField(item, 'call_id') ?? stringField(item, 'id');\n if (callId) {\n toolArguments.complete(callId);\n const itemId = stringField(item, 'id');\n if (itemId) {\n itemCallIds.delete(itemId);\n }\n yield { type: 'tool.completed', callId };\n }\n } else {\n const callId = stringField(payload, 'call_id');\n if (!callId) {\n continue;\n }\n toolArguments.complete(callId);\n yield { type: 'tool.completed', callId };\n }\n } else if (type === 'response.completed') {\n const response = objectField(payload, 'response');\n const usage = parseOpenAiUsage(objectField(response, 'usage'));\n if (usage) {\n yield { type: 'usage', usage };\n }\n yield { type: 'response.completed', finishReason: stringField(response, 'finish_reason') ?? stringField(response, 'status') ?? 'stop' };\n } else if (type === 'error') {\n throw providerStreamError(payload, 502, secret);\n }\n }\n}\n\nexport async function* parseAnthropicMessagesSse(events: AsyncIterable<ProviderSseEvent>, secret?: string): AsyncIterable<GatewayEvent> {\n const toolArguments = new ToolArgumentTracker();\n const toolBlocks = new Map<number, string>();\n let latestStopReason: string | undefined;\n for await (const event of events) {\n const payload = parseJsonSseData(event.data);\n if (!payload) {\n continue;\n }\n const type = stringField(payload, 'type');\n if (type === 'message_start') {\n const message = objectField(payload, 'message');\n const id = stringField(message, 'id');\n if (id) {\n toolArguments.reset();\n toolBlocks.clear();\n yield { type: 'response.started', id };\n }\n } else if (type === 'content_block_start') {\n const index = numberField(payload, 'index');\n const contentBlock = objectField(payload, 'content_block');\n if (index !== undefined && stringField(contentBlock, 'type') === 'tool_use') {\n const callId = stringField(contentBlock, 'id');\n const name = stringField(contentBlock, 'name');\n if (callId && name) {\n toolBlocks.set(index, callId);\n toolArguments.start(callId);\n yield { type: 'tool.started', callId, name };\n }\n }\n } else if (type === 'content_block_delta') {\n const index = numberField(payload, 'index');\n const delta = objectField(payload, 'delta');\n const deltaType = stringField(delta, 'type');\n if (deltaType === 'text_delta') {\n const text = stringField(delta, 'text');\n if (text) {\n yield { type: 'text.delta', text };\n }\n } else if (deltaType === 'thinking_delta') {\n const text = stringField(delta, 'thinking');\n if (text) {\n yield { type: 'reasoning.delta', text };\n }\n } else if (deltaType === 'signature_delta') {\n const signature = stringField(delta, 'signature');\n if (signature) {\n yield { type: 'reasoning.signature', provider: 'anthropic', signature };\n }\n } else if (deltaType === 'input_json_delta' && index !== undefined) {\n const callId = toolBlocks.get(index);\n const partialJson = stringField(delta, 'partial_json');\n if (callId && partialJson !== undefined) {\n toolArguments.append(callId, partialJson);\n yield { type: 'tool.arguments.delta', callId, delta: partialJson };\n }\n }\n } else if (type === 'content_block_stop') {\n const index = numberField(payload, 'index');\n const callId = index === undefined ? undefined : toolBlocks.get(index);\n if (callId) {\n toolArguments.complete(callId);\n toolBlocks.delete(index as number);\n yield { type: 'tool.completed', callId };\n }\n } else if (type === 'message_delta') {\n const delta = objectField(payload, 'delta');\n latestStopReason = stringField(delta, 'stop_reason') ?? latestStopReason;\n const usage = parseAnthropicUsage(objectField(payload, 'usage'));\n if (usage) {\n yield { type: 'usage', usage };\n }\n } else if (type === 'message_stop') {\n yield { type: 'response.completed', finishReason: stringField(payload, 'stop_reason') ?? latestStopReason ?? 'stop' };\n } else if (type === 'error') {\n throw providerStreamError(payload, anthopicErrorStatus(payload), secret);\n }\n }\n}\n\nexport async function* parseCompatibleChatSse(events: AsyncIterable<ProviderSseEvent>, secret?: string): AsyncIterable<GatewayEvent> {\n const toolArguments = new ToolArgumentTracker();\n const callIdsByIndex = new Map<number, string>();\n const openCallIds = new Set<string>();\n for await (const event of events) {\n const payload = parseJsonSseData(event.data);\n if (!payload) {\n continue;\n }\n if (payload.error) {\n throw providerStreamError(payload, 502, secret);\n }\n const id = stringField(payload, 'id');\n const choices = Array.isArray(payload.choices) ? payload.choices as Record<string, unknown>[] : [];\n if (id && choices.some((choice) => objectField(choice, 'delta').role === 'assistant')) {\n toolArguments.reset();\n callIdsByIndex.clear();\n openCallIds.clear();\n yield { type: 'response.started', id };\n }\n for (const choice of choices) {\n const delta = objectField(choice, 'delta');\n const reasoning = stringField(delta, 'reasoning_content');\n if (reasoning) {\n yield { type: 'reasoning.delta', text: reasoning };\n }\n const content = stringField(delta, 'content');\n if (content) {\n yield { type: 'text.delta', text: content };\n }\n const toolCalls = Array.isArray(delta.tool_calls) ? delta.tool_calls as Record<string, unknown>[] : [];\n for (const toolCall of toolCalls) {\n const index = numberField(toolCall, 'index') ?? 0;\n const fn = objectField(toolCall, 'function');\n const existingCallId = callIdsByIndex.get(index);\n const callId = stringField(toolCall, 'id') ?? existingCallId;\n const name = stringField(fn, 'name');\n if (callId && !existingCallId && name) {\n callIdsByIndex.set(index, callId);\n openCallIds.add(callId);\n toolArguments.start(callId);\n yield { type: 'tool.started', callId, name };\n }\n const targetCallId = callId ?? existingCallId;\n const args = stringField(fn, 'arguments');\n if (targetCallId && args !== undefined) {\n toolArguments.append(targetCallId, args);\n yield { type: 'tool.arguments.delta', callId: targetCallId, delta: args };\n }\n }\n const finishReason = stringField(choice, 'finish_reason');\n if (finishReason) {\n for (const callId of Array.from(openCallIds)) {\n toolArguments.complete(callId);\n openCallIds.delete(callId);\n yield { type: 'tool.completed', callId };\n }\n }\n }\n const usage = parseChatUsage(objectField(payload, 'usage'));\n if (usage) {\n yield { type: 'usage', usage };\n }\n const finishReason = choices.map((choice) => stringField(choice, 'finish_reason')).find((item) => item !== undefined);\n if (finishReason) {\n yield { type: 'response.completed', finishReason };\n }\n }\n}\n\nexport function parseJsonSseData(data: string): Record<string, unknown> | undefined {\n if (data === '[DONE]') {\n return undefined;\n }\n const parsed = JSON.parse(data) as unknown;\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n return undefined;\n }\n return parsed as Record<string, unknown>;\n}\n\nexport function parseOpenAiUsage(usage: Record<string, unknown>): GatewayUsage | undefined {\n return compactUsage({\n inputTokens: numberField(usage, 'input_tokens') ?? numberField(usage, 'prompt_tokens'),\n outputTokens: numberField(usage, 'output_tokens') ?? numberField(usage, 'completion_tokens'),\n totalTokens: numberField(usage, 'total_tokens'),\n cacheReadTokens: numberField(objectField(usage, 'input_tokens_details'), 'cached_tokens')\n ?? numberField(objectField(usage, 'prompt_tokens_details'), 'cached_tokens'),\n cacheWriteTokens: numberField(objectField(usage, 'input_tokens_details'), 'cache_write_tokens')\n ?? numberField(objectField(usage, 'prompt_tokens_details'), 'cache_write_tokens'),\n });\n}\n\nexport function parseAnthropicUsage(usage: Record<string, unknown>): GatewayUsage | undefined {\n return compactUsage({\n inputTokens: numberField(usage, 'input_tokens'),\n outputTokens: numberField(usage, 'output_tokens'),\n cacheReadTokens: numberField(usage, 'cache_read_input_tokens'),\n cacheWriteTokens: numberField(usage, 'cache_creation_input_tokens'),\n });\n}\n\nexport function parseChatUsage(usage: Record<string, unknown>): GatewayUsage | undefined {\n return compactUsage({\n inputTokens: numberField(usage, 'prompt_tokens'),\n outputTokens: numberField(usage, 'completion_tokens'),\n totalTokens: numberField(usage, 'total_tokens'),\n cacheReadTokens: numberField(objectField(usage, 'prompt_tokens_details'), 'cached_tokens'),\n cacheWriteTokens: numberField(objectField(usage, 'prompt_tokens_details'), 'cache_write_tokens'),\n });\n}\n\nexport function objectField(record: Record<string, unknown>, key: string): Record<string, unknown> {\n const value = record[key];\n return value && typeof value === 'object' && !Array.isArray(value) ? value as Record<string, unknown> : {};\n}\n\nexport function stringField(record: Record<string, unknown>, key: string): string | undefined {\n const value = record[key];\n return typeof value === 'string' ? value : undefined;\n}\n\nexport function numberField(record: Record<string, unknown>, key: string): number | undefined {\n const value = record[key];\n return typeof value === 'number' && Number.isFinite(value) ? value : undefined;\n}\n\nexport function classifyProviderStatus(status: number): string {\n if (status === 401) {\n return 'authentication';\n }\n if (status === 402) {\n return 'quota_exhausted';\n }\n if (status === 403) {\n return 'authorization';\n }\n if (status === 429) {\n return 'rate_limited';\n }\n if (status >= 500) {\n return 'upstream_unavailable';\n }\n return 'provider_error';\n}\n\nfunction toOpenAiContentPart(part: GatewayContentPart): Record<string, unknown>[] {\n if (part.type === 'text') {\n return [{ type: 'input_text', text: part.text }];\n }\n return [{\n type: 'input_image',\n ...(part.imageUrl ? { image_url: part.imageUrl } : {}),\n ...(part.detail ? { detail: part.detail } : {}),\n }];\n}\n\nfunction toAnthropicContentPart(part: GatewayContentPart): Record<string, unknown> {\n if (part.type === 'text') {\n return { type: 'text', text: part.text };\n }\n if (part.data) {\n return {\n type: 'image',\n source: {\n type: 'base64',\n media_type: part.mediaType ?? 'image/png',\n data: part.data,\n },\n };\n }\n return {\n type: 'image',\n source: {\n type: 'url',\n url: part.imageUrl,\n },\n };\n}\n\nfunction toChatMessage(\n message: GatewayMessage,\n options: { preserveReasoningContent?: boolean },\n): Record<string, unknown> {\n const base: Record<string, unknown> = {\n role: message.role,\n content: message.role === 'tool' ? contentToText(message.content) : chatContent(message.content),\n ...(message.toolCallId ? { tool_call_id: message.toolCallId } : {}),\n ...(message.name ? { name: message.name } : {}),\n };\n const reasoningContent = message.protocolExtensions?.reasoning_content;\n if (options.preserveReasoningContent && message.role === 'assistant' && typeof reasoningContent === 'string') {\n base.reasoning_content = reasoningContent;\n }\n return base;\n}\n\nfunction chatContent(content: GatewayContentPart[]): string | Array<Record<string, unknown>> {\n if (content.every((part) => part.type === 'text')) {\n return contentToText(content);\n }\n return content.map((part) => part.type === 'text'\n ? { type: 'text', text: part.text }\n : {\n type: 'image_url',\n image_url: {\n url: part.imageUrl ?? (part.data ? `data:${part.mediaType ?? 'image/png'};base64,${part.data}` : undefined),\n ...(part.detail ? { detail: part.detail } : {}),\n },\n });\n}\n\nfunction contentToText(content: GatewayContentPart[]): string {\n return content\n .filter((part): part is Extract<GatewayContentPart, { type: 'text' }> => part.type === 'text')\n .map((part) => part.text)\n .join('\\n');\n}\n\nfunction toOpenAiTool(tool: GatewayTool): Record<string, unknown> {\n return {\n type: 'function',\n name: tool.name,\n ...(tool.description ? { description: tool.description } : {}),\n parameters: tool.inputSchema ?? { type: 'object' },\n };\n}\n\nfunction toAnthropicTool(tool: GatewayTool): Record<string, unknown> {\n return {\n name: tool.name,\n ...(tool.description ? { description: tool.description } : {}),\n input_schema: tool.inputSchema ?? { type: 'object' },\n };\n}\n\nfunction toChatTool(tool: GatewayTool): Record<string, unknown> {\n return {\n type: 'function',\n function: {\n name: tool.name,\n ...(tool.description ? { description: tool.description } : {}),\n parameters: tool.inputSchema ?? { type: 'object' },\n },\n };\n}\n\nfunction providerStreamError(payload: Record<string, unknown>, status: number, secret?: string): GatewayProtocolError {\n const error = objectField(payload, 'error');\n const rawMessage = stringField(error, 'message') ?? stringField(payload, 'message') ?? 'Provider stream error';\n const message = secret ? redactSecret(rawMessage, secret) : rawMessage;\n return new GatewayProtocolError(message, {\n code: 'provider_error',\n status,\n details: {\n providerStatusCode: status,\n classification: classifyProviderStatus(status),\n providerErrorType: stringField(error, 'type') ?? stringField(payload, 'type'),\n },\n });\n}\n\nfunction anthopicErrorStatus(payload: Record<string, unknown>): number {\n const error = objectField(payload, 'error');\n const type = stringField(error, 'type');\n return type === 'overloaded_error' ? 503 : 502;\n}\n\nfunction compactUsage(usage: GatewayUsage): GatewayUsage | undefined {\n const compact = Object.fromEntries(\n Object.entries(usage).filter(([, value]) => value !== undefined),\n ) as GatewayUsage;\n return Object.keys(compact).length > 0 ? compact : undefined;\n}\n\nfunction trimTrailingSlash(value: string): string {\n return value.replace(/\\/+$/u, '');\n}\n\nfunction redactSecret(value: string, secret: string): string {\n return secret ? value.split(secret).join('[REDACTED]') : value;\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ProviderHttpTransport } from '../../service/provider-http-transport';
|
|
2
|
+
import { type ProviderRegistry } from './ProviderRegistry';
|
|
3
|
+
import type { ProviderRuntimeAdapter } from './ProviderRuntimeAdapter';
|
|
4
|
+
export interface ProviderRuntimeRegistryOptions {
|
|
5
|
+
registry?: ProviderRegistry;
|
|
6
|
+
transport?: ProviderHttpTransport;
|
|
7
|
+
}
|
|
8
|
+
export declare class ProviderRuntimeRegistry {
|
|
9
|
+
private readonly adapters;
|
|
10
|
+
constructor(options?: ProviderRuntimeRegistryOptions);
|
|
11
|
+
get(provider: string): ProviderRuntimeAdapter;
|
|
12
|
+
list(): ProviderRuntimeAdapter[];
|
|
13
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProviderRuntimeRegistry = void 0;
|
|
4
|
+
const errors_1 = require("../errors");
|
|
5
|
+
const provider_http_transport_1 = require("../../service/provider-http-transport");
|
|
6
|
+
const AnthropicRuntimeAdapter_1 = require("./AnthropicRuntimeAdapter");
|
|
7
|
+
const BailianRuntimeAdapter_1 = require("./BailianRuntimeAdapter");
|
|
8
|
+
const DeepSeekRuntimeAdapter_1 = require("./DeepSeekRuntimeAdapter");
|
|
9
|
+
const KimiRuntimeAdapter_1 = require("./KimiRuntimeAdapter");
|
|
10
|
+
const OpenAiRuntimeAdapter_1 = require("./OpenAiRuntimeAdapter");
|
|
11
|
+
const ProviderRegistry_1 = require("./ProviderRegistry");
|
|
12
|
+
class ProviderRuntimeRegistry {
|
|
13
|
+
constructor(options = {}) {
|
|
14
|
+
this.adapters = new Map();
|
|
15
|
+
const registry = options.registry ?? (0, ProviderRegistry_1.createDefaultProviderRegistry)();
|
|
16
|
+
const transport = options.transport ?? new provider_http_transport_1.ProviderHttpTransport();
|
|
17
|
+
this.adapters.set('openai', new OpenAiRuntimeAdapter_1.OpenAiRuntimeAdapter({
|
|
18
|
+
transport,
|
|
19
|
+
provider: registry.requireProvider('openai'),
|
|
20
|
+
}));
|
|
21
|
+
this.adapters.set('anthropic', new AnthropicRuntimeAdapter_1.AnthropicRuntimeAdapter({ transport }));
|
|
22
|
+
this.adapters.set('kimi', new KimiRuntimeAdapter_1.KimiRuntimeAdapter({
|
|
23
|
+
transport,
|
|
24
|
+
provider: registry.requireProvider('kimi'),
|
|
25
|
+
}));
|
|
26
|
+
this.adapters.set('bailian', new BailianRuntimeAdapter_1.BailianRuntimeAdapter({ transport }));
|
|
27
|
+
this.adapters.set('deepseek', new DeepSeekRuntimeAdapter_1.DeepSeekRuntimeAdapter({
|
|
28
|
+
transport,
|
|
29
|
+
provider: registry.requireProvider('deepseek'),
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
get(provider) {
|
|
33
|
+
const adapter = this.adapters.get((0, ProviderRegistry_1.normalizeProviderId)(provider));
|
|
34
|
+
if (!adapter) {
|
|
35
|
+
throw new errors_1.GatewayProtocolError('Unknown provider runtime adapter', {
|
|
36
|
+
code: 'invalid_request',
|
|
37
|
+
status: 400,
|
|
38
|
+
details: { provider },
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return adapter;
|
|
42
|
+
}
|
|
43
|
+
list() {
|
|
44
|
+
return Array.from(this.adapters.values());
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.ProviderRuntimeRegistry = ProviderRuntimeRegistry;
|
|
48
|
+
//# sourceMappingURL=ProviderRuntimeRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderRuntimeRegistry.js","sourceRoot":"","sources":["../../../../src/api/ai-gateway/providers/ProviderRuntimeRegistry.ts"],"names":[],"mappings":";;;AAAA,sCAAiD;AACjD,mFAA8E;AAC9E,uEAAoE;AACpE,mEAAgE;AAChE,qEAAkE;AAClE,6DAA0D;AAC1D,iEAA8D;AAC9D,yDAI4B;AAQ5B,MAAa,uBAAuB;IAGlC,YAAmB,UAA0C,EAAE;QAF9C,aAAQ,GAAG,IAAI,GAAG,EAAkC,CAAC;QAGpE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAA,gDAA6B,GAAE,CAAC;QACrE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,+CAAqB,EAAE,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,2CAAoB,CAAC;YACnD,SAAS;YACT,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC;SAC7C,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,iDAAuB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,uCAAkB,CAAC;YAC/C,SAAS;YACT,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC;SAC3C,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,6CAAqB,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,+CAAsB,CAAC;YACvD,SAAS;YACT,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC;SAC/C,CAAC,CAAC,CAAC;IACN,CAAC;IAEM,GAAG,CAAC,QAAgB;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAA,sCAAmB,EAAC,QAAQ,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,6BAAoB,CAAC,kCAAkC,EAAE;gBACjE,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE,QAAQ,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,IAAI;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;CACF;AArCD,0DAqCC","sourcesContent":["import { GatewayProtocolError } from '../errors';\nimport { ProviderHttpTransport } from '../../service/provider-http-transport';\nimport { AnthropicRuntimeAdapter } from './AnthropicRuntimeAdapter';\nimport { BailianRuntimeAdapter } from './BailianRuntimeAdapter';\nimport { DeepSeekRuntimeAdapter } from './DeepSeekRuntimeAdapter';\nimport { KimiRuntimeAdapter } from './KimiRuntimeAdapter';\nimport { OpenAiRuntimeAdapter } from './OpenAiRuntimeAdapter';\nimport {\n createDefaultProviderRegistry,\n normalizeProviderId,\n type ProviderRegistry,\n} from './ProviderRegistry';\nimport type { ProviderRuntimeAdapter } from './ProviderRuntimeAdapter';\n\nexport interface ProviderRuntimeRegistryOptions {\n registry?: ProviderRegistry;\n transport?: ProviderHttpTransport;\n}\n\nexport class ProviderRuntimeRegistry {\n private readonly adapters = new Map<string, ProviderRuntimeAdapter>();\n\n public constructor(options: ProviderRuntimeRegistryOptions = {}) {\n const registry = options.registry ?? createDefaultProviderRegistry();\n const transport = options.transport ?? new ProviderHttpTransport();\n this.adapters.set('openai', new OpenAiRuntimeAdapter({\n transport,\n provider: registry.requireProvider('openai'),\n }));\n this.adapters.set('anthropic', new AnthropicRuntimeAdapter({ transport }));\n this.adapters.set('kimi', new KimiRuntimeAdapter({\n transport,\n provider: registry.requireProvider('kimi'),\n }));\n this.adapters.set('bailian', new BailianRuntimeAdapter({ transport }));\n this.adapters.set('deepseek', new DeepSeekRuntimeAdapter({\n transport,\n provider: registry.requireProvider('deepseek'),\n }));\n }\n\n public get(provider: string): ProviderRuntimeAdapter {\n const adapter = this.adapters.get(normalizeProviderId(provider));\n if (!adapter) {\n throw new GatewayProtocolError('Unknown provider runtime adapter', {\n code: 'invalid_request',\n status: 400,\n details: { provider },\n });\n }\n return adapter;\n }\n\n public list(): ProviderRuntimeAdapter[] {\n return Array.from(this.adapters.values());\n }\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './AnthropicRuntimeAdapter';
|
|
2
|
+
export * from './BailianRuntimeAdapter';
|
|
3
|
+
export * from './DeepSeekRuntimeAdapter';
|
|
4
|
+
export * from './KimiRuntimeAdapter';
|
|
5
|
+
export * from './OpenAiCompatibleRuntimeAdapter';
|
|
6
|
+
export * from './OpenAiRuntimeAdapter';
|
|
7
|
+
export * from './ProviderRegistry';
|
|
8
|
+
export * from './ProviderRuntimeAdapter';
|
|
9
|
+
export * from './ProviderRuntimeRegistry';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./AnthropicRuntimeAdapter"), exports);
|
|
18
|
+
__exportStar(require("./BailianRuntimeAdapter"), exports);
|
|
19
|
+
__exportStar(require("./DeepSeekRuntimeAdapter"), exports);
|
|
20
|
+
__exportStar(require("./KimiRuntimeAdapter"), exports);
|
|
21
|
+
__exportStar(require("./OpenAiCompatibleRuntimeAdapter"), exports);
|
|
22
|
+
__exportStar(require("./OpenAiRuntimeAdapter"), exports);
|
|
23
|
+
__exportStar(require("./ProviderRegistry"), exports);
|
|
24
|
+
__exportStar(require("./ProviderRuntimeAdapter"), exports);
|
|
25
|
+
__exportStar(require("./ProviderRuntimeRegistry"), exports);
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/api/ai-gateway/providers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,0DAAwC;AACxC,2DAAyC;AACzC,uDAAqC;AACrC,mEAAiD;AACjD,yDAAuC;AACvC,qDAAmC;AACnC,2DAAyC;AACzC,4DAA0C","sourcesContent":["export * from './AnthropicRuntimeAdapter';\nexport * from './BailianRuntimeAdapter';\nexport * from './DeepSeekRuntimeAdapter';\nexport * from './KimiRuntimeAdapter';\nexport * from './OpenAiCompatibleRuntimeAdapter';\nexport * from './OpenAiRuntimeAdapter';\nexport * from './ProviderRegistry';\nexport * from './ProviderRuntimeAdapter';\nexport * from './ProviderRuntimeRegistry';\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type NormalizedQuotaSnapshot, type ProviderQuotaAdapter, type ProviderQuotaFetchInput } from './ProviderQuotaAdapter';
|
|
2
|
+
export declare class AnthropicQuotaAdapter implements ProviderQuotaAdapter {
|
|
3
|
+
readonly provider = "anthropic";
|
|
4
|
+
fetch(input: ProviderQuotaFetchInput): Promise<NormalizedQuotaSnapshot>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AnthropicQuotaAdapter = void 0;
|
|
4
|
+
const ProviderQuotaAdapter_1 = require("./ProviderQuotaAdapter");
|
|
5
|
+
class AnthropicQuotaAdapter {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.provider = 'anthropic';
|
|
8
|
+
}
|
|
9
|
+
async fetch(input) {
|
|
10
|
+
return (0, ProviderQuotaAdapter_1.unsupportedQuotaSnapshot)({
|
|
11
|
+
credential: input.credential.credentialIri,
|
|
12
|
+
source: 'anthropic:no-credential-quota-api',
|
|
13
|
+
now: input.now,
|
|
14
|
+
metadata: {
|
|
15
|
+
reason: 'Anthropic does not expose a normal API-key credential balance endpoint for this gateway.',
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.AnthropicQuotaAdapter = AnthropicQuotaAdapter;
|
|
21
|
+
//# sourceMappingURL=AnthropicQuotaAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnthropicQuotaAdapter.js","sourceRoot":"","sources":["../../../../src/api/ai-gateway/quota/AnthropicQuotaAdapter.ts"],"names":[],"mappings":";;;AAAA,iEAKgC;AAEhC,MAAa,qBAAqB;IAAlC;QACkB,aAAQ,GAAG,WAAW,CAAC;IAYzC,CAAC;IAVQ,KAAK,CAAC,KAAK,CAAC,KAA8B;QAC/C,OAAO,IAAA,+CAAwB,EAAC;YAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa;YAC1C,MAAM,EAAE,mCAAmC;YAC3C,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ,EAAE;gBACR,MAAM,EAAE,0FAA0F;aACnG;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAbD,sDAaC","sourcesContent":["import {\n unsupportedQuotaSnapshot,\n type NormalizedQuotaSnapshot,\n type ProviderQuotaAdapter,\n type ProviderQuotaFetchInput,\n} from './ProviderQuotaAdapter';\n\nexport class AnthropicQuotaAdapter implements ProviderQuotaAdapter {\n public readonly provider = 'anthropic';\n\n public async fetch(input: ProviderQuotaFetchInput): Promise<NormalizedQuotaSnapshot> {\n return unsupportedQuotaSnapshot({\n credential: input.credential.credentialIri,\n source: 'anthropic:no-credential-quota-api',\n now: input.now,\n metadata: {\n reason: 'Anthropic does not expose a normal API-key credential balance endpoint for this gateway.',\n },\n });\n }\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type NormalizedQuotaSnapshot, type ProviderQuotaAdapter, type ProviderQuotaFetchInput } from './ProviderQuotaAdapter';
|
|
2
|
+
export declare class BailianQuotaAdapter implements ProviderQuotaAdapter {
|
|
3
|
+
readonly provider = "bailian";
|
|
4
|
+
fetch(input: ProviderQuotaFetchInput): Promise<NormalizedQuotaSnapshot>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BailianQuotaAdapter = void 0;
|
|
4
|
+
const ProviderQuotaAdapter_1 = require("./ProviderQuotaAdapter");
|
|
5
|
+
class BailianQuotaAdapter {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.provider = 'bailian';
|
|
8
|
+
}
|
|
9
|
+
async fetch(input) {
|
|
10
|
+
return (0, ProviderQuotaAdapter_1.unsupportedQuotaSnapshot)({
|
|
11
|
+
credential: input.credential.credentialIri,
|
|
12
|
+
source: 'bailian:console-only',
|
|
13
|
+
now: input.now,
|
|
14
|
+
metadata: {
|
|
15
|
+
reason: 'Bailian quota is console-only for first phase gateway credentials.',
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.BailianQuotaAdapter = BailianQuotaAdapter;
|
|
21
|
+
//# sourceMappingURL=BailianQuotaAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BailianQuotaAdapter.js","sourceRoot":"","sources":["../../../../src/api/ai-gateway/quota/BailianQuotaAdapter.ts"],"names":[],"mappings":";;;AAAA,iEAKgC;AAEhC,MAAa,mBAAmB;IAAhC;QACkB,aAAQ,GAAG,SAAS,CAAC;IAYvC,CAAC;IAVQ,KAAK,CAAC,KAAK,CAAC,KAA8B;QAC/C,OAAO,IAAA,+CAAwB,EAAC;YAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa;YAC1C,MAAM,EAAE,sBAAsB;YAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ,EAAE;gBACR,MAAM,EAAE,oEAAoE;aAC7E;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAbD,kDAaC","sourcesContent":["import {\n unsupportedQuotaSnapshot,\n type NormalizedQuotaSnapshot,\n type ProviderQuotaAdapter,\n type ProviderQuotaFetchInput,\n} from './ProviderQuotaAdapter';\n\nexport class BailianQuotaAdapter implements ProviderQuotaAdapter {\n public readonly provider = 'bailian';\n\n public async fetch(input: ProviderQuotaFetchInput): Promise<NormalizedQuotaSnapshot> {\n return unsupportedQuotaSnapshot({\n credential: input.credential.credentialIri,\n source: 'bailian:console-only',\n now: input.now,\n metadata: {\n reason: 'Bailian quota is console-only for first phase gateway credentials.',\n },\n });\n }\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type NormalizedQuotaSnapshot, type ProviderQuotaAdapter, type ProviderQuotaFetchInput } from './ProviderQuotaAdapter';
|
|
2
|
+
export interface DeepSeekQuotaAdapterOptions {
|
|
3
|
+
fetch?: typeof fetch;
|
|
4
|
+
}
|
|
5
|
+
export declare class DeepSeekQuotaAdapter implements ProviderQuotaAdapter {
|
|
6
|
+
readonly provider = "deepseek";
|
|
7
|
+
private readonly fetchFn;
|
|
8
|
+
constructor(options?: DeepSeekQuotaAdapterOptions);
|
|
9
|
+
fetch(input: ProviderQuotaFetchInput): Promise<NormalizedQuotaSnapshot>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeepSeekQuotaAdapter = void 0;
|
|
4
|
+
const ProviderQuotaAdapter_1 = require("./ProviderQuotaAdapter");
|
|
5
|
+
const DEEPSEEK_BALANCE_URL = 'https://api.deepseek.com/user/balance';
|
|
6
|
+
const SOURCE = 'deepseek:/user/balance';
|
|
7
|
+
class DeepSeekQuotaAdapter {
|
|
8
|
+
constructor(options = {}) {
|
|
9
|
+
this.provider = 'deepseek';
|
|
10
|
+
this.fetchFn = options.fetch ?? fetch;
|
|
11
|
+
}
|
|
12
|
+
async fetch(input) {
|
|
13
|
+
const apiKey = (0, ProviderQuotaAdapter_1.apiKeyFromSecret)(input.secret);
|
|
14
|
+
if (!apiKey) {
|
|
15
|
+
return (0, ProviderQuotaAdapter_1.errorQuotaSnapshot)({
|
|
16
|
+
credential: input.credential.credentialIri,
|
|
17
|
+
source: SOURCE,
|
|
18
|
+
now: input.now,
|
|
19
|
+
metadata: { reason: 'missing_api_key' },
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const result = await (0, ProviderQuotaAdapter_1.fetchJsonWithBearer)({
|
|
23
|
+
fetch: this.fetchFn,
|
|
24
|
+
url: DEEPSEEK_BALANCE_URL,
|
|
25
|
+
apiKey,
|
|
26
|
+
signal: input.signal,
|
|
27
|
+
});
|
|
28
|
+
if (!result.ok) {
|
|
29
|
+
return (0, ProviderQuotaAdapter_1.errorQuotaSnapshot)({
|
|
30
|
+
credential: input.credential.credentialIri,
|
|
31
|
+
source: SOURCE,
|
|
32
|
+
now: input.now,
|
|
33
|
+
status: result.status,
|
|
34
|
+
retryAfter: result.retryAfter,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const object = result.body && typeof result.body === 'object'
|
|
38
|
+
? result.body
|
|
39
|
+
: {};
|
|
40
|
+
return {
|
|
41
|
+
credential: input.credential.credentialIri,
|
|
42
|
+
status: 'available',
|
|
43
|
+
windows: deepSeekWindows(object.balance_infos),
|
|
44
|
+
observedAt: input.now.toISOString(),
|
|
45
|
+
expiresAt: new Date(input.now.getTime() + 5 * 60_000).toISOString(),
|
|
46
|
+
source: SOURCE,
|
|
47
|
+
metadata: {
|
|
48
|
+
isAvailable: Boolean(object.is_available),
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.DeepSeekQuotaAdapter = DeepSeekQuotaAdapter;
|
|
54
|
+
function deepSeekWindows(value) {
|
|
55
|
+
if (!Array.isArray(value)) {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
return value.flatMap((entry) => {
|
|
59
|
+
if (!entry || typeof entry !== 'object') {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
const object = entry;
|
|
63
|
+
const currency = typeof object.currency === 'string' && object.currency ? object.currency : 'unknown';
|
|
64
|
+
return [
|
|
65
|
+
['total_balance', object.total_balance],
|
|
66
|
+
['granted_balance', object.granted_balance],
|
|
67
|
+
['topped_up_balance', object.topped_up_balance],
|
|
68
|
+
].flatMap(([name, amount]) => {
|
|
69
|
+
const balance = (0, ProviderQuotaAdapter_1.decimalAmount)(amount);
|
|
70
|
+
if (!balance.exact) {
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
return [{
|
|
74
|
+
name: `${currency}.${String(name)}`,
|
|
75
|
+
currency,
|
|
76
|
+
...(balance.numeric !== undefined ? { remaining: balance.numeric } : {}),
|
|
77
|
+
remainingExact: balance.exact,
|
|
78
|
+
...(balance.displayApprox ? { displayApprox: true } : {}),
|
|
79
|
+
}];
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=DeepSeekQuotaAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeepSeekQuotaAdapter.js","sourceRoot":"","sources":["../../../../src/api/ai-gateway/quota/DeepSeekQuotaAdapter.ts"],"names":[],"mappings":";;;AAAA,iEASgC;AAEhC,MAAM,oBAAoB,GAAG,uCAAuC,CAAC;AACrE,MAAM,MAAM,GAAG,wBAAwB,CAAC;AAMxC,MAAa,oBAAoB;IAI/B,YAAmB,UAAuC,EAAE;QAH5C,aAAQ,GAAG,UAAU,CAAC;QAIpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,KAAK,CAAC,KAA8B;QAC/C,MAAM,MAAM,GAAG,IAAA,uCAAgB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAA,yCAAkB,EAAC;gBACxB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa;gBAC1C,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,QAAQ,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE;aACxC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAA,0CAAmB,EAAC;YACvC,KAAK,EAAE,IAAI,CAAC,OAAO;YACnB,GAAG,EAAE,oBAAoB;YACzB,MAAM;YACN,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,IAAA,yCAAkB,EAAC;gBACxB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa;gBAC1C,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU,EAAE,MAAM,CAAC,UAAU;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAC3D,CAAC,CAAC,MAAM,CAAC,IAA+B;YACxC,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa;YAC1C,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC;YAC9C,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE;gBACR,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;aAC1C;SACF,CAAC;IACJ,CAAC;CACF;AAhDD,oDAgDC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACtG,OAAO;YACL,CAAC,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC;YACvC,CAAC,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC;YAC3C,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC;SAChD,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAA,oCAAa,EAAC,MAAM,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,CAAC;oBACN,IAAI,EAAE,GAAG,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;oBACnC,QAAQ;oBACR,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxE,cAAc,EAAE,OAAO,CAAC,KAAK;oBAC7B,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import {\n apiKeyFromSecret,\n decimalAmount,\n errorQuotaSnapshot,\n fetchJsonWithBearer,\n type NormalizedQuotaSnapshot,\n type ProviderQuotaAdapter,\n type ProviderQuotaFetchInput,\n type QuotaWindow,\n} from './ProviderQuotaAdapter';\n\nconst DEEPSEEK_BALANCE_URL = 'https://api.deepseek.com/user/balance';\nconst SOURCE = 'deepseek:/user/balance';\n\nexport interface DeepSeekQuotaAdapterOptions {\n fetch?: typeof fetch;\n}\n\nexport class DeepSeekQuotaAdapter implements ProviderQuotaAdapter {\n public readonly provider = 'deepseek';\n private readonly fetchFn: typeof fetch;\n\n public constructor(options: DeepSeekQuotaAdapterOptions = {}) {\n this.fetchFn = options.fetch ?? fetch;\n }\n\n public async fetch(input: ProviderQuotaFetchInput): Promise<NormalizedQuotaSnapshot> {\n const apiKey = apiKeyFromSecret(input.secret);\n if (!apiKey) {\n return errorQuotaSnapshot({\n credential: input.credential.credentialIri,\n source: SOURCE,\n now: input.now,\n metadata: { reason: 'missing_api_key' },\n });\n }\n const result = await fetchJsonWithBearer({\n fetch: this.fetchFn,\n url: DEEPSEEK_BALANCE_URL,\n apiKey,\n signal: input.signal,\n });\n if (!result.ok) {\n return errorQuotaSnapshot({\n credential: input.credential.credentialIri,\n source: SOURCE,\n now: input.now,\n status: result.status,\n retryAfter: result.retryAfter,\n });\n }\n const object = result.body && typeof result.body === 'object'\n ? result.body as Record<string, unknown>\n : {};\n return {\n credential: input.credential.credentialIri,\n status: 'available',\n windows: deepSeekWindows(object.balance_infos),\n observedAt: input.now.toISOString(),\n expiresAt: new Date(input.now.getTime() + 5 * 60_000).toISOString(),\n source: SOURCE,\n metadata: {\n isAvailable: Boolean(object.is_available),\n },\n };\n }\n}\n\nfunction deepSeekWindows(value: unknown): QuotaWindow[] {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.flatMap((entry) => {\n if (!entry || typeof entry !== 'object') {\n return [];\n }\n const object = entry as Record<string, unknown>;\n const currency = typeof object.currency === 'string' && object.currency ? object.currency : 'unknown';\n return [\n ['total_balance', object.total_balance],\n ['granted_balance', object.granted_balance],\n ['topped_up_balance', object.topped_up_balance],\n ].flatMap(([name, amount]) => {\n const balance = decimalAmount(amount);\n if (!balance.exact) {\n return [];\n }\n return [{\n name: `${currency}.${String(name)}`,\n currency,\n ...(balance.numeric !== undefined ? { remaining: balance.numeric } : {}),\n remainingExact: balance.exact,\n ...(balance.displayApprox ? { displayApprox: true } : {}),\n }];\n });\n });\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type NormalizedQuotaSnapshot, type ProviderQuotaAdapter, type ProviderQuotaFetchInput } from './ProviderQuotaAdapter';
|
|
2
|
+
export interface KimiQuotaAdapterOptions {
|
|
3
|
+
fetch?: typeof fetch;
|
|
4
|
+
}
|
|
5
|
+
export declare class KimiQuotaAdapter implements ProviderQuotaAdapter {
|
|
6
|
+
readonly provider = "kimi";
|
|
7
|
+
private readonly fetchFn;
|
|
8
|
+
constructor(options?: KimiQuotaAdapterOptions);
|
|
9
|
+
fetch(input: ProviderQuotaFetchInput): Promise<NormalizedQuotaSnapshot>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KimiQuotaAdapter = void 0;
|
|
4
|
+
const ProviderQuotaAdapter_1 = require("./ProviderQuotaAdapter");
|
|
5
|
+
const KIMI_BASE_URL = 'https://api.moonshot.ai/v1';
|
|
6
|
+
const SOURCE = 'kimi:/v1/users/me/balance';
|
|
7
|
+
class KimiQuotaAdapter {
|
|
8
|
+
constructor(options = {}) {
|
|
9
|
+
this.provider = 'kimi';
|
|
10
|
+
this.fetchFn = options.fetch ?? fetch;
|
|
11
|
+
}
|
|
12
|
+
async fetch(input) {
|
|
13
|
+
const apiKey = (0, ProviderQuotaAdapter_1.apiKeyFromSecret)(input.secret);
|
|
14
|
+
if (!apiKey) {
|
|
15
|
+
return (0, ProviderQuotaAdapter_1.errorQuotaSnapshot)({
|
|
16
|
+
credential: input.credential.credentialIri,
|
|
17
|
+
source: SOURCE,
|
|
18
|
+
now: input.now,
|
|
19
|
+
metadata: { reason: 'missing_api_key' },
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const result = await (0, ProviderQuotaAdapter_1.fetchJsonWithBearer)({
|
|
23
|
+
fetch: this.fetchFn,
|
|
24
|
+
url: `${KIMI_BASE_URL}/users/me/balance`,
|
|
25
|
+
apiKey,
|
|
26
|
+
signal: input.signal,
|
|
27
|
+
});
|
|
28
|
+
if (!result.ok) {
|
|
29
|
+
return (0, ProviderQuotaAdapter_1.errorQuotaSnapshot)({
|
|
30
|
+
credential: input.credential.credentialIri,
|
|
31
|
+
source: SOURCE,
|
|
32
|
+
now: input.now,
|
|
33
|
+
status: result.status,
|
|
34
|
+
retryAfter: result.retryAfter,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
credential: input.credential.credentialIri,
|
|
39
|
+
status: 'available',
|
|
40
|
+
windows: kimiWindows(result.body),
|
|
41
|
+
observedAt: input.now.toISOString(),
|
|
42
|
+
expiresAt: new Date(input.now.getTime() + 5 * 60_000).toISOString(),
|
|
43
|
+
source: SOURCE,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.KimiQuotaAdapter = KimiQuotaAdapter;
|
|
48
|
+
function kimiWindows(body) {
|
|
49
|
+
const data = body && typeof body === 'object' && 'data' in body
|
|
50
|
+
? body.data
|
|
51
|
+
: body;
|
|
52
|
+
const object = data && typeof data === 'object' ? data : {};
|
|
53
|
+
return [
|
|
54
|
+
['available_balance', object.available_balance],
|
|
55
|
+
['voucher_balance', object.voucher_balance],
|
|
56
|
+
['cash_balance', object.cash_balance],
|
|
57
|
+
].flatMap(([name, value]) => {
|
|
58
|
+
const amount = (0, ProviderQuotaAdapter_1.decimalAmount)(value);
|
|
59
|
+
if (!amount.exact) {
|
|
60
|
+
return [];
|
|
61
|
+
}
|
|
62
|
+
return [{
|
|
63
|
+
name: String(name),
|
|
64
|
+
...(amount.numeric !== undefined ? { remaining: amount.numeric } : {}),
|
|
65
|
+
remainingExact: amount.exact,
|
|
66
|
+
...(amount.displayApprox ? { displayApprox: true } : {}),
|
|
67
|
+
}];
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=KimiQuotaAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KimiQuotaAdapter.js","sourceRoot":"","sources":["../../../../src/api/ai-gateway/quota/KimiQuotaAdapter.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n apiKeyFromSecret,\n decimalAmount,\n errorQuotaSnapshot,\n fetchJsonWithBearer,\n type NormalizedQuotaSnapshot,\n type ProviderQuotaAdapter,\n type ProviderQuotaFetchInput,\n type QuotaWindow,\n} from './ProviderQuotaAdapter';\n\nconst KIMI_BASE_URL = 'https://api.moonshot.ai/v1';\nconst SOURCE = 'kimi:/v1/users/me/balance';\n\nexport interface KimiQuotaAdapterOptions {\n fetch?: typeof fetch;\n}\n\nexport class KimiQuotaAdapter implements ProviderQuotaAdapter {\n public readonly provider = 'kimi';\n private readonly fetchFn: typeof fetch;\n\n public constructor(options: KimiQuotaAdapterOptions = {}) {\n this.fetchFn = options.fetch ?? fetch;\n }\n\n public async fetch(input: ProviderQuotaFetchInput): Promise<NormalizedQuotaSnapshot> {\n const apiKey = apiKeyFromSecret(input.secret);\n if (!apiKey) {\n return errorQuotaSnapshot({\n credential: input.credential.credentialIri,\n source: SOURCE,\n now: input.now,\n metadata: { reason: 'missing_api_key' },\n });\n }\n const result = await fetchJsonWithBearer({\n fetch: this.fetchFn,\n url: `${KIMI_BASE_URL}/users/me/balance`,\n apiKey,\n signal: input.signal,\n });\n if (!result.ok) {\n return errorQuotaSnapshot({\n credential: input.credential.credentialIri,\n source: SOURCE,\n now: input.now,\n status: result.status,\n retryAfter: result.retryAfter,\n });\n }\n return {\n credential: input.credential.credentialIri,\n status: 'available',\n windows: kimiWindows(result.body),\n observedAt: input.now.toISOString(),\n expiresAt: new Date(input.now.getTime() + 5 * 60_000).toISOString(),\n source: SOURCE,\n };\n }\n}\n\nfunction kimiWindows(body: unknown): QuotaWindow[] {\n const data = body && typeof body === 'object' && 'data' in body\n ? (body as { data?: unknown }).data\n : body;\n const object = data && typeof data === 'object' ? data as Record<string, unknown> : {};\n return [\n ['available_balance', object.available_balance],\n ['voucher_balance', object.voucher_balance],\n ['cash_balance', object.cash_balance],\n ].flatMap(([name, value]) => {\n const amount = decimalAmount(value);\n if (!amount.exact) {\n return [];\n }\n return [{\n name: String(name),\n ...(amount.numeric !== undefined ? { remaining: amount.numeric } : {}),\n remainingExact: amount.exact,\n ...(amount.displayApprox ? { displayApprox: true } : {}),\n }];\n });\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type NormalizedQuotaSnapshot, type ProviderQuotaAdapter, type ProviderQuotaFetchInput } from './ProviderQuotaAdapter';
|
|
2
|
+
export declare class OpenAiQuotaAdapter implements ProviderQuotaAdapter {
|
|
3
|
+
readonly provider = "openai";
|
|
4
|
+
fetch(input: ProviderQuotaFetchInput): Promise<NormalizedQuotaSnapshot>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenAiQuotaAdapter = void 0;
|
|
4
|
+
const ProviderQuotaAdapter_1 = require("./ProviderQuotaAdapter");
|
|
5
|
+
class OpenAiQuotaAdapter {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.provider = 'openai';
|
|
8
|
+
}
|
|
9
|
+
async fetch(input) {
|
|
10
|
+
return (0, ProviderQuotaAdapter_1.unsupportedQuotaSnapshot)({
|
|
11
|
+
credential: input.credential.credentialIri,
|
|
12
|
+
source: 'openai:no-credential-quota-api',
|
|
13
|
+
now: input.now,
|
|
14
|
+
metadata: {
|
|
15
|
+
reason: 'OpenAI does not expose a normal API-key credential balance endpoint for this gateway.',
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.OpenAiQuotaAdapter = OpenAiQuotaAdapter;
|
|
21
|
+
//# sourceMappingURL=OpenAiQuotaAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiQuotaAdapter.js","sourceRoot":"","sources":["../../../../src/api/ai-gateway/quota/OpenAiQuotaAdapter.ts"],"names":[],"mappings":";;;AAAA,iEAKgC;AAEhC,MAAa,kBAAkB;IAA/B;QACkB,aAAQ,GAAG,QAAQ,CAAC;IAYtC,CAAC;IAVQ,KAAK,CAAC,KAAK,CAAC,KAA8B;QAC/C,OAAO,IAAA,+CAAwB,EAAC;YAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa;YAC1C,MAAM,EAAE,gCAAgC;YACxC,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ,EAAE;gBACR,MAAM,EAAE,uFAAuF;aAChG;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAbD,gDAaC","sourcesContent":["import {\n unsupportedQuotaSnapshot,\n type NormalizedQuotaSnapshot,\n type ProviderQuotaAdapter,\n type ProviderQuotaFetchInput,\n} from './ProviderQuotaAdapter';\n\nexport class OpenAiQuotaAdapter implements ProviderQuotaAdapter {\n public readonly provider = 'openai';\n\n public async fetch(input: ProviderQuotaFetchInput): Promise<NormalizedQuotaSnapshot> {\n return unsupportedQuotaSnapshot({\n credential: input.credential.credentialIri,\n source: 'openai:no-credential-quota-api',\n now: input.now,\n metadata: {\n reason: 'OpenAI does not expose a normal API-key credential balance endpoint for this gateway.',\n },\n });\n }\n}\n"]}
|