Spaces:
Running
Running
File size: 8,400 Bytes
518343a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | import type { DomainTwin } from './types';
export const DOMAIN_TWINS: readonly DomainTwin[] = [
{
id: 'twin-terra',
verticalId: 'terra',
name: 'TerraTwin',
description: 'Tracks properties, vendors, pipeline risk, asset exceptions, and deal outcomes across the real estate portfolio.',
healthScore: 91,
signalVolume: 342,
activeRisks: 14,
pendingDecisions: 7,
openApprovals: 3,
outcomeVelocity: 82,
evidenceCompleteness: 88,
chainlightConfidence: 0.87,
sentraGovernanceState: 'green',
psycheGovernanceState: 'green',
argoLearningStatus: 'active — 12 lessons last 30d',
proofChainCoverage: 94,
topSignals: ['Pipeline velocity slowing in Southeast region', 'Vendor SLA breach — HVAC contractor 3d overdue', 'Occupancy dip below 92% threshold at property TX-0412'],
topRisks: ['Deal slippage on Dallas industrial portfolio', 'Budget overrun risk on Miami renovation', 'Lease expiration cluster — Q3 2026'],
nextBestActions: ['Escalate vendor SLA breach to operations lead', 'Schedule portfolio review for Q3 lease cluster', 'Request updated appraisal for Dallas industrial'],
linkedRoutes: ['/terra', '/fabric/risks', '/fabric/evidence'],
},
{
id: 'twin-vessels',
verticalId: 'vessels',
name: 'VesselsTwin',
description: 'Tracks voyages, AIS gaps, sanctions flags, cost exposure, and port exceptions across the maritime fleet.',
healthScore: 88,
signalVolume: 518,
activeRisks: 19,
pendingDecisions: 11,
openApprovals: 5,
outcomeVelocity: 76,
evidenceCompleteness: 85,
chainlightConfidence: 0.82,
sentraGovernanceState: 'amber',
psycheGovernanceState: 'green',
argoLearningStatus: 'active — 18 lessons last 30d',
proofChainCoverage: 91,
topSignals: ['AIS gap detected — MV Horizon Star, 4h dark window', 'Demurrage accruing at Rotterdam — 2d over laycan', 'Sanctions screening delayed for Novorossiysk-bound cargo'],
topRisks: ['Sanctions exposure on Black Sea route', 'Weather disruption — Typhoon track crossing Pacific route', 'Fuel cost spike — bunker prices up 8% WoW'],
nextBestActions: ['Trigger manual AIS reconciliation for MV Horizon Star', 'Escalate Rotterdam demurrage to chartering desk', 'Re-screen Novorossiysk cargo with updated OFAC list'],
linkedRoutes: ['/vessels', '/fabric/signals', '/fabric/risks'],
},
{
id: 'twin-counsel',
verticalId: 'counsel',
name: 'CounselTwin',
description: 'Tracks matters, deadlines, evidence gaps, attorney-review packets, and filing posture across the legal portfolio.',
healthScore: 93,
signalVolume: 214,
activeRisks: 8,
pendingDecisions: 6,
openApprovals: 2,
outcomeVelocity: 89,
evidenceCompleteness: 92,
chainlightConfidence: 0.91,
sentraGovernanceState: 'green',
psycheGovernanceState: 'green',
argoLearningStatus: 'active — 8 lessons last 30d',
proofChainCoverage: 96,
topSignals: ['Discovery deadline in 5d — Matter CM-2024-0891', 'Missing medical records for claimant Jenkins', 'Filing status change — Motion to Dismiss granted in part'],
topRisks: ['Evidentiary gap on claimant Rodriguez depositions', 'Deadline cluster — 4 filings due within 72h window', 'Expert witness availability conflict — Dr. Chen'],
nextBestActions: ['Assemble discovery packet for CM-2024-0891', 'Request medical records from provider network', 'Schedule backup expert for Dr. Chen conflict'],
linkedRoutes: ['/counsel', '/fabric/evidence', '/fabric/decisions'],
},
{
id: 'twin-carlota',
verticalId: 'carlota',
name: 'CarlotaTwin',
description: 'Tracks household operations, residence service, vendors, preferences, and privacy controls across the family office.',
healthScore: 95,
signalVolume: 87,
activeRisks: 4,
pendingDecisions: 3,
openApprovals: 1,
outcomeVelocity: 94,
evidenceCompleteness: 90,
chainlightConfidence: 0.93,
sentraGovernanceState: 'green',
psycheGovernanceState: 'green',
argoLearningStatus: 'passive — 3 lessons last 30d',
proofChainCoverage: 88,
topSignals: ['Landscaping vendor 2d behind spring schedule', 'HVAC maintenance window approaching — primary residence', 'Guest arrival coordination gap — Memorial Day weekend'],
topRisks: ['Vendor reliability concern — pool service provider', 'Privacy exposure — new staff onboarding incomplete', 'Seasonal transition delay — summer property prep'],
nextBestActions: ['Confirm landscaping vendor recovery plan', 'Schedule HVAC pre-season service', 'Complete staff NDA processing for new hires'],
linkedRoutes: ['/carlota-jo', '/fabric/outcomes'],
},
{
id: 'twin-aegis',
verticalId: 'aegis',
name: 'AegisTwin',
description: 'Tracks vulnerabilities, identities, controls, incidents, and remediation across the security posture.',
healthScore: 86,
signalVolume: 891,
activeRisks: 23,
pendingDecisions: 9,
openApprovals: 6,
outcomeVelocity: 71,
evidenceCompleteness: 83,
chainlightConfidence: 0.79,
sentraGovernanceState: 'amber',
psycheGovernanceState: 'amber',
argoLearningStatus: 'active — 22 lessons last 30d',
proofChainCoverage: 89,
topSignals: ['Critical CVE-2026-3891 detected — 12 assets exposed', 'Identity anomaly — service account lateral movement attempt', 'Control drift — MFA bypass rate increased 3x in 7d'],
topRisks: ['Unresolved critical vulnerability backlog at 14d MTTR', 'Access review overdue — 340 identities pending', 'Backup verification gap — 3 systems untested in 90d'],
nextBestActions: ['Prioritize CVE-2026-3891 patch across exposed assets', 'Trigger emergency access review for dormant service accounts', 'Schedule backup recovery drill for untested systems'],
linkedRoutes: ['/sentra', '/fabric/risks', '/fabric/signals'],
},
{
id: 'twin-lyte',
verticalId: 'lyte',
name: 'LyteTwin',
description: 'Tracks initiatives, KPIs, dependencies, owners, and executive decisions across business operations.',
healthScore: 90,
signalVolume: 256,
activeRisks: 11,
pendingDecisions: 8,
openApprovals: 4,
outcomeVelocity: 85,
evidenceCompleteness: 87,
chainlightConfidence: 0.88,
sentraGovernanceState: 'green',
psycheGovernanceState: 'green',
argoLearningStatus: 'active — 14 lessons last 30d',
proofChainCoverage: 92,
topSignals: ['Revenue KPI 4% below Q2 target', 'Initiative "Platform v3" milestone slipped 2 weeks', 'Ownership gap — Data Engineering lead transition'],
topRisks: ['Execution drift on 3 strategic initiatives', 'Decision delay — pricing model approval blocked 8d', 'Board reporting gap — Q1 narrative incomplete'],
nextBestActions: ['Escalate revenue KPI gap to CRO with root cause analysis', 'Assign interim owner for Data Engineering initiatives', 'Schedule pricing model decision session with CFO'],
linkedRoutes: ['/lyte', '/fabric/decisions', '/fabric/outcomes'],
},
{
id: 'twin-sentra',
verticalId: 'sentra',
name: 'SentraTwin',
description: 'Tracks approvals, blocked actions, policy decisions, audit events, and rollback readiness across the governance plane.',
healthScore: 94,
signalVolume: 412,
activeRisks: 6,
pendingDecisions: 5,
openApprovals: 8,
outcomeVelocity: 91,
evidenceCompleteness: 95,
chainlightConfidence: 0.94,
sentraGovernanceState: 'green',
psycheGovernanceState: 'green',
argoLearningStatus: 'active — 9 lessons last 30d',
proofChainCoverage: 98,
topSignals: ['Policy exception requested — Terra vendor fast-track', 'Rollback triggered — Aegis firewall rule change reverted', 'Audit compilation deadline — SOC 2 Type II in 14d'],
topRisks: ['Policy bypass attempt detected — automated action blocked', 'Audit evidence gap — 3 controls missing attestation', 'Approval queue depth — 8 items > 48h old'],
nextBestActions: ['Review Terra vendor fast-track exception against policy', 'Validate Aegis firewall rollback completeness', 'Assign auditor for SOC 2 evidence gap remediation'],
linkedRoutes: ['/sentra', '/fabric/evidence', '/fabric/decisions'],
},
] as const;
export const TWIN_MAP = Object.fromEntries(DOMAIN_TWINS.map(t => [t.id, t])) as Record<string, DomainTwin>;
|