@wildo-ai/saas-backend-lib 1.1.12 → 1.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.d.ts.map +1 -1
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js +2 -0
- package/dist/esm/base-classes/models/manual-controllers.backend.definition.js.map +1 -1
- package/dist/esm/base-classes/services/repositories/stored-field-omission.backend.d.ts +4 -0
- package/dist/esm/base-classes/services/repositories/stored-field-omission.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/repositories/stored-field-omission.backend.js +20 -5
- package/dist/esm/base-classes/services/repositories/stored-field-omission.backend.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts +3 -0
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.js +10 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation-registry.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts +22 -0
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.js +25 -1
- package/dist/esm/base-classes/services/services/resource-operation-custom-implementation.factory.backend.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts +38 -3
- package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.js +68 -5
- package/dist/esm/base-classes/services/services/resource-operation-transaction-persistence.backend.utils.js.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts +2 -2
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js +6 -3
- package/dist/esm/base-classes/services/services/resource-status-transition.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts +83 -0
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.d.ts.map +1 -1
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js +217 -14
- package/dist/esm/base-classes/services/services/services-registry-handler.backend.service.js.map +1 -1
- package/dist/esm/compliance/approval-seals/approval-seal-currency.backend.d.ts +32 -0
- package/dist/esm/compliance/approval-seals/approval-seal-currency.backend.d.ts.map +1 -0
- package/dist/esm/compliance/approval-seals/approval-seal-currency.backend.js +36 -0
- package/dist/esm/compliance/approval-seals/approval-seal-currency.backend.js.map +1 -0
- package/dist/esm/compliance/approval-seals/approval-seal-on-record.backend.d.ts +38 -0
- package/dist/esm/compliance/approval-seals/approval-seal-on-record.backend.d.ts.map +1 -0
- package/dist/esm/compliance/approval-seals/approval-seal-on-record.backend.js +83 -0
- package/dist/esm/compliance/approval-seals/approval-seal-on-record.backend.js.map +1 -0
- package/dist/esm/compliance/approval-seals/approval-seal-presentation-read.backend.d.ts +36 -0
- package/dist/esm/compliance/approval-seals/approval-seal-presentation-read.backend.d.ts.map +1 -0
- package/dist/esm/compliance/approval-seals/approval-seal-presentation-read.backend.js +51 -0
- package/dist/esm/compliance/approval-seals/approval-seal-presentation-read.backend.js.map +1 -0
- package/dist/esm/compliance/approval-seals/approval-seal-relay-store.backend.d.ts +46 -0
- package/dist/esm/compliance/approval-seals/approval-seal-relay-store.backend.d.ts.map +1 -1
- package/dist/esm/compliance/approval-seals/approval-seal-relay-store.backend.js +68 -0
- package/dist/esm/compliance/approval-seals/approval-seal-relay-store.backend.js.map +1 -1
- package/dist/esm/compliance/approval-seals/approval-seal-store.backend.d.ts +27 -0
- package/dist/esm/compliance/approval-seals/approval-seal-store.backend.d.ts.map +1 -1
- package/dist/esm/compliance/approval-seals/approval-seal-store.backend.js +42 -3
- package/dist/esm/compliance/approval-seals/approval-seal-store.backend.js.map +1 -1
- package/dist/esm/compliance/approval-seals/approval-seals-admin.backend.contracts.d.ts +26 -1
- package/dist/esm/compliance/approval-seals/approval-seals-admin.backend.contracts.d.ts.map +1 -1
- package/dist/esm/compliance/approval-seals/approval-seals-admin.backend.contracts.js +10 -0
- package/dist/esm/compliance/approval-seals/approval-seals-admin.backend.contracts.js.map +1 -1
- package/dist/esm/compliance/approval-seals/approval-seals-admin.backend.controller.d.ts +10 -1
- package/dist/esm/compliance/approval-seals/approval-seals-admin.backend.controller.d.ts.map +1 -1
- package/dist/esm/compliance/approval-seals/approval-seals-admin.backend.controller.js +60 -28
- package/dist/esm/compliance/approval-seals/approval-seals-admin.backend.controller.js.map +1 -1
- package/dist/esm/compliance/approval-seals/approval-seals-on-record.backend.controller.d.ts +90 -0
- package/dist/esm/compliance/approval-seals/approval-seals-on-record.backend.controller.d.ts.map +1 -0
- package/dist/esm/compliance/approval-seals/approval-seals-on-record.backend.controller.js +373 -0
- package/dist/esm/compliance/approval-seals/approval-seals-on-record.backend.controller.js.map +1 -0
- package/dist/esm/compliance/approval-seals/decision-presentation.backend.d.ts +29 -2
- package/dist/esm/compliance/approval-seals/decision-presentation.backend.d.ts.map +1 -1
- package/dist/esm/compliance/approval-seals/decision-presentation.backend.js +40 -3
- package/dist/esm/compliance/approval-seals/decision-presentation.backend.js.map +1 -1
- package/dist/esm/compliance/electronic-signatures/pdf-signature-structure.backend.d.ts.map +1 -1
- package/dist/esm/compliance/electronic-signatures/pdf-signature-structure.backend.js +34 -6
- package/dist/esm/compliance/electronic-signatures/pdf-signature-structure.backend.js.map +1 -1
- package/dist/esm/compliance/electronic-signatures/signature-request-evidence-files.backend.d.ts +30 -6
- package/dist/esm/compliance/electronic-signatures/signature-request-evidence-files.backend.d.ts.map +1 -1
- package/dist/esm/compliance/electronic-signatures/signature-request-evidence-files.backend.js +67 -22
- package/dist/esm/compliance/electronic-signatures/signature-request-evidence-files.backend.js.map +1 -1
- package/dist/esm/compliance/electronic-signatures/signature-request-poll.batch.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/electronic-signatures/signature-request-poll.batch.backend.service.js +18 -1
- package/dist/esm/compliance/electronic-signatures/signature-request-poll.batch.backend.service.js.map +1 -1
- package/dist/esm/compliance/electronic-signatures/signature-requests.backend.service.d.ts +66 -1
- package/dist/esm/compliance/electronic-signatures/signature-requests.backend.service.d.ts.map +1 -1
- package/dist/esm/compliance/electronic-signatures/signature-requests.backend.service.js +161 -14
- package/dist/esm/compliance/electronic-signatures/signature-requests.backend.service.js.map +1 -1
- package/dist/esm/compliance/electronic-signatures/signed-document-validation.backend.d.ts +47 -0
- package/dist/esm/compliance/electronic-signatures/signed-document-validation.backend.d.ts.map +1 -1
- package/dist/esm/compliance/electronic-signatures/signed-document-validation.backend.js.map +1 -1
- package/dist/esm/external-providers/services/content-safety.backend.service.d.ts +27 -2
- package/dist/esm/external-providers/services/content-safety.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/content-safety.backend.service.js +46 -1
- package/dist/esm/external-providers/services/content-safety.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/embeddings.backend.service.js +2 -0
- package/dist/esm/external-providers/services/embeddings.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts +11 -0
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map +1 -1
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js +23 -0
- package/dist/esm/external-providers/services/external-providers-registry.backend.service.js.map +1 -1
- package/dist/esm/external-providers/services/provider-service-account-token.backend.d.ts +19 -1
- package/dist/esm/external-providers/services/provider-service-account-token.backend.d.ts.map +1 -1
- package/dist/esm/external-providers/services/provider-service-account-token.backend.js +41 -1
- package/dist/esm/external-providers/services/provider-service-account-token.backend.js.map +1 -1
- package/dist/esm/files/utils/file-parent-read-context.backend.d.ts +27 -2
- package/dist/esm/files/utils/file-parent-read-context.backend.d.ts.map +1 -1
- package/dist/esm/files/utils/file-parent-read-context.backend.js +23 -4
- package/dist/esm/files/utils/file-parent-read-context.backend.js.map +1 -1
- package/dist/esm/flows-actors/content-guardrails/classifier-availability.backend.utils.d.ts +26 -0
- package/dist/esm/flows-actors/content-guardrails/classifier-availability.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/content-guardrails/classifier-availability.backend.utils.js +100 -8
- package/dist/esm/flows-actors/content-guardrails/classifier-availability.backend.utils.js.map +1 -1
- package/dist/esm/flows-actors/content-guardrails/record-owner-policy.backend.d.ts +3 -1
- package/dist/esm/flows-actors/content-guardrails/record-owner-policy.backend.d.ts.map +1 -1
- package/dist/esm/flows-actors/content-guardrails/record-owner-policy.backend.js +8 -2
- package/dist/esm/flows-actors/content-guardrails/record-owner-policy.backend.js.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts +43 -0
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.d.ts.map +1 -1
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js +37 -0
- package/dist/esm/flows-actors/models/function-tools.backend.definitions.js.map +1 -1
- package/dist/esm/flows-actors/services/agent-work-decisions.backend.service.d.ts +7 -0
- package/dist/esm/flows-actors/services/agent-work-decisions.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agent-work-decisions.backend.service.js +8 -3
- package/dist/esm/flows-actors/services/agent-work-decisions.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts +31 -6
- package/dist/esm/flows-actors/services/agents.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/agents.backend.service.js +78 -30
- package/dist/esm/flows-actors/services/agents.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/autonomous-agent-turn.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/autonomous-agent-turn.backend.service.js +4 -0
- package/dist/esm/flows-actors/services/autonomous-agent-turn.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts +28 -2
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js +132 -22
- package/dist/esm/flows-actors/services/conversational-execution.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flow-actor-executions.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flow-actor-executions.custom-impl.backend.service.js +12 -8
- package/dist/esm/flows-actors/services/flow-actor-executions.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts +5 -0
- package/dist/esm/flows-actors/services/flows-actors-registry.service.d.ts.map +1 -1
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js +18 -2
- package/dist/esm/flows-actors/services/flows-actors-registry.service.js.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts +33 -0
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.d.ts.map +1 -1
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js +58 -0
- package/dist/esm/flows-actors/utils/acp-session-runner.backend.utils.js.map +1 -1
- package/dist/esm/inbound/services/inbound-delivery-dispatch.backend.service.d.ts +12 -1
- package/dist/esm/inbound/services/inbound-delivery-dispatch.backend.service.d.ts.map +1 -1
- package/dist/esm/inbound/services/inbound-delivery-dispatch.backend.service.js +23 -4
- package/dist/esm/inbound/services/inbound-delivery-dispatch.backend.service.js.map +1 -1
- package/dist/esm/inbound/services/inbound-delivery-receiver.backend.service.d.ts +12 -1
- package/dist/esm/inbound/services/inbound-delivery-receiver.backend.service.d.ts.map +1 -1
- package/dist/esm/inbound/services/inbound-delivery-receiver.backend.service.js +55 -17
- package/dist/esm/inbound/services/inbound-delivery-receiver.backend.service.js.map +1 -1
- package/dist/esm/inbound/services/inbound-delivery-store.backend.service.d.ts +22 -1
- package/dist/esm/inbound/services/inbound-delivery-store.backend.service.d.ts.map +1 -1
- package/dist/esm/inbound/services/inbound-delivery-store.backend.service.js +52 -9
- package/dist/esm/inbound/services/inbound-delivery-store.backend.service.js.map +1 -1
- package/dist/esm/inbound/services/inbound-delivery-stored-body.backend.service.d.ts +79 -0
- package/dist/esm/inbound/services/inbound-delivery-stored-body.backend.service.d.ts.map +1 -0
- package/dist/esm/inbound/services/inbound-delivery-stored-body.backend.service.js +211 -0
- package/dist/esm/inbound/services/inbound-delivery-stored-body.backend.service.js.map +1 -0
- package/dist/esm/inbound/services/inbound-delivery-subject-erasure-severance.backend.d.ts +2 -2
- package/dist/esm/inbound/services/inbound-delivery-subject-erasure-severance.backend.d.ts.map +1 -1
- package/dist/esm/inbound/services/inbound-delivery-subject-erasure-severance.backend.js +9 -1
- package/dist/esm/inbound/services/inbound-delivery-subject-erasure-severance.backend.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/inject/models/container.d.ts.map +1 -1
- package/dist/esm/inject/models/container.js +6 -0
- package/dist/esm/inject/models/container.js.map +1 -1
- package/dist/esm/inject/models/service-types.d.ts +5 -0
- package/dist/esm/inject/models/service-types.d.ts.map +1 -1
- package/dist/esm/inject/models/service-types.js +3 -0
- package/dist/esm/inject/models/service-types.js.map +1 -1
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts +5 -0
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/models/observability.backend.schemas.js.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts +34 -1
- package/dist/esm/monitoring/observability/services/metrics.service.d.ts.map +1 -1
- package/dist/esm/monitoring/observability/services/metrics.service.js +49 -0
- package/dist/esm/monitoring/observability/services/metrics.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts +6 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js +15 -4
- package/dist/esm/notifications/webhooks/controllers/webhook-auto-controller.backend.service.js.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.js +3 -1
- package/dist/esm/notifications/webhooks/outbound/services/m2m-webhook-delivery-log.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.d.ts +3 -1
- package/dist/esm/runtime/services/http-server.backend.service.d.ts.map +1 -1
- package/dist/esm/runtime/services/http-server.backend.service.js +11 -3
- package/dist/esm/runtime/services/http-server.backend.service.js.map +1 -1
- package/dist/esm/runtime/services/utils/inbound-endpoint-raw-body.backend.utils.d.ts +22 -0
- package/dist/esm/runtime/services/utils/inbound-endpoint-raw-body.backend.utils.d.ts.map +1 -1
- package/dist/esm/runtime/services/utils/inbound-endpoint-raw-body.backend.utils.js +54 -0
- package/dist/esm/runtime/services/utils/inbound-endpoint-raw-body.backend.utils.js.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts +51 -0
- package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.js +87 -15
- package/dist/esm/security/authentications/services/auth-methods/auth-password-reset.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.js +5 -2
- package/dist/esm/security/authentications/services/custom-impls/siem-delivery-dlq.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js +65 -24
- package/dist/esm/security/authentications/services/custom-impls/sso-config-domain-verification.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts +64 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.d.ts.map +1 -1
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js +84 -2
- package/dist/esm/security/authorizations/super-admin-floor.backend.utils.js.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts +14 -0
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js +13 -5
- package/dist/esm/security/oauth-clients/oauth-clients.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/users/services/anonymous-consent.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/anonymous-consent.custom-impl.backend.service.js +6 -2
- package/dist/esm/users/services/anonymous-consent.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts +7 -0
- package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.js +65 -20
- package/dist/esm/users/services/user-force-password-reset.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.js +11 -4
- package/dist/esm/users/services/user-role-administration.custom-impl.backend.service.js.map +1 -1
- package/dist/esm/users/services/user-self-custom-implementations.backend.d.ts.map +1 -1
- package/dist/esm/users/services/user-self-custom-implementations.backend.js +4 -2
- package/dist/esm/users/services/user-self-custom-implementations.backend.js.map +1 -1
- package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.d.ts.map +1 -1
- package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.js +16 -0
- package/dist/esm/users/services/user-super-admin-floor.custom-impl.backend.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.backend.service.js","sourceRoot":"","sources":["../../../../src/external-providers/services/embeddings.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Embeddings execution service — the ONE seam through which the engine turns text into vectors\n * (RAG plan §3.d, DL2).\n *\n * Two callers, one code path — which is what keeps their vector spaces identical:\n * - the `rag:embedding-drain` worker embeds CORPUS chunks (`purpose: CORPUS`);\n * - Phase-5 retrieval embeds QUERIES (`purpose: QUERY`) through this same service, so a query\n * vector and the corpus vectors it searches were produced by the same class→model binding.\n *\n * The purpose is also the text's ROLE, and it reaches the vendor (#3427): each embeddings arm declares\n * `textPurposeHandling`, either the AI-SDK `providerOptions` that carry each role to its vendor\n * (Cohere `search_document` / `search_query`, Voyage `document` / `query`), or that its vendor has no\n * role (OpenAI). Until #3427 the purpose reached the trace only, so Cohere's SDK embedded the corpus\n * with its default, `search_query`, and Voyage's with no role at all.\n *\n * ## Selection is by APPLICABILITY CLASS, never by model id (the standing model-selection rule)\n *\n * A caller names an {@link Embeddings_Applicability} class (`rag-default`); this service resolves\n * 1. the PROVIDER — the application's `EngineCapability.AI_EMBEDDINGS` selection\n * (`defineSaaSProviders` → `selection[AI_EMBEDDINGS].primary`), independent of the chat\n * provider by construction (DL2's whole point);\n * 2. the MODEL — `resolveEmbeddingsModelForApplicability` against the framework catalog for an\n * engine provider, or against the models (and published dimensions) a provider installed from\n * the module registry declares on its embeddings arm (#2516).\n * The resolved `(class, model)` pair is what chunk rows are stamped with, and what the drain\n * worker's migration pass compares stamps against — so a preference edit re-binds the class and\n * the corpus converges onto the new model with no call-site changes.\n *\n * ## Failure posture\n *\n * \"Not configured\" (no provider serves `AI_EMBEDDINGS`) is a NON-ERROR state this service reports\n * through {@link resolveBinding}'s discriminated result — embeddings are an enhancement atop an\n * erasable corpus, and the drain worker turns it into a WARN (repeated only when the backlog grows), never a boot failure.\n * \"Configured but broken\" (provider selected but the contract/model/key is unusable) THROWS a\n * named CONFIGURATION error — that state is an operator mistake that silence would hide forever.\n *\n * ## Observability (H4)\n *\n * Every physical embedding call emits ONE agent-call trace of kind\n * {@link AgentCallTraceKind.EMBEDDING} through the same sink chain generations use — so the\n * PostHog sink can emit its `$ai_embedding` event and the companion filesystem sink records the\n * call. The trace's `output` is ALWAYS a `{ vectorCount, dims }` summary and its `input` a\n * `{ purpose, textCount, totalTextChars }` summary: raw vectors never enter the trace at any\n * verbosity (a vector is a lossy encoding of the source text, not telemetry), and the raw texts\n * stay out because a batch of corpus chunks is content the payload-gating levels were never\n * calibrated for. Usage completeness is OPERATION-AWARE: an embedding has no completion-token\n * dimension, so `tokenUsageComplete` is judged on input tokens alone.\n */\n\nimport { injectable, inject, optional } from 'inversify';\nimport { embedMany, wrapEmbeddingModel } from 'ai';\nimport {\n EngineCapability,\n ErrorType,\n ErrorCustomMessageReference,\n AgentCallOutcome,\n AgentCallTraceKind,\n AgentTraceabilityLevel,\n type AgentCallTrace,\n type AgentCallTraceSink,\n type AgentTraceabilityPolicy,\n type ModelCallAttributionInput,\n type WorkUnitRef,\n ModelUsageUnit,\n describeModelProviderAccountRefusal,\n type ProviderCallFailoverTrigger,\n} from '@wildo-ai/saas-models';\nimport {\n Embeddings_Applicability,\n EmbeddingsProvider_OperationKey,\n ExternalProvider_ExchangeProtocol_Kind,\n resolveEmbeddingsModelForApplicability,\n describeEmbeddingsModelDeclarationsDefect,\n describeEmbeddingsTextPurposeHandlingDefect,\n EmbeddingsProvider_TextPurposeHandlingKind,\n type EmbeddingsProvider_EmbedTextsOutput,\n type EmbeddingsProvider_TextPurpose,\n ProviderProtocolRuntimeKind,\n} from '@wildo-ai/external-connectors-models';\nimport type { AiSdkProviderOptions, EmbeddingsTextPurposeHandling } from '@wildo-ai/external-connectors-private/backend-runtime';\n\nimport type { ProviderCallRecorderBackendService } from '~wildo-backend-lib/flows-actors/services/provider-call-recorder.backend.service';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport type { ExternalProvidersRegistryBackendService } from '~wildo-backend-lib/external-providers/services/external-providers-registry.backend.service';\nimport { resolveProviderContractBaseUrl } from '~wildo-backend-lib/external-providers/services/provider-http-access.backend';\nimport { ProviderClientCredentialsTokenError, ProviderClientCredentialsTokenFailure } from '~wildo-backend-lib/external-providers/services/provider-client-credentials-token.backend';\nimport { resolveProviderAiSdkCredential } from '~wildo-backend-lib/external-providers/services/provider-service-account-token.backend';\nimport type { BackendProviderRegistryBackendService } from '~wildo-backend-lib/external-providers/services/backend-provider-registry.backend.service';\n\nimport { describeCaughtError } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { modelCallFailoverTrigger } from '~wildo-backend-lib/flows-actors/utils/model-call-failover.backend.utils';\nimport type { ModelUsageMeter } from '~wildo-backend-lib/flows-actors/a2a/services/a2a-token-budget.backend.service';\nimport { admitModelUsageCall, buildModelUsageCeilingError, resolveModelUsageCall } from '~wildo-backend-lib/flows-actors/a2a/services/model-usage-ceiling.backend.utils';\nimport { ESTIMATED_CHARACTERS_PER_TOKEN } from '~wildo-backend-lib/flows-actors/services/model-call-token-estimate.backend.utils';\nimport {\n EMBEDDING_MODEL_PROVIDER_ACCOUNT_REFUSAL_IS_FINAL,\n readModelProviderAccountRefusal,\n} from '~wildo-backend-lib/flows-actors/utils/model-call-error-description.backend.utils';\n/**\n * Engine-side ceiling on texts per physical embedding request, combined with the provider's\n * declared `maxTextsPerBatch` as `min(provider, engine)`. Exists because a provider ceiling\n * (OpenAI: 2048 inputs) bounds REQUEST COUNT, not payload size — 2048 two-kilobyte chunks is a\n * ~4 MB request body; 256 keeps a worst-case batch well under typical body limits while still\n * amortizing per-request overhead across a whole chunk set.\n */\nexport const EMBEDDINGS_ENGINE_MAX_TEXTS_PER_CALL = 256;\n\n/**\n * The `agentRef` embeddings traces carry. Not a registered flows-actors agent — embeddings are a\n * protocol-kind execution, not an agent modality (DL2) — but the trace contract keys analytics\n * spans on `agentRef`, so the engine names its embedding executor stably here.\n */\nexport const EMBEDDINGS_TRACE_AGENT_REF = 'engine:embeddings';\n\n/** The resolved class→provider→model binding — the stamp identity chunk rows carry (DL2 migration key). */\nexport interface EmbeddingsResolvedBinding {\n /** The applicability class the binding was resolved FOR — persisted as `embeddingClass`. */\n applicability: Embeddings_Applicability;\n providerRef: string;\n /** Concrete model id — persisted as `embeddingModel`. Never authored at a call site. */\n model: string;\n /** The model's catalog dimension — persisted as `embeddingDims`, verified against measured vectors. */\n dims: number;\n /** Effective per-call text ceiling: `min(provider-declared, engine ceiling)`. */\n maxTextsPerBatch: number;\n /** Provider-declared retry posture, forwarded to the AI-SDK call. */\n maxRetries?: number;\n}\n\n/** The provider an embedding call was handed from, and why (#2301): named on the serving provider's trace input. */\ninterface EmbeddingsFailoverAttribution {\n readonly providerRef: string;\n readonly trigger: ProviderCallFailoverTrigger;\n}\n\n/** Discriminated \"is embedding possible here?\" answer — see the file header's failure posture. */\nexport type EmbeddingsBindingResolution =\n | { configured: true; binding: EmbeddingsResolvedBinding }\n | {\n configured: false;\n /**\n * Why nothing is configured — for the drain worker's single WARN. Always the benign shape\n * (capability off / no provider declared); broken-but-selected states THROW instead.\n */\n reason: 'no_provider_for_capability';\n };\n\nexport interface EmbedTextsRequest {\n texts: readonly string[];\n purpose: EmbeddingsProvider_TextPurpose;\n applicability: Embeddings_Applicability;\n /**\n * Explicit work attribution for the whole call (#1598): tenant and run. Wins over the ambient work frame.\n * Never sent to the provider.\n */\n attribution?: ModelCallAttributionInput;\n /**\n * The case each text belongs to, aligned with `texts` (#1598 §6). When present, the call is attributed per\n * case with an `APPORTIONED_BY_INPUT_LENGTH` share (each text's length over the call's total). Every text\n * must belong to the tenant of `attribution`: the caller groups by tenant before calling, so one call never\n * spans two tenants (I8). A length mismatch is ignored (the call is attributed whole), never guessed.\n */\n caseRefPerText?: readonly (WorkUnitRef | undefined)[];\n}\n\n@injectable()\nexport class EmbeddingsBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger)\n private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService)\n private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService)\n private readonly externalProvidersRegistry: ExternalProvidersRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.BackendProviderRegistryService)\n private readonly backendProviderRegistry: BackendProviderRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.AgentCallTraceSink)\n @optional()\n private readonly agentTraceSink?: AgentCallTraceSink,\n @inject(SAAS_SERVICE_TYPES.AgentTraceabilityPolicy)\n @optional()\n private readonly agentTracePolicy?: AgentTraceabilityPolicy,\n // Appended LAST, like the two above: called for EVERY provider call, before the traceability gate.\n @inject(SAAS_SERVICE_TYPES.ProviderCallRecorder)\n @optional()\n private readonly providerCallRecorder?: ProviderCallRecorderBackendService,\n // #3030: the organization's embedding-token ceiling, asked before every call and charged after it. Appended LAST.\n @inject(SAAS_SERVICE_TYPES.A2ATokenBudgetService)\n @optional()\n private readonly modelUsage?: ModelUsageMeter,\n ) {\n this.logDebug = this.logger.debugByType('EmbeddingsBackendService');\n this.logger.setDebugTypeLogging('EmbeddingsBackendService', false);\n }\n\n /**\n * Resolve the current class→provider→model binding, or report \"not configured\".\n *\n * `configured: false` covers exactly the benign absence (capability disabled, or no declared\n * provider fills `AI_EMBEDDINGS`). A provider that IS selected but cannot serve — contract\n * missing, `embedTexts` undeclared, model unresolvable for the class — THROWS a named\n * CONFIGURATION error: that is an operator mistake, and returning \"not configured\" for it\n * would make a misconfiguration indistinguishable from a deliberate opt-out.\n */\n public resolveBinding(applicability: Embeddings_Applicability): EmbeddingsBindingResolution {\n const providerRef = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(\n EngineCapability.AI_EMBEDDINGS,\n );\n if (!providerRef) {\n return { configured: false, reason: 'no_provider_for_capability' };\n }\n return { configured: true, binding: this.resolveBindingForProvider(applicability, providerRef) };\n }\n\n /**\n * The class→model binding of ONE provider, refusing with a CONFIGURATION error every defect {@link resolveBinding}\n * refuses. Shared by the selected provider and each call-time failover provider (#2301), so a failover provider is held\n * to exactly the contract, model and text-role checks a selected one is.\n */\n private resolveBindingForProvider(applicability: Embeddings_Applicability, providerRef: string): EmbeddingsResolvedBinding {\n const runtimeContract = this.externalProvidersRegistry.getProviderRuntimeContract(\n providerRef,\n ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER,\n );\n if (runtimeContract?.kind !== ProviderProtocolRuntimeKind.EMBEDDINGS) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\" is selected for AI_EMBEDDINGS but declares no EMBEDDINGS_PROVIDER runtime contract.`,\n },\n });\n }\n\n const semanticOperations = this.externalProvidersRegistry.getEmbeddingsSemanticOperationKeys(providerRef);\n if (!semanticOperations.includes(EmbeddingsProvider_OperationKey.EMBED_TEXTS)) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\"'s embeddings contract does not declare the embedTexts operation.`,\n },\n });\n }\n\n /*\n * The models a registry provider declares itself (#2516): read from a module no compilation here checked, so held to\n * their shape first. A wrong `dims` is the costliest error on this lane, since it decides which vector index a chunk\n * enters; the measured-dims check below would catch it, but only after the texts had left for the provider.\n */\n const modelsDefect = describeEmbeddingsModelDeclarationsDefect(runtimeContract.models);\n if (modelsDefect !== undefined) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\" declares embedding models that ${modelsDefect}, and cannot be used. `\n + 'Each declared model needs a non-empty `model`, its published `dims` and known `applicabilities`.',\n },\n });\n }\n\n // #3427: how a text's role reaches the vendor is declared on every embeddings arm, and a registry module's declaration\n // was compiled by nothing here. Checked before resolution so a drain run refuses before any text leaves.\n this.assertTextPurposeHandlingUsable(providerRef, runtimeContract.textPurposeHandling);\n\n const resolution = resolveEmbeddingsModelForApplicability({ applicability, providerRef, declaredModels: runtimeContract.models ?? [] });\n // `=== false` rather than `!…`: this compiler configuration narrows the literal-discriminant\n // union on the explicit comparison but not on the truthiness form (measured, not assumed).\n if (resolution.resolved === false) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n applicability,\n failure: resolution.failure,\n consideredModels: resolution.consideredModels,\n message: `No embedding model resolves for applicability class \"${applicability}\" on provider \"${providerRef}\".`,\n },\n });\n }\n\n return {\n applicability,\n providerRef,\n model: resolution.model,\n dims: resolution.dims,\n maxTextsPerBatch: Math.min(\n runtimeContract.maxTextsPerBatch ?? EMBEDDINGS_ENGINE_MAX_TEXTS_PER_CALL,\n EMBEDDINGS_ENGINE_MAX_TEXTS_PER_CALL,\n ),\n maxRetries: runtimeContract.maxRetries,\n };\n }\n\n /**\n * Embed ONE batch of texts under an applicability class (≤ the binding's `maxTextsPerBatch` —\n * paging a larger population into batches is the CALLER's job, because the caller owns the\n * run-level bounds and truncation reporting; this service owns one physical call).\n *\n * assurance-control: WILDO.INTEGRATION.OUTBOUND_ACTIVITY_AUDIT — this is the ONE egress through\n * which application text leaves for an external embeddings provider; every physical call emits a\n * kind-EMBEDDING agent-call trace (provider, model, token usage, outcome) through the standard\n * sink chain.\n * assurance-control: WILDO.PRIVACY.DATA_MINIMIZATION — only the texts being embedded reach the\n * provider (no row context, no identifiers), and observability surfaces receive SUMMARIES only:\n * raw vectors and raw texts never enter traces, analytics, or logs at any verbosity.\n *\n * Verifies, before anything can be persisted: one vector per text, uniform measured dimension,\n * and measured dimension === the catalog's declared dimension for the resolved model (a\n * wrong-dims write would silently poison the ANN index the dims stamp keys). API keys are read\n * through the standard provider-secret path and never logged.\n *\n * #3030: asked of the organization's embedding-token ceiling (`ai.embeddings.tokensPerPeriod`) BEFORE anything reaches\n * the provider, and charged the input tokens as soon as the provider answers, before its answer is checked (the\n * provider's report, else an estimate at four characters per token). A spent or unverifiable ceiling throws the ceiling's error (`modelUsageCeilingRefusalOf`\n * recognises it) with no provider call and no trace: the drain leaves the batch unembedded, a retrieval searches by\n * wording only.\n */\n public async embedTexts(request: EmbedTextsRequest): Promise<EmbeddingsProvider_EmbedTextsOutput> {\n const resolutionResult = this.resolveBinding(request.applicability);\n if (!resolutionResult.configured) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n applicability: request.applicability,\n message: 'embedTexts was called with no AI_EMBEDDINGS provider configured. '\n + 'Callers must consult resolveBinding() first — the drain worker does, and reports the absence as a WARN.',\n },\n });\n }\n const binding = resolutionResult.binding;\n\n if (request.texts.length === 0 || request.texts.length > binding.maxTextsPerBatch) {\n throw this.errorBuilder.buildError(ErrorType.VALIDATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n textCount: request.texts.length,\n maxTextsPerBatch: binding.maxTextsPerBatch,\n message: 'embedTexts takes 1..maxTextsPerBatch texts per call — batching a larger population is the caller\\'s job.',\n },\n });\n }\n\n // #3030: the ceiling is asked before the key is read and before any text leaves.\n const usageCall = await resolveModelUsageCall(ModelUsageUnit.EMBEDDING_TOKENS, request.attribution, this.providerCallRecorder);\n const refusal = await admitModelUsageCall(this.modelUsage, usageCall);\n if (refusal) throw buildModelUsageCeilingError(this.errorBuilder, refusal);\n\n // #2301: a call the provider failed transiently is handed to the next provider the selection declares in `failover`,\n // but only one serving the SAME model at the same dimension (`prepareEmbeddingsFailover`): a vector from another\n // model is not comparable with the corpus, and is never written or searched with.\n let current = binding;\n const attemptedProviderRefs = [binding.providerRef];\n let failedOverFrom: EmbeddingsFailoverAttribution | undefined;\n for (;;) {\n try {\n return await this.embedThrough(request, current, usageCall, failedOverFrom);\n } catch (error) {\n const trigger = modelCallFailoverTrigger(error);\n if (trigger === undefined) throw error;\n const next = this.prepareEmbeddingsFailover(request, binding, attemptedProviderRefs);\n if (next === undefined) throw error;\n this.logger.warn('An embeddings call failed over to the next declared provider serving the same model', {\n capability: EngineCapability.AI_EMBEDDINGS,\n failedProviderRef: current.providerRef,\n failoverProviderRef: next.providerRef,\n model: binding.model,\n trigger,\n });\n failedOverFrom = { providerRef: current.providerRef, trigger };\n current = next;\n }\n }\n }\n\n /**\n * One provider's embedding call (#2301 split it out of {@link embedTexts}, which may ask several): its credential and\n * client, the call, the usage charge, the vector checks and its own trace, which names the provider before it when it\n * was a failover.\n */\n private async embedThrough(\n request: EmbedTextsRequest,\n binding: EmbeddingsResolvedBinding,\n usageCall: Awaited<ReturnType<typeof resolveModelUsageCall>>,\n failedOverFrom: EmbeddingsFailoverAttribution | undefined,\n ): Promise<EmbeddingsProvider_EmbedTextsOutput> {\n const protocolKind = ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER;\n const apiKey = this.externalProvidersRegistry.getProviderApiKey(binding.providerRef, protocolKind);\n if (!apiKey) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef: binding.providerRef,\n protocolKind,\n message: this.externalProvidersRegistry.describeMissingProviderApiKey(binding.providerRef, protocolKind),\n },\n });\n }\n\n const contract = this.backendProviderRegistry.getRuntimeContract(binding.providerRef, protocolKind);\n if (contract?.kind !== ProviderProtocolRuntimeKind.EMBEDDINGS) {\n // Unreachable past resolveBinding() unless the registry mutated mid-call; named anyway.\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: { providerRef: binding.providerRef, message: 'Embeddings runtime contract vanished between resolution and invocation.' },\n });\n }\n // #2518: the endpoint is resolved by the engine (a fixed `baseUrl`, or the deployment's host from a declared host slot,\n // a loopback double only in development and test) and handed to the factory, which never reads the environment.\n const endpoint = resolveProviderContractBaseUrl({\n providerRef: binding.providerRef,\n contractLabel: 'embeddings',\n contract,\n hostAdmission: () => ({\n declaredSlots: this.externalProvidersRegistry.getProviderSecretSlots(binding.providerRef),\n environment: this.externalProvidersRegistry.getDeclaredApplicationEnvironment(),\n }),\n });\n if ('refusal' in endpoint) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: { providerRef: binding.providerRef, message: endpoint.refusal },\n });\n }\n // #3425: a service-account arm is handed a bearer token minted from the key, never the key, and its deployment\n // parameters (a project, a location) come from their declared slots. Shared with the LLM path.\n let resolvedCredential: Awaited<ReturnType<typeof resolveProviderAiSdkCredential>>;\n try {\n resolvedCredential = await resolveProviderAiSdkCredential({\n providerRef: binding.providerRef,\n arm: contract,\n secretValue: apiKey,\n readSlot: (envVarName) => this.externalProvidersRegistry.getProviderSecret(binding.providerRef, protocolKind, envVarName),\n });\n } catch (error) {\n if (!(error instanceof ProviderClientCredentialsTokenError)) throw error;\n const configuration = error.failure === ProviderClientCredentialsTokenFailure.NOT_CONFIGURED;\n throw this.errorBuilder.buildError(configuration ? ErrorType.CONFIGURATION : ErrorType.EXTERNAL_SERVICE, undefined, {\n customMessageReference: configuration ? ErrorCustomMessageReference.CONFIGURATION : ErrorCustomMessageReference.EXTERNAL_SERVICE,\n context: { providerRef: binding.providerRef, protocolKind, message: error.message },\n });\n }\n const client = (await contract.sdkFactory(resolvedCredential.credential, {\n baseUrl: endpoint.baseUrl,\n ...(resolvedCredential.deploymentParameters === undefined ? {} : { deploymentParameters: resolvedCredential.deploymentParameters }),\n })) as { textEmbeddingModel?: (model: string) => unknown };\n if (typeof client?.textEmbeddingModel !== 'function') {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef: binding.providerRef,\n message: 'The embeddings provider\\'s SDK client exposes no textEmbeddingModel() — its sdkFactory does not serve the embeddings contract.',\n },\n });\n }\n\n // #3427: the role of these texts, in the form the provider declared its vendor reads it (nothing for a vendor with none).\n const providerOptions = this.providerOptionsForPurpose(binding.providerRef, contract.textPurposeHandling, request.purpose);\n\n const startTime = Date.now();\n const callTimestamp = new Date(startTime).toISOString();\n try {\n const result = await embedMany({\n // #3204: a refused account (no credits, a spend limit) is final inside the SDK's retry loop.\n model: wrapEmbeddingModel({ model: client.textEmbeddingModel(binding.model) as never, middleware: EMBEDDING_MODEL_PROVIDER_ACCOUNT_REFUSAL_IS_FINAL }),\n values: [...request.texts],\n ...(providerOptions !== undefined ? { providerOptions } : {}),\n ...(binding.maxRetries !== undefined ? { maxRetries: binding.maxRetries } : {}),\n });\n\n // #3030: charged as soon as the provider ANSWERED (review F4), before any check of the answer: a batch the checks\n // below refuse (misaligned, mixed or wrong dimensions) was still billed, so it still spends the organization's\n // embedding ceiling. A provider that reported no usage is charged an estimate from the characters it was sent,\n // never nothing (the generation charge's rule, `model-call-token-estimate`).\n const inputTokens = typeof result.usage?.tokens === 'number' ? result.usage.tokens : undefined;\n this.modelUsage?.recordModelUsage(usageCall, inputTokens ?? Math.max(1, Math.ceil(\n request.texts.reduce((total, text) => total + text.length, 0) / ESTIMATED_CHARACTERS_PER_TOKEN,\n )));\n\n const vectors = result.embeddings as number[][];\n if (vectors.length !== request.texts.length) {\n throw new Error(\n `Embeddings provider returned ${vectors.length} vectors for ${request.texts.length} texts — refusing a misaligned batch.`,\n );\n }\n const measuredDims = vectors[0]?.length ?? 0;\n if (vectors.some((vector) => vector.length !== measuredDims)) {\n throw new Error('Embeddings provider returned vectors of mixed dimensions within one batch — refusing.');\n }\n if (measuredDims !== binding.dims) {\n // Fail CLOSED: persisting under a wrong dims stamp poisons the per-dims ANN index and\n // every similarity comparison. The batch stays unembedded and the drain retries.\n throw new Error(\n `Embeddings model \"${binding.model}\" returned ${measuredDims}-dimensional vectors but its catalog row declares ${binding.dims} — refusing to stamp a wrong dimension.`,\n );\n }\n\n const output: EmbeddingsProvider_EmbedTextsOutput = {\n vectors,\n model: binding.model,\n dims: measuredDims,\n usage: { ...(inputTokens !== undefined ? { inputTokens } : {}) },\n };\n await this.emitEmbeddingTrace(request, binding, {\n failedOverFrom,\n outcome: AgentCallOutcome.SUCCESS,\n callTimestamp,\n startTime,\n vectorCount: vectors.length,\n dims: measuredDims,\n inputTokens,\n });\n return output;\n } catch (error) {\n await this.emitEmbeddingTrace(request, binding, {\n failedOverFrom,\n outcome: AgentCallOutcome.FAILURE,\n callTimestamp,\n startTime,\n error,\n });\n // #3204: a provider account's refusal is the environment's condition, answered as the classified 502 every model\n // call answers it with; every other failure reaches the caller exactly as before.\n const refusal = readModelProviderAccountRefusal(error, binding.providerRef);\n if (refusal !== undefined) {\n throw this.errorBuilder.buildError(ErrorType.EXTERNAL_SERVICE, undefined, {\n customMessageReference: ErrorCustomMessageReference.MODEL_PROVIDER_ACCOUNT_REFUSED,\n context: { operation: 'EMBED_TEXTS', ...refusal, message: describeModelProviderAccountRefusal(refusal) },\n });\n }\n throw error;\n }\n }\n\n /**\n * The next declared failover provider that can take this embedding call (#2301), resolved, or `undefined`.\n *\n * Candidates come from `getFailoverProvidersForEngineCapability`, which applies the SAME eligibility a selected provider\n * passes (declared in this runtime's scope with `AI_EMBEDDINGS`, loaded — which the application's data residency decides\n * — and bound to its declared processing region). Each is then held to the binding checks (`resolveBindingForProvider`)\n * and to the condition that makes a failover sound for embeddings at all: it resolves the SAME model id at the SAME\n * dimension, with the same handling of a text's role. Vectors from two models are not comparable, so a provider serving\n * another model can never take the call: its vectors would be stamped as the corpus's model, or be searched against a\n * corpus they do not belong to. A provider serving the same model elsewhere (OpenAI's `text-embedding-3-small` on OpenAI\n * and on an Azure OpenAI deployment named after it) produces vectors of the same space, so the corpus stamp\n * (`embeddingModel`) stays true. A candidate that fails is skipped with an ERROR log (startup refuses it:\n * `assertDeclaredFailoverProvidersCanServe`), and the caller keeps the failure that started the failover.\n */\n private prepareEmbeddingsFailover(\n request: EmbedTextsRequest,\n primary: EmbeddingsResolvedBinding,\n attemptedProviderRefs: string[],\n ): EmbeddingsResolvedBinding | undefined {\n const candidates = this.externalProvidersRegistry.getFailoverProvidersForEngineCapability(EngineCapability.AI_EMBEDDINGS, [...attemptedProviderRefs]);\n for (const providerRef of candidates) {\n attemptedProviderRefs.push(providerRef);\n const defect = this.describeEmbeddingsFailoverDefect(primary, providerRef);\n if (defect !== undefined) {\n this.logger.error('A declared embeddings failover provider cannot serve and was skipped', {\n capability: EngineCapability.AI_EMBEDDINGS,\n providerRef,\n defect,\n });\n continue;\n }\n const binding = this.resolveBindingForProvider(primary.applicability, providerRef);\n if (request.texts.length > binding.maxTextsPerBatch) {\n this.logger.warn('A declared embeddings failover provider takes fewer texts per call than this batch holds and was skipped', {\n capability: EngineCapability.AI_EMBEDDINGS,\n providerRef,\n textCount: request.texts.length,\n maxTextsPerBatch: binding.maxTextsPerBatch,\n });\n continue;\n }\n return binding;\n }\n return undefined;\n }\n\n /**\n * Why `providerRef` cannot take an embedding call `primary` was bound to (#2301), or `undefined`: its binding does not\n * resolve, it resolves another model or dimension, it handles a text's role differently, or it has no credential.\n */\n private describeEmbeddingsFailoverDefect(primary: EmbeddingsResolvedBinding, providerRef: string): string | undefined {\n let binding: EmbeddingsResolvedBinding;\n try {\n binding = this.resolveBindingForProvider(primary.applicability, providerRef);\n } catch (error) {\n return describeCaughtError(error);\n }\n if (binding.model !== primary.model || binding.dims !== primary.dims) {\n return `it resolves the model \"${binding.model}\" (${binding.dims} dimensions) for \"${primary.applicability}\", not \"${primary.model}\" (${primary.dims}): `\n + 'vectors from another model are not comparable with the corpus, so an embeddings failover provider must serve the same model';\n }\n const protocolKind = ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER;\n const kindOf = (ref: string): unknown => (this.externalProvidersRegistry.getProviderRuntimeContract(ref, protocolKind) as { textPurposeHandling?: { kind?: unknown } } | undefined)?.textPurposeHandling?.kind;\n if (kindOf(providerRef) !== kindOf(primary.providerRef)) {\n return 'it carries a text\\'s role (query or document) differently from the selected provider, which changes the vectors';\n }\n if (!this.externalProvidersRegistry.getProviderApiKey(providerRef, protocolKind)) {\n return this.externalProvidersRegistry.describeMissingProviderApiKey(providerRef, protocolKind);\n }\n return undefined;\n }\n\n /**\n * Refuses startup when a provider the `AI_EMBEDDINGS` selection declares in its `failover` list could not take the\n * selected provider's calls (#2301): not eligible on this runtime (not loaded, which a data residency refusal causes, or\n * not declared for the capability in this scope), or {@link describeEmbeddingsFailoverDefect} for any applicability\n * class the selected provider serves. Nothing is checked when the capability is disabled or nothing is declared.\n */\n public assertDeclaredFailoverProvidersCanServe(): void {\n const capability = EngineCapability.AI_EMBEDDINGS;\n if (!this.externalProvidersRegistry.isEngineCapabilityEnabled(capability)) return;\n const declared = this.externalProvidersRegistry.getDeclaredFailoverProviders(capability);\n if (declared.length === 0) return;\n const primaryRef = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(capability);\n if (primaryRef === undefined) return;\n const eligible = this.externalProvidersRegistry.getFailoverProvidersForEngineCapability(capability, [primaryRef]);\n const defects: string[] = [];\n for (const providerRef of declared) {\n if (providerRef === primaryRef) continue;\n if (!eligible.includes(providerRef)) {\n defects.push(`\"${providerRef}\" is not available on this runtime (not loaded — a data residency refusal unloads a provider — or not declared for ${capability} in this scope)`);\n continue;\n }\n for (const applicability of Object.values(Embeddings_Applicability)) {\n let primary: EmbeddingsResolvedBinding;\n try {\n primary = this.resolveBindingForProvider(applicability, primaryRef);\n } catch {\n continue; // The selected provider serves no model for this class: nothing for a failover provider to match.\n }\n const defect = this.describeEmbeddingsFailoverDefect(primary, providerRef);\n if (defect !== undefined) defects.push(`\"${providerRef}\" cannot take \"${applicability}\" calls: ${defect}`);\n }\n }\n if (defects.length === 0) return;\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message: `A declared embeddings failover provider cannot take the selected provider's calls: ${defects.join('; ')}. `\n + 'Fix it, or remove it from the AI_EMBEDDINGS `failover` list.',\n defects,\n },\n });\n }\n\n /**\n * Refuses, as a named CONFIGURATION error, an embeddings arm whose `textPurposeHandling` is absent or malformed (#3427).\n * Fails closed rather than embedding without a role: for a vendor that distinguishes roles, a missing declaration means\n * the SDK's default role on both sides (Cohere: `search_query`), which ranks worse and says nothing.\n */\n private assertTextPurposeHandlingUsable(providerRef: string, handling: unknown): asserts handling is EmbeddingsTextPurposeHandling {\n const defect = describeEmbeddingsTextPurposeHandlingDefect(handling);\n if (defect !== undefined) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\"'s embeddings arm ${defect}, and cannot be used.`,\n },\n });\n }\n }\n\n /**\n * The AI-SDK `providerOptions` that carry `purpose` to the vendor, or `undefined` for a vendor with no role (#3427).\n * Re-checked here as well as in {@link resolveBinding}: this reads the contract the call is built from, and the role\n * must never fall back to the SDK default because that contract and the one resolved could differ.\n */\n private providerOptionsForPurpose(\n providerRef: string,\n handling: unknown,\n purpose: EmbeddingsProvider_TextPurpose,\n ): AiSdkProviderOptions | undefined {\n this.assertTextPurposeHandlingUsable(providerRef, handling);\n return handling.kind === EmbeddingsProvider_TextPurposeHandlingKind.SDK_PROVIDER_OPTIONS\n ? handling.providerOptionsByPurpose[purpose]\n : undefined;\n }\n\n /**\n * One trace per physical embedding call — kind EMBEDDING, summaries only (file header: raw\n * vectors and raw texts never enter the trace). Best-effort: a sink failure never turns a\n * successful embedding into a failed one (the agents-service discipline).\n */\n private async emitEmbeddingTrace(\n request: EmbedTextsRequest,\n binding: EmbeddingsResolvedBinding,\n call: {\n /** #2301: the provider this call was handed from, when it was a failover. */\n failedOverFrom?: EmbeddingsFailoverAttribution;\n outcome: AgentCallOutcome;\n callTimestamp: string;\n startTime: number;\n vectorCount?: number;\n dims?: number;\n inputTokens?: number;\n error?: unknown;\n },\n ): Promise<void> {\n const executionTime = Date.now() - call.startTime;\n const trace: AgentCallTrace = {\n agentRef: EMBEDDINGS_TRACE_AGENT_REF,\n kind: AgentCallTraceKind.EMBEDDING,\n provider: binding.providerRef,\n model: binding.model,\n callTimestamp: call.callTimestamp,\n outcome: call.outcome,\n // Summaries by contract — never the texts, never the vectors (file header).\n input: {\n purpose: request.purpose,\n applicability: binding.applicability,\n textCount: request.texts.length,\n totalTextChars: request.texts.reduce((total, text) => total + text.length, 0),\n ...(call.failedOverFrom === undefined ? {} : { failedOverFromProviderRef: call.failedOverFrom.providerRef, failoverTrigger: call.failedOverFrom.trigger }),\n },\n ...(call.outcome === AgentCallOutcome.SUCCESS\n ? { output: { vectorCount: call.vectorCount, dims: call.dims } }\n : {}),\n context: {\n callTimestamp: call.callTimestamp,\n executionTime,\n finishedAt: new Date().toISOString(),\n usage: {\n ...(call.inputTokens !== undefined ? { promptTokens: call.inputTokens, totalTokens: call.inputTokens } : {}),\n // Operation-aware completeness (H4): an embedding has no completion-token dimension,\n // so input tokens alone decide — never flagged incomplete for tokens it cannot have.\n tokenUsageComplete: call.inputTokens !== undefined,\n },\n },\n ...(call.outcome === AgentCallOutcome.FAILURE\n ? {\n error: call.error instanceof Error\n ? { name: call.error.name, message: call.error.message }\n : { message: typeof call.error === 'string' ? call.error : 'Unknown embeddings invocation error' },\n }\n : {}),\n };\n // #2935, decided: an embedding is NOT charged to the organization's model allowance (`a2a.llm.tokensPerPeriod`), the\n // one the agent service charges every generation to. That allowance counts generation tokens, and an embedding token\n // is a different unit: input only, and priced 60–500× lower (OpenAI's price list, 2026-10-19:\n // text-embedding-3-small $0.02 per 1M tokens against gpt-5's $1.25 input / $10 output per 1M), so one indexing run\n // over a corpus would spend an allowance sized for chat. It is bounded by a ceiling in its own unit instead\n // (`ai.embeddings.tokensPerPeriod`, #3030, decided on #2969), asked and charged in `embedTexts`; the call stays\n // attributed and priced per organization through the recorder below.\n // spec-cite: https://developers.openai.com/api/docs/pricing — embeddings and gpt-5 rows.\n // The provider-call RECORD first, ungated: evidence of the call must not depend on whether an\n // observability provider raised the traceability level. The recorder never throws.\n await this.providerCallRecorder?.record(trace, {\n ...(request.attribution ? { attribution: request.attribution } : {}),\n ...(request.caseRefPerText && request.caseRefPerText.length === request.texts.length\n ? { apportionment: request.texts.map((text, index) => ({ inputLength: text.length, ...(request.caseRefPerText![index] ? { caseRef: request.caseRefPerText![index] } : {}) })) }\n : {}),\n });\n const sink = this.agentTraceSink;\n if (!sink) {\n return;\n }\n const level = this.agentTracePolicy?.level ?? AgentTraceabilityLevel.NONE;\n if (level === AgentTraceabilityLevel.NONE) {\n return;\n }\n try {\n await sink.recordAgentCall({ trace, level });\n } catch (sinkError) {\n this.logDebug('Embedding trace sink failed (non-fatal)', {\n providerRef: binding.providerRef,\n error: describeCaughtError(sinkError),\n });\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"embeddings.backend.service.js","sourceRoot":"","sources":["../../../../src/external-providers/services/embeddings.backend.service.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Embeddings execution service — the ONE seam through which the engine turns text into vectors\n * (RAG plan §3.d, DL2).\n *\n * Two callers, one code path — which is what keeps their vector spaces identical:\n * - the `rag:embedding-drain` worker embeds CORPUS chunks (`purpose: CORPUS`);\n * - Phase-5 retrieval embeds QUERIES (`purpose: QUERY`) through this same service, so a query\n * vector and the corpus vectors it searches were produced by the same class→model binding.\n *\n * The purpose is also the text's ROLE, and it reaches the vendor (#3427): each embeddings arm declares\n * `textPurposeHandling`, either the AI-SDK `providerOptions` that carry each role to its vendor\n * (Cohere `search_document` / `search_query`, Voyage `document` / `query`), or that its vendor has no\n * role (OpenAI). Until #3427 the purpose reached the trace only, so Cohere's SDK embedded the corpus\n * with its default, `search_query`, and Voyage's with no role at all.\n *\n * ## Selection is by APPLICABILITY CLASS, never by model id (the standing model-selection rule)\n *\n * A caller names an {@link Embeddings_Applicability} class (`rag-default`); this service resolves\n * 1. the PROVIDER — the application's `EngineCapability.AI_EMBEDDINGS` selection\n * (`defineSaaSProviders` → `selection[AI_EMBEDDINGS].primary`), independent of the chat\n * provider by construction (DL2's whole point);\n * 2. the MODEL — `resolveEmbeddingsModelForApplicability` against the framework catalog for an\n * engine provider, or against the models (and published dimensions) a provider installed from\n * the module registry declares on its embeddings arm (#2516).\n * The resolved `(class, model)` pair is what chunk rows are stamped with, and what the drain\n * worker's migration pass compares stamps against — so a preference edit re-binds the class and\n * the corpus converges onto the new model with no call-site changes.\n *\n * ## Failure posture\n *\n * \"Not configured\" (no provider serves `AI_EMBEDDINGS`) is a NON-ERROR state this service reports\n * through {@link resolveBinding}'s discriminated result — embeddings are an enhancement atop an\n * erasable corpus, and the drain worker turns it into a WARN (repeated only when the backlog grows), never a boot failure.\n * \"Configured but broken\" (provider selected but the contract/model/key is unusable) THROWS a\n * named CONFIGURATION error — that state is an operator mistake that silence would hide forever.\n *\n * ## Observability (H4)\n *\n * Every physical embedding call emits ONE agent-call trace of kind\n * {@link AgentCallTraceKind.EMBEDDING} through the same sink chain generations use — so the\n * PostHog sink can emit its `$ai_embedding` event and the companion filesystem sink records the\n * call. The trace's `output` is ALWAYS a `{ vectorCount, dims }` summary and its `input` a\n * `{ purpose, textCount, totalTextChars }` summary: raw vectors never enter the trace at any\n * verbosity (a vector is a lossy encoding of the source text, not telemetry), and the raw texts\n * stay out because a batch of corpus chunks is content the payload-gating levels were never\n * calibrated for. Usage completeness is OPERATION-AWARE: an embedding has no completion-token\n * dimension, so `tokenUsageComplete` is judged on input tokens alone.\n */\n\nimport { injectable, inject, optional } from 'inversify';\nimport { embedMany, wrapEmbeddingModel } from 'ai';\nimport {\n EngineCapability,\n ErrorType,\n ErrorCustomMessageReference,\n AgentCallOutcome,\n AgentCallTraceKind,\n AgentTraceabilityLevel,\n type AgentCallTrace,\n type AgentCallTraceSink,\n type AgentTraceabilityPolicy,\n type ModelCallAttributionInput,\n type WorkUnitRef,\n ModelUsageUnit,\n describeModelProviderAccountRefusal,\n type ProviderCallFailoverTrigger,\n} from '@wildo-ai/saas-models';\nimport {\n Embeddings_Applicability,\n EmbeddingsProvider_OperationKey,\n ExternalProvider_ExchangeProtocol_Kind,\n resolveEmbeddingsModelForApplicability,\n describeEmbeddingsModelDeclarationsDefect,\n describeEmbeddingsTextPurposeHandlingDefect,\n EmbeddingsProvider_TextPurposeHandlingKind,\n type EmbeddingsProvider_EmbedTextsOutput,\n type EmbeddingsProvider_TextPurpose,\n ProviderProtocolRuntimeKind,\n} from '@wildo-ai/external-connectors-models';\nimport type { AiSdkProviderOptions, EmbeddingsTextPurposeHandling } from '@wildo-ai/external-connectors-private/backend-runtime';\n\nimport type { ProviderCallRecorderBackendService } from '~wildo-backend-lib/flows-actors/services/provider-call-recorder.backend.service';\nimport { SAAS_SERVICE_TYPES } from '~wildo-backend-lib/inject/models/service-types';\nimport type { LoggerService } from '~wildo-backend-lib/monitoring/logger/services/logger.service';\nimport { ErrorBuilderBackendService } from '~wildo-backend-lib/errors/services/error-builder.backend.service';\nimport type { ExternalProvidersRegistryBackendService } from '~wildo-backend-lib/external-providers/services/external-providers-registry.backend.service';\nimport { resolveProviderContractBaseUrl } from '~wildo-backend-lib/external-providers/services/provider-http-access.backend';\nimport { ProviderClientCredentialsTokenError, ProviderClientCredentialsTokenFailure } from '~wildo-backend-lib/external-providers/services/provider-client-credentials-token.backend';\nimport { resolveProviderAiSdkCredential } from '~wildo-backend-lib/external-providers/services/provider-service-account-token.backend';\nimport type { BackendProviderRegistryBackendService } from '~wildo-backend-lib/external-providers/services/backend-provider-registry.backend.service';\n\nimport { describeCaughtError } from '~wildo-backend-lib/errors/utils/error-log-level-classification.backend.utils';\nimport { modelCallFailoverTrigger } from '~wildo-backend-lib/flows-actors/utils/model-call-failover.backend.utils';\nimport type { ModelUsageMeter } from '~wildo-backend-lib/flows-actors/a2a/services/a2a-token-budget.backend.service';\nimport { admitModelUsageCall, buildModelUsageCeilingError, resolveModelUsageCall } from '~wildo-backend-lib/flows-actors/a2a/services/model-usage-ceiling.backend.utils';\nimport { ESTIMATED_CHARACTERS_PER_TOKEN } from '~wildo-backend-lib/flows-actors/services/model-call-token-estimate.backend.utils';\nimport {\n EMBEDDING_MODEL_PROVIDER_ACCOUNT_REFUSAL_IS_FINAL,\n readModelProviderAccountRefusal,\n} from '~wildo-backend-lib/flows-actors/utils/model-call-error-description.backend.utils';\n/**\n * Engine-side ceiling on texts per physical embedding request, combined with the provider's\n * declared `maxTextsPerBatch` as `min(provider, engine)`. Exists because a provider ceiling\n * (OpenAI: 2048 inputs) bounds REQUEST COUNT, not payload size — 2048 two-kilobyte chunks is a\n * ~4 MB request body; 256 keeps a worst-case batch well under typical body limits while still\n * amortizing per-request overhead across a whole chunk set.\n */\nexport const EMBEDDINGS_ENGINE_MAX_TEXTS_PER_CALL = 256;\n\n/**\n * The `agentRef` embeddings traces carry. Not a registered flows-actors agent — embeddings are a\n * protocol-kind execution, not an agent modality (DL2) — but the trace contract keys analytics\n * spans on `agentRef`, so the engine names its embedding executor stably here.\n */\nexport const EMBEDDINGS_TRACE_AGENT_REF = 'engine:embeddings';\n\n/** The resolved class→provider→model binding — the stamp identity chunk rows carry (DL2 migration key). */\nexport interface EmbeddingsResolvedBinding {\n /** The applicability class the binding was resolved FOR — persisted as `embeddingClass`. */\n applicability: Embeddings_Applicability;\n providerRef: string;\n /** Concrete model id — persisted as `embeddingModel`. Never authored at a call site. */\n model: string;\n /** The model's catalog dimension — persisted as `embeddingDims`, verified against measured vectors. */\n dims: number;\n /** Effective per-call text ceiling: `min(provider-declared, engine ceiling)`. */\n maxTextsPerBatch: number;\n /** Provider-declared retry posture, forwarded to the AI-SDK call. */\n maxRetries?: number;\n}\n\n/** The provider an embedding call was handed from, and why (#2301): named on the serving provider's trace input. */\ninterface EmbeddingsFailoverAttribution {\n readonly providerRef: string;\n readonly trigger: ProviderCallFailoverTrigger;\n}\n\n/** Discriminated \"is embedding possible here?\" answer — see the file header's failure posture. */\nexport type EmbeddingsBindingResolution =\n | { configured: true; binding: EmbeddingsResolvedBinding }\n | {\n configured: false;\n /**\n * Why nothing is configured — for the drain worker's single WARN. Always the benign shape\n * (capability off / no provider declared); broken-but-selected states THROW instead.\n */\n reason: 'no_provider_for_capability';\n };\n\nexport interface EmbedTextsRequest {\n texts: readonly string[];\n purpose: EmbeddingsProvider_TextPurpose;\n applicability: Embeddings_Applicability;\n /**\n * Explicit work attribution for the whole call (#1598): tenant and run. Wins over the ambient work frame.\n * Never sent to the provider.\n */\n attribution?: ModelCallAttributionInput;\n /**\n * The case each text belongs to, aligned with `texts` (#1598 §6). When present, the call is attributed per\n * case with an `APPORTIONED_BY_INPUT_LENGTH` share (each text's length over the call's total). Every text\n * must belong to the tenant of `attribution`: the caller groups by tenant before calling, so one call never\n * spans two tenants (I8). A length mismatch is ignored (the call is attributed whole), never guessed.\n */\n caseRefPerText?: readonly (WorkUnitRef | undefined)[];\n}\n\n@injectable()\nexport class EmbeddingsBackendService {\n protected logDebug: (message: string, context?: Record<string, unknown>) => void;\n\n constructor(\n @inject(SAAS_SERVICE_TYPES.Logger)\n private readonly logger: LoggerService,\n @inject(SAAS_SERVICE_TYPES.ErrorBuilderService)\n private readonly errorBuilder: ErrorBuilderBackendService,\n @inject(SAAS_SERVICE_TYPES.ExternalProvidersRegistryService)\n private readonly externalProvidersRegistry: ExternalProvidersRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.BackendProviderRegistryService)\n private readonly backendProviderRegistry: BackendProviderRegistryBackendService,\n @inject(SAAS_SERVICE_TYPES.AgentCallTraceSink)\n @optional()\n private readonly agentTraceSink?: AgentCallTraceSink,\n @inject(SAAS_SERVICE_TYPES.AgentTraceabilityPolicy)\n @optional()\n private readonly agentTracePolicy?: AgentTraceabilityPolicy,\n // Appended LAST, like the two above: called for EVERY provider call, before the traceability gate.\n @inject(SAAS_SERVICE_TYPES.ProviderCallRecorder)\n @optional()\n private readonly providerCallRecorder?: ProviderCallRecorderBackendService,\n // #3030: the organization's embedding-token ceiling, asked before every call and charged after it. Appended LAST.\n @inject(SAAS_SERVICE_TYPES.A2ATokenBudgetService)\n @optional()\n private readonly modelUsage?: ModelUsageMeter,\n ) {\n this.logDebug = this.logger.debugByType('EmbeddingsBackendService');\n this.logger.setDebugTypeLogging('EmbeddingsBackendService', false);\n }\n\n /**\n * Resolve the current class→provider→model binding, or report \"not configured\".\n *\n * `configured: false` covers exactly the benign absence (capability disabled, or no declared\n * provider fills `AI_EMBEDDINGS`). A provider that IS selected but cannot serve — contract\n * missing, `embedTexts` undeclared, model unresolvable for the class — THROWS a named\n * CONFIGURATION error: that is an operator mistake, and returning \"not configured\" for it\n * would make a misconfiguration indistinguishable from a deliberate opt-out.\n */\n public resolveBinding(applicability: Embeddings_Applicability): EmbeddingsBindingResolution {\n const providerRef = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(\n EngineCapability.AI_EMBEDDINGS,\n );\n if (!providerRef) {\n return { configured: false, reason: 'no_provider_for_capability' };\n }\n return { configured: true, binding: this.resolveBindingForProvider(applicability, providerRef) };\n }\n\n /**\n * The class→model binding of ONE provider, refusing with a CONFIGURATION error every defect {@link resolveBinding}\n * refuses. Shared by the selected provider and each call-time failover provider (#2301), so a failover provider is held\n * to exactly the contract, model and text-role checks a selected one is.\n */\n private resolveBindingForProvider(applicability: Embeddings_Applicability, providerRef: string): EmbeddingsResolvedBinding {\n const runtimeContract = this.externalProvidersRegistry.getProviderRuntimeContract(\n providerRef,\n ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER,\n );\n if (runtimeContract?.kind !== ProviderProtocolRuntimeKind.EMBEDDINGS) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\" is selected for AI_EMBEDDINGS but declares no EMBEDDINGS_PROVIDER runtime contract.`,\n },\n });\n }\n\n const semanticOperations = this.externalProvidersRegistry.getEmbeddingsSemanticOperationKeys(providerRef);\n if (!semanticOperations.includes(EmbeddingsProvider_OperationKey.EMBED_TEXTS)) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\"'s embeddings contract does not declare the embedTexts operation.`,\n },\n });\n }\n\n /*\n * The models a registry provider declares itself (#2516): read from a module no compilation here checked, so held to\n * their shape first. A wrong `dims` is the costliest error on this lane, since it decides which vector index a chunk\n * enters; the measured-dims check below would catch it, but only after the texts had left for the provider.\n */\n const modelsDefect = describeEmbeddingsModelDeclarationsDefect(runtimeContract.models);\n if (modelsDefect !== undefined) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\" declares embedding models that ${modelsDefect}, and cannot be used. `\n + 'Each declared model needs a non-empty `model`, its published `dims` and known `applicabilities`.',\n },\n });\n }\n\n // #3427: how a text's role reaches the vendor is declared on every embeddings arm, and a registry module's declaration\n // was compiled by nothing here. Checked before resolution so a drain run refuses before any text leaves.\n this.assertTextPurposeHandlingUsable(providerRef, runtimeContract.textPurposeHandling);\n\n const resolution = resolveEmbeddingsModelForApplicability({ applicability, providerRef, declaredModels: runtimeContract.models ?? [] });\n // `=== false` rather than `!…`: this compiler configuration narrows the literal-discriminant\n // union on the explicit comparison but not on the truthiness form (measured, not assumed).\n if (resolution.resolved === false) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n applicability,\n failure: resolution.failure,\n consideredModels: resolution.consideredModels,\n message: `No embedding model resolves for applicability class \"${applicability}\" on provider \"${providerRef}\".`,\n },\n });\n }\n\n return {\n applicability,\n providerRef,\n model: resolution.model,\n dims: resolution.dims,\n maxTextsPerBatch: Math.min(\n runtimeContract.maxTextsPerBatch ?? EMBEDDINGS_ENGINE_MAX_TEXTS_PER_CALL,\n EMBEDDINGS_ENGINE_MAX_TEXTS_PER_CALL,\n ),\n maxRetries: runtimeContract.maxRetries,\n };\n }\n\n /**\n * Embed ONE batch of texts under an applicability class (≤ the binding's `maxTextsPerBatch` —\n * paging a larger population into batches is the CALLER's job, because the caller owns the\n * run-level bounds and truncation reporting; this service owns one physical call).\n *\n * assurance-control: WILDO.INTEGRATION.OUTBOUND_ACTIVITY_AUDIT — this is the ONE egress through\n * which application text leaves for an external embeddings provider; every physical call emits a\n * kind-EMBEDDING agent-call trace (provider, model, token usage, outcome) through the standard\n * sink chain.\n * assurance-control: WILDO.PRIVACY.DATA_MINIMIZATION — only the texts being embedded reach the\n * provider (no row context, no identifiers), and observability surfaces receive SUMMARIES only:\n * raw vectors and raw texts never enter traces, analytics, or logs at any verbosity.\n *\n * Verifies, before anything can be persisted: one vector per text, uniform measured dimension,\n * and measured dimension === the catalog's declared dimension for the resolved model (a\n * wrong-dims write would silently poison the ANN index the dims stamp keys). API keys are read\n * through the standard provider-secret path and never logged.\n *\n * #3030: asked of the organization's embedding-token ceiling (`ai.embeddings.tokensPerPeriod`) BEFORE anything reaches\n * the provider, and charged the input tokens as soon as the provider answers, before its answer is checked (the\n * provider's report, else an estimate at four characters per token). A spent or unverifiable ceiling throws the ceiling's error (`modelUsageCeilingRefusalOf`\n * recognises it) with no provider call and no trace: the drain leaves the batch unembedded, a retrieval searches by\n * wording only.\n */\n public async embedTexts(request: EmbedTextsRequest): Promise<EmbeddingsProvider_EmbedTextsOutput> {\n const resolutionResult = this.resolveBinding(request.applicability);\n if (!resolutionResult.configured) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n applicability: request.applicability,\n message: 'embedTexts was called with no AI_EMBEDDINGS provider configured. '\n + 'Callers must consult resolveBinding() first — the drain worker does, and reports the absence as a WARN.',\n },\n });\n }\n const binding = resolutionResult.binding;\n\n if (request.texts.length === 0 || request.texts.length > binding.maxTextsPerBatch) {\n throw this.errorBuilder.buildError(ErrorType.VALIDATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.VALIDATION,\n context: {\n textCount: request.texts.length,\n maxTextsPerBatch: binding.maxTextsPerBatch,\n message: 'embedTexts takes 1..maxTextsPerBatch texts per call — batching a larger population is the caller\\'s job.',\n },\n });\n }\n\n // #3030: the ceiling is asked before the key is read and before any text leaves.\n const usageCall = await resolveModelUsageCall(ModelUsageUnit.EMBEDDING_TOKENS, request.attribution, this.providerCallRecorder);\n const refusal = await admitModelUsageCall(this.modelUsage, usageCall);\n if (refusal) throw buildModelUsageCeilingError(this.errorBuilder, refusal);\n\n // #2301: a call the provider failed transiently is handed to the next provider the selection declares in `failover`,\n // but only one serving the SAME model at the same dimension (`prepareEmbeddingsFailover`): a vector from another\n // model is not comparable with the corpus, and is never written or searched with.\n let current = binding;\n const attemptedProviderRefs = [binding.providerRef];\n let failedOverFrom: EmbeddingsFailoverAttribution | undefined;\n for (;;) {\n try {\n return await this.embedThrough(request, current, usageCall, failedOverFrom);\n } catch (error) {\n const trigger = modelCallFailoverTrigger(error);\n if (trigger === undefined) throw error;\n const next = this.prepareEmbeddingsFailover(request, binding, attemptedProviderRefs);\n if (next === undefined) throw error;\n this.logger.warn('An embeddings call failed over to the next declared provider serving the same model', {\n capability: EngineCapability.AI_EMBEDDINGS,\n failedProviderRef: current.providerRef,\n failoverProviderRef: next.providerRef,\n model: binding.model,\n trigger,\n });\n failedOverFrom = { providerRef: current.providerRef, trigger };\n current = next;\n }\n }\n }\n\n /**\n * One provider's embedding call (#2301 split it out of {@link embedTexts}, which may ask several): its credential and\n * client, the call, the usage charge, the vector checks and its own trace, which names the provider before it when it\n * was a failover.\n */\n private async embedThrough(\n request: EmbedTextsRequest,\n binding: EmbeddingsResolvedBinding,\n usageCall: Awaited<ReturnType<typeof resolveModelUsageCall>>,\n failedOverFrom: EmbeddingsFailoverAttribution | undefined,\n ): Promise<EmbeddingsProvider_EmbedTextsOutput> {\n const protocolKind = ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER;\n const apiKey = this.externalProvidersRegistry.getProviderApiKey(binding.providerRef, protocolKind);\n if (!apiKey) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef: binding.providerRef,\n protocolKind,\n message: this.externalProvidersRegistry.describeMissingProviderApiKey(binding.providerRef, protocolKind),\n },\n });\n }\n\n const contract = this.backendProviderRegistry.getRuntimeContract(binding.providerRef, protocolKind);\n if (contract?.kind !== ProviderProtocolRuntimeKind.EMBEDDINGS) {\n // Unreachable past resolveBinding() unless the registry mutated mid-call; named anyway.\n throw this.errorBuilder.buildError(ErrorType.INTERNAL, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: { providerRef: binding.providerRef, message: 'Embeddings runtime contract vanished between resolution and invocation.' },\n });\n }\n // #2518: the endpoint is resolved by the engine (a fixed `baseUrl`, or the deployment's host from a declared host slot,\n // a loopback double only in development and test) and handed to the factory, which never reads the environment.\n const endpoint = resolveProviderContractBaseUrl({\n providerRef: binding.providerRef,\n contractLabel: 'embeddings',\n contract,\n hostAdmission: () => ({\n declaredSlots: this.externalProvidersRegistry.getProviderSecretSlots(binding.providerRef),\n environment: this.externalProvidersRegistry.getDeclaredApplicationEnvironment(),\n }),\n });\n if ('refusal' in endpoint) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: { providerRef: binding.providerRef, message: endpoint.refusal },\n });\n }\n // #3425: a service-account arm is handed a bearer token minted from the key, never the key, and its deployment\n // parameters (a project, a location) come from their declared slots. Shared with the LLM path.\n let resolvedCredential: Awaited<ReturnType<typeof resolveProviderAiSdkCredential>>;\n try {\n resolvedCredential = await resolveProviderAiSdkCredential({\n providerRef: binding.providerRef,\n arm: contract,\n secretValue: apiKey,\n readSlot: (envVarName) => this.externalProvidersRegistry.getProviderSecret(binding.providerRef, protocolKind, envVarName),\n });\n } catch (error) {\n if (!(error instanceof ProviderClientCredentialsTokenError)) throw error;\n const configuration = error.failure === ProviderClientCredentialsTokenFailure.NOT_CONFIGURED;\n throw this.errorBuilder.buildError(configuration ? ErrorType.CONFIGURATION : ErrorType.EXTERNAL_SERVICE, undefined, {\n customMessageReference: configuration ? ErrorCustomMessageReference.CONFIGURATION : ErrorCustomMessageReference.EXTERNAL_SERVICE,\n context: { providerRef: binding.providerRef, protocolKind, message: error.message },\n });\n }\n const client = (await contract.sdkFactory(resolvedCredential.credential, {\n baseUrl: endpoint.baseUrl,\n ...(resolvedCredential.deploymentParameters === undefined ? {} : { deploymentParameters: resolvedCredential.deploymentParameters }),\n // #3780: a signing arm's SDK signs each request with these; its credential argument is empty.\n ...(resolvedCredential.requestSigningCredentials === undefined ? {} : { requestSigningCredentials: resolvedCredential.requestSigningCredentials }),\n })) as { textEmbeddingModel?: (model: string) => unknown };\n if (typeof client?.textEmbeddingModel !== 'function') {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef: binding.providerRef,\n message: 'The embeddings provider\\'s SDK client exposes no textEmbeddingModel() — its sdkFactory does not serve the embeddings contract.',\n },\n });\n }\n\n // #3427: the role of these texts, in the form the provider declared its vendor reads it (nothing for a vendor with none).\n const providerOptions = this.providerOptionsForPurpose(binding.providerRef, contract.textPurposeHandling, request.purpose);\n\n const startTime = Date.now();\n const callTimestamp = new Date(startTime).toISOString();\n try {\n const result = await embedMany({\n // #3204: a refused account (no credits, a spend limit) is final inside the SDK's retry loop.\n model: wrapEmbeddingModel({ model: client.textEmbeddingModel(binding.model) as never, middleware: EMBEDDING_MODEL_PROVIDER_ACCOUNT_REFUSAL_IS_FINAL }),\n values: [...request.texts],\n ...(providerOptions !== undefined ? { providerOptions } : {}),\n ...(binding.maxRetries !== undefined ? { maxRetries: binding.maxRetries } : {}),\n });\n\n // #3030: charged as soon as the provider ANSWERED (review F4), before any check of the answer: a batch the checks\n // below refuse (misaligned, mixed or wrong dimensions) was still billed, so it still spends the organization's\n // embedding ceiling. A provider that reported no usage is charged an estimate from the characters it was sent,\n // never nothing (the generation charge's rule, `model-call-token-estimate`).\n const inputTokens = typeof result.usage?.tokens === 'number' ? result.usage.tokens : undefined;\n this.modelUsage?.recordModelUsage(usageCall, inputTokens ?? Math.max(1, Math.ceil(\n request.texts.reduce((total, text) => total + text.length, 0) / ESTIMATED_CHARACTERS_PER_TOKEN,\n )));\n\n const vectors = result.embeddings as number[][];\n if (vectors.length !== request.texts.length) {\n throw new Error(\n `Embeddings provider returned ${vectors.length} vectors for ${request.texts.length} texts — refusing a misaligned batch.`,\n );\n }\n const measuredDims = vectors[0]?.length ?? 0;\n if (vectors.some((vector) => vector.length !== measuredDims)) {\n throw new Error('Embeddings provider returned vectors of mixed dimensions within one batch — refusing.');\n }\n if (measuredDims !== binding.dims) {\n // Fail CLOSED: persisting under a wrong dims stamp poisons the per-dims ANN index and\n // every similarity comparison. The batch stays unembedded and the drain retries.\n throw new Error(\n `Embeddings model \"${binding.model}\" returned ${measuredDims}-dimensional vectors but its catalog row declares ${binding.dims} — refusing to stamp a wrong dimension.`,\n );\n }\n\n const output: EmbeddingsProvider_EmbedTextsOutput = {\n vectors,\n model: binding.model,\n dims: measuredDims,\n usage: { ...(inputTokens !== undefined ? { inputTokens } : {}) },\n };\n await this.emitEmbeddingTrace(request, binding, {\n failedOverFrom,\n outcome: AgentCallOutcome.SUCCESS,\n callTimestamp,\n startTime,\n vectorCount: vectors.length,\n dims: measuredDims,\n inputTokens,\n });\n return output;\n } catch (error) {\n await this.emitEmbeddingTrace(request, binding, {\n failedOverFrom,\n outcome: AgentCallOutcome.FAILURE,\n callTimestamp,\n startTime,\n error,\n });\n // #3204: a provider account's refusal is the environment's condition, answered as the classified 502 every model\n // call answers it with; every other failure reaches the caller exactly as before.\n const refusal = readModelProviderAccountRefusal(error, binding.providerRef);\n if (refusal !== undefined) {\n throw this.errorBuilder.buildError(ErrorType.EXTERNAL_SERVICE, undefined, {\n customMessageReference: ErrorCustomMessageReference.MODEL_PROVIDER_ACCOUNT_REFUSED,\n context: { operation: 'EMBED_TEXTS', ...refusal, message: describeModelProviderAccountRefusal(refusal) },\n });\n }\n throw error;\n }\n }\n\n /**\n * The next declared failover provider that can take this embedding call (#2301), resolved, or `undefined`.\n *\n * Candidates come from `getFailoverProvidersForEngineCapability`, which applies the SAME eligibility a selected provider\n * passes (declared in this runtime's scope with `AI_EMBEDDINGS`, loaded — which the application's data residency decides\n * — and bound to its declared processing region). Each is then held to the binding checks (`resolveBindingForProvider`)\n * and to the condition that makes a failover sound for embeddings at all: it resolves the SAME model id at the SAME\n * dimension, with the same handling of a text's role. Vectors from two models are not comparable, so a provider serving\n * another model can never take the call: its vectors would be stamped as the corpus's model, or be searched against a\n * corpus they do not belong to. A provider serving the same model elsewhere (OpenAI's `text-embedding-3-small` on OpenAI\n * and on an Azure OpenAI deployment named after it) produces vectors of the same space, so the corpus stamp\n * (`embeddingModel`) stays true. A candidate that fails is skipped with an ERROR log (startup refuses it:\n * `assertDeclaredFailoverProvidersCanServe`), and the caller keeps the failure that started the failover.\n */\n private prepareEmbeddingsFailover(\n request: EmbedTextsRequest,\n primary: EmbeddingsResolvedBinding,\n attemptedProviderRefs: string[],\n ): EmbeddingsResolvedBinding | undefined {\n const candidates = this.externalProvidersRegistry.getFailoverProvidersForEngineCapability(EngineCapability.AI_EMBEDDINGS, [...attemptedProviderRefs]);\n for (const providerRef of candidates) {\n attemptedProviderRefs.push(providerRef);\n const defect = this.describeEmbeddingsFailoverDefect(primary, providerRef);\n if (defect !== undefined) {\n this.logger.error('A declared embeddings failover provider cannot serve and was skipped', {\n capability: EngineCapability.AI_EMBEDDINGS,\n providerRef,\n defect,\n });\n continue;\n }\n const binding = this.resolveBindingForProvider(primary.applicability, providerRef);\n if (request.texts.length > binding.maxTextsPerBatch) {\n this.logger.warn('A declared embeddings failover provider takes fewer texts per call than this batch holds and was skipped', {\n capability: EngineCapability.AI_EMBEDDINGS,\n providerRef,\n textCount: request.texts.length,\n maxTextsPerBatch: binding.maxTextsPerBatch,\n });\n continue;\n }\n return binding;\n }\n return undefined;\n }\n\n /**\n * Why `providerRef` cannot take an embedding call `primary` was bound to (#2301), or `undefined`: its binding does not\n * resolve, it resolves another model or dimension, it handles a text's role differently, or it has no credential.\n */\n private describeEmbeddingsFailoverDefect(primary: EmbeddingsResolvedBinding, providerRef: string): string | undefined {\n let binding: EmbeddingsResolvedBinding;\n try {\n binding = this.resolveBindingForProvider(primary.applicability, providerRef);\n } catch (error) {\n return describeCaughtError(error);\n }\n if (binding.model !== primary.model || binding.dims !== primary.dims) {\n return `it resolves the model \"${binding.model}\" (${binding.dims} dimensions) for \"${primary.applicability}\", not \"${primary.model}\" (${primary.dims}): `\n + 'vectors from another model are not comparable with the corpus, so an embeddings failover provider must serve the same model';\n }\n const protocolKind = ExternalProvider_ExchangeProtocol_Kind.EMBEDDINGS_PROVIDER;\n const kindOf = (ref: string): unknown => (this.externalProvidersRegistry.getProviderRuntimeContract(ref, protocolKind) as { textPurposeHandling?: { kind?: unknown } } | undefined)?.textPurposeHandling?.kind;\n if (kindOf(providerRef) !== kindOf(primary.providerRef)) {\n return 'it carries a text\\'s role (query or document) differently from the selected provider, which changes the vectors';\n }\n if (!this.externalProvidersRegistry.getProviderApiKey(providerRef, protocolKind)) {\n return this.externalProvidersRegistry.describeMissingProviderApiKey(providerRef, protocolKind);\n }\n return undefined;\n }\n\n /**\n * Refuses startup when a provider the `AI_EMBEDDINGS` selection declares in its `failover` list could not take the\n * selected provider's calls (#2301): not eligible on this runtime (not loaded, which a data residency refusal causes, or\n * not declared for the capability in this scope), or {@link describeEmbeddingsFailoverDefect} for any applicability\n * class the selected provider serves. Nothing is checked when the capability is disabled or nothing is declared.\n */\n public assertDeclaredFailoverProvidersCanServe(): void {\n const capability = EngineCapability.AI_EMBEDDINGS;\n if (!this.externalProvidersRegistry.isEngineCapabilityEnabled(capability)) return;\n const declared = this.externalProvidersRegistry.getDeclaredFailoverProviders(capability);\n if (declared.length === 0) return;\n const primaryRef = this.externalProvidersRegistry.getPrimaryProviderForEngineCapability(capability);\n if (primaryRef === undefined) return;\n const eligible = this.externalProvidersRegistry.getFailoverProvidersForEngineCapability(capability, [primaryRef]);\n const defects: string[] = [];\n for (const providerRef of declared) {\n if (providerRef === primaryRef) continue;\n if (!eligible.includes(providerRef)) {\n defects.push(`\"${providerRef}\" is not available on this runtime (not loaded — a data residency refusal unloads a provider — or not declared for ${capability} in this scope)`);\n continue;\n }\n for (const applicability of Object.values(Embeddings_Applicability)) {\n let primary: EmbeddingsResolvedBinding;\n try {\n primary = this.resolveBindingForProvider(applicability, primaryRef);\n } catch {\n continue; // The selected provider serves no model for this class: nothing for a failover provider to match.\n }\n const defect = this.describeEmbeddingsFailoverDefect(primary, providerRef);\n if (defect !== undefined) defects.push(`\"${providerRef}\" cannot take \"${applicability}\" calls: ${defect}`);\n }\n }\n if (defects.length === 0) return;\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n message: `A declared embeddings failover provider cannot take the selected provider's calls: ${defects.join('; ')}. `\n + 'Fix it, or remove it from the AI_EMBEDDINGS `failover` list.',\n defects,\n },\n });\n }\n\n /**\n * Refuses, as a named CONFIGURATION error, an embeddings arm whose `textPurposeHandling` is absent or malformed (#3427).\n * Fails closed rather than embedding without a role: for a vendor that distinguishes roles, a missing declaration means\n * the SDK's default role on both sides (Cohere: `search_query`), which ranks worse and says nothing.\n */\n private assertTextPurposeHandlingUsable(providerRef: string, handling: unknown): asserts handling is EmbeddingsTextPurposeHandling {\n const defect = describeEmbeddingsTextPurposeHandlingDefect(handling);\n if (defect !== undefined) {\n throw this.errorBuilder.buildError(ErrorType.CONFIGURATION, undefined, {\n customMessageReference: ErrorCustomMessageReference.CONFIGURATION,\n context: {\n providerRef,\n message: `Provider \"${providerRef}\"'s embeddings arm ${defect}, and cannot be used.`,\n },\n });\n }\n }\n\n /**\n * The AI-SDK `providerOptions` that carry `purpose` to the vendor, or `undefined` for a vendor with no role (#3427).\n * Re-checked here as well as in {@link resolveBinding}: this reads the contract the call is built from, and the role\n * must never fall back to the SDK default because that contract and the one resolved could differ.\n */\n private providerOptionsForPurpose(\n providerRef: string,\n handling: unknown,\n purpose: EmbeddingsProvider_TextPurpose,\n ): AiSdkProviderOptions | undefined {\n this.assertTextPurposeHandlingUsable(providerRef, handling);\n return handling.kind === EmbeddingsProvider_TextPurposeHandlingKind.SDK_PROVIDER_OPTIONS\n ? handling.providerOptionsByPurpose[purpose]\n : undefined;\n }\n\n /**\n * One trace per physical embedding call — kind EMBEDDING, summaries only (file header: raw\n * vectors and raw texts never enter the trace). Best-effort: a sink failure never turns a\n * successful embedding into a failed one (the agents-service discipline).\n */\n private async emitEmbeddingTrace(\n request: EmbedTextsRequest,\n binding: EmbeddingsResolvedBinding,\n call: {\n /** #2301: the provider this call was handed from, when it was a failover. */\n failedOverFrom?: EmbeddingsFailoverAttribution;\n outcome: AgentCallOutcome;\n callTimestamp: string;\n startTime: number;\n vectorCount?: number;\n dims?: number;\n inputTokens?: number;\n error?: unknown;\n },\n ): Promise<void> {\n const executionTime = Date.now() - call.startTime;\n const trace: AgentCallTrace = {\n agentRef: EMBEDDINGS_TRACE_AGENT_REF,\n kind: AgentCallTraceKind.EMBEDDING,\n provider: binding.providerRef,\n model: binding.model,\n callTimestamp: call.callTimestamp,\n outcome: call.outcome,\n // Summaries by contract — never the texts, never the vectors (file header).\n input: {\n purpose: request.purpose,\n applicability: binding.applicability,\n textCount: request.texts.length,\n totalTextChars: request.texts.reduce((total, text) => total + text.length, 0),\n ...(call.failedOverFrom === undefined ? {} : { failedOverFromProviderRef: call.failedOverFrom.providerRef, failoverTrigger: call.failedOverFrom.trigger }),\n },\n ...(call.outcome === AgentCallOutcome.SUCCESS\n ? { output: { vectorCount: call.vectorCount, dims: call.dims } }\n : {}),\n context: {\n callTimestamp: call.callTimestamp,\n executionTime,\n finishedAt: new Date().toISOString(),\n usage: {\n ...(call.inputTokens !== undefined ? { promptTokens: call.inputTokens, totalTokens: call.inputTokens } : {}),\n // Operation-aware completeness (H4): an embedding has no completion-token dimension,\n // so input tokens alone decide — never flagged incomplete for tokens it cannot have.\n tokenUsageComplete: call.inputTokens !== undefined,\n },\n },\n ...(call.outcome === AgentCallOutcome.FAILURE\n ? {\n error: call.error instanceof Error\n ? { name: call.error.name, message: call.error.message }\n : { message: typeof call.error === 'string' ? call.error : 'Unknown embeddings invocation error' },\n }\n : {}),\n };\n // #2935, decided: an embedding is NOT charged to the organization's model allowance (`a2a.llm.tokensPerPeriod`), the\n // one the agent service charges every generation to. That allowance counts generation tokens, and an embedding token\n // is a different unit: input only, and priced 60–500× lower (OpenAI's price list, 2026-10-19:\n // text-embedding-3-small $0.02 per 1M tokens against gpt-5's $1.25 input / $10 output per 1M), so one indexing run\n // over a corpus would spend an allowance sized for chat. It is bounded by a ceiling in its own unit instead\n // (`ai.embeddings.tokensPerPeriod`, #3030, decided on #2969), asked and charged in `embedTexts`; the call stays\n // attributed and priced per organization through the recorder below.\n // spec-cite: https://developers.openai.com/api/docs/pricing — embeddings and gpt-5 rows.\n // The provider-call RECORD first, ungated: evidence of the call must not depend on whether an\n // observability provider raised the traceability level. The recorder never throws.\n await this.providerCallRecorder?.record(trace, {\n ...(request.attribution ? { attribution: request.attribution } : {}),\n ...(request.caseRefPerText && request.caseRefPerText.length === request.texts.length\n ? { apportionment: request.texts.map((text, index) => ({ inputLength: text.length, ...(request.caseRefPerText![index] ? { caseRef: request.caseRefPerText![index] } : {}) })) }\n : {}),\n });\n const sink = this.agentTraceSink;\n if (!sink) {\n return;\n }\n const level = this.agentTracePolicy?.level ?? AgentTraceabilityLevel.NONE;\n if (level === AgentTraceabilityLevel.NONE) {\n return;\n }\n try {\n await sink.recordAgentCall({ trace, level });\n } catch (sinkError) {\n this.logDebug('Embedding trace sink failed (non-fatal)', {\n providerRef: binding.providerRef,\n error: describeCaughtError(sinkError),\n });\n }\n }\n}\n"]}
|
package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts
CHANGED
|
@@ -338,6 +338,17 @@ export declare class ExternalProvidersRegistryBackendService {
|
|
|
338
338
|
getDeclaredFailoverProviders(capability: EngineCapability): string[];
|
|
339
339
|
/** The registry's facts for one capability, as the ordering rule and the failover rule both read them. */
|
|
340
340
|
private buildProviderOrderInput;
|
|
341
|
+
/**
|
|
342
|
+
* Whether this runtime's configuration DECLARES a provider for `capability`, whether or not one was loaded: the
|
|
343
|
+
* capability is enabled and the runtime's scope lists a provider with it, or a selection (the per-environment override
|
|
344
|
+
* or the scope's own) names one. Unlike {@link getProvidersForEngineCapability}, a provider that the configuration
|
|
345
|
+
* declares and that did not load (a data residency refusal at load, a module missing) still counts.
|
|
346
|
+
*
|
|
347
|
+
* Read by the agent guardrail waiver (#2292): an environment that runs its agents unguarded "where no classifier is
|
|
348
|
+
* declared" must not be waived because a declared classifier FAILED to load; that is a failure, not the absence the
|
|
349
|
+
* environment declared. `true` while the configuration is not loaded, since nothing can say it declares none.
|
|
350
|
+
*/
|
|
351
|
+
declaresProviderForEngineCapability(capability: EngineCapability): boolean;
|
|
341
352
|
getPrimaryProviderForEngineCapability(capability: EngineCapability): string | undefined;
|
|
342
353
|
/**
|
|
343
354
|
* Resolve the provider ref(s) that should be ACTIVE for a capability,
|
package/dist/esm/external-providers/services/external-providers-registry.backend.service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"external-providers-registry.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/external-providers/services/external-providers-registry.backend.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"external-providers-registry.backend.service.d.ts","sourceRoot":"","sources":["../../../../src/external-providers/services/external-providers-registry.backend.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -322,6 +322,29 @@ let ExternalProvidersRegistryBackendService = class ExternalProvidersRegistryBac
|
|
|
322
322
|
...(selectionOverride ? { selectionOverride } : {}),
|
|
323
323
|
};
|
|
324
324
|
}
|
|
325
|
+
/**
|
|
326
|
+
* Whether this runtime's configuration DECLARES a provider for `capability`, whether or not one was loaded: the
|
|
327
|
+
* capability is enabled and the runtime's scope lists a provider with it, or a selection (the per-environment override
|
|
328
|
+
* or the scope's own) names one. Unlike {@link getProvidersForEngineCapability}, a provider that the configuration
|
|
329
|
+
* declares and that did not load (a data residency refusal at load, a module missing) still counts.
|
|
330
|
+
*
|
|
331
|
+
* Read by the agent guardrail waiver (#2292): an environment that runs its agents unguarded "where no classifier is
|
|
332
|
+
* declared" must not be waived because a declared classifier FAILED to load; that is a failure, not the absence the
|
|
333
|
+
* environment declared. `true` while the configuration is not loaded, since nothing can say it declares none.
|
|
334
|
+
*/
|
|
335
|
+
declaresProviderForEngineCapability(capability) {
|
|
336
|
+
this.ensureInitialized();
|
|
337
|
+
if (!this.configService.isInitialized())
|
|
338
|
+
return true;
|
|
339
|
+
if (!isEngineCapabilityEnabled(this.configService.config.engineCapabilities, capability))
|
|
340
|
+
return false;
|
|
341
|
+
const scope = this.getActiveRuntimeProviderScope();
|
|
342
|
+
if (!scope)
|
|
343
|
+
return false;
|
|
344
|
+
if (this.getProviderSelectionOverride(capability) || scope.selection?.[capability])
|
|
345
|
+
return true;
|
|
346
|
+
return Object.values(scope.providers ?? {}).some((entry) => (entry?.engineCapabilities ?? []).includes(capability));
|
|
347
|
+
}
|
|
325
348
|
getPrimaryProviderForEngineCapability(capability) {
|
|
326
349
|
return this.getProvidersForEngineCapability(capability)[0];
|
|
327
350
|
}
|