{"id":"@lssm-tech/integration.lssm-os-cache-redis","slug":"integration.lssm-os-cache-redis","name":"@lssm-tech/integration.lssm-os-cache-redis","version":"2.0.4","path":"packages/integrations/lssm-os-cache-redis","manifestPath":"packages/integrations/lssm-os-cache-redis/package.json","manifestBlobSha":"f5c6954fe479bfaa2e114dd89914832fb9125f76","layer":"integrations","physicalArea":null,"primaryArea":"delivery-and-infrastructure","classification":{"privateDeclared":null,"catalogFamily":"integrations","catalogKind":"integration","catalogStatus":"active","adoptionMode":"adoptable","stability":"experimental"},"description":"Qualified Redis and Valkey cache, coordination, and SQL-authoritative stream acceleration for LSSM OS.","descriptionOrigin":"package.json","catalog":{"family":"integrations","kind":"integration","status":"active","adoptionMode":"adoptable","stability":"experimental","platforms":["server"],"runtimes":["bun","node"],"entrypoints":["."],"documentation":[{"title":"LSSM OS Redis and Valkey acceleration","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.lssm-os-cache-redis","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"lssm-os.cache.redis","title":"Redis and Valkey runtime acceleration","description":"Add qualified cache, coordination, invalidation, and stream wake-up acceleration while keeping SQL authoritative for LSSM OS execution.","status":"active","useCases":["Accelerate scoped runtime reads with digest-verified Redis or Valkey cache entries","Use Redis Streams as a lossy wake-up layer over a SQL-authoritative durable queue"],"aliases":["Redis","Valkey","distributed cache","Redis Streams"],"pythonEquivalents":["redis-py"],"canonicalImports":[{"from":"@lssm-tech/integration.lssm-os-cache-redis","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["bun","node"],"avoidWhen":["Redis or Valkey would become the durable source of truth for work admission, effects, or acknowledgements.","The deployment lacks an exact qualified cache or stream capability profile."],"requires":["Redis or Valkey","SQL-authoritative LSSM OS runtime"]},"alternatives":[],"relationships":[],"resolutionPriority":70}]},"canonicalImports":[{"capabilityId":"lssm-os.cache.redis","from":"@lssm-tech/integration.lssm-os-cache-redis","symbols":[]}],"scripts":{"build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","lint:check":"node ../../../scripts/biome.cjs check .","pack:verify":"bun run build && bun scripts/verify-pack.ts","qualify:local":"bun scripts/qualify-redis-local.ts","qualify:valkey-local":"bun scripts/qualify-valkey-local.ts","test":"bun test","typecheck":"tsgo --noEmit","typecheck:qualification":"tsgo --noEmit -p tsconfig.qualification.json"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.crypto-utils":"^2.0.1","@lssm-tech/lib.lssm-os-runtime":"^2.1.1","@lssm-tech/lib.lssm-os-spec":"^2.0.1","@lssm-tech/lib.orchestration-spec":"workspace:^"},"devDependencies":{"@lssm-tech/tool.bun":"workspace:*","@lssm-tech/tool.typescript":"workspace:*","@types/bun":"catalog:types","typescript":"^7.0.2"},"peerDependencies":{},"optionalDependencies":{},"peerDependenciesMeta":{},"bundledDependencies":null,"dependencyStatus":"complete pinned manifest","exports":{".":"./src/index.ts","./adapter-helpers":"./src/adapter-helpers.ts","./cache":"./src/cache.ts","./client":"./src/client.ts","./coordination":"./src/coordination.ts","./keys":"./src/keys.ts","./results":"./src/results.ts","./scripts":"./src/scripts.ts","./stream-scripts":"./src/stream-scripts.ts","./stream-validation":"./src/stream-validation.ts","./streams":"./src/streams.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"},"./adapter-helpers":{"types":"./dist/adapter-helpers.d.ts","browser":"./dist/browser/adapter-helpers.js","bun":"./dist/adapter-helpers.js","node":"./dist/node/adapter-helpers.js","default":"./dist/adapter-helpers.js"},"./cache":{"types":"./dist/cache.d.ts","browser":"./dist/browser/cache.js","bun":"./dist/cache.js","node":"./dist/node/cache.js","default":"./dist/cache.js"},"./client":{"types":"./dist/client.d.ts","browser":"./dist/browser/client.js","bun":"./dist/client.js","node":"./dist/node/client.js","default":"./dist/client.js"},"./coordination":{"types":"./dist/coordination.d.ts","browser":"./dist/browser/coordination.js","bun":"./dist/coordination.js","node":"./dist/node/coordination.js","default":"./dist/coordination.js"},"./keys":{"types":"./dist/keys.d.ts","browser":"./dist/browser/keys.js","bun":"./dist/keys.js","node":"./dist/node/keys.js","default":"./dist/keys.js"},"./results":{"types":"./dist/results.d.ts","browser":"./dist/browser/results.js","bun":"./dist/results.js","node":"./dist/node/results.js","default":"./dist/results.js"},"./scripts":{"types":"./dist/scripts.d.ts","browser":"./dist/browser/scripts.js","bun":"./dist/scripts.js","node":"./dist/node/scripts.js","default":"./dist/scripts.js"},"./stream-scripts":{"types":"./dist/stream-scripts.d.ts","browser":"./dist/browser/stream-scripts.js","bun":"./dist/stream-scripts.js","node":"./dist/node/stream-scripts.js","default":"./dist/stream-scripts.js"},"./stream-validation":{"types":"./dist/stream-validation.d.ts","browser":"./dist/browser/stream-validation.js","bun":"./dist/stream-validation.js","node":"./dist/node/stream-validation.js","default":"./dist/stream-validation.js"},"./streams":{"types":"./dist/streams.d.ts","browser":"./dist/browser/streams.js","bun":"./dist/streams.js","node":"./dist/node/streams.js","default":"./dist/streams.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","!dist/**/*test*","README.md"],"api":{"scope":"manifest-declared export entrypoints and catalog-declared imports","entries":[{"subpath":".","importPath":"@lssm-tech/integration.lssm-os-cache-redis","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./adapter-helpers","importPath":"@lssm-tech/integration.lssm-os-cache-redis/adapter-helpers","target":"./src/adapter-helpers.ts","targets":[{"conditions":[],"target":"./src/adapter-helpers.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/adapter-helpers.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/adapter-helpers.ts","sourceStatus":"verified source file"}]},{"subpath":"./cache","importPath":"@lssm-tech/integration.lssm-os-cache-redis/cache","target":"./src/cache.ts","targets":[{"conditions":[],"target":"./src/cache.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/cache.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/cache.ts","sourceStatus":"verified source file"}]},{"subpath":"./client","importPath":"@lssm-tech/integration.lssm-os-cache-redis/client","target":"./src/client.ts","targets":[{"conditions":[],"target":"./src/client.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/client.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/client.ts","sourceStatus":"verified source file"}]},{"subpath":"./coordination","importPath":"@lssm-tech/integration.lssm-os-cache-redis/coordination","target":"./src/coordination.ts","targets":[{"conditions":[],"target":"./src/coordination.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/coordination.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/coordination.ts","sourceStatus":"verified source file"}]},{"subpath":"./keys","importPath":"@lssm-tech/integration.lssm-os-cache-redis/keys","target":"./src/keys.ts","targets":[{"conditions":[],"target":"./src/keys.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/keys.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/keys.ts","sourceStatus":"verified source file"}]},{"subpath":"./results","importPath":"@lssm-tech/integration.lssm-os-cache-redis/results","target":"./src/results.ts","targets":[{"conditions":[],"target":"./src/results.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/results.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/results.ts","sourceStatus":"verified source file"}]},{"subpath":"./scripts","importPath":"@lssm-tech/integration.lssm-os-cache-redis/scripts","target":"./src/scripts.ts","targets":[{"conditions":[],"target":"./src/scripts.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/scripts.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/scripts.ts","sourceStatus":"verified source file"}]},{"subpath":"./stream-scripts","importPath":"@lssm-tech/integration.lssm-os-cache-redis/stream-scripts","target":"./src/stream-scripts.ts","targets":[{"conditions":[],"target":"./src/stream-scripts.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/stream-scripts.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/stream-scripts.ts","sourceStatus":"verified source file"}]},{"subpath":"./stream-validation","importPath":"@lssm-tech/integration.lssm-os-cache-redis/stream-validation","target":"./src/stream-validation.ts","targets":[{"conditions":[],"target":"./src/stream-validation.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/stream-validation.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/stream-validation.ts","sourceStatus":"verified source file"}]},{"subpath":"./streams","importPath":"@lssm-tech/integration.lssm-os-cache-redis/streams","target":"./src/streams.ts","targets":[{"conditions":[],"target":"./src/streams.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/streams.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/streams.ts","sourceStatus":"verified source file"}]},{"subpath":"./types","importPath":"@lssm-tech/integration.lssm-os-cache-redis/types","target":"./src/types.ts","targets":[{"conditions":[],"target":"./src/types.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/types.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/types.ts","sourceStatus":"verified source file"}]},{"subpath":"./validation","importPath":"@lssm-tech/integration.lssm-os-cache-redis/validation","target":"./src/validation.ts","targets":[{"conditions":[],"target":"./src/validation.ts","sourcePath":"packages/integrations/lssm-os-cache-redis/src/validation.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/src/validation.ts","sourceStatus":"verified source file"}]}],"entryCount":13,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"LSSM OS Redis and Valkey acceleration","url":"https://www.npmjs.com/package/%40lssm-tech%2Fintegration.lssm-os-cache-redis","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/integration.lssm-os-cache-redis.txt"},"readme":{"status":"available","body":"# `@lssm-tech/integration.lssm-os-cache-redis`\n\nOptional Redis and Valkey acceleration for LSSM OS T2 topologies. The package\nimplements the provider-neutral Runtime Node distributed-cache, coordination,\nand event-stream ports through a small injected command client. It does not\nload SDK modules, read credentials, or own connection lifecycle.\n\nSQL remains authoritative. A cache miss, eviction, adapter timeout, or disabled\ndeployment must fall back to the T1 database path. Cache entries are bound to\nthe full tenant/workspace/environment/product/application scope, topology\ngeneration, and qualified capability digest. Values are bounded, digest\nverified, UTF-8 only, and rejected when they contain credential material.\n\nInvalidation uses one Redis/Valkey Lua transition to delete the entry and append\nthe exact signed invalidation to a monotonic per-namespace reconciliation log.\nCoordination uses compare-and-set Lua transitions, bounded TTLs, and monotonic\nfences. These coordination fences are deliberately distinct from Runtime Node\nwork-order fences and never authorize an external effect.\n\nRedis Streams is available as an optional wake-up accelerator over a qualified\nSQL `DurableQueuePortV2`. Admission, claim, queue fences, reconciliation, and\nacknowledgement remain SQL-authoritative. Stream entries contain only immutable\nenvelope/outbox identifiers and digests; they never contain payloads, secrets,\nclaims, effect fences, or provider results. Redis failure or loss therefore\ndegrades to bounded SQL polling without changing execution correctness. The\nadapter validates an independent `redis_streams` capability/version binding and\ndistinct component profile, and will not substitute that transport binding for\nthe SQL authority binding.\n\nCompose an official `redis` client with `fromRedisClientV1`, or `ioredis` with\n`fromIoRedisClientV1`. The same command surface works with Valkey-compatible\nclients. Production readiness requires an exact, digest-valid\n`CacheCapabilityProfileV1` whose engine is `redis` or `valkey`, plus deployment\nqualification for the configured server/client/topology versions. The package\ncontains deterministic conformance tests but does not claim a live managed\nRedis or Valkey service qualification.\n\nWake consumers recover idle pending entries with `XAUTOCLAIM` before reading\nnew entries. `minimumPendingIdleMilliseconds` defaults to 30 seconds and is\nbounded between one second and one day. Approximate stream trimming is also\nreconciled with the deduplication map: a mapping is reused only while its exact\nstream entry still exists, so a trimmed hint can be republished from the SQL\noutbox instead of becoming permanently unreachable.\n\nRun `bun run qualify:local` after pulling `redis:8.2.1-alpine` to execute the\nreal standalone Redis qualification. The command refuses to pull implicitly,\nbinds both the local image ID and repository digest, disables container\nnetworking and TCP, uses a private Unix socket, stores AOF state in a uniquely\ncreated host temp directory, and removes the container and directory on every\nexit path. It verifies cache put/get, atomic invalidation ordering, stale-write\nrejection, poisoned-value containment, 100-way coordination contention,\nfencing, AOF restart persistence, Streams deduplication, pending recovery,\nacknowledgement, trim-map repair, and SQL-authoritative behavior while Redis is\nstopped.\n\nRun `bun run qualify:valkey-local` after pulling\n`valkey/valkey:9.1.1-alpine` for the same matrix against a distinct Valkey\nengine profile, official image and repository digest, `valkey-server`,\n`valkey-cli`, and private Valkey socket. Redis success is never reused as\nValkey evidence.\n\nThese commands provide local-live standalone Redis and Valkey evidence only.\nThey do not qualify Sentinel, Cluster, managed primary/replica failover,\nresharding, TLS, ACLs, regional placement, sustained scale, or production\noperations; those rows remain release blockers.\n","sourcePath":"packages/integrations/lssm-os-cache-redis/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/integrations/lssm-os-cache-redis/README.md","blobSha":"a2b5af1c5eda1e04780a95c8d8023557b401588d","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":"delivery-and-infrastructure","areaTitle":"Delivery, infrastructure and runtime operations","displayName":"integration.lssm-os-cache-redis","runtimes":["bun","node"],"platforms":["server"],"kind":"integration","scope":"Package manifest","canonicalRoute":"/docs/packages/integration.lssm-os-cache-redis/","contextUrl":"/docs/packages/integration.lssm-os-cache-redis.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}