mirror of
https://github.com/luxfi/financial.git
synced 2026-11-03 08:10:17 +00:00
Documents (Stage 10.2): * Tree view of doc categories — subscription agreements, K-1s, 1099s, annual reports, side letters, offering memoranda, custody statements. * Per-doc rows: filename, type, issuer, issued-date, size, SHA-256, view / download / share-with-advisor actions. * Every body fetch re-verifies the SHA-256 against the WORM manifest in the browser (lib/worm/sha256.ts), throwing IntegrityError on mismatch. * Scoped, time-limited 'share with advisor' link generator (lib/gateway/document.ts share()) — every grant is audit-logged. * Free-text + category filtering on the index. Inbox (Stage 10.3): * Notice list filtered by type — regulatory / dividend / proxy / corp-action / distribution / KYC-refresh / general — backed by captable/comms Notice records. * Detail panel with full body + structured action button (proxy vote hand-off, KYC refresh hand-off to Agent C, ack-required regulatory disclosures). * Optimistic mark-read on selection; acknowledge fires an attestation event to the audit trail. * Shared useUnreadCount hook (lib/notifications) drives the sidebar inbox badge; 60s polling, paused when tab hidden. Other portal sections can consume the same hook for their own badge needs. Tax (Stage 10.6): * Per-tax-year folder of every 1099 family form (DIV / B / INT / MISC / NEC / OID / K / R) plus Schedule K-1, pulled from captable/tax (which routes 1099 e-file through IRIS + FIRE adapters). * Cost-basis report — per-lot detail with FIFO / LIFO / specific-lot toggle; renders short-term + long-term aggregates and wash-sale flag. * 8949-ready CSV export — server-side preferred, client-side fallback (costBasisToCsv8949 in lib/gateway/tax.ts) so the export still works offline / air-gapped. * Per-form: view / download with SHA-256 verification (same WORM path as documents). * 'Send to my CPA' — scoped, time-limited link bundling selected forms plus optional cost-basis report. Audit-logged. Cross-cutting: * Three new gateway clients on top of Agent A's transport: document, comms, tax — all enforce investor scope through the operator gateway identity headers. * Sidebar wired to useUnreadCount for the live inbox badge. * 13 G-22b tests added — 5 WORM SHA-256 golden vectors, 5 CSV-8949 serializer cases, 1 page render each for documents / inbox / tax. All passing. Source-of-design: Lux-Prior-IP Source-ref: transfer@6f327c998e159728c5e1692f6771554a344279cd, captable@3bcf2a834ae821e8dd96a1d9bc21ec8b30012c92 Clean-Team-Member: dev-agent (G-22b documents + inbox + tax) Signed-off-by: dev <[email protected]>
39 lines
1.0 KiB
JSON
39 lines
1.0 KiB
JSON
{
|
|
"name": "@luxbank/investor",
|
|
"version": "0.1.1",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev -p 3002",
|
|
"build": "next build",
|
|
"export": "STATIC_EXPORT=true next build",
|
|
"deploy:cf": "pnpm export && wrangler pages deploy out --project-name=lux-financial-investor",
|
|
"start": "next start -p 3002",
|
|
"lint": "next lint",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest"
|
|
},
|
|
"dependencies": {
|
|
"@luxbank/brand": "workspace:*",
|
|
"@luxfi/logo": "^1.0.0",
|
|
"geist": "^1.7.0",
|
|
"jose": "^5.9.6",
|
|
"next": "^15.1.6",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/postcss": "^4.0.0",
|
|
"@testing-library/jest-dom": "^6.6.3",
|
|
"@testing-library/react": "^16.1.0",
|
|
"@types/node": "^20",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"@vitejs/plugin-react": "^4.3.4",
|
|
"happy-dom": "^15.11.7",
|
|
"postcss": "^8.4.49",
|
|
"tailwindcss": "^4.0.0",
|
|
"typescript": "^5.5.4",
|
|
"vitest": "^2.1.8"
|
|
}
|
|
}
|