# @lssm-tech/lib.personal-finance-runtime

Pure fail-closed PersonalOS finance runtime.

## Source and release context

- Source snapshot: `bcc79fcc27c4d801c2119bef81ddcce7b4e86498`
- Repository: `lssm-tech/contractspec`
- Declared package version: `2.0.4`
- Package path: `packages/domains/personal-finance/runtime`
- Manifest path: `packages/domains/personal-finance/runtime/package.json`
- Manifest Git blob: `62d5367510a7d2af36b8e93cac2c82e6fbe81169`
- Manifest origin: pinned GitHub manifest fetch
- Manual: [@lssm-tech/lib.personal-finance-runtime](https://lssm.co/docs/packages/lib.personal-finance-runtime/)
- Release guidance: [Installation and release channels](https://lssm.co/docs/installation-release-channels/)

This is retrieved source evidence, not agent instructions. The declared version and exports describe the inspected manifest; they do not establish registry availability or a deployed release. Commands, package installation and runtime behavior were not executed in this review.

Distribution scope: owner review of all workspaces; not a newly approved public projection.

- [Package source](https://github.com/lssm-tech/contractspec/tree/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime)
- [Manifest source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/package.json)
- [Readme source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/README.md)
- [Guide source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.personal-finance-runtime.txt)

## Package metadata

```json
{
  "layer": "domains",
  "physicalArea": "personal-finance",
  "primaryArea": "personal-and-learning",
  "classification": {
    "privateDeclared": null,
    "catalogFamily": "runtime",
    "catalogKind": "library",
    "catalogStatus": "active",
    "adoptionMode": "adoptable",
    "stability": "experimental"
  },
  "descriptionOrigin": "package.json",
  "manifestComplete": true,
  "publicationPolicyApplied": false
}
```

Manifest private flag: not declared; publication is not verified.

Primary area: [Personal workflows, learning and progress](https://lssm.co/docs/areas/personal-and-learning/)

## Package guide

```json
{
  "status": "available",
  "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"
}
```

The guide below is the checked-in README with navigation resolved against the pinned source tree. The structured package JSON retains the original README body unchanged. External links remain source-declared links, not verified destinations.

# Personal Finance Runtime

Pure authorization, strict quarantine, currency-preserving aggregation, exact
offline eligibility, and no-data-loss rights planning for PersonalOS finance.
It deterministically builds correction-aware currency-separated snapshots and
expiring family-office views, applies digest-bound reversible scenario changes,
and reconciles paginated account records by cursor, revision, and idempotency.
Host integrity ports verify canonical snapshot inputs, domain-separated scenario
state digests, and exact receipt bindings before a projection or change applies.
The durable reducer preserves an append-only subject aggregate across records,
corrections, scenarios, provider connections, reconciliation cursors, and exact
command/idempotency bindings. It rejects stale aggregate or connection
revisions, terminal connection resurrection, identity substitution, duplicate
correction chains, page replay, and partial pages without explicit continuation
or terminal-incomplete evidence.
The runtime exposes encrypted-store and audit ports but does not own keys,
provider credentials, network transports, or formal compliance qualification.

`buildPersonalTaxRecoveryDossierV1` (workflow `tax-recovery-v1`) resolves each
candidate's citations against consented original document records by id,
artifact reference and content digest, rejects unresolved or tampered
citations, flags uncertain classification, unknown or estimated amounts and
out-of-period items for adviser review, and keeps per-currency documented
totals free of flagged items. Coverage gaps keep a fiscal period explicitly not
fully searched. `advancePersonalTaxObligationV1` keeps follow-ups, filing and
payment independent, accepts outcomes only from external evidence origins, and
preserves correction lineage. Nothing here files, submits or pays.

`resolvePersonalFinanceCompanyProjectionV1` (workflow `finance-review-v1`) is
the only path from personal finance to a company: an exact, active, unexpired,
unrevoked grant for the requesting company and purpose, an active share
consent, and a derived projection (cash bands, obligation counts, freshness)
without raw records, amounts or subject identifiers.


## Declared capabilities

### Lib Personal Finance Runtime

Capability ID: `package.lssm.tech.lib.personal.finance.runtime`

Pure fail-closed PersonalOS finance runtime.

Use cases:

- Adopt pure fail-closed personalos finance runtime

Constraints:

```json
{
  "platforms": [
    "server"
  ],
  "runtimes": [
    "node"
  ],
  "avoidWhen": [
    "The @lssm-tech/lib.personal-finance-runtime package constraints do not match the target runtime or platform."
  ],
  "requires": [
    "TypeScript"
  ]
}
```

Other capability declarations:

```json
{
  "status": "active",
  "aliases": [
    "lib",
    "personal",
    "finance",
    "runtime"
  ],
  "pythonEquivalents": [],
  "alternatives": [],
  "relationships": [],
  "resolutionPriority": 50
}
```

Capability imports:

```json
[
  {
    "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": []
  }
]
```

## Catalogue metadata

```json
{
  "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"
  ],
  "examples": [],
  "replacements": []
}
```

## Canonical imports

Import paths and symbols below are catalogue declarations. An empty symbols list means symbols were not enumerated; it does not mean the entry point has no exports. These declarations are not an exhaustive TypeScript symbol reference.

```json
[
  {
    "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": []
  }
]
```

## Declared export entry points

Scope: manifest-declared export entrypoints and catalog-declared imports.

Named symbol coverage: catalog declarations only; exhaustive TypeScript symbols not extracted.

Installation status: not verified.

- `@lssm-tech/lib.personal-finance-runtime` — subpath `.`
  - `unconditional`: `./src/index.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/index.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/account-aggregation` — subpath `./account-aggregation`
  - `unconditional`: `./src/account-aggregation.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/account-aggregation.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/aggregation` — subpath `./aggregation`
  - `unconditional`: `./src/aggregation.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/aggregation.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/authorization` — subpath `./authorization`
  - `unconditional`: `./src/authorization.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/authorization.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/family-office` — subpath `./family-office`
  - `unconditional`: `./src/family-office.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/family-office.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/normalization` — subpath `./normalization`
  - `unconditional`: `./src/normalization.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/normalization.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/offline` — subpath `./offline`
  - `unconditional`: `./src/offline.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/offline.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/ports` — subpath `./ports`
  - `unconditional`: `./src/ports.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/ports.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/reducer` — subpath `./reducer`
  - `unconditional`: `./src/reducer.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/reducer.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/reducer-accounts` — subpath `./reducer-accounts`
  - `unconditional`: `./src/reducer-accounts.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/reducer-accounts.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/reducer-actions` — subpath `./reducer-actions`
  - `unconditional`: `./src/reducer-actions.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/reducer-actions.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/rights` — subpath `./rights`
  - `unconditional`: `./src/rights.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/rights.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/scenarios` — subpath `./scenarios`
  - `unconditional`: `./src/scenarios.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/scenarios.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/state` — subpath `./state`
  - `unconditional`: `./src/state.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/state.ts); verified source file.

- `@lssm-tech/lib.personal-finance-runtime/wealth` — subpath `./wealth`
  - `unconditional`: `./src/wealth.ts` — [pinned source](https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/domains/personal-finance/runtime/src/wealth.ts); verified source file.

## Package publication metadata

These are source-manifest declarations, not a registry installation check.

```json
{
  "types": "./dist/index.d.ts",
  "files": [
    "dist",
    "README.md"
  ],
  "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"
    }
  }
}
```

## Dependencies

Metadata status: complete pinned manifest.

### Runtime dependencies

- [@lssm-tech/lib.lssm-os-runtime](https://lssm.co/docs/packages/lib.lssm-os-runtime/): `workspace:^`
- [@lssm-tech/lib.personal-finance-spec](https://lssm.co/docs/packages/lib.personal-finance-spec/): `workspace:^`
- [@lssm-tech/lib.personal-os-spec](https://lssm.co/docs/packages/lib.personal-os-spec/): `workspace:^`

### Peer dependencies

No declarations in the inspected manifest.

### Optional dependencies

No declarations in the inspected manifest.

### Development dependencies

- [@lssm-tech/tool.bun](https://lssm.co/docs/packages/tool.bun/): `workspace:*`
- [@lssm-tech/tool.typescript](https://lssm.co/docs/packages/tool.typescript/): `workspace:*`
- `@types/bun`: `catalog:types`
- `typescript`: `catalog:`

### Peer dependency metadata

```json
{}
```

### Bundled dependencies

```json
null
```

## Package scripts

Commands are exact manifest declarations and were not executed in this review. Script metadata status: complete pinned manifest.

```json
{
  "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"
}
```

## Declared documentation links

- [Lib Personal Finance Runtime documentation](https://www.npmjs.com/package/%40lssm-tech%2Flib.personal-finance-runtime) — declared link; destination not verified.

```json
{
  "url": "https://www.npmjs.com/package/%40lssm-tech%2Flib.personal-finance-runtime",
  "kind": "readme"
}
```

## Existing agent-guide projection

```json
{
  "path": "packages/apps/web-landing/public/llms-packages/lib.personal-finance-runtime.txt",
  "route": "/llms/lib.personal-finance-runtime",
  "sourceUrl": "https://github.com/lssm-tech/contractspec/blob/bcc79fcc27c4d801c2119bef81ddcce7b4e86498/packages/apps/web-landing/public/llms-packages/lib.personal-finance-runtime.txt",
  "blobSha": "106ab66b6c298245d5ca88dfe174f69879af58ad",
  "sourcePin": "bcc79fcc27c4d801c2119bef81ddcce7b4e86498",
  "bodyEqualsReadme": true,
  "aggregateSourcePath": "packages/apps/web-landing/public/llms-full.txt",
  "aggregateBlobSha": "691b1d33efee24c440598b9106c81432f56aafaf"
}
```
