{"id":"@lssm-tech/integration.provider-llm","slug":"integration.provider-llm","name":"@lssm-tech/integration.provider-llm","version":"2.1.4","path":"packages/integrations/provider-llm","manifestPath":"packages/integrations/provider-llm/package.json","manifestBlobSha":"aaef1e63a1fcf37841bc137d0dcf225cfcac96f8","layer":"integrations","physicalArea":null,"primaryArea":"integrations-and-providers","classification":{"privateDeclared":null,"catalogFamily":"integrations","catalogKind":"integration","catalogStatus":"active","adoptionMode":"adoptable","stability":"experimental"},"description":"LLM provider implementations for ContractSpec.","descriptionOrigin":"package.json","catalog":{"family":"integrations","kind":"integration","status":"active","adoptionMode":"adoptable","stability":"experimental","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./impls","./impls/mistral-llm","./llm","./impls/gateway-llm"],"documentation":[{"title":"Integration Provider Llm documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.provider-llm","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.integration.provider.llm","title":"Integration Provider Llm","description":"LLM provider implementations for ContractSpec.","status":"active","useCases":["Adopt llm provider implementations for contractspec"],"aliases":["integration","provider","llm"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/integration.provider-llm","symbols":[]},{"from":"@lssm-tech/integration.provider-llm/impls","symbols":[]},{"from":"@lssm-tech/integration.provider-llm/impls/mistral-llm","symbols":[]},{"from":"@lssm-tech/integration.provider-llm/llm","symbols":[]},{"from":"@lssm-tech/integration.provider-llm/impls/gateway-llm","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/integration.provider-llm package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.integration.provider.llm","from":"@lssm-tech/integration.provider-llm","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.llm","from":"@lssm-tech/integration.provider-llm/impls","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.llm","from":"@lssm-tech/integration.provider-llm/impls/mistral-llm","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.llm","from":"@lssm-tech/integration.provider-llm/llm","symbols":[]},{"capabilityId":"package.lssm.tech.integration.provider.llm","from":"@lssm-tech/integration.provider-llm/impls/gateway-llm","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:^","@mistralai/mistralai":"^2.7.0","ai":"catalog:ai","@lssm-tech/lib.ai-providers":"workspace:^"},"devDependencies":{"@lssm-tech/tool.bun":"workspace:*","@lssm-tech/tool.typescript":"workspace:*","@types/bun":"catalog:types","typescript":"catalog:"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./impls":"./src/impls/index.ts","./impls/gateway-llm":"./src/impls/gateway-llm.ts","./impls/gateway-llm-deadline":"./src/impls/gateway-llm-deadline.ts","./impls/gateway-llm-messages":"./src/impls/gateway-llm-messages.ts","./impls/mistral-llm":"./src/impls/mistral-llm.ts","./llm":"./src/llm.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"},"./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/gateway-llm":{"types":"./dist/impls/gateway-llm.d.ts","browser":"./dist/browser/impls/gateway-llm.js","bun":"./dist/impls/gateway-llm.js","node":"./dist/node/impls/gateway-llm.js","default":"./dist/impls/gateway-llm.js"},"./impls/gateway-llm-deadline":{"types":"./dist/impls/gateway-llm-deadline.d.ts","browser":"./dist/browser/impls/gateway-llm-deadline.js","bun":"./dist/impls/gateway-llm-deadline.js","node":"./dist/node/impls/gateway-llm-deadline.js","default":"./dist/impls/gateway-llm-deadline.js"},"./impls/gateway-llm-messages":{"types":"./dist/impls/gateway-llm-messages.d.ts","browser":"./dist/browser/impls/gateway-llm-messages.js","bun":"./dist/impls/gateway-llm-messages.js","node":"./dist/node/impls/gateway-llm-messages.js","default":"./dist/impls/gateway-llm-messages.js"},"./impls/mistral-llm":{"types":"./dist/impls/mistral-llm.d.ts","browser":"./dist/browser/impls/mistral-llm.js","bun":"./dist/impls/mistral-llm.js","node":"./dist/node/impls/mistral-llm.js","default":"./dist/impls/mistral-llm.js"},"./llm":{"types":"./dist/llm.d.ts","browser":"./dist/browser/llm.js","bun":"./dist/llm.js","node":"./dist/node/llm.js","default":"./dist/llm.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-llm","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/integrations/provider-llm/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-llm/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./impls","importPath":"@lssm-tech/integration.provider-llm/impls","target":"./src/impls/index.ts","targets":[{"conditions":[],"target":"./src/impls/index.ts","sourcePath":"packages/integrations/provider-llm/src/impls/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-llm/src/impls/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./impls/gateway-llm","importPath":"@lssm-tech/integration.provider-llm/impls/gateway-llm","target":"./src/impls/gateway-llm.ts","targets":[{"conditions":[],"target":"./src/impls/gateway-llm.ts","sourcePath":"packages/integrations/provider-llm/src/impls/gateway-llm.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-llm/src/impls/gateway-llm.ts","sourceStatus":"verified source file"}]},{"subpath":"./impls/gateway-llm-deadline","importPath":"@lssm-tech/integration.provider-llm/impls/gateway-llm-deadline","target":"./src/impls/gateway-llm-deadline.ts","targets":[{"conditions":[],"target":"./src/impls/gateway-llm-deadline.ts","sourcePath":"packages/integrations/provider-llm/src/impls/gateway-llm-deadline.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-llm/src/impls/gateway-llm-deadline.ts","sourceStatus":"verified source file"}]},{"subpath":"./impls/gateway-llm-messages","importPath":"@lssm-tech/integration.provider-llm/impls/gateway-llm-messages","target":"./src/impls/gateway-llm-messages.ts","targets":[{"conditions":[],"target":"./src/impls/gateway-llm-messages.ts","sourcePath":"packages/integrations/provider-llm/src/impls/gateway-llm-messages.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-llm/src/impls/gateway-llm-messages.ts","sourceStatus":"verified source file"}]},{"subpath":"./impls/mistral-llm","importPath":"@lssm-tech/integration.provider-llm/impls/mistral-llm","target":"./src/impls/mistral-llm.ts","targets":[{"conditions":[],"target":"./src/impls/mistral-llm.ts","sourcePath":"packages/integrations/provider-llm/src/impls/mistral-llm.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-llm/src/impls/mistral-llm.ts","sourceStatus":"verified source file"}]},{"subpath":"./llm","importPath":"@lssm-tech/integration.provider-llm/llm","target":"./src/llm.ts","targets":[{"conditions":[],"target":"./src/llm.ts","sourcePath":"packages/integrations/provider-llm/src/llm.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-llm/src/llm.ts","sourceStatus":"verified source file"}]}],"entryCount":7,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Integration Provider Llm documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.provider-llm","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-llm","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-llm/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-llm/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.provider-llm.txt"},"readme":{"status":"available","body":"# @lssm-tech/integration.provider-llm\n\nWebsite: https://contractspec.io\n\nLLM provider implementations for ContractSpec.\n\nMistral chat requests forward the declared `LLMChatOptions.signal` and\n`timeoutMs` to the underlying SDK, so bounded meeting generation can cancel its\nactual HTTP request.\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 llm implementation slice split out of `@lssm-tech/integration.providers-impls`. The legacy package continues to re-export these subpaths for existing consumers.\n\nMistral accepts an optional `fetchImpl` for host-owned HTTP policy via the installed\nSDK's `HTTPClient`. `serverURL` is the server origin (the SDK adds `/v1` paths).\nExisting callers retain their default transport. Regional consumers must select\nand verify their own approved endpoint and block redirects or global fallback.\n\n## Vercel AI Gateway\n\n`GatewayLLMProvider` is available from `./impls/gateway-llm`. It implements the\nexisting `LLMProvider` chat/stream interface with a required pinned `defaultModel`,\n`modelAuthor` (`openai`, `anthropic`, or `gemini`) and non-empty `only` inference\nprovider allowlist. Models use Gateway-qualified identifiers; Gemini models use\nthe `google/` namespace. Direct Mistral models/providers are excluded from this\nadapter. Existing Mistral exports remain compatible and are not silently rerouted.\n\nThe native Gateway SDK preserves request-level `inferenceRegion` EU-zone,\n`zeroDataRetention: true`, `disallowPromptTraining: true`, and the provider\nallowlist. No per-call model change, direct-provider fallback, tool execution or\napplication retry is performed. Calls reject invalid origins and redirects;\nabort/deadline protection covers chat and streaming. Missing token counts remain\nunknown. Unsupported preflight token counting throws explicitly.\n\nUse `apiKey` only for a Gateway credential, or omit it for the SDK's\n`AI_GATEWAY_API_KEY` / Vercel OIDC authentication. No direct provider credential\nis read. The only endpoint is `https://ai-gateway.vercel.sh/v4/ai` for the installed\nSDK protocol. Model/provider availability and processing approval remain host\nresponsibilities; an adapter instance is not a successful qualification receipt.\n\n**Residency boundary:** EU inference does not mean EU-only gateway transit.\n[Vercel regional inference documentation](https://vercel.com/docs/ai-gateway/security-and-compliance/regional-inference)\nstates that the Gateway may process requests globally before forwarding to the\nregional provider. Hosts must explicitly approve that boundary before sending\nprivate content. Request controls follow Vercel's\n[ZDR](https://vercel.com/docs/ai-gateway/security-and-compliance/zdr) and\n[no-training](https://vercel.com/docs/ai-gateway/security-and-compliance/disallow-prompt-training)\ndocumentation. Tests use synthetic content and mocked HTTP; they do not prove\nlive residency, commercial terms, model quality or provider availability.\n\nChat and final stream responses expose only a bounded routing projection at\n`raw.providerMetadata.gateway.routing`: finalProvider, modelAttempts,\nproviderAttempts, and inferenceEndpoint slug/scope/geoRegion. Transport headers,\nresponse bodies and unrelated provider metadata are discarded. Missing or malformed\nmetadata stays absent; global/non-EU endpoints are never rewritten as EU.\n`readVercelGatewayRoutingMetadata` and its return type are re-exported from\n`./impls/gateway-llm` for hosts to reuse. Hosts must verify the served provider and\nresolved region against their pinned binding before accepting or persisting\nintelligence; request options alone are insufficient. Streaming deltas are\nprovisional until final routing evidence has passed the host's acceptance check.\n","sourcePath":"packages/integrations/provider-llm/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/provider-llm/README.md","blobSha":"bd073cb8b4b1e7363080951c2f5b3ad34efdb133","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":"integrations-and-providers","areaTitle":"Integrations and provider selection","displayName":"integration.provider-llm","runtimes":["node"],"platforms":["server"],"kind":"integration","scope":"Package manifest","canonicalRoute":"/docs/packages/integration.provider-llm/","contextUrl":"/docs/packages/integration.provider-llm.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}