@undefineds.co/xpod 0.3.68 → 0.3.69
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.
|
@@ -104,7 +104,7 @@ function registerCommonServices(container) {
|
|
|
104
104
|
}).singleton(),
|
|
105
105
|
gatewayInternalPodAccess: (0, awilix_1.asFunction)(({ config }) => {
|
|
106
106
|
if (!config.gatewayInternalClientId || !config.gatewayInternalClientSecret) {
|
|
107
|
-
|
|
107
|
+
return undefined;
|
|
108
108
|
}
|
|
109
109
|
return new ClientCredentialsInternalPodAccessTokenProvider_1.ClientCredentialsInternalPodAccessTokenProvider({
|
|
110
110
|
tokenEndpoint: config.cssTokenEndpoint,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/api/container/common.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 共享服务注册\n *\n * cloud 和 local 模式都需要的服务\n */\n\nimport { asFunction, type AwilixContainer } from 'awilix';\nimport type { ApiContainerCradle } from './types';\n\nimport { getIdentityDatabase } from '../../identity/drizzle/db';\nimport { EdgeNodeRepository } from '../../identity/drizzle/EdgeNodeRepository';\nimport { AccountRoleRepository } from '../../identity/drizzle/AccountRoleRepository';\nimport { ServiceTokenRepository } from '../../identity/drizzle/ServiceTokenRepository';\nimport { LocalSetupServiceTokenRepository } from '../../setup/LocalSetupServiceTokenRepository';\nimport { SolidTokenAuthenticator } from '../auth/SolidTokenAuthenticator';\nimport { ClientCredentialsAuthenticator } from '../auth/ClientCredentialsAuthenticator';\nimport { NodeTokenAuthenticator } from '../auth/NodeTokenAuthenticator';\nimport { ServiceTokenAuthenticator } from '../auth/ServiceTokenAuthenticator';\nimport { MultiAuthenticator } from '../auth/MultiAuthenticator';\nimport { GatewayApiKeyAuthenticator } from '../ai-gateway/auth/GatewayApiKeyAuthenticator';\nimport { PodGatewayAccessKeyRepository } from '../ai-gateway/auth/PodGatewayAccessKeyRepository';\nimport { AesGatewayKeyLocatorCodec } from '../ai-gateway/auth/GatewayKeyLocatorCodec';\nimport { ClientCredentialsInternalPodAccessTokenProvider } from '../ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider';\nimport { AiConnectionInvocationKeyIssuer } from '../ai-gateway/auth/AiConnectionInvocationKeyIssuer';\nimport { AesInvocationTokenCodec } from '../ai-gateway/auth/InvocationTokenCodec';\nimport { AiGatewayService } from '../ai-gateway/AiGatewayService';\nimport {\n BrowserAssistedApiKeyConnectAdapter,\n InMemoryConnectAttemptStore,\n KimiDeviceCodeConnectAdapter,\n PodConnectedCredentialRepository,\n ProviderConnectService,\n} from '../ai-gateway/connect';\nimport { createDefaultProviderRegistry as createDefaultGatewayProviderRegistry } from '../ai-gateway/providers/ProviderRegistry';\nimport { ProviderRuntimeRegistry } from '../ai-gateway/providers/ProviderRuntimeRegistry';\nimport { ModelRouter } from '../ai-gateway/routing/ModelRouter';\nimport { InMemorySessionAffinityStore } from '../ai-gateway/routing/InMemorySessionAffinityStore';\nimport { RedisSessionAffinityStore } from '../ai-gateway/routing/RedisSessionAffinityStore';\nimport {\n AnthropicQuotaAdapter,\n BailianQuotaAdapter,\n DeepSeekQuotaAdapter,\n KimiQuotaAdapter,\n OpenAiQuotaAdapter,\n PodQuotaSnapshotRepository,\n ProviderQuotaService,\n} from '../ai-gateway/quota';\nimport { AuthMiddleware } from '../middleware/AuthMiddleware';\nimport { VercelChatService } from '../service/VercelChatService';\nimport { VectorService } from '../service/VectorService';\nimport { RdfStorageStatsService } from '../service/RdfStorageStatsService';\nimport { ApiServer } from '../ApiServer';\nimport { ChatKitService, PodChatKitStore, VercelAiProvider } from '../chatkit';\nimport { PodMatrixStore } from '../matrix';\nimport { ClientReconcilerCoordinator, ServerGroupReconcilerService } from '../reconciler';\nimport { InngestRunExecutionBackend } from '../runs/InngestRunExecutionBackend';\nimport { PiAgentRuntimeDriver } from '../runs/PiAgentRuntimeDriver';\nimport { RunAuthContextRegistry } from '../runs/RunAuthContextRegistry';\nimport { InngestTaskScheduler, TaskAuthBindingService, TaskService } from '../tasks';\nimport { EmbeddingServiceImpl, ProviderRegistryImpl } from '../../ai/service';\nimport { createApiRdfEngine, createApiRdfSearchIndexingService, createApiRunContextRetriever } from './rdf';\nimport {\n getEdgeNodeCertificateCapabilityBridge,\n resolveEdgeNodeCertificateCapabilityBridgeId,\n} from '../../edge/EdgeNodeCertificateCapabilityBridge';\n\nfunction resolveCssServiceBaseUrl(): string {\n if (process.env.CSS_INTERNAL_URL) {\n return process.env.CSS_INTERNAL_URL;\n }\n\n if (process.env.CSS_BASE_URL) {\n return process.env.CSS_BASE_URL;\n }\n\n return 'http://localhost:3000/';\n}\n\nfunction resolveAiConnectionBaseUrl(config: ApiContainerCradle['config']): string {\n const origin = config.publicUrl\n ?? process.env.XPOD_PUBLIC_URL\n ?? process.env.CSS_BASE_URL\n ?? `http://${config.host === '0.0.0.0' ? '127.0.0.1' : config.host}:${config.port}`;\n return new URL('/v1', origin.endsWith('/') ? origin : `${origin}/`).toString().replace(/\\/$/u, '');\n}\n\nfunction resolveAiConnectionAudience(config: ApiContainerCradle['config']): string {\n return new URL(resolveAiConnectionBaseUrl(config)).origin;\n}\n\n/**\n * 注册共享服务到容器\n */\nexport function registerCommonServices(\n container: AwilixContainer<ApiContainerCradle>,\n): void {\n container.register({\n // 数据库\n db: asFunction(({ config }: ApiContainerCradle) => {\n return getIdentityDatabase(config.databaseUrl);\n }).singleton(),\n\n edgeNodeCertificateCapabilityBridge: asFunction(({ config }: ApiContainerCradle) => {\n const bridgeId = resolveEdgeNodeCertificateCapabilityBridgeId({\n nodeId: config.nodeId,\n baseUrl: config.solidBaseUrl ?? config.publicUrl,\n });\n return bridgeId ? getEdgeNodeCertificateCapabilityBridge(bridgeId) : undefined;\n }).singleton(),\n\n // 仓库\n nodeRepo: asFunction(({ db, config }: ApiContainerCradle) => {\n return new EdgeNodeRepository(db, {\n ensureClusterTables: config.edition === 'cloud',\n });\n }).singleton(),\n\n accountRoleRepo: asFunction(({ db }: ApiContainerCradle) => {\n return new AccountRoleRepository(db);\n }).singleton(),\n\n // 认证\n serviceTokenRepo: asFunction(({ db, config }: ApiContainerCradle) => {\n if (config.edition === 'cloud') {\n return new ServiceTokenRepository(db);\n }\n\n return new LocalSetupServiceTokenRepository({\n token: config.serviceToken,\n serviceType: 'local',\n serviceId: config.nodeId ?? 'local-1',\n scopes: ['quota:write', 'usage:read', 'account:manage', 'network:read', 'network:write'],\n });\n }).singleton(),\n\n gatewayInternalPodAccess: asFunction(({ config }: ApiContainerCradle) => {\n if (!config.gatewayInternalClientId || !config.gatewayInternalClientSecret) {\n throw new Error('XPOD_GATEWAY_INTERNAL_CLIENT_ID and XPOD_GATEWAY_INTERNAL_CLIENT_SECRET are required for Gateway internal Pod access');\n }\n return new ClientCredentialsInternalPodAccessTokenProvider({\n tokenEndpoint: config.cssTokenEndpoint,\n clientId: config.gatewayInternalClientId,\n clientSecret: config.gatewayInternalClientSecret,\n });\n }).singleton(),\n\n gatewayAccessKeyRepository: asFunction(({ config, gatewayInternalPodAccess }: ApiContainerCradle) => {\n if (!config.gatewayLocatorSecret) {\n throw new Error('XPOD_GATEWAY_LOCATOR_SECRET is required for Gateway API key locator encryption');\n }\n return new PodGatewayAccessKeyRepository({\n locatorCodec: new AesGatewayKeyLocatorCodec({\n active: {\n kid: config.gatewayLocatorKeyId ?? 'active',\n secret: config.gatewayLocatorSecret,\n },\n previous: config.gatewayPreviousLocatorSecrets,\n }),\n internalPodAccess: gatewayInternalPodAccess,\n });\n }).singleton(),\n\n invocationTokenCodec: asFunction(({ config }: ApiContainerCradle) => {\n if (!config.gatewayLocatorSecret) {\n throw new Error('XPOD_GATEWAY_LOCATOR_SECRET is required for invocation token encryption');\n }\n return new AesInvocationTokenCodec({\n active: {\n kid: config.gatewayLocatorKeyId ?? 'active',\n secret: config.gatewayLocatorSecret,\n },\n previous: config.gatewayPreviousLocatorSecrets,\n });\n }).singleton(),\n\n aiConnectionInvocationKeyIssuer: asFunction(({ config, invocationTokenCodec }: ApiContainerCradle) => {\n return new AiConnectionInvocationKeyIssuer({\n codec: invocationTokenCodec,\n deployment: config.edition,\n baseUrl: resolveAiConnectionBaseUrl(config),\n audience: resolveAiConnectionAudience(config),\n });\n }).singleton(),\n\n providerConnectService: asFunction((cradle: ApiContainerCradle) => {\n const { config } = cradle;\n if (!config.aiGatewayConnectEnabled) {\n return new ProviderConnectService({\n registry: createDefaultGatewayProviderRegistry({\n connect: {\n openai: { configured: false, notes: ['AI Gateway provider Connect is disabled in this Xpod deployment.'] },\n anthropic: { configured: false, notes: ['AI Gateway provider Connect is disabled in this Xpod deployment.'] },\n kimi: { configured: false, notes: ['AI Gateway provider Connect is disabled in this Xpod deployment.'] },\n bailian: { configured: false, notes: ['AI Gateway provider Connect is disabled in this Xpod deployment.'] },\n deepseek: { configured: false },\n },\n }),\n adapters: [],\n });\n }\n if (!config.secretCellCredentialVaultFactory) {\n throw new Error('AI Gateway Connect requires XPOD_SECRET_CELL_KEY_ID and XPOD_SECRET_CELL_KEY');\n }\n const signingSecret = config.aiGatewayConnectSigningSecret ?? config.gatewayLocatorSecret;\n if (!signingSecret) {\n throw new Error('AI Gateway Connect requires XPOD_AI_GATEWAY_CONNECT_SIGNING_SECRET or XPOD_GATEWAY_LOCATOR_SECRET');\n }\n const internalPodAccess = cradle.gatewayInternalPodAccess;\n const credentialRepository = new PodConnectedCredentialRepository({ internalPodAccess });\n const vault = config.secretCellCredentialVaultFactory();\n const attempts = new InMemoryConnectAttemptStore();\n const adapters = [\n new BrowserAssistedApiKeyConnectAdapter({\n provider: 'openai',\n consoleUrl: 'https://platform.openai.com/api-keys',\n attempts,\n credentialRepository,\n vault,\n deployment: config.edition,\n signingSecret,\n }),\n new BrowserAssistedApiKeyConnectAdapter({\n provider: 'anthropic',\n consoleUrl: 'https://console.anthropic.com/settings/keys',\n attempts,\n credentialRepository,\n vault,\n deployment: config.edition,\n signingSecret,\n }),\n new BrowserAssistedApiKeyConnectAdapter({\n provider: 'bailian',\n consoleUrl: 'https://bailian.console.aliyun.com/',\n attempts,\n credentialRepository,\n vault,\n deployment: config.edition,\n signingSecret,\n }),\n ];\n if (config.aiGatewayKimiClientId) {\n adapters.push(new KimiDeviceCodeConnectAdapter({\n attempts,\n credentialRepository,\n vault,\n deployment: config.edition,\n signingSecret,\n clientId: config.aiGatewayKimiClientId,\n }));\n }\n return new ProviderConnectService({\n registry: createDefaultGatewayProviderRegistry({\n connect: {\n kimi: config.aiGatewayKimiClientId\n ? { configured: true }\n : { configured: false, notes: ['not_configured: XPOD_AI_GATEWAY_KIMI_CLIENT_ID is not configured.'] },\n },\n }),\n adapters,\n credentialRepository,\n vault,\n });\n }).singleton(),\n\n gatewayProviderRegistry: asFunction(({ config }: ApiContainerCradle) => {\n const registry = createDefaultGatewayProviderRegistry();\n const openAiBaseUrl = config.aiGatewayProviderBaseUrls?.openai;\n if (openAiBaseUrl) {\n registry.register({\n ...registry.requireProvider('openai'),\n defaultBaseUrl: openAiBaseUrl,\n safeBaseUrls: [openAiBaseUrl],\n });\n }\n return registry;\n }).singleton(),\n\n gatewayCredentialStore: asFunction(({ gatewayInternalPodAccess }: ApiContainerCradle) => {\n return new PodConnectedCredentialRepository({\n internalPodAccess: gatewayInternalPodAccess,\n });\n }).singleton(),\n\n gatewayRuntimeRegistry: asFunction(({ gatewayProviderRegistry }: ApiContainerCradle) => {\n return new ProviderRuntimeRegistry({ registry: gatewayProviderRegistry });\n }).singleton(),\n\n gatewaySessionAffinityStore: asFunction(({ config }: ApiContainerCradle) => {\n const secret = config.gatewayLocatorSecret;\n if (!secret) {\n throw new Error('AI Gateway inference requires XPOD_GATEWAY_LOCATOR_SECRET for session affinity hashing');\n }\n if (config.redisUrl) {\n return new RedisSessionAffinityStore({\n client: config.redisUrl,\n secret,\n });\n }\n return new InMemorySessionAffinityStore({ secret });\n }).singleton(),\n\n aiGatewayService: asFunction((cradle: ApiContainerCradle) => {\n const { config } = cradle;\n if (!config.secretCellCredentialVaultFactory) {\n throw new Error('AI Gateway inference requires XPOD_SECRET_CELL_KEY_ID and XPOD_SECRET_CELL_KEY');\n }\n const gatewayProviderRegistry = cradle.gatewayProviderRegistry;\n const gatewayCredentialStore = cradle.gatewayCredentialStore;\n const gatewayRuntimeRegistry = cradle.gatewayRuntimeRegistry;\n const gatewaySessionAffinityStore = cradle.gatewaySessionAffinityStore;\n const router = new ModelRouter({\n registry: gatewayProviderRegistry,\n affinityStore: gatewaySessionAffinityStore,\n credentials: gatewayCredentialStore.listCredentials.bind(gatewayCredentialStore),\n });\n return new AiGatewayService({\n deployment: config.edition,\n registry: gatewayProviderRegistry,\n router,\n credentials: gatewayCredentialStore,\n runtimes: gatewayRuntimeRegistry,\n vault: config.secretCellCredentialVaultFactory(),\n });\n }).singleton(),\n\n providerQuotaService: asFunction((cradle: ApiContainerCradle) => {\n const { config } = cradle;\n if (!config.aiGatewayConnectEnabled) {\n return undefined;\n }\n if (!config.secretCellCredentialVaultFactory) {\n throw new Error('AI Gateway quota requires XPOD_SECRET_CELL_KEY_ID and XPOD_SECRET_CELL_KEY');\n }\n const internalPodAccess = cradle.gatewayInternalPodAccess;\n return new ProviderQuotaService({\n repository: new PodQuotaSnapshotRepository({ internalPodAccess }),\n credentialRepository: new PodConnectedCredentialRepository({ internalPodAccess }),\n vault: config.secretCellCredentialVaultFactory(),\n adapters: [\n new OpenAiQuotaAdapter(),\n new AnthropicQuotaAdapter(),\n new KimiQuotaAdapter(),\n new BailianQuotaAdapter(),\n new DeepSeekQuotaAdapter(),\n ],\n });\n }).singleton(),\n\n authenticator: asFunction(({ nodeRepo, serviceTokenRepo, gatewayAccessKeyRepository, invocationTokenCodec, config }: ApiContainerCradle) => {\n const solidAuthenticator = new SolidTokenAuthenticator({\n resolveAccountId: async (webId) => webId,\n publicBaseUrl: config.solidBaseUrl,\n internalBaseUrl: config.cssTokenEndpoint,\n });\n\n const clientCredAuthenticator = new ClientCredentialsAuthenticator({\n tokenEndpoint: config.cssTokenEndpoint,\n });\n\n const nodeTokenAuthenticator = new NodeTokenAuthenticator({\n repository: nodeRepo,\n });\n\n const serviceTokenAuthenticator = new ServiceTokenAuthenticator({\n repository: serviceTokenRepo,\n });\n\n const gatewayApiKeyAuthenticator = new GatewayApiKeyAuthenticator({\n repository: gatewayAccessKeyRepository,\n invocationTokenCodec,\n deployment: config.edition,\n invocationTokenAudience: resolveAiConnectionAudience(config),\n });\n\n return new MultiAuthenticator({\n // Order: Solid DPoP → Service Token → Node Token → Gateway Key → Client Credentials.\n // Agent execution is scoped by ChatKit thread/workspace and Run state, not standalone Agent JWTs.\n authenticators: [solidAuthenticator, serviceTokenAuthenticator, nodeTokenAuthenticator, gatewayApiKeyAuthenticator, clientCredAuthenticator],\n });\n }).singleton(),\n\n authMiddleware: asFunction(({ authenticator }: ApiContainerCradle) => {\n return new AuthMiddleware({ authenticator });\n }).singleton(),\n\n // Reconciler / Wake 运行态协调\n serverGroupReconcilerService: asFunction(({ config }: ApiContainerCradle) => {\n return new ServerGroupReconcilerService({\n redisUrl: config.redisUrl,\n });\n }).singleton(),\n\n // ChatKit 存储与服务\n chatKitStore: asFunction(({ config, serverGroupReconcilerService }: ApiContainerCradle) => {\n return new PodChatKitStore({\n tokenEndpoint: config.cssTokenEndpoint,\n serverGroupReconcilerService,\n });\n }).singleton(),\n\n clientReconcilerCoordinator: asFunction(({ config }: ApiContainerCradle) => {\n return new ClientReconcilerCoordinator({\n redisUrl: config.redisUrl,\n });\n }).singleton(),\n\n matrixStore: asFunction(({ config, serverGroupReconcilerService }: ApiContainerCradle) => {\n return new PodMatrixStore({\n serverGroupReconcilerService,\n serverName: (() => {\n try {\n return new URL(process.env.CSS_BASE_URL ?? '').host || undefined;\n } catch {\n return undefined;\n }\n })(),\n });\n }).singleton(),\n\n chatKitAiProvider: asFunction(({ chatKitStore, aiGatewayService }: ApiContainerCradle) => {\n return new VercelAiProvider({ store: chatKitStore, aiGatewayService });\n }).singleton(),\n\n runAuthContextRegistry: asFunction(() => {\n return new RunAuthContextRegistry();\n }).singleton(),\n\n taskAuthBindingService: asFunction(({ chatKitStore }: ApiContainerCradle) => {\n return new TaskAuthBindingService({\n repository: chatKitStore,\n });\n }).singleton(),\n\n rdfEngine: asFunction(({ config }: ApiContainerCradle) => {\n return createApiRdfEngine(config);\n }).singleton(),\n\n runContextRetriever: asFunction(({ rdfEngine, chatKitStore, embeddingService }: ApiContainerCradle) => {\n return createApiRunContextRetriever(rdfEngine, { chatKitStore, embeddingService });\n }).singleton(),\n\n rdfSearchIndexingService: asFunction(({ rdfEngine, chatKitStore, embeddingService }: ApiContainerCradle) => {\n return createApiRdfSearchIndexingService(rdfEngine, { chatKitStore, embeddingService });\n }).singleton(),\n\n rdfStorageStatsService: asFunction(({ config, rdfEngine }: ApiContainerCradle) => {\n return new RdfStorageStatsService({\n edition: config.edition,\n sparqlEndpoint: config.sparqlEndpoint,\n rdfEngine,\n });\n }).singleton(),\n\n runExecutionBackend: asFunction(({ config, inngestRuntimeConfig, chatKitStore, taskAuthBindingService, runAuthContextRegistry, runContextRetriever, rdfSearchIndexingService, aiConnectionInvocationKeyIssuer }: ApiContainerCradle) => {\n return new InngestRunExecutionBackend({\n baseUrl: inngestRuntimeConfig?.baseUrl,\n eventKey: inngestRuntimeConfig?.eventKey,\n signingKey: inngestRuntimeConfig?.signingKey,\n isDev: inngestRuntimeConfig?.enabled ? !inngestRuntimeConfig.durableDelivery : true,\n durableDelivery: inngestRuntimeConfig?.durableDelivery ?? false,\n store: chatKitStore,\n contextRetriever: runContextRetriever,\n aiConnectionInvocationKeyIssuer,\n contextRecorder: (context) => runAuthContextRegistry.remember(context),\n contextResolver: async (data) => {\n const fallback = runAuthContextRegistry.resolve({ webId: data.webId });\n if (data.authBindingId && fallback) {\n return await taskAuthBindingService.resolveRunContext(data.authBindingId, fallback) ?? fallback;\n }\n return fallback;\n },\n runtimeDriver: new PiAgentRuntimeDriver({\n agentLoopIsolation: config.edition === 'cloud' ? 'sandboxed-process' : 'in-process',\n requireSandbox: config.edition === 'cloud',\n rdfSearchIndexingService,\n }),\n });\n }).singleton(),\n\n chatKitService: asFunction(({ chatKitStore, chatKitAiProvider, runExecutionBackend, runContextRetriever, aiConnectionInvocationKeyIssuer }: ApiContainerCradle) => {\n return new ChatKitService({\n store: chatKitStore,\n aiProvider: chatKitAiProvider,\n enableAgentRuntime: true,\n runExecutionBackend,\n contextRetriever: runContextRetriever,\n aiConnectionInvocationKeyIssuer,\n requireAiConnectionInvocationKeyIssuer: true,\n });\n }).singleton(),\n\n taskService: asFunction(({ chatKitStore, runExecutionBackend, runContextRetriever, aiConnectionInvocationKeyIssuer }: ApiContainerCradle) => {\n return new TaskService({\n store: chatKitStore,\n executionBackend: runExecutionBackend,\n contextRetriever: runContextRetriever,\n aiConnectionInvocationKeyIssuer,\n requireAiConnectionInvocationKeyIssuer: true,\n });\n }).singleton(),\n\n inngestTaskScheduler: asFunction(({ runExecutionBackend, taskService, taskAuthBindingService, inngestRuntimeConfig, runAuthContextRegistry }: ApiContainerCradle) => {\n return new InngestTaskScheduler({\n backend: runExecutionBackend,\n taskService,\n getContexts: () => runAuthContextRegistry.list(),\n recordContext: (context) => runAuthContextRegistry.remember(context),\n resolveContext: async (data) => {\n const fallback = runAuthContextRegistry.resolve({ webId: data.webId });\n if (data.authBindingId && fallback) {\n return await taskAuthBindingService.resolveRunContext(data.authBindingId, fallback) ?? fallback;\n }\n return fallback;\n },\n durableDelivery: inngestRuntimeConfig?.durableDelivery ?? false,\n executeInline: true,\n });\n }).singleton(),\n\n providerRegistry: asFunction(() => {\n return new ProviderRegistryImpl();\n }).singleton(),\n\n embeddingService: asFunction(({ providerRegistry }: ApiContainerCradle) => {\n return new EmbeddingServiceImpl(providerRegistry);\n }).singleton(),\n\n vectorService: asFunction(({ chatKitStore, embeddingService }: ApiContainerCradle) => {\n return new VectorService({\n cssBaseUrl: resolveCssServiceBaseUrl(),\n store: chatKitStore,\n embeddingService,\n });\n }).singleton(),\n\n // 业务服务\n chatService: asFunction(({ chatKitStore, aiGatewayService }: ApiContainerCradle) => {\n return new VercelChatService(chatKitStore, { aiGatewayService });\n }).singleton(),\n\n\n // API Server\n apiServer: asFunction(({ config, authMiddleware }: ApiContainerCradle) => {\n return new ApiServer({\n port: config.port,\n host: config.host,\n socketPath: config.socketPath,\n runtimeHost: config.runtimeHost,\n authMiddleware,\n corsOrigins: config.corsOrigins,\n });\n }).singleton(),\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/api/container/common.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * 共享服务注册\n *\n * cloud 和 local 模式都需要的服务\n */\n\nimport { asFunction, type AwilixContainer } from 'awilix';\nimport type { ApiContainerCradle } from './types';\n\nimport { getIdentityDatabase } from '../../identity/drizzle/db';\nimport { EdgeNodeRepository } from '../../identity/drizzle/EdgeNodeRepository';\nimport { AccountRoleRepository } from '../../identity/drizzle/AccountRoleRepository';\nimport { ServiceTokenRepository } from '../../identity/drizzle/ServiceTokenRepository';\nimport { LocalSetupServiceTokenRepository } from '../../setup/LocalSetupServiceTokenRepository';\nimport { SolidTokenAuthenticator } from '../auth/SolidTokenAuthenticator';\nimport { ClientCredentialsAuthenticator } from '../auth/ClientCredentialsAuthenticator';\nimport { NodeTokenAuthenticator } from '../auth/NodeTokenAuthenticator';\nimport { ServiceTokenAuthenticator } from '../auth/ServiceTokenAuthenticator';\nimport { MultiAuthenticator } from '../auth/MultiAuthenticator';\nimport { GatewayApiKeyAuthenticator } from '../ai-gateway/auth/GatewayApiKeyAuthenticator';\nimport { PodGatewayAccessKeyRepository } from '../ai-gateway/auth/PodGatewayAccessKeyRepository';\nimport { AesGatewayKeyLocatorCodec } from '../ai-gateway/auth/GatewayKeyLocatorCodec';\nimport { ClientCredentialsInternalPodAccessTokenProvider } from '../ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider';\nimport { AiConnectionInvocationKeyIssuer } from '../ai-gateway/auth/AiConnectionInvocationKeyIssuer';\nimport { AesInvocationTokenCodec } from '../ai-gateway/auth/InvocationTokenCodec';\nimport { AiGatewayService } from '../ai-gateway/AiGatewayService';\nimport {\n BrowserAssistedApiKeyConnectAdapter,\n InMemoryConnectAttemptStore,\n KimiDeviceCodeConnectAdapter,\n PodConnectedCredentialRepository,\n ProviderConnectService,\n} from '../ai-gateway/connect';\nimport { createDefaultProviderRegistry as createDefaultGatewayProviderRegistry } from '../ai-gateway/providers/ProviderRegistry';\nimport { ProviderRuntimeRegistry } from '../ai-gateway/providers/ProviderRuntimeRegistry';\nimport { ModelRouter } from '../ai-gateway/routing/ModelRouter';\nimport { InMemorySessionAffinityStore } from '../ai-gateway/routing/InMemorySessionAffinityStore';\nimport { RedisSessionAffinityStore } from '../ai-gateway/routing/RedisSessionAffinityStore';\nimport {\n AnthropicQuotaAdapter,\n BailianQuotaAdapter,\n DeepSeekQuotaAdapter,\n KimiQuotaAdapter,\n OpenAiQuotaAdapter,\n PodQuotaSnapshotRepository,\n ProviderQuotaService,\n} from '../ai-gateway/quota';\nimport { AuthMiddleware } from '../middleware/AuthMiddleware';\nimport { VercelChatService } from '../service/VercelChatService';\nimport { VectorService } from '../service/VectorService';\nimport { RdfStorageStatsService } from '../service/RdfStorageStatsService';\nimport { ApiServer } from '../ApiServer';\nimport { ChatKitService, PodChatKitStore, VercelAiProvider } from '../chatkit';\nimport { PodMatrixStore } from '../matrix';\nimport { ClientReconcilerCoordinator, ServerGroupReconcilerService } from '../reconciler';\nimport { InngestRunExecutionBackend } from '../runs/InngestRunExecutionBackend';\nimport { PiAgentRuntimeDriver } from '../runs/PiAgentRuntimeDriver';\nimport { RunAuthContextRegistry } from '../runs/RunAuthContextRegistry';\nimport { InngestTaskScheduler, TaskAuthBindingService, TaskService } from '../tasks';\nimport { EmbeddingServiceImpl, ProviderRegistryImpl } from '../../ai/service';\nimport { createApiRdfEngine, createApiRdfSearchIndexingService, createApiRunContextRetriever } from './rdf';\nimport {\n getEdgeNodeCertificateCapabilityBridge,\n resolveEdgeNodeCertificateCapabilityBridgeId,\n} from '../../edge/EdgeNodeCertificateCapabilityBridge';\n\nfunction resolveCssServiceBaseUrl(): string {\n if (process.env.CSS_INTERNAL_URL) {\n return process.env.CSS_INTERNAL_URL;\n }\n\n if (process.env.CSS_BASE_URL) {\n return process.env.CSS_BASE_URL;\n }\n\n return 'http://localhost:3000/';\n}\n\nfunction resolveAiConnectionBaseUrl(config: ApiContainerCradle['config']): string {\n const origin = config.publicUrl\n ?? process.env.XPOD_PUBLIC_URL\n ?? process.env.CSS_BASE_URL\n ?? `http://${config.host === '0.0.0.0' ? '127.0.0.1' : config.host}:${config.port}`;\n return new URL('/v1', origin.endsWith('/') ? origin : `${origin}/`).toString().replace(/\\/$/u, '');\n}\n\nfunction resolveAiConnectionAudience(config: ApiContainerCradle['config']): string {\n return new URL(resolveAiConnectionBaseUrl(config)).origin;\n}\n\n/**\n * 注册共享服务到容器\n */\nexport function registerCommonServices(\n container: AwilixContainer<ApiContainerCradle>,\n): void {\n container.register({\n // 数据库\n db: asFunction(({ config }: ApiContainerCradle) => {\n return getIdentityDatabase(config.databaseUrl);\n }).singleton(),\n\n edgeNodeCertificateCapabilityBridge: asFunction(({ config }: ApiContainerCradle) => {\n const bridgeId = resolveEdgeNodeCertificateCapabilityBridgeId({\n nodeId: config.nodeId,\n baseUrl: config.solidBaseUrl ?? config.publicUrl,\n });\n return bridgeId ? getEdgeNodeCertificateCapabilityBridge(bridgeId) : undefined;\n }).singleton(),\n\n // 仓库\n nodeRepo: asFunction(({ db, config }: ApiContainerCradle) => {\n return new EdgeNodeRepository(db, {\n ensureClusterTables: config.edition === 'cloud',\n });\n }).singleton(),\n\n accountRoleRepo: asFunction(({ db }: ApiContainerCradle) => {\n return new AccountRoleRepository(db);\n }).singleton(),\n\n // 认证\n serviceTokenRepo: asFunction(({ db, config }: ApiContainerCradle) => {\n if (config.edition === 'cloud') {\n return new ServiceTokenRepository(db);\n }\n\n return new LocalSetupServiceTokenRepository({\n token: config.serviceToken,\n serviceType: 'local',\n serviceId: config.nodeId ?? 'local-1',\n scopes: ['quota:write', 'usage:read', 'account:manage', 'network:read', 'network:write'],\n });\n }).singleton(),\n\n gatewayInternalPodAccess: asFunction(({ config }: ApiContainerCradle) => {\n if (!config.gatewayInternalClientId || !config.gatewayInternalClientSecret) {\n return undefined;\n }\n return new ClientCredentialsInternalPodAccessTokenProvider({\n tokenEndpoint: config.cssTokenEndpoint,\n clientId: config.gatewayInternalClientId,\n clientSecret: config.gatewayInternalClientSecret,\n });\n }).singleton(),\n\n gatewayAccessKeyRepository: asFunction(({ config, gatewayInternalPodAccess }: ApiContainerCradle) => {\n if (!config.gatewayLocatorSecret) {\n throw new Error('XPOD_GATEWAY_LOCATOR_SECRET is required for Gateway API key locator encryption');\n }\n return new PodGatewayAccessKeyRepository({\n locatorCodec: new AesGatewayKeyLocatorCodec({\n active: {\n kid: config.gatewayLocatorKeyId ?? 'active',\n secret: config.gatewayLocatorSecret,\n },\n previous: config.gatewayPreviousLocatorSecrets,\n }),\n internalPodAccess: gatewayInternalPodAccess,\n });\n }).singleton(),\n\n invocationTokenCodec: asFunction(({ config }: ApiContainerCradle) => {\n if (!config.gatewayLocatorSecret) {\n throw new Error('XPOD_GATEWAY_LOCATOR_SECRET is required for invocation token encryption');\n }\n return new AesInvocationTokenCodec({\n active: {\n kid: config.gatewayLocatorKeyId ?? 'active',\n secret: config.gatewayLocatorSecret,\n },\n previous: config.gatewayPreviousLocatorSecrets,\n });\n }).singleton(),\n\n aiConnectionInvocationKeyIssuer: asFunction(({ config, invocationTokenCodec }: ApiContainerCradle) => {\n return new AiConnectionInvocationKeyIssuer({\n codec: invocationTokenCodec,\n deployment: config.edition,\n baseUrl: resolveAiConnectionBaseUrl(config),\n audience: resolveAiConnectionAudience(config),\n });\n }).singleton(),\n\n providerConnectService: asFunction((cradle: ApiContainerCradle) => {\n const { config } = cradle;\n if (!config.aiGatewayConnectEnabled) {\n return new ProviderConnectService({\n registry: createDefaultGatewayProviderRegistry({\n connect: {\n openai: { configured: false, notes: ['AI Gateway provider Connect is disabled in this Xpod deployment.'] },\n anthropic: { configured: false, notes: ['AI Gateway provider Connect is disabled in this Xpod deployment.'] },\n kimi: { configured: false, notes: ['AI Gateway provider Connect is disabled in this Xpod deployment.'] },\n bailian: { configured: false, notes: ['AI Gateway provider Connect is disabled in this Xpod deployment.'] },\n deepseek: { configured: false },\n },\n }),\n adapters: [],\n });\n }\n if (!config.secretCellCredentialVaultFactory) {\n throw new Error('AI Gateway Connect requires XPOD_SECRET_CELL_KEY_ID and XPOD_SECRET_CELL_KEY');\n }\n const signingSecret = config.aiGatewayConnectSigningSecret ?? config.gatewayLocatorSecret;\n if (!signingSecret) {\n throw new Error('AI Gateway Connect requires XPOD_AI_GATEWAY_CONNECT_SIGNING_SECRET or XPOD_GATEWAY_LOCATOR_SECRET');\n }\n const internalPodAccess = cradle.gatewayInternalPodAccess;\n const credentialRepository = new PodConnectedCredentialRepository({ internalPodAccess });\n const vault = config.secretCellCredentialVaultFactory();\n const attempts = new InMemoryConnectAttemptStore();\n const adapters = [\n new BrowserAssistedApiKeyConnectAdapter({\n provider: 'openai',\n consoleUrl: 'https://platform.openai.com/api-keys',\n attempts,\n credentialRepository,\n vault,\n deployment: config.edition,\n signingSecret,\n }),\n new BrowserAssistedApiKeyConnectAdapter({\n provider: 'anthropic',\n consoleUrl: 'https://console.anthropic.com/settings/keys',\n attempts,\n credentialRepository,\n vault,\n deployment: config.edition,\n signingSecret,\n }),\n new BrowserAssistedApiKeyConnectAdapter({\n provider: 'bailian',\n consoleUrl: 'https://bailian.console.aliyun.com/',\n attempts,\n credentialRepository,\n vault,\n deployment: config.edition,\n signingSecret,\n }),\n ];\n if (config.aiGatewayKimiClientId) {\n adapters.push(new KimiDeviceCodeConnectAdapter({\n attempts,\n credentialRepository,\n vault,\n deployment: config.edition,\n signingSecret,\n clientId: config.aiGatewayKimiClientId,\n }));\n }\n return new ProviderConnectService({\n registry: createDefaultGatewayProviderRegistry({\n connect: {\n kimi: config.aiGatewayKimiClientId\n ? { configured: true }\n : { configured: false, notes: ['not_configured: XPOD_AI_GATEWAY_KIMI_CLIENT_ID is not configured.'] },\n },\n }),\n adapters,\n credentialRepository,\n vault,\n });\n }).singleton(),\n\n gatewayProviderRegistry: asFunction(({ config }: ApiContainerCradle) => {\n const registry = createDefaultGatewayProviderRegistry();\n const openAiBaseUrl = config.aiGatewayProviderBaseUrls?.openai;\n if (openAiBaseUrl) {\n registry.register({\n ...registry.requireProvider('openai'),\n defaultBaseUrl: openAiBaseUrl,\n safeBaseUrls: [openAiBaseUrl],\n });\n }\n return registry;\n }).singleton(),\n\n gatewayCredentialStore: asFunction(({ gatewayInternalPodAccess }: ApiContainerCradle) => {\n return new PodConnectedCredentialRepository({\n internalPodAccess: gatewayInternalPodAccess,\n });\n }).singleton(),\n\n gatewayRuntimeRegistry: asFunction(({ gatewayProviderRegistry }: ApiContainerCradle) => {\n return new ProviderRuntimeRegistry({ registry: gatewayProviderRegistry });\n }).singleton(),\n\n gatewaySessionAffinityStore: asFunction(({ config }: ApiContainerCradle) => {\n const secret = config.gatewayLocatorSecret;\n if (!secret) {\n throw new Error('AI Gateway inference requires XPOD_GATEWAY_LOCATOR_SECRET for session affinity hashing');\n }\n if (config.redisUrl) {\n return new RedisSessionAffinityStore({\n client: config.redisUrl,\n secret,\n });\n }\n return new InMemorySessionAffinityStore({ secret });\n }).singleton(),\n\n aiGatewayService: asFunction((cradle: ApiContainerCradle) => {\n const { config } = cradle;\n if (!config.secretCellCredentialVaultFactory) {\n throw new Error('AI Gateway inference requires XPOD_SECRET_CELL_KEY_ID and XPOD_SECRET_CELL_KEY');\n }\n const gatewayProviderRegistry = cradle.gatewayProviderRegistry;\n const gatewayCredentialStore = cradle.gatewayCredentialStore;\n const gatewayRuntimeRegistry = cradle.gatewayRuntimeRegistry;\n const gatewaySessionAffinityStore = cradle.gatewaySessionAffinityStore;\n const router = new ModelRouter({\n registry: gatewayProviderRegistry,\n affinityStore: gatewaySessionAffinityStore,\n credentials: gatewayCredentialStore.listCredentials.bind(gatewayCredentialStore),\n });\n return new AiGatewayService({\n deployment: config.edition,\n registry: gatewayProviderRegistry,\n router,\n credentials: gatewayCredentialStore,\n runtimes: gatewayRuntimeRegistry,\n vault: config.secretCellCredentialVaultFactory(),\n });\n }).singleton(),\n\n providerQuotaService: asFunction((cradle: ApiContainerCradle) => {\n const { config } = cradle;\n if (!config.aiGatewayConnectEnabled) {\n return undefined;\n }\n if (!config.secretCellCredentialVaultFactory) {\n throw new Error('AI Gateway quota requires XPOD_SECRET_CELL_KEY_ID and XPOD_SECRET_CELL_KEY');\n }\n const internalPodAccess = cradle.gatewayInternalPodAccess;\n return new ProviderQuotaService({\n repository: new PodQuotaSnapshotRepository({ internalPodAccess }),\n credentialRepository: new PodConnectedCredentialRepository({ internalPodAccess }),\n vault: config.secretCellCredentialVaultFactory(),\n adapters: [\n new OpenAiQuotaAdapter(),\n new AnthropicQuotaAdapter(),\n new KimiQuotaAdapter(),\n new BailianQuotaAdapter(),\n new DeepSeekQuotaAdapter(),\n ],\n });\n }).singleton(),\n\n authenticator: asFunction(({ nodeRepo, serviceTokenRepo, gatewayAccessKeyRepository, invocationTokenCodec, config }: ApiContainerCradle) => {\n const solidAuthenticator = new SolidTokenAuthenticator({\n resolveAccountId: async (webId) => webId,\n publicBaseUrl: config.solidBaseUrl,\n internalBaseUrl: config.cssTokenEndpoint,\n });\n\n const clientCredAuthenticator = new ClientCredentialsAuthenticator({\n tokenEndpoint: config.cssTokenEndpoint,\n });\n\n const nodeTokenAuthenticator = new NodeTokenAuthenticator({\n repository: nodeRepo,\n });\n\n const serviceTokenAuthenticator = new ServiceTokenAuthenticator({\n repository: serviceTokenRepo,\n });\n\n const gatewayApiKeyAuthenticator = new GatewayApiKeyAuthenticator({\n repository: gatewayAccessKeyRepository,\n invocationTokenCodec,\n deployment: config.edition,\n invocationTokenAudience: resolveAiConnectionAudience(config),\n });\n\n return new MultiAuthenticator({\n // Order: Solid DPoP → Service Token → Node Token → Gateway Key → Client Credentials.\n // Agent execution is scoped by ChatKit thread/workspace and Run state, not standalone Agent JWTs.\n authenticators: [solidAuthenticator, serviceTokenAuthenticator, nodeTokenAuthenticator, gatewayApiKeyAuthenticator, clientCredAuthenticator],\n });\n }).singleton(),\n\n authMiddleware: asFunction(({ authenticator }: ApiContainerCradle) => {\n return new AuthMiddleware({ authenticator });\n }).singleton(),\n\n // Reconciler / Wake 运行态协调\n serverGroupReconcilerService: asFunction(({ config }: ApiContainerCradle) => {\n return new ServerGroupReconcilerService({\n redisUrl: config.redisUrl,\n });\n }).singleton(),\n\n // ChatKit 存储与服务\n chatKitStore: asFunction(({ config, serverGroupReconcilerService }: ApiContainerCradle) => {\n return new PodChatKitStore({\n tokenEndpoint: config.cssTokenEndpoint,\n serverGroupReconcilerService,\n });\n }).singleton(),\n\n clientReconcilerCoordinator: asFunction(({ config }: ApiContainerCradle) => {\n return new ClientReconcilerCoordinator({\n redisUrl: config.redisUrl,\n });\n }).singleton(),\n\n matrixStore: asFunction(({ config, serverGroupReconcilerService }: ApiContainerCradle) => {\n return new PodMatrixStore({\n serverGroupReconcilerService,\n serverName: (() => {\n try {\n return new URL(process.env.CSS_BASE_URL ?? '').host || undefined;\n } catch {\n return undefined;\n }\n })(),\n });\n }).singleton(),\n\n chatKitAiProvider: asFunction(({ chatKitStore, aiGatewayService }: ApiContainerCradle) => {\n return new VercelAiProvider({ store: chatKitStore, aiGatewayService });\n }).singleton(),\n\n runAuthContextRegistry: asFunction(() => {\n return new RunAuthContextRegistry();\n }).singleton(),\n\n taskAuthBindingService: asFunction(({ chatKitStore }: ApiContainerCradle) => {\n return new TaskAuthBindingService({\n repository: chatKitStore,\n });\n }).singleton(),\n\n rdfEngine: asFunction(({ config }: ApiContainerCradle) => {\n return createApiRdfEngine(config);\n }).singleton(),\n\n runContextRetriever: asFunction(({ rdfEngine, chatKitStore, embeddingService }: ApiContainerCradle) => {\n return createApiRunContextRetriever(rdfEngine, { chatKitStore, embeddingService });\n }).singleton(),\n\n rdfSearchIndexingService: asFunction(({ rdfEngine, chatKitStore, embeddingService }: ApiContainerCradle) => {\n return createApiRdfSearchIndexingService(rdfEngine, { chatKitStore, embeddingService });\n }).singleton(),\n\n rdfStorageStatsService: asFunction(({ config, rdfEngine }: ApiContainerCradle) => {\n return new RdfStorageStatsService({\n edition: config.edition,\n sparqlEndpoint: config.sparqlEndpoint,\n rdfEngine,\n });\n }).singleton(),\n\n runExecutionBackend: asFunction(({ config, inngestRuntimeConfig, chatKitStore, taskAuthBindingService, runAuthContextRegistry, runContextRetriever, rdfSearchIndexingService, aiConnectionInvocationKeyIssuer }: ApiContainerCradle) => {\n return new InngestRunExecutionBackend({\n baseUrl: inngestRuntimeConfig?.baseUrl,\n eventKey: inngestRuntimeConfig?.eventKey,\n signingKey: inngestRuntimeConfig?.signingKey,\n isDev: inngestRuntimeConfig?.enabled ? !inngestRuntimeConfig.durableDelivery : true,\n durableDelivery: inngestRuntimeConfig?.durableDelivery ?? false,\n store: chatKitStore,\n contextRetriever: runContextRetriever,\n aiConnectionInvocationKeyIssuer,\n contextRecorder: (context) => runAuthContextRegistry.remember(context),\n contextResolver: async (data) => {\n const fallback = runAuthContextRegistry.resolve({ webId: data.webId });\n if (data.authBindingId && fallback) {\n return await taskAuthBindingService.resolveRunContext(data.authBindingId, fallback) ?? fallback;\n }\n return fallback;\n },\n runtimeDriver: new PiAgentRuntimeDriver({\n agentLoopIsolation: config.edition === 'cloud' ? 'sandboxed-process' : 'in-process',\n requireSandbox: config.edition === 'cloud',\n rdfSearchIndexingService,\n }),\n });\n }).singleton(),\n\n chatKitService: asFunction(({ chatKitStore, chatKitAiProvider, runExecutionBackend, runContextRetriever, aiConnectionInvocationKeyIssuer }: ApiContainerCradle) => {\n return new ChatKitService({\n store: chatKitStore,\n aiProvider: chatKitAiProvider,\n enableAgentRuntime: true,\n runExecutionBackend,\n contextRetriever: runContextRetriever,\n aiConnectionInvocationKeyIssuer,\n requireAiConnectionInvocationKeyIssuer: true,\n });\n }).singleton(),\n\n taskService: asFunction(({ chatKitStore, runExecutionBackend, runContextRetriever, aiConnectionInvocationKeyIssuer }: ApiContainerCradle) => {\n return new TaskService({\n store: chatKitStore,\n executionBackend: runExecutionBackend,\n contextRetriever: runContextRetriever,\n aiConnectionInvocationKeyIssuer,\n requireAiConnectionInvocationKeyIssuer: true,\n });\n }).singleton(),\n\n inngestTaskScheduler: asFunction(({ runExecutionBackend, taskService, taskAuthBindingService, inngestRuntimeConfig, runAuthContextRegistry }: ApiContainerCradle) => {\n return new InngestTaskScheduler({\n backend: runExecutionBackend,\n taskService,\n getContexts: () => runAuthContextRegistry.list(),\n recordContext: (context) => runAuthContextRegistry.remember(context),\n resolveContext: async (data) => {\n const fallback = runAuthContextRegistry.resolve({ webId: data.webId });\n if (data.authBindingId && fallback) {\n return await taskAuthBindingService.resolveRunContext(data.authBindingId, fallback) ?? fallback;\n }\n return fallback;\n },\n durableDelivery: inngestRuntimeConfig?.durableDelivery ?? false,\n executeInline: true,\n });\n }).singleton(),\n\n providerRegistry: asFunction(() => {\n return new ProviderRegistryImpl();\n }).singleton(),\n\n embeddingService: asFunction(({ providerRegistry }: ApiContainerCradle) => {\n return new EmbeddingServiceImpl(providerRegistry);\n }).singleton(),\n\n vectorService: asFunction(({ chatKitStore, embeddingService }: ApiContainerCradle) => {\n return new VectorService({\n cssBaseUrl: resolveCssServiceBaseUrl(),\n store: chatKitStore,\n embeddingService,\n });\n }).singleton(),\n\n // 业务服务\n chatService: asFunction(({ chatKitStore, aiGatewayService }: ApiContainerCradle) => {\n return new VercelChatService(chatKitStore, { aiGatewayService });\n }).singleton(),\n\n\n // API Server\n apiServer: asFunction(({ config, authMiddleware }: ApiContainerCradle) => {\n return new ApiServer({\n port: config.port,\n host: config.host,\n socketPath: config.socketPath,\n runtimeHost: config.runtimeHost,\n authMiddleware,\n corsOrigins: config.corsOrigins,\n });\n }).singleton(),\n });\n}\n"]}
|
|
@@ -190,7 +190,7 @@ export interface ApiContainerCradle {
|
|
|
190
190
|
authenticator: Authenticator;
|
|
191
191
|
nodeRepo: EdgeNodeRepository;
|
|
192
192
|
serviceTokenRepo: ServiceTokenRepositoryPort;
|
|
193
|
-
gatewayInternalPodAccess
|
|
193
|
+
gatewayInternalPodAccess?: ClientCredentialsInternalPodAccessTokenProvider;
|
|
194
194
|
gatewayAccessKeyRepository: GatewayAccessKeyRepository;
|
|
195
195
|
invocationTokenCodec: InvocationTokenCodec;
|
|
196
196
|
aiConnectionInvocationKeyIssuer: AiConnectionInvocationKeyIssuer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/container/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG","sourcesContent":["/**\n * API Container 依赖类型定义\n *\n * 定义容器中注册的所有服务接口\n */\n\nimport type { ApiServer } from '../ApiServer';\nimport type { AuthMiddleware } from '../middleware/AuthMiddleware';\nimport type { Authenticator } from '../auth/Authenticator';\nimport type { GatewayAccessKeyRepository } from '../ai-gateway/auth/GatewayApiKeyAuthenticator';\nimport type { EdgeNodeRepository } from '../../identity/drizzle/EdgeNodeRepository';\nimport type { ServiceTokenRepositoryPort } from '../../identity/drizzle/ServiceTokenRepository';\nimport type { VercelChatService } from '../service/VercelChatService';\nimport type { SubdomainService } from '../../subdomain/SubdomainService';\nimport type { SubdomainClient } from '../../subdomain/SubdomainClient';\nimport type { DnsProvider } from '../../dns/DnsProvider';\nimport type { TunnelProvider } from '../../tunnel/TunnelProvider';\nimport type { ActiveTunnelProvider, TunnelProfile } from '../../tunnel/TunnelProfiles';\nimport type { AcmeCertificateManager } from '../../edge/acme/AcmeCertificateManager';\nimport type { ClusterCertificateManager } from '../../edge/acme/ClusterCertificateManager';\nimport type { EdgeNodeCertificateCapabilityBridge } from '../../edge/EdgeNodeCertificateCapabilityBridge';\nimport type { IdentityDatabase } from '../../identity/drizzle/db';\nimport type { DdnsRepository } from '../../identity/drizzle/DdnsRepository';\nimport type { PodLookupRepository } from '../../identity/drizzle/PodLookupRepository';\nimport type { AccountRoleRepository } from '../../identity/drizzle/AccountRoleRepository';\nimport type { ChatKitService, AiProvider } from '../chatkit';\nimport type { StoreContext } from '../chatkit/store';\nimport type { PodChatKitStore } from '../chatkit/pod-store';\nimport type { RuntimeHost } from '../../runtime/host/types';\nimport type { ProviderRegistry, EmbeddingService } from '../../ai/service';\nimport type { VectorService } from '../service/VectorService';\nimport type { RdfSearchIndexingService } from '../service/RdfSearchIndexingService';\nimport type { RdfStorageStatsService } from '../service/RdfStorageStatsService';\nimport type { InngestRunExecutionBackend } from '../runs/InngestRunExecutionBackend';\nimport type { RunContextRetriever } from '../runs/RunExecutionBackend';\nimport type { EmbeddedInngestRuntimeConfig } from '../runs/EmbeddedInngestService';\nimport type { RunAuthContextRegistry } from '../runs/RunAuthContextRegistry';\nimport type { TaskAuthBindingService, TaskService, InngestTaskScheduler } from '../tasks';\nimport type { PodMatrixStore } from '../matrix';\nimport type { ClientReconcilerCoordinator, ServerGroupReconcilerService } from '../reconciler';\nimport type { AuthMode } from '../../authorization/AuthMode';\nimport type { RdfEngineLike } from '../../storage/rdf';\nimport type { CredentialVault } from '../ai-gateway/credentials/CredentialVault';\nimport type { ProviderConnectService } from '../ai-gateway/connect';\nimport type { ProviderQuotaService } from '../ai-gateway/quota';\nimport type { AiGatewayService, GatewayCredentialStore } from '../ai-gateway/AiGatewayService';\nimport type { ProviderRuntimeRegistry } from '../ai-gateway/providers/ProviderRuntimeRegistry';\nimport type { ProviderRegistry as GatewayProviderRegistry } from '../ai-gateway/providers/ProviderRegistry';\nimport type { SessionAffinityStore } from '../ai-gateway/routing/SessionAffinityStore';\nimport type { AiConnectionInvocationKeyIssuer } from '../ai-gateway/auth/AiConnectionInvocationKeyIssuer';\nimport type { InvocationTokenCodec } from '../ai-gateway/auth/InvocationTokenCodec';\nimport type { ClientCredentialsInternalPodAccessTokenProvider } from '../ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider';\nimport type { AiClientConfigurationService } from '../service/AiClientConfigurationService';\n\n/**\n * 容器配置\n */\nexport interface ApiContainerConfig {\n /** 运行模式: cloud 持有密钥, local 调用远程 */\n edition: 'cloud' | 'local';\n\n /** API Server 端口 */\n port: number;\n\n /** API Server 主机 */\n host: string;\n\n /** API Server Unix socket 路径 */\n socketPath?: string;\n\n /** Runtime host implementation */\n runtimeHost?: RuntimeHost;\n\n /** Solid authorization mode used by CSS and SP-local Pod provisioning. */\n authMode: AuthMode;\n\n /** RDF term-id index used by CSS LDP structured reads. */\n rdfIndexPath?: string;\n\n /** 数据库连接 URL */\n databaseUrl: string;\n\n /** RDF/SPARQL facts database connection URL. */\n sparqlEndpoint?: string;\n\n /** Route SPARQL reads through an installed native SPARQL provider. */\n rdfNativeSparqlEnabled?: boolean;\n\n /** Redis connection URL, used by embedded infrastructure such as Inngest in cloud mode. */\n redisUrl?: string;\n\n /** Embedded Inngest runtime configuration. */\n inngest?: {\n enabled: boolean;\n mode?: 'managed' | 'spawn';\n port?: number;\n host?: string;\n baseUrl?: string;\n eventKey?: string;\n signingKey?: string;\n binaryPath?: string;\n sqliteDir?: string;\n };\n\n /** Resolved runtime config passed from API bootstrap after starting/locating Inngest. */\n inngestRuntimeConfig?: EmbeddedInngestRuntimeConfig;\n\n /** CORS 允许的源 */\n corsOrigins: string[];\n\n /** CSS Token 端点 */\n cssTokenEndpoint: string;\n solidBaseUrl?: string;\n\n /** Gateway locator encryption secret. Internal platform secret; not a user/provider AI credential. */\n gatewayLocatorSecret?: string;\n gatewayLocatorKeyId?: string;\n gatewayPreviousLocatorSecrets?: Array<{ kid: string; secret: string }>;\n\n /** Internal service client used to read user-owned private Pod gateway-key hashes. */\n gatewayInternalClientId?: string;\n gatewayInternalClientSecret?: string;\n\n /** Runtime-generated secret used only between GatewayProxy and the internal API server for admin ingress evidence. */\n gatewayAdminProxyAuthSecret?: string;\n\n /** AI Provider Connect is disabled by default for backwards-compatible startup. */\n aiGatewayConnectEnabled?: boolean;\n /** Local filesystem host capability for AI coding-client configuration. Disabled unless explicitly injected. */\n aiClientConfiguration?: {\n enabled: boolean;\n homeDir: string;\n backupRoot?: string;\n authority: 'local-filesystem';\n };\n /** Platform signing secret for short-lived provider Connect attempts. */\n aiGatewayConnectSigningSecret?: string;\n /** Xpod/Moonshot-issued Kimi device-code OAuth client id. Never reuse official CLI ids. */\n aiGatewayKimiClientId?: string;\n /** Generic Pod SecretCell credential vault factory, configured by Xpod operations. */\n secretCellCredentialVaultFactory?: () => CredentialVault;\n /** Explicit provider endpoint overrides for controlled deployments and local E2E fixtures. */\n aiGatewayProviderBaseUrls?: Partial<Record<'openai', string>>;\n\n /** 子域名功能配置 (cloud 模式) */\n subdomain?: {\n /** 节点域名根域名 (如 undefineds.site),有值即启用子域名功能 */\n baseStorageDomain?: string;\n cloudflareAccountId?: string;\n cloudflareApiToken?: string;\n tencentDnsSecretId?: string;\n tencentDnsSecretKey?: string;\n };\n\n /** Cloud API 端点 (local 托管式,调用 cloud 的子域名 API) */\n cloudApiEndpoint?: string;\n\n /** 节点 ID (local 托管式) */\n nodeId?: string;\n\n /** 节点 Token (local 托管式,调用 Cloud API 的认证) */\n nodeToken?: string;\n\n /** Local SP service token(Cloud 回调 Local、Local 服务级 API 的唯一服务凭据) */\n serviceToken?: string;\n\n /** 已签发的 provisionCode(Local 首次注册/刷新后持久化恢复) */\n provisionCode?: string;\n\n /** Local canonical public URL(通常来自 CSS_BASE_URL,也可从 setup 恢复) */\n publicUrl?: string;\n\n /** Cloud 分配或用户指定的 SP 域名 */\n spDomain?: string;\n\n /** Local setup/provision 状态文件路径 */\n localSetupPath?: string;\n\n /** Local setup/provision 状态文件中的 provider key */\n localSetupProviderId?: string;\n\n /** OIDC Issuer URL (local 托管式,使用 Cloud IdP) */\n oidcIssuer?: string;\n\n /** Active tunnel provider after resolving profile selection. */\n tunnelProvider?: ActiveTunnelProvider;\n\n /** Recorded tunnel profiles. Only tunnelActiveProfileId/activeTunnelProfile takes effect at runtime. */\n tunnelProfiles?: TunnelProfile[];\n\n /** Selected tunnel profile id. */\n tunnelActiveProfileId?: string;\n\n /** Selected tunnel profile. */\n activeTunnelProfile?: TunnelProfile;\n\n /** Cloudflare Tunnel Token (local 托管式/自管式,启动 cloudflared) */\n cloudflareTunnelToken?: string;\n\n /** SakuraFRP Tunnel Token (SAKURA_TUNNEL_TOKEN;local 托管式/自管式,启动 frpc) */\n sakuraTunnelToken?: string;\n\n /** ngrok authtoken (local only; not sent to Cloud). */\n ngrokAuthToken?: string;\n\n /** Fixed ngrok endpoint/custom domain, e.g. https://example.ngrok-free.dev. */\n ngrokUrl?: string;\n\n /** ngrok executable path. */\n ngrokPath?: string;\n\n /** 是否接受 Edge 节点注册 (cloud 模式) */\n edgeNodesEnabled?: boolean;\n}\n\nimport { EdgeNodeDnsCoordinator } from '../../edge/EdgeNodeDnsCoordinator';\nimport { EdgeNodeHealthProbeService } from '../../edge/EdgeNodeHealthProbeService';\nimport { EdgeNodeCapabilityDetector } from '../../edge/EdgeNodeCapabilityDetector';\nimport { LocalNetworkManager } from '../../edge/LocalNetworkManager';\nimport { DdnsManager } from '../../edge/DdnsManager';\n\n/**\n * 容器中注册的所有服务\n */\nexport interface ApiContainerCradle {\n // 配置\n config: ApiContainerConfig;\n\n // 核心服务\n db: IdentityDatabase;\n apiServer: ApiServer;\n authMiddleware: AuthMiddleware;\n authenticator: Authenticator;\n\n // 仓库\n nodeRepo: EdgeNodeRepository;\n serviceTokenRepo: ServiceTokenRepositoryPort;\n gatewayInternalPodAccess: ClientCredentialsInternalPodAccessTokenProvider;\n gatewayAccessKeyRepository: GatewayAccessKeyRepository;\n invocationTokenCodec: InvocationTokenCodec;\n aiConnectionInvocationKeyIssuer: AiConnectionInvocationKeyIssuer;\n aiClientConfigurationService?: AiClientConfigurationService;\n providerConnectService: ProviderConnectService;\n providerQuotaService?: ProviderQuotaService;\n gatewayProviderRegistry: GatewayProviderRegistry;\n gatewayCredentialStore: GatewayCredentialStore;\n gatewayRuntimeRegistry: ProviderRuntimeRegistry;\n gatewaySessionAffinityStore: SessionAffinityStore;\n aiGatewayService: AiGatewayService;\n\n // 业务服务\n chatService: VercelChatService;\n\n // ChatKit 服务 (OpenAI ChatKit 协议)\n chatKitStore: PodChatKitStore;\n chatKitAiProvider: AiProvider;\n inngestRuntimeConfig: EmbeddedInngestRuntimeConfig | undefined;\n runAuthContextRegistry: RunAuthContextRegistry;\n rdfEngine: RdfEngineLike | undefined;\n runContextRetriever: RunContextRetriever<StoreContext> | undefined;\n rdfSearchIndexingService: RdfSearchIndexingService | undefined;\n runExecutionBackend: InngestRunExecutionBackend;\n taskAuthBindingService: TaskAuthBindingService<StoreContext>;\n taskService: TaskService<StoreContext>;\n inngestTaskScheduler: InngestTaskScheduler<StoreContext>;\n chatKitService: ChatKitService<StoreContext>;\n matrixStore: PodMatrixStore;\n clientReconcilerCoordinator: ClientReconcilerCoordinator;\n serverGroupReconcilerService: ServerGroupReconcilerService;\n providerRegistry: ProviderRegistry;\n embeddingService: EmbeddingService;\n vectorService: VectorService;\n rdfStorageStatsService: RdfStorageStatsService;\n\n // Cloud 模式: 身份服务\n ddnsRepo?: DdnsRepository;\n podLookupRepo?: PodLookupRepository;\n accountRoleRepo?: AccountRoleRepository;\n\n // 子域名相关 (可选,按 edition 注册)\n // Cloud 模式 或 Local 自管模式\n dnsProvider?: DnsProvider;\n dnsCoordinator?: EdgeNodeDnsCoordinator;\n healthProbeService?: EdgeNodeHealthProbeService;\n capabilityDetector?: EdgeNodeCapabilityDetector;\n localNetworkManager?: LocalNetworkManager;\n\n tunnelProvider?: TunnelProvider;\n subdomainService?: SubdomainService;\n // Local 托管式\n subdomainClient?: SubdomainClient;\n // Local 托管式 DDNS 管理\n ddnsManager?: DdnsManager;\n // Local 托管式/自管式 (启动 cloudflared)\n localTunnelProvider?: TunnelProvider;\n\n // Optional runtime certificate managers. Routes only enable TLS status/renewal\n // when one of these services is explicitly registered by the active profile.\n edgeNodeCertificateCapabilityBridge?: EdgeNodeCertificateCapabilityBridge;\n certificateManager?: unknown;\n acmeCertificateManager?: AcmeCertificateManager;\n clusterCertificateManager?: ClusterCertificateManager;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/container/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG","sourcesContent":["/**\n * API Container 依赖类型定义\n *\n * 定义容器中注册的所有服务接口\n */\n\nimport type { ApiServer } from '../ApiServer';\nimport type { AuthMiddleware } from '../middleware/AuthMiddleware';\nimport type { Authenticator } from '../auth/Authenticator';\nimport type { GatewayAccessKeyRepository } from '../ai-gateway/auth/GatewayApiKeyAuthenticator';\nimport type { EdgeNodeRepository } from '../../identity/drizzle/EdgeNodeRepository';\nimport type { ServiceTokenRepositoryPort } from '../../identity/drizzle/ServiceTokenRepository';\nimport type { VercelChatService } from '../service/VercelChatService';\nimport type { SubdomainService } from '../../subdomain/SubdomainService';\nimport type { SubdomainClient } from '../../subdomain/SubdomainClient';\nimport type { DnsProvider } from '../../dns/DnsProvider';\nimport type { TunnelProvider } from '../../tunnel/TunnelProvider';\nimport type { ActiveTunnelProvider, TunnelProfile } from '../../tunnel/TunnelProfiles';\nimport type { AcmeCertificateManager } from '../../edge/acme/AcmeCertificateManager';\nimport type { ClusterCertificateManager } from '../../edge/acme/ClusterCertificateManager';\nimport type { EdgeNodeCertificateCapabilityBridge } from '../../edge/EdgeNodeCertificateCapabilityBridge';\nimport type { IdentityDatabase } from '../../identity/drizzle/db';\nimport type { DdnsRepository } from '../../identity/drizzle/DdnsRepository';\nimport type { PodLookupRepository } from '../../identity/drizzle/PodLookupRepository';\nimport type { AccountRoleRepository } from '../../identity/drizzle/AccountRoleRepository';\nimport type { ChatKitService, AiProvider } from '../chatkit';\nimport type { StoreContext } from '../chatkit/store';\nimport type { PodChatKitStore } from '../chatkit/pod-store';\nimport type { RuntimeHost } from '../../runtime/host/types';\nimport type { ProviderRegistry, EmbeddingService } from '../../ai/service';\nimport type { VectorService } from '../service/VectorService';\nimport type { RdfSearchIndexingService } from '../service/RdfSearchIndexingService';\nimport type { RdfStorageStatsService } from '../service/RdfStorageStatsService';\nimport type { InngestRunExecutionBackend } from '../runs/InngestRunExecutionBackend';\nimport type { RunContextRetriever } from '../runs/RunExecutionBackend';\nimport type { EmbeddedInngestRuntimeConfig } from '../runs/EmbeddedInngestService';\nimport type { RunAuthContextRegistry } from '../runs/RunAuthContextRegistry';\nimport type { TaskAuthBindingService, TaskService, InngestTaskScheduler } from '../tasks';\nimport type { PodMatrixStore } from '../matrix';\nimport type { ClientReconcilerCoordinator, ServerGroupReconcilerService } from '../reconciler';\nimport type { AuthMode } from '../../authorization/AuthMode';\nimport type { RdfEngineLike } from '../../storage/rdf';\nimport type { CredentialVault } from '../ai-gateway/credentials/CredentialVault';\nimport type { ProviderConnectService } from '../ai-gateway/connect';\nimport type { ProviderQuotaService } from '../ai-gateway/quota';\nimport type { AiGatewayService, GatewayCredentialStore } from '../ai-gateway/AiGatewayService';\nimport type { ProviderRuntimeRegistry } from '../ai-gateway/providers/ProviderRuntimeRegistry';\nimport type { ProviderRegistry as GatewayProviderRegistry } from '../ai-gateway/providers/ProviderRegistry';\nimport type { SessionAffinityStore } from '../ai-gateway/routing/SessionAffinityStore';\nimport type { AiConnectionInvocationKeyIssuer } from '../ai-gateway/auth/AiConnectionInvocationKeyIssuer';\nimport type { InvocationTokenCodec } from '../ai-gateway/auth/InvocationTokenCodec';\nimport type { ClientCredentialsInternalPodAccessTokenProvider } from '../ai-gateway/auth/ClientCredentialsInternalPodAccessTokenProvider';\nimport type { AiClientConfigurationService } from '../service/AiClientConfigurationService';\n\n/**\n * 容器配置\n */\nexport interface ApiContainerConfig {\n /** 运行模式: cloud 持有密钥, local 调用远程 */\n edition: 'cloud' | 'local';\n\n /** API Server 端口 */\n port: number;\n\n /** API Server 主机 */\n host: string;\n\n /** API Server Unix socket 路径 */\n socketPath?: string;\n\n /** Runtime host implementation */\n runtimeHost?: RuntimeHost;\n\n /** Solid authorization mode used by CSS and SP-local Pod provisioning. */\n authMode: AuthMode;\n\n /** RDF term-id index used by CSS LDP structured reads. */\n rdfIndexPath?: string;\n\n /** 数据库连接 URL */\n databaseUrl: string;\n\n /** RDF/SPARQL facts database connection URL. */\n sparqlEndpoint?: string;\n\n /** Route SPARQL reads through an installed native SPARQL provider. */\n rdfNativeSparqlEnabled?: boolean;\n\n /** Redis connection URL, used by embedded infrastructure such as Inngest in cloud mode. */\n redisUrl?: string;\n\n /** Embedded Inngest runtime configuration. */\n inngest?: {\n enabled: boolean;\n mode?: 'managed' | 'spawn';\n port?: number;\n host?: string;\n baseUrl?: string;\n eventKey?: string;\n signingKey?: string;\n binaryPath?: string;\n sqliteDir?: string;\n };\n\n /** Resolved runtime config passed from API bootstrap after starting/locating Inngest. */\n inngestRuntimeConfig?: EmbeddedInngestRuntimeConfig;\n\n /** CORS 允许的源 */\n corsOrigins: string[];\n\n /** CSS Token 端点 */\n cssTokenEndpoint: string;\n solidBaseUrl?: string;\n\n /** Gateway locator encryption secret. Internal platform secret; not a user/provider AI credential. */\n gatewayLocatorSecret?: string;\n gatewayLocatorKeyId?: string;\n gatewayPreviousLocatorSecrets?: Array<{ kid: string; secret: string }>;\n\n /** Internal service client used to read user-owned private Pod gateway-key hashes. */\n gatewayInternalClientId?: string;\n gatewayInternalClientSecret?: string;\n\n /** Runtime-generated secret used only between GatewayProxy and the internal API server for admin ingress evidence. */\n gatewayAdminProxyAuthSecret?: string;\n\n /** AI Provider Connect is disabled by default for backwards-compatible startup. */\n aiGatewayConnectEnabled?: boolean;\n /** Local filesystem host capability for AI coding-client configuration. Disabled unless explicitly injected. */\n aiClientConfiguration?: {\n enabled: boolean;\n homeDir: string;\n backupRoot?: string;\n authority: 'local-filesystem';\n };\n /** Platform signing secret for short-lived provider Connect attempts. */\n aiGatewayConnectSigningSecret?: string;\n /** Xpod/Moonshot-issued Kimi device-code OAuth client id. Never reuse official CLI ids. */\n aiGatewayKimiClientId?: string;\n /** Generic Pod SecretCell credential vault factory, configured by Xpod operations. */\n secretCellCredentialVaultFactory?: () => CredentialVault;\n /** Explicit provider endpoint overrides for controlled deployments and local E2E fixtures. */\n aiGatewayProviderBaseUrls?: Partial<Record<'openai', string>>;\n\n /** 子域名功能配置 (cloud 模式) */\n subdomain?: {\n /** 节点域名根域名 (如 undefineds.site),有值即启用子域名功能 */\n baseStorageDomain?: string;\n cloudflareAccountId?: string;\n cloudflareApiToken?: string;\n tencentDnsSecretId?: string;\n tencentDnsSecretKey?: string;\n };\n\n /** Cloud API 端点 (local 托管式,调用 cloud 的子域名 API) */\n cloudApiEndpoint?: string;\n\n /** 节点 ID (local 托管式) */\n nodeId?: string;\n\n /** 节点 Token (local 托管式,调用 Cloud API 的认证) */\n nodeToken?: string;\n\n /** Local SP service token(Cloud 回调 Local、Local 服务级 API 的唯一服务凭据) */\n serviceToken?: string;\n\n /** 已签发的 provisionCode(Local 首次注册/刷新后持久化恢复) */\n provisionCode?: string;\n\n /** Local canonical public URL(通常来自 CSS_BASE_URL,也可从 setup 恢复) */\n publicUrl?: string;\n\n /** Cloud 分配或用户指定的 SP 域名 */\n spDomain?: string;\n\n /** Local setup/provision 状态文件路径 */\n localSetupPath?: string;\n\n /** Local setup/provision 状态文件中的 provider key */\n localSetupProviderId?: string;\n\n /** OIDC Issuer URL (local 托管式,使用 Cloud IdP) */\n oidcIssuer?: string;\n\n /** Active tunnel provider after resolving profile selection. */\n tunnelProvider?: ActiveTunnelProvider;\n\n /** Recorded tunnel profiles. Only tunnelActiveProfileId/activeTunnelProfile takes effect at runtime. */\n tunnelProfiles?: TunnelProfile[];\n\n /** Selected tunnel profile id. */\n tunnelActiveProfileId?: string;\n\n /** Selected tunnel profile. */\n activeTunnelProfile?: TunnelProfile;\n\n /** Cloudflare Tunnel Token (local 托管式/自管式,启动 cloudflared) */\n cloudflareTunnelToken?: string;\n\n /** SakuraFRP Tunnel Token (SAKURA_TUNNEL_TOKEN;local 托管式/自管式,启动 frpc) */\n sakuraTunnelToken?: string;\n\n /** ngrok authtoken (local only; not sent to Cloud). */\n ngrokAuthToken?: string;\n\n /** Fixed ngrok endpoint/custom domain, e.g. https://example.ngrok-free.dev. */\n ngrokUrl?: string;\n\n /** ngrok executable path. */\n ngrokPath?: string;\n\n /** 是否接受 Edge 节点注册 (cloud 模式) */\n edgeNodesEnabled?: boolean;\n}\n\nimport { EdgeNodeDnsCoordinator } from '../../edge/EdgeNodeDnsCoordinator';\nimport { EdgeNodeHealthProbeService } from '../../edge/EdgeNodeHealthProbeService';\nimport { EdgeNodeCapabilityDetector } from '../../edge/EdgeNodeCapabilityDetector';\nimport { LocalNetworkManager } from '../../edge/LocalNetworkManager';\nimport { DdnsManager } from '../../edge/DdnsManager';\n\n/**\n * 容器中注册的所有服务\n */\nexport interface ApiContainerCradle {\n // 配置\n config: ApiContainerConfig;\n\n // 核心服务\n db: IdentityDatabase;\n apiServer: ApiServer;\n authMiddleware: AuthMiddleware;\n authenticator: Authenticator;\n\n // 仓库\n nodeRepo: EdgeNodeRepository;\n serviceTokenRepo: ServiceTokenRepositoryPort;\n gatewayInternalPodAccess?: ClientCredentialsInternalPodAccessTokenProvider;\n gatewayAccessKeyRepository: GatewayAccessKeyRepository;\n invocationTokenCodec: InvocationTokenCodec;\n aiConnectionInvocationKeyIssuer: AiConnectionInvocationKeyIssuer;\n aiClientConfigurationService?: AiClientConfigurationService;\n providerConnectService: ProviderConnectService;\n providerQuotaService?: ProviderQuotaService;\n gatewayProviderRegistry: GatewayProviderRegistry;\n gatewayCredentialStore: GatewayCredentialStore;\n gatewayRuntimeRegistry: ProviderRuntimeRegistry;\n gatewaySessionAffinityStore: SessionAffinityStore;\n aiGatewayService: AiGatewayService;\n\n // 业务服务\n chatService: VercelChatService;\n\n // ChatKit 服务 (OpenAI ChatKit 协议)\n chatKitStore: PodChatKitStore;\n chatKitAiProvider: AiProvider;\n inngestRuntimeConfig: EmbeddedInngestRuntimeConfig | undefined;\n runAuthContextRegistry: RunAuthContextRegistry;\n rdfEngine: RdfEngineLike | undefined;\n runContextRetriever: RunContextRetriever<StoreContext> | undefined;\n rdfSearchIndexingService: RdfSearchIndexingService | undefined;\n runExecutionBackend: InngestRunExecutionBackend;\n taskAuthBindingService: TaskAuthBindingService<StoreContext>;\n taskService: TaskService<StoreContext>;\n inngestTaskScheduler: InngestTaskScheduler<StoreContext>;\n chatKitService: ChatKitService<StoreContext>;\n matrixStore: PodMatrixStore;\n clientReconcilerCoordinator: ClientReconcilerCoordinator;\n serverGroupReconcilerService: ServerGroupReconcilerService;\n providerRegistry: ProviderRegistry;\n embeddingService: EmbeddingService;\n vectorService: VectorService;\n rdfStorageStatsService: RdfStorageStatsService;\n\n // Cloud 模式: 身份服务\n ddnsRepo?: DdnsRepository;\n podLookupRepo?: PodLookupRepository;\n accountRoleRepo?: AccountRoleRepository;\n\n // 子域名相关 (可选,按 edition 注册)\n // Cloud 模式 或 Local 自管模式\n dnsProvider?: DnsProvider;\n dnsCoordinator?: EdgeNodeDnsCoordinator;\n healthProbeService?: EdgeNodeHealthProbeService;\n capabilityDetector?: EdgeNodeCapabilityDetector;\n localNetworkManager?: LocalNetworkManager;\n\n tunnelProvider?: TunnelProvider;\n subdomainService?: SubdomainService;\n // Local 托管式\n subdomainClient?: SubdomainClient;\n // Local 托管式 DDNS 管理\n ddnsManager?: DdnsManager;\n // Local 托管式/自管式 (启动 cloudflared)\n localTunnelProvider?: TunnelProvider;\n\n // Optional runtime certificate managers. Routes only enable TLS status/renewal\n // when one of these services is explicitly registered by the active profile.\n edgeNodeCertificateCapabilityBridge?: EdgeNodeCertificateCapabilityBridge;\n certificateManager?: unknown;\n acmeCertificateManager?: AcmeCertificateManager;\n clusterCertificateManager?: ClusterCertificateManager;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@undefineds.co/xpod",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.69",
|
|
4
4
|
"description": "Xpod is an extended Community Solid Server, offering rich-feature, production-level Solid Pod and identity management.",
|
|
5
5
|
"repository": "https://github.com/undefinedsco/xpod",
|
|
6
6
|
"author": "developer@undefineds.co",
|