{"id":"@lssm-tech/lib.provider-spec","slug":"lib.provider-spec","name":"@lssm-tech/lib.provider-spec","version":"2.0.4","path":"packages/platform/agents/provider-spec","manifestPath":"packages/platform/agents/provider-spec/package.json","manifestBlobSha":"76bda13ddeaeb731db3586b5a45792b03cd6e841","layer":"platform","physicalArea":"agents","primaryArea":"integrations-and-providers","classification":{"privateDeclared":null,"catalogFamily":"contracts","catalogKind":"library","catalogStatus":"active","adoptionMode":"adoptable","stability":"experimental"},"description":"Provider routing and runtime-target contracts for ContractSpec Builder.","descriptionOrigin":"package.json","catalog":{"family":"contracts","kind":"library","status":"active","adoptionMode":"adoptable","stability":"experimental","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./fixtures","./fixtures/provider-observation","./gateway-model-catalog","./gateway-model-resolution","./gateway-streaming-transcription-catalog","./gateway-transcription-catalog","./gateway-transcription-resolution","./provider-metering","./provider-metering-runtime","./provider-observation","./provider-observation-aggregation","./provider-shadow-selection","./provider-shadow-selector","./types","./validation"],"documentation":[{"title":"Lib Provider Spec documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.provider-spec","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.lib.provider.spec","title":"Lib Provider Spec","description":"Provider routing and runtime-target contracts for ContractSpec Builder.","status":"active","useCases":["Adopt provider routing and runtime-target contracts for contractspec builder"],"aliases":["contractspec","builder","providers","runtime","typescript","lib","provider","spec"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/lib.provider-spec","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/fixtures","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/fixtures/provider-observation","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/gateway-model-catalog","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/gateway-model-resolution","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/gateway-streaming-transcription-catalog","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/gateway-transcription-catalog","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/gateway-transcription-resolution","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/provider-metering","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/provider-metering-runtime","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/provider-observation","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/provider-observation-aggregation","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/provider-shadow-selection","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/provider-shadow-selector","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/types","symbols":[]},{"from":"@lssm-tech/lib.provider-spec/validation","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/lib.provider-spec package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/fixtures","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/fixtures/provider-observation","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/gateway-model-catalog","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/gateway-model-resolution","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/gateway-streaming-transcription-catalog","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/gateway-transcription-catalog","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/gateway-transcription-resolution","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/provider-metering","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/provider-metering-runtime","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/provider-observation","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/provider-observation-aggregation","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/provider-shadow-selection","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/provider-shadow-selector","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/types","symbols":[]},{"capabilityId":"package.lssm.tech.lib.provider.spec","from":"@lssm-tech/lib.provider-spec/validation","symbols":[]}],"scripts":{"publish:pkg":"bun publish --tolerate-republish --ignore-scripts --verbose","publish:pkg:canary":"bun publish:pkg --tag canary","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":"bun lint:fix","lint:fix":"node ../../../../scripts/biome.cjs check --write --unsafe --only=nursery/useSortedClasses . && node ../../../../scripts/biome.cjs check --write .","lint:check":"node ../../../../scripts/biome.cjs check .","test":"bun test","prebuild":"contractspec-bun-build prebuild","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.contracts-spec-core":"workspace:^","@lssm-tech/lib.crypto-utils":"workspace:^","@lssm-tech/lib.orchestration-spec":"workspace:^"},"devDependencies":{"@lssm-tech/tool.bun":"workspace:*","@lssm-tech/tool.typescript":"workspace:*","typescript":"catalog:"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./fixtures":"./src/fixtures/index.ts","./fixtures/provider-observation":"./src/fixtures/provider-observation.ts","./gateway-model-catalog":"./src/gateway-model-catalog.ts","./gateway-model-resolution":"./src/gateway-model-resolution.ts","./gateway-streaming-transcription-catalog":"./src/gateway-streaming-transcription-catalog.ts","./gateway-transcription-catalog":"./src/gateway-transcription-catalog.ts","./gateway-transcription-resolution":"./src/gateway-transcription-resolution.ts","./provider-metering":"./src/provider-metering.ts","./provider-metering-runtime":"./src/provider-metering-runtime.ts","./provider-observation":"./src/provider-observation.ts","./provider-observation-aggregation":"./src/provider-observation-aggregation.ts","./provider-shadow-selection":"./src/provider-shadow-selection.ts","./provider-shadow-selector":"./src/provider-shadow-selector.ts","./types":"./src/types.ts","./validation":"./src/validation.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"},"./fixtures":{"types":"./dist/fixtures/index.d.ts","browser":"./dist/browser/fixtures/index.js","bun":"./dist/fixtures/index.js","node":"./dist/node/fixtures/index.js","default":"./dist/fixtures/index.js"},"./fixtures/provider-observation":{"types":"./dist/fixtures/provider-observation.d.ts","browser":"./dist/browser/fixtures/provider-observation.js","bun":"./dist/fixtures/provider-observation.js","node":"./dist/node/fixtures/provider-observation.js","default":"./dist/fixtures/provider-observation.js"},"./gateway-model-catalog":{"types":"./dist/gateway-model-catalog.d.ts","browser":"./dist/browser/gateway-model-catalog.js","bun":"./dist/gateway-model-catalog.js","node":"./dist/node/gateway-model-catalog.js","default":"./dist/gateway-model-catalog.js"},"./gateway-model-resolution":{"types":"./dist/gateway-model-resolution.d.ts","browser":"./dist/browser/gateway-model-resolution.js","bun":"./dist/gateway-model-resolution.js","node":"./dist/node/gateway-model-resolution.js","default":"./dist/gateway-model-resolution.js"},"./gateway-streaming-transcription-catalog":{"types":"./dist/gateway-streaming-transcription-catalog.d.ts","browser":"./dist/browser/gateway-streaming-transcription-catalog.js","bun":"./dist/gateway-streaming-transcription-catalog.js","node":"./dist/node/gateway-streaming-transcription-catalog.js","default":"./dist/gateway-streaming-transcription-catalog.js"},"./gateway-transcription-catalog":{"types":"./dist/gateway-transcription-catalog.d.ts","browser":"./dist/browser/gateway-transcription-catalog.js","bun":"./dist/gateway-transcription-catalog.js","node":"./dist/node/gateway-transcription-catalog.js","default":"./dist/gateway-transcription-catalog.js"},"./gateway-transcription-resolution":{"types":"./dist/gateway-transcription-resolution.d.ts","browser":"./dist/browser/gateway-transcription-resolution.js","bun":"./dist/gateway-transcription-resolution.js","node":"./dist/node/gateway-transcription-resolution.js","default":"./dist/gateway-transcription-resolution.js"},"./provider-metering":{"types":"./dist/provider-metering.d.ts","browser":"./dist/browser/provider-metering.js","bun":"./dist/provider-metering.js","node":"./dist/node/provider-metering.js","default":"./dist/provider-metering.js"},"./provider-metering-runtime":{"types":"./dist/provider-metering-runtime.d.ts","browser":"./dist/browser/provider-metering-runtime.js","bun":"./dist/provider-metering-runtime.js","node":"./dist/node/provider-metering-runtime.js","default":"./dist/provider-metering-runtime.js"},"./provider-observation":{"types":"./dist/provider-observation.d.ts","browser":"./dist/browser/provider-observation.js","bun":"./dist/provider-observation.js","node":"./dist/node/provider-observation.js","default":"./dist/provider-observation.js"},"./provider-observation-aggregation":{"types":"./dist/provider-observation-aggregation.d.ts","browser":"./dist/browser/provider-observation-aggregation.js","bun":"./dist/provider-observation-aggregation.js","node":"./dist/node/provider-observation-aggregation.js","default":"./dist/provider-observation-aggregation.js"},"./provider-shadow-selection":{"types":"./dist/provider-shadow-selection.d.ts","browser":"./dist/browser/provider-shadow-selection.js","bun":"./dist/provider-shadow-selection.js","node":"./dist/node/provider-shadow-selection.js","default":"./dist/provider-shadow-selection.js"},"./provider-shadow-selector":{"types":"./dist/provider-shadow-selector.d.ts","browser":"./dist/browser/provider-shadow-selector.js","bun":"./dist/provider-shadow-selector.js","node":"./dist/node/provider-shadow-selector.js","default":"./dist/provider-shadow-selector.js"},"./types":{"types":"./dist/types.d.ts","browser":"./dist/browser/types.js","bun":"./dist/types.js","node":"./dist/node/types.js","default":"./dist/types.js"},"./validation":{"types":"./dist/validation.d.ts","browser":"./dist/browser/validation.js","bun":"./dist/validation.js","node":"./dist/node/validation.js","default":"./dist/validation.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/lib.provider-spec","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/platform/agents/provider-spec/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./fixtures","importPath":"@lssm-tech/lib.provider-spec/fixtures","target":"./src/fixtures/index.ts","targets":[{"conditions":[],"target":"./src/fixtures/index.ts","sourcePath":"packages/platform/agents/provider-spec/src/fixtures/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/fixtures/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./fixtures/provider-observation","importPath":"@lssm-tech/lib.provider-spec/fixtures/provider-observation","target":"./src/fixtures/provider-observation.ts","targets":[{"conditions":[],"target":"./src/fixtures/provider-observation.ts","sourcePath":"packages/platform/agents/provider-spec/src/fixtures/provider-observation.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/fixtures/provider-observation.ts","sourceStatus":"verified source file"}]},{"subpath":"./gateway-model-catalog","importPath":"@lssm-tech/lib.provider-spec/gateway-model-catalog","target":"./src/gateway-model-catalog.ts","targets":[{"conditions":[],"target":"./src/gateway-model-catalog.ts","sourcePath":"packages/platform/agents/provider-spec/src/gateway-model-catalog.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/gateway-model-catalog.ts","sourceStatus":"verified source file"}]},{"subpath":"./gateway-model-resolution","importPath":"@lssm-tech/lib.provider-spec/gateway-model-resolution","target":"./src/gateway-model-resolution.ts","targets":[{"conditions":[],"target":"./src/gateway-model-resolution.ts","sourcePath":"packages/platform/agents/provider-spec/src/gateway-model-resolution.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/gateway-model-resolution.ts","sourceStatus":"verified source file"}]},{"subpath":"./gateway-streaming-transcription-catalog","importPath":"@lssm-tech/lib.provider-spec/gateway-streaming-transcription-catalog","target":"./src/gateway-streaming-transcription-catalog.ts","targets":[{"conditions":[],"target":"./src/gateway-streaming-transcription-catalog.ts","sourcePath":"packages/platform/agents/provider-spec/src/gateway-streaming-transcription-catalog.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/gateway-streaming-transcription-catalog.ts","sourceStatus":"verified source file"}]},{"subpath":"./gateway-transcription-catalog","importPath":"@lssm-tech/lib.provider-spec/gateway-transcription-catalog","target":"./src/gateway-transcription-catalog.ts","targets":[{"conditions":[],"target":"./src/gateway-transcription-catalog.ts","sourcePath":"packages/platform/agents/provider-spec/src/gateway-transcription-catalog.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/gateway-transcription-catalog.ts","sourceStatus":"verified source file"}]},{"subpath":"./gateway-transcription-resolution","importPath":"@lssm-tech/lib.provider-spec/gateway-transcription-resolution","target":"./src/gateway-transcription-resolution.ts","targets":[{"conditions":[],"target":"./src/gateway-transcription-resolution.ts","sourcePath":"packages/platform/agents/provider-spec/src/gateway-transcription-resolution.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/gateway-transcription-resolution.ts","sourceStatus":"verified source file"}]},{"subpath":"./provider-metering","importPath":"@lssm-tech/lib.provider-spec/provider-metering","target":"./src/provider-metering.ts","targets":[{"conditions":[],"target":"./src/provider-metering.ts","sourcePath":"packages/platform/agents/provider-spec/src/provider-metering.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/provider-metering.ts","sourceStatus":"verified source file"}]},{"subpath":"./provider-metering-runtime","importPath":"@lssm-tech/lib.provider-spec/provider-metering-runtime","target":"./src/provider-metering-runtime.ts","targets":[{"conditions":[],"target":"./src/provider-metering-runtime.ts","sourcePath":"packages/platform/agents/provider-spec/src/provider-metering-runtime.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/provider-metering-runtime.ts","sourceStatus":"verified source file"}]},{"subpath":"./provider-observation","importPath":"@lssm-tech/lib.provider-spec/provider-observation","target":"./src/provider-observation.ts","targets":[{"conditions":[],"target":"./src/provider-observation.ts","sourcePath":"packages/platform/agents/provider-spec/src/provider-observation.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/provider-observation.ts","sourceStatus":"verified source file"}]},{"subpath":"./provider-observation-aggregation","importPath":"@lssm-tech/lib.provider-spec/provider-observation-aggregation","target":"./src/provider-observation-aggregation.ts","targets":[{"conditions":[],"target":"./src/provider-observation-aggregation.ts","sourcePath":"packages/platform/agents/provider-spec/src/provider-observation-aggregation.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/provider-observation-aggregation.ts","sourceStatus":"verified source file"}]},{"subpath":"./provider-shadow-selection","importPath":"@lssm-tech/lib.provider-spec/provider-shadow-selection","target":"./src/provider-shadow-selection.ts","targets":[{"conditions":[],"target":"./src/provider-shadow-selection.ts","sourcePath":"packages/platform/agents/provider-spec/src/provider-shadow-selection.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/provider-shadow-selection.ts","sourceStatus":"verified source file"}]},{"subpath":"./provider-shadow-selector","importPath":"@lssm-tech/lib.provider-spec/provider-shadow-selector","target":"./src/provider-shadow-selector.ts","targets":[{"conditions":[],"target":"./src/provider-shadow-selector.ts","sourcePath":"packages/platform/agents/provider-spec/src/provider-shadow-selector.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/provider-shadow-selector.ts","sourceStatus":"verified source file"}]},{"subpath":"./types","importPath":"@lssm-tech/lib.provider-spec/types","target":"./src/types.ts","targets":[{"conditions":[],"target":"./src/types.ts","sourcePath":"packages/platform/agents/provider-spec/src/types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/types.ts","sourceStatus":"verified source file"}]},{"subpath":"./validation","importPath":"@lssm-tech/lib.provider-spec/validation","target":"./src/validation.ts","targets":[{"conditions":[],"target":"./src/validation.ts","sourcePath":"packages/platform/agents/provider-spec/src/validation.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/src/validation.ts","sourceStatus":"verified source file"}]}],"entryCount":16,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Lib Provider Spec documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.provider-spec","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.provider-spec.txt"},"readme":{"status":"available","body":"# @lssm-tech/lib.provider-spec\n\nWebsite: https://contractspec.io\n\nTyped provider-routing, runtime-target, execution-receipt, comparison, and patch-proposal contracts for the Builder control plane.\n\n## What It Provides\n\n- Runtime-mode, provider-kind, task-type, risk, and comparison enums.\n- Runtime target, handshake, trust-profile, and lease contracts.\n- External execution provider, routing policy, context bundle, receipt, and patch proposal types.\n- Validation helpers for routing policies, receipts, and runtime target records.\n- Provider-neutral capability observations for usage, cost, latency, freshness,\n  coverage, health, rate limits, trusted receipts, budgets, evidence, and replay.\n\n## Public Entry Points\n\n- `.` resolves through `./src/index.ts`\n- `./types` resolves through `./src/types.ts`\n- `./validation` resolves through `./src/validation.ts`\n- `./provider-observation` resolves the additive observation contract and pinned schema identity\n- `./provider-observation-aggregation` resolves deterministic aggregation and fail-closed budget evaluation\n- `./provider-metering` and `./provider-metering-runtime` resolve additive reconciliation, health freshness, budget-reference, and tenant-query surfaces\n- `./provider-shadow-selection` and `./provider-shadow-selector` resolve deterministic, explainable, no-dispatch provider shadow selection\n- `./fixtures/provider-observation` resolves neutral, no-network observation and budget fixtures\n- `./gateway-model-catalog` resolves the shared Vercel AI Gateway EU model allowlist (EU inference zone, zero retention, no training; Mistral excluded) used by CommunicationOS and OPA briefings, and `./gateway-model-resolution` the deterministic request → user → workspace → environment → catalog precedence over it\n\n## Notes\n\n- This package is a qualified pure platform spec (`contractspec.architecture.role:\n  platform-spec`). Its runtime sources and their workspace suppliers perform no\n  I/O, ambient clock or random reads, async effects or provider dispatch, so\n  domain specs such as `@lssm-tech/lib.builder-spec` may depend on it directly.\n- `fingerprintProviderCapabilityDeclaration` and\n  `validateProviderCapabilityDeclaration` compute the SHA-256 digest\n  synchronously with `@lssm-tech/lib.crypto-utils/sha256`. They keep their\n  `Promise` return types, digests and rejection-on-malformed-input behavior.\n- This package is a compatibility surface. Prefer additive evolution.\n- Provider routing stays explicit policy, not hidden heuristics.\n- Provider declarations use narrow Core serialization/features and the canonical\n  `@lssm-tech/lib.orchestration-spec/ai-improvement` evidence declaration.\n\nProvider type declarations are grouped internally by runtime target, routing, and execution receipt responsibility. The root and `/types` exports retain their existing names, literal unions, mutability, and structural contracts. Runtime leases and evidence references retain their existing authority boundaries.\n\nObservation aggregation, input validation/grouping/cost summation and budget projection have separate cohesive private modules, per-observation accumulator updates separated from grouping and normalized output; each computational utility within 100 lines after canonical formatting, with the existing public facade. Aggregation remains deterministic and budget projection never grants external effect authority.\n\nThe additive `ProviderWorkspaceInput`, `MobileParityInput`, `MobileReviewCard`, and `MobileParitySummary` root exports are provider-neutral supplied-data contracts. They carry no workspace or approval authority. Builder retains its existing review-card and parity type names as aliases to the same canonical models.\n","sourcePath":"packages/platform/agents/provider-spec/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/platform/agents/provider-spec/README.md","blobSha":"15a0659bf0ff3261af5a62916bbefa6a4288acaa","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":"lib.provider-spec","runtimes":["node"],"platforms":["server"],"kind":"library","scope":"Package manifest","canonicalRoute":"/docs/packages/lib.provider-spec/","contextUrl":"/docs/packages/lib.provider-spec.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}