{"id":"@lssm-tech/integration.provider-embedding","slug":"integration.provider-embedding","name":"@lssm-tech/integration.provider-embedding","version":"2.0.5","path":"packages/integrations/provider-embedding","manifestPath":"packages/integrations/provider-embedding/package.json","manifestBlobSha":"3bc2b6a7119ea2f6c02a714da1fed0ce6122083b","layer":"integrations","physicalArea":null,"primaryArea":"knowledge-and-retrieval","classification":{"privateDeclared":null,"catalogFamily":"integrations","catalogKind":"integration","catalogStatus":"active","adoptionMode":"adoptable","stability":"experimental"},"description":"Embedding provider implementations for ContractSpec.","descriptionOrigin":"package.json","catalog":{"family":"integrations","kind":"integration","status":"active","adoptionMode":"adoptable","stability":"experimental","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./embedding","./impls","./impls/embedding-usage","./impls/gateway-embedding","./impls/mistral-embedding","./impls/openai-embedding"],"documentation":[{"title":"Integration Provider Embedding documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.provider-embedding","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.integration.provider.embedding","title":"Integration Provider Embedding","description":"Embedding provider implementations for ContractSpec.","status":"active","useCases":["Adopt embedding provider implementations for contractspec"],"aliases":["integration","provider","embedding"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/integration.provider-embedding","symbols":[]},{"from":"@lssm-tech/integration.provider-embedding/embedding","symbols":[]},{"from":"@lssm-tech/integration.provider-embedding/impls","symbols":[]},{"from":"@lssm-tech/integration.provider-embedding/impls/embedding-usage","symbols":[]},{"from":"@lssm-tech/integration.provider-embedding/impls/gateway-embedding","symbols":[]},{"from":"@lssm-tech/integration.provider-embedding/impls/mistral-embedding","symbols":[]},{"from":"@lssm-tech/integration.provider-embedding/impls/openai-embedding","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/integration.provider-embedding package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.integration.provider.embedding","from":"@lssm-tech/integration.provider-embedding","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.embedding","from":"@lssm-tech/integration.provider-embedding/embedding","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.embedding","from":"@lssm-tech/integration.provider-embedding/impls","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.embedding","from":"@lssm-tech/integration.provider-embedding/impls/embedding-usage","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.embedding","from":"@lssm-tech/integration.provider-embedding/impls/gateway-embedding","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.embedding","from":"@lssm-tech/integration.provider-embedding/impls/mistral-embedding","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.embedding","from":"@lssm-tech/integration.provider-embedding/impls/openai-embedding","symbols":[]}],"scripts":{"build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","dev":"contractspec-bun-build dev","clean":"rimraf dist .turbo","lint:check":"node ../../../scripts/biome.cjs check .","lint:fix":"node ../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../scripts/biome.cjs check --write .","test":"bun test","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/integration.runtime":"workspace:^","@lssm-tech/lib.contracts-integrations":"workspace:^"},"devDependencies":{"@lssm-tech/tool.bun":"workspace:*","@lssm-tech/tool.typescript":"workspace:*","@mistralai/mistralai":"^2.7.0","@types/bun":"catalog:types","typescript":"catalog:"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./embedding":"./src/embedding.ts","./impls":"./src/impls/index.ts","./impls/embedding-usage":"./src/impls/embedding-usage.ts","./impls/gateway-embedding":"./src/impls/gateway-embedding.ts","./impls/mistral-embedding":"./src/impls/mistral-embedding.ts","./impls/openai-embedding":"./src/impls/openai-embedding.ts"},"publishExports":{".":{"types":"./dist/index.d.ts","browser":"./dist/browser/index.js","bun":"./dist/index.js","node":"./dist/node/index.js","default":"./dist/index.js"},"./embedding":{"types":"./dist/embedding.d.ts","browser":"./dist/browser/embedding.js","bun":"./dist/embedding.js","node":"./dist/node/embedding.js","default":"./dist/embedding.js"},"./impls":{"types":"./dist/impls/index.d.ts","browser":"./dist/browser/impls/index.js","bun":"./dist/impls/index.js","node":"./dist/node/impls/index.js","default":"./dist/impls/index.js"},"./impls/embedding-usage":{"types":"./dist/impls/embedding-usage.d.ts","browser":"./dist/browser/impls/embedding-usage.js","bun":"./dist/impls/embedding-usage.js","node":"./dist/node/impls/embedding-usage.js","default":"./dist/impls/embedding-usage.js"},"./impls/gateway-embedding":{"types":"./dist/impls/gateway-embedding.d.ts","browser":"./dist/browser/impls/gateway-embedding.js","bun":"./dist/impls/gateway-embedding.js","node":"./dist/node/impls/gateway-embedding.js","default":"./dist/impls/gateway-embedding.js"},"./impls/mistral-embedding":{"types":"./dist/impls/mistral-embedding.d.ts","browser":"./dist/browser/impls/mistral-embedding.js","bun":"./dist/impls/mistral-embedding.js","node":"./dist/node/impls/mistral-embedding.js","default":"./dist/impls/mistral-embedding.js"},"./impls/openai-embedding":{"types":"./dist/impls/openai-embedding.d.ts","browser":"./dist/browser/impls/openai-embedding.js","bun":"./dist/impls/openai-embedding.js","node":"./dist/node/impls/openai-embedding.js","default":"./dist/impls/openai-embedding.js"}},"types":"./dist/index.d.ts","files":["dist","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/integration.provider-embedding","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/integrations/provider-embedding/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-embedding/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./embedding","importPath":"@lssm-tech/integration.provider-embedding/embedding","target":"./src/embedding.ts","targets":[{"conditions":[],"target":"./src/embedding.ts","sourcePath":"packages/integrations/provider-embedding/src/embedding.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-embedding/src/embedding.ts","sourceStatus":"verified source file"}]},{"subpath":"./impls","importPath":"@lssm-tech/integration.provider-embedding/impls","target":"./src/impls/index.ts","targets":[{"conditions":[],"target":"./src/impls/index.ts","sourcePath":"packages/integrations/provider-embedding/src/impls/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-embedding/src/impls/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./impls/embedding-usage","importPath":"@lssm-tech/integration.provider-embedding/impls/embedding-usage","target":"./src/impls/embedding-usage.ts","targets":[{"conditions":[],"target":"./src/impls/embedding-usage.ts","sourcePath":"packages/integrations/provider-embedding/src/impls/embedding-usage.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-embedding/src/impls/embedding-usage.ts","sourceStatus":"verified source file"}]},{"subpath":"./impls/gateway-embedding","importPath":"@lssm-tech/integration.provider-embedding/impls/gateway-embedding","target":"./src/impls/gateway-embedding.ts","targets":[{"conditions":[],"target":"./src/impls/gateway-embedding.ts","sourcePath":"packages/integrations/provider-embedding/src/impls/gateway-embedding.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-embedding/src/impls/gateway-embedding.ts","sourceStatus":"verified source file"}]},{"subpath":"./impls/mistral-embedding","importPath":"@lssm-tech/integration.provider-embedding/impls/mistral-embedding","target":"./src/impls/mistral-embedding.ts","targets":[{"conditions":[],"target":"./src/impls/mistral-embedding.ts","sourcePath":"packages/integrations/provider-embedding/src/impls/mistral-embedding.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-embedding/src/impls/mistral-embedding.ts","sourceStatus":"verified source file"}]},{"subpath":"./impls/openai-embedding","importPath":"@lssm-tech/integration.provider-embedding/impls/openai-embedding","target":"./src/impls/openai-embedding.ts","targets":[{"conditions":[],"target":"./src/impls/openai-embedding.ts","sourcePath":"packages/integrations/provider-embedding/src/impls/openai-embedding.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-embedding/src/impls/openai-embedding.ts","sourceStatus":"verified source file"}]}],"entryCount":7,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Integration Provider Embedding documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.provider-embedding","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-embedding","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-embedding/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-embedding/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.provider-embedding.txt"},"readme":{"status":"available","body":"# @lssm-tech/integration.provider-embedding\n\nWebsite: https://contractspec.io\n\nEmbedding provider implementations for ContractSpec with deterministic batch ordering and fail-closed vector validation.\n\n- `MistralEmbeddingProvider` uses the Mistral SDK and rejects empty inputs, over-budget batches, incomplete or index-invalid responses, missing usage, non-finite vectors, and requested dimension drift. It forwards explicit output dimensions and abort signals and performs bounded transient retries.\n- `OpenAIEmbeddingProvider` implements the official `POST /v1/embeddings` REST contract, defaults to `text-embedding-3-small`, and supports optional dimensions, abort signals, bounded transient retries, organization/project headers, and injected fetch. Its default limits track the API contract: 2,048 inputs, 8,192 tokens per input, and 300,000 tokens per request.\n\nBoth adapters attach one provider-reported `EmbeddingUsageReceipt` to every result in a request. Cost is `unavailable` until the caller injects a calculator backed by a pinned pricing reference; adapters never guess current prices. The default UTF-8 byte counter is deliberately conservative. Inject a model-aware tokenizer when maximum batch utilization matters. Mistral's configurable default limits are local platform guardrails because its public endpoint contract does not publish equivalent batch ceilings.\n\nAPI keys remain constructor-only secret material and never appear in result metadata or error messages. Callers should pin model, dimension, chunker, normalizer, and policy revisions in their index-generation fingerprint.\n\n## Usage\n\nImport the root entrypoint for the domain surface, or import a concrete implementation from the `./impls/*` subpaths.\n\n## Compatibility\n\nThis package owns the embedding implementation slice split out of `@lssm-tech/integration.providers-impls`. The legacy package continues to re-export these subpaths for existing consumers.\n\n## Vercel AI Gateway embeddings\n\n`GatewayEmbeddingProvider` from `@lssm-tech/integration.provider-embedding/impls/gateway-embedding`\ncalls the Gateway's OpenAI-compatible `POST https://ai-gateway.vercel.sh/v1/embeddings`\nwith the host-resolved `AI_GATEWAY_API_KEY` or Vercel OIDC token. Each request\ncarries `providerOptions.gateway` (`only`, inference region — EU by default —,\n`zeroDataRetention`, `disallowPromptTraining: true`). The model is fixed at\nconstruction (exact `<author>/<model>`, no `latest`/`auto`), requests are never\nretried because a lost response may already be billed, and a response whose\nreported final provider is outside `only` is rejected. Usage receipts report\nprovider `vercel-ai-gateway`.\n","sourcePath":"packages/integrations/provider-embedding/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-embedding/README.md","blobSha":"bbc54219739d5ff1405b7152e2a2b6a99b21ed94","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","origin":"README recovered byte-for-byte from pinned aggregate guide","integrity":"exact Git blob match","executionStatus":"not executed"},"provenance":{"repository":"lssm-tech/contractspec","sourcePin":"bcc79fcc27c4d801c2119bef81ddcce7b4e86498","manifestOrigin":"pinned GitHub manifest fetch","manifestComplete":true,"publicationPolicyApplied":false},"areaSlug":"knowledge-and-retrieval","areaTitle":"Knowledge, retrieval and evidence","displayName":"integration.provider-embedding","runtimes":["node"],"platforms":["server"],"kind":"integration","scope":"Package manifest","canonicalRoute":"/docs/packages/integration.provider-embedding/","contextUrl":"/docs/packages/integration.provider-embedding.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}