{"id":"@lssm-tech/lib.personal-finance-runtime","slug":"lib.personal-finance-runtime","name":"@lssm-tech/lib.personal-finance-runtime","version":"2.0.4","path":"packages/domains/personal-finance/runtime","manifestPath":"packages/domains/personal-finance/runtime/package.json","manifestBlobSha":"62d5367510a7d2af36b8e93cac2c82e6fbe81169","layer":"domains","physicalArea":"personal-finance","primaryArea":"personal-and-learning","classification":{"privateDeclared":null,"catalogFamily":"runtime","catalogKind":"library","catalogStatus":"active","adoptionMode":"adoptable","stability":"experimental"},"description":"Pure fail-closed PersonalOS finance runtime.","descriptionOrigin":"package.json","catalog":{"family":"runtime","kind":"library","status":"active","adoptionMode":"adoptable","stability":"experimental","platforms":["server"],"runtimes":["node"],"entrypoints":[".","./account-aggregation","./aggregation","./authorization","./family-office","./normalization","./offline","./ports","./rights","./scenarios","./wealth"],"documentation":[{"title":"Lib Personal Finance Runtime documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.personal-finance-runtime","kind":"readme"}],"examples":[],"replacements":[],"capabilities":[{"id":"package.lssm.tech.lib.personal.finance.runtime","title":"Lib Personal Finance Runtime","description":"Pure fail-closed PersonalOS finance runtime.","status":"active","useCases":["Adopt pure fail-closed personalos finance runtime"],"aliases":["lib","personal","finance","runtime"],"pythonEquivalents":[],"canonicalImports":[{"from":"@lssm-tech/lib.personal-finance-runtime","symbols":[]},{"from":"@lssm-tech/lib.personal-finance-runtime/account-aggregation","symbols":[]},{"from":"@lssm-tech/lib.personal-finance-runtime/aggregation","symbols":[]},{"from":"@lssm-tech/lib.personal-finance-runtime/authorization","symbols":[]},{"from":"@lssm-tech/lib.personal-finance-runtime/family-office","symbols":[]},{"from":"@lssm-tech/lib.personal-finance-runtime/normalization","symbols":[]},{"from":"@lssm-tech/lib.personal-finance-runtime/offline","symbols":[]},{"from":"@lssm-tech/lib.personal-finance-runtime/ports","symbols":[]},{"from":"@lssm-tech/lib.personal-finance-runtime/rights","symbols":[]},{"from":"@lssm-tech/lib.personal-finance-runtime/scenarios","symbols":[]},{"from":"@lssm-tech/lib.personal-finance-runtime/wealth","symbols":[]}],"constraints":{"platforms":["server"],"runtimes":["node"],"avoidWhen":["The @lssm-tech/lib.personal-finance-runtime package constraints do not match the target runtime or platform."],"requires":["TypeScript"]},"alternatives":[],"relationships":[],"resolutionPriority":50}]},"canonicalImports":[{"capabilityId":"package.lssm.tech.lib.personal.finance.runtime","from":"@lssm-tech/lib.personal-finance-runtime","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personal.finance.runtime","from":"@lssm-tech/lib.personal-finance-runtime/account-aggregation","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personal.finance.runtime","from":"@lssm-tech/lib.personal-finance-runtime/aggregation","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personal.finance.runtime","from":"@lssm-tech/lib.personal-finance-runtime/authorization","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personal.finance.runtime","from":"@lssm-tech/lib.personal-finance-runtime/family-office","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personal.finance.runtime","from":"@lssm-tech/lib.personal-finance-runtime/normalization","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personal.finance.runtime","from":"@lssm-tech/lib.personal-finance-runtime/offline","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personal.finance.runtime","from":"@lssm-tech/lib.personal-finance-runtime/ports","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personal.finance.runtime","from":"@lssm-tech/lib.personal-finance-runtime/rights","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personal.finance.runtime","from":"@lssm-tech/lib.personal-finance-runtime/scenarios","symbols":[]},{"capabilityId":"package.lssm.tech.lib.personal.finance.runtime","from":"@lssm-tech/lib.personal-finance-runtime/wealth","symbols":[]}],"scripts":{"build":"contractspec-bun-build build","build:bundle":"contractspec-bun-build transpile","build:types":"contractspec-bun-build types","clean":"rimraf dist .turbo","lint:check":"node ../../../../scripts/biome.cjs check .","lint:fix":"node ../../../../scripts/biome.cjs check --write .","prebuild":"contractspec-bun-build prebuild","test":"bun test","typecheck":"tsgo --noEmit"},"scriptStatus":"complete pinned manifest","dependencies":{"@lssm-tech/lib.lssm-os-runtime":"workspace:^","@lssm-tech/lib.personal-os-spec":"workspace:^","@lssm-tech/lib.personal-finance-spec":"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","./account-aggregation":"./src/account-aggregation.ts","./aggregation":"./src/aggregation.ts","./authorization":"./src/authorization.ts","./family-office":"./src/family-office.ts","./normalization":"./src/normalization.ts","./offline":"./src/offline.ts","./ports":"./src/ports.ts","./reducer":"./src/reducer.ts","./reducer-accounts":"./src/reducer-accounts.ts","./reducer-actions":"./src/reducer-actions.ts","./rights":"./src/rights.ts","./scenarios":"./src/scenarios.ts","./state":"./src/state.ts","./wealth":"./src/wealth.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"},"./account-aggregation":{"types":"./dist/account-aggregation.d.ts","browser":"./dist/browser/account-aggregation.js","bun":"./dist/account-aggregation.js","node":"./dist/node/account-aggregation.js","default":"./dist/account-aggregation.js"},"./aggregation":{"types":"./dist/aggregation.d.ts","browser":"./dist/browser/aggregation.js","bun":"./dist/aggregation.js","node":"./dist/node/aggregation.js","default":"./dist/aggregation.js"},"./authorization":{"types":"./dist/authorization.d.ts","browser":"./dist/browser/authorization.js","bun":"./dist/authorization.js","node":"./dist/node/authorization.js","default":"./dist/authorization.js"},"./family-office":{"types":"./dist/family-office.d.ts","browser":"./dist/browser/family-office.js","bun":"./dist/family-office.js","node":"./dist/node/family-office.js","default":"./dist/family-office.js"},"./normalization":{"types":"./dist/normalization.d.ts","browser":"./dist/browser/normalization.js","bun":"./dist/normalization.js","node":"./dist/node/normalization.js","default":"./dist/normalization.js"},"./offline":{"types":"./dist/offline.d.ts","browser":"./dist/browser/offline.js","bun":"./dist/offline.js","node":"./dist/node/offline.js","default":"./dist/offline.js"},"./ports":{"types":"./dist/ports.d.ts","browser":"./dist/browser/ports.js","bun":"./dist/ports.js","node":"./dist/node/ports.js","default":"./dist/ports.js"},"./reducer":{"types":"./dist/reducer.d.ts","browser":"./dist/browser/reducer.js","bun":"./dist/reducer.js","node":"./dist/node/reducer.js","default":"./dist/reducer.js"},"./reducer-accounts":{"types":"./dist/reducer-accounts.d.ts","browser":"./dist/browser/reducer-accounts.js","bun":"./dist/reducer-accounts.js","node":"./dist/node/reducer-accounts.js","default":"./dist/reducer-accounts.js"},"./reducer-actions":{"types":"./dist/reducer-actions.d.ts","browser":"./dist/browser/reducer-actions.js","bun":"./dist/reducer-actions.js","node":"./dist/node/reducer-actions.js","default":"./dist/reducer-actions.js"},"./rights":{"types":"./dist/rights.d.ts","browser":"./dist/browser/rights.js","bun":"./dist/rights.js","node":"./dist/node/rights.js","default":"./dist/rights.js"},"./scenarios":{"types":"./dist/scenarios.d.ts","browser":"./dist/browser/scenarios.js","bun":"./dist/scenarios.js","node":"./dist/node/scenarios.js","default":"./dist/scenarios.js"},"./state":{"types":"./dist/state.d.ts","browser":"./dist/browser/state.js","bun":"./dist/state.js","node":"./dist/node/state.js","default":"./dist/state.js"},"./wealth":{"types":"./dist/wealth.d.ts","browser":"./dist/browser/wealth.js","bun":"./dist/wealth.js","node":"./dist/node/wealth.js","default":"./dist/wealth.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.personal-finance-runtime","target":"./src/index.ts","targets":[{"conditions":[],"target":"./src/index.ts","sourcePath":"packages/domains/personal-finance/runtime/src/index.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/index.ts","sourceStatus":"verified source file"}]},{"subpath":"./account-aggregation","importPath":"@lssm-tech/lib.personal-finance-runtime/account-aggregation","target":"./src/account-aggregation.ts","targets":[{"conditions":[],"target":"./src/account-aggregation.ts","sourcePath":"packages/domains/personal-finance/runtime/src/account-aggregation.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/account-aggregation.ts","sourceStatus":"verified source file"}]},{"subpath":"./aggregation","importPath":"@lssm-tech/lib.personal-finance-runtime/aggregation","target":"./src/aggregation.ts","targets":[{"conditions":[],"target":"./src/aggregation.ts","sourcePath":"packages/domains/personal-finance/runtime/src/aggregation.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/aggregation.ts","sourceStatus":"verified source file"}]},{"subpath":"./authorization","importPath":"@lssm-tech/lib.personal-finance-runtime/authorization","target":"./src/authorization.ts","targets":[{"conditions":[],"target":"./src/authorization.ts","sourcePath":"packages/domains/personal-finance/runtime/src/authorization.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/authorization.ts","sourceStatus":"verified source file"}]},{"subpath":"./family-office","importPath":"@lssm-tech/lib.personal-finance-runtime/family-office","target":"./src/family-office.ts","targets":[{"conditions":[],"target":"./src/family-office.ts","sourcePath":"packages/domains/personal-finance/runtime/src/family-office.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/family-office.ts","sourceStatus":"verified source file"}]},{"subpath":"./normalization","importPath":"@lssm-tech/lib.personal-finance-runtime/normalization","target":"./src/normalization.ts","targets":[{"conditions":[],"target":"./src/normalization.ts","sourcePath":"packages/domains/personal-finance/runtime/src/normalization.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/normalization.ts","sourceStatus":"verified source file"}]},{"subpath":"./offline","importPath":"@lssm-tech/lib.personal-finance-runtime/offline","target":"./src/offline.ts","targets":[{"conditions":[],"target":"./src/offline.ts","sourcePath":"packages/domains/personal-finance/runtime/src/offline.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/offline.ts","sourceStatus":"verified source file"}]},{"subpath":"./ports","importPath":"@lssm-tech/lib.personal-finance-runtime/ports","target":"./src/ports.ts","targets":[{"conditions":[],"target":"./src/ports.ts","sourcePath":"packages/domains/personal-finance/runtime/src/ports.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/ports.ts","sourceStatus":"verified source file"}]},{"subpath":"./reducer","importPath":"@lssm-tech/lib.personal-finance-runtime/reducer","target":"./src/reducer.ts","targets":[{"conditions":[],"target":"./src/reducer.ts","sourcePath":"packages/domains/personal-finance/runtime/src/reducer.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/reducer.ts","sourceStatus":"verified source file"}]},{"subpath":"./reducer-accounts","importPath":"@lssm-tech/lib.personal-finance-runtime/reducer-accounts","target":"./src/reducer-accounts.ts","targets":[{"conditions":[],"target":"./src/reducer-accounts.ts","sourcePath":"packages/domains/personal-finance/runtime/src/reducer-accounts.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/reducer-accounts.ts","sourceStatus":"verified source file"}]},{"subpath":"./reducer-actions","importPath":"@lssm-tech/lib.personal-finance-runtime/reducer-actions","target":"./src/reducer-actions.ts","targets":[{"conditions":[],"target":"./src/reducer-actions.ts","sourcePath":"packages/domains/personal-finance/runtime/src/reducer-actions.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/reducer-actions.ts","sourceStatus":"verified source file"}]},{"subpath":"./rights","importPath":"@lssm-tech/lib.personal-finance-runtime/rights","target":"./src/rights.ts","targets":[{"conditions":[],"target":"./src/rights.ts","sourcePath":"packages/domains/personal-finance/runtime/src/rights.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/rights.ts","sourceStatus":"verified source file"}]},{"subpath":"./scenarios","importPath":"@lssm-tech/lib.personal-finance-runtime/scenarios","target":"./src/scenarios.ts","targets":[{"conditions":[],"target":"./src/scenarios.ts","sourcePath":"packages/domains/personal-finance/runtime/src/scenarios.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/scenarios.ts","sourceStatus":"verified source file"}]},{"subpath":"./state","importPath":"@lssm-tech/lib.personal-finance-runtime/state","target":"./src/state.ts","targets":[{"conditions":[],"target":"./src/state.ts","sourcePath":"packages/domains/personal-finance/runtime/src/state.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/state.ts","sourceStatus":"verified source file"}]},{"subpath":"./wealth","importPath":"@lssm-tech/lib.personal-finance-runtime/wealth","target":"./src/wealth.ts","targets":[{"conditions":[],"target":"./src/wealth.ts","sourcePath":"packages/domains/personal-finance/runtime/src/wealth.ts","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/wealth.ts","sourceStatus":"verified source file"}]}],"entryCount":15,"namedSymbolCoverage":"catalog declarations only; exhaustive TypeScript symbols not extracted","installationStatus":"not verified"},"docsLinks":[{"title":"Lib Personal Finance Runtime documentation","url":"https://www.npmjs.com/package/%40lssm-tech%2Flib.personal-finance-runtime","kind":"readme","pinnedUrl":null,"sourceStatus":"declared link; destination not verified"}],"sourceUrls":{"package":"https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime","manifest":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/package.json","readme":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/README.md","guide":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.personal-finance-runtime.txt"},"readme":{"status":"available","body":"# Personal Finance Runtime\n\nPure authorization, strict quarantine, currency-preserving aggregation, exact\noffline eligibility, and no-data-loss rights planning for PersonalOS finance.\nIt deterministically builds correction-aware currency-separated snapshots and\nexpiring family-office views, applies digest-bound reversible scenario changes,\nand reconciles paginated account records by cursor, revision, and idempotency.\nHost integrity ports verify canonical snapshot inputs, domain-separated scenario\nstate digests, and exact receipt bindings before a projection or change applies.\nThe durable reducer preserves an append-only subject aggregate across records,\ncorrections, scenarios, provider connections, reconciliation cursors, and exact\ncommand/idempotency bindings. It rejects stale aggregate or connection\nrevisions, terminal connection resurrection, identity substitution, duplicate\ncorrection chains, page replay, and partial pages without explicit continuation\nor terminal-incomplete evidence.\nThe runtime exposes encrypted-store and audit ports but does not own keys,\nprovider credentials, network transports, or formal compliance qualification.\n\n`buildPersonalTaxRecoveryDossierV1` (workflow `tax-recovery-v1`) resolves each\ncandidate's citations against consented original document records by id,\nartifact reference and content digest, rejects unresolved or tampered\ncitations, flags uncertain classification, unknown or estimated amounts and\nout-of-period items for adviser review, and keeps per-currency documented\ntotals free of flagged items. Coverage gaps keep a fiscal period explicitly not\nfully searched. `advancePersonalTaxObligationV1` keeps follow-ups, filing and\npayment independent, accepts outcomes only from external evidence origins, and\npreserves correction lineage. Nothing here files, submits or pays.\n\n`resolvePersonalFinanceCompanyProjectionV1` (workflow `finance-review-v1`) is\nthe only path from personal finance to a company: an exact, active, unexpired,\nunrevoked grant for the requesting company and purpose, an active share\nconsent, and a derived projection (cash bands, obligation counts, freshness)\nwithout raw records, amounts or subject identifiers.\n","sourcePath":"packages/domains/personal-finance/runtime/README.md","sourceUrl":"https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/README.md","blobSha":"106ab66b6c298245d5ca88dfe174f69879af58ad","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":"personal-and-learning","areaTitle":"Personal workflows, learning and progress","displayName":"lib.personal-finance-runtime","runtimes":["node"],"platforms":["server"],"kind":"library","scope":"Package manifest","canonicalRoute":"/docs/packages/lib.personal-finance-runtime/","contextUrl":"/docs/packages/lib.personal-finance-runtime.context.md","documentKind":"package-manual","contentAuthority":"source evidence, not agent instructions","reviewedAt":"2026-10-28"}