pi-mega-compact 0.19.3 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/config/vector-cortex.js +24 -0
  2. package/dist/config.js +1 -1
  3. package/dist/extensions/dashboard-server/routes-cache.test/_helpers.js +2 -0
  4. package/dist/extensions/dashboard-server/routes-rag-settings-helpers.js +2 -0
  5. package/dist/extensions/dashboard-server/routes-vector-cortex-helpers.js +100 -0
  6. package/dist/extensions/dashboard-server/routes-vector-cortex-residual.js +51 -0
  7. package/dist/extensions/dashboard-server/routes-vector-cortex-shards.js +48 -0
  8. package/dist/extensions/dashboard-server/routes-vector-cortex.js +2 -0
  9. package/dist/extensions/dashboard-server/routes.js +1 -1
  10. package/dist/extensions/dashboard-server/server.js +41 -16
  11. package/dist/extensions/dashboard-server/tailscale.js +32 -0
  12. package/dist/src/config/vector-cortex.js +24 -0
  13. package/dist/src/config.js +1 -1
  14. package/dist/src/vector-cortex/residual/codec.js +224 -0
  15. package/dist/src/vector-cortex/residual/dct.js +158 -0
  16. package/dist/src/vector-cortex/residual/fixture-payload.js +77 -0
  17. package/dist/src/vector-cortex/residual/gf256.js +182 -0
  18. package/dist/src/vector-cortex/residual/parity.js +245 -0
  19. package/dist/src/vector-cortex/residual/quantize.js +200 -0
  20. package/dist/src/vector-cortex/residual/stream.js +124 -0
  21. package/dist/src/vector-cortex/residual/types.js +55 -0
  22. package/dist/src/vector-cortex/shards/exact.js +134 -0
  23. package/dist/src/vector-cortex/shards/manifest.js +237 -0
  24. package/dist/src/vector-cortex/shards/semantic.js +137 -0
  25. package/dist/src/vector-cortex/shards/types.js +51 -0
  26. package/dist/vector-cortex/residual/codec.js +224 -0
  27. package/dist/vector-cortex/residual/dct.js +158 -0
  28. package/dist/vector-cortex/residual/fixture-payload.js +77 -0
  29. package/dist/vector-cortex/residual/gf256.js +182 -0
  30. package/dist/vector-cortex/residual/parity.js +245 -0
  31. package/dist/vector-cortex/residual/quantize.js +200 -0
  32. package/dist/vector-cortex/residual/stream.js +124 -0
  33. package/dist/vector-cortex/residual/types.js +55 -0
  34. package/dist/vector-cortex/shards/exact.js +134 -0
  35. package/dist/vector-cortex/shards/manifest.js +237 -0
  36. package/dist/vector-cortex/shards/semantic.js +137 -0
  37. package/dist/vector-cortex/shards/types.js +51 -0
  38. package/extensions/dashboard-client/dist/assets/{AreaChart-DqiFSnDx.js → AreaChart-n4z5w9Ox.js} +2 -2
  39. package/extensions/dashboard-client/dist/assets/{AreaChart-DqiFSnDx.js.map → AreaChart-n4z5w9Ox.js.map} +1 -1
  40. package/extensions/dashboard-client/dist/assets/{BarChart-Cqg-PQMK.js → BarChart-BLGjWWBr.js} +2 -2
  41. package/extensions/dashboard-client/dist/assets/{BarChart-Cqg-PQMK.js.map → BarChart-BLGjWWBr.js.map} +1 -1
  42. package/extensions/dashboard-client/dist/assets/{CacheTab-BPNs0xIF.js → CacheTab-CAnrKKVK.js} +2 -2
  43. package/extensions/dashboard-client/dist/assets/{CacheTab-BPNs0xIF.js.map → CacheTab-CAnrKKVK.js.map} +1 -1
  44. package/extensions/dashboard-client/dist/assets/{EventsTab-BQf7OGkf.js → EventsTab-D-GL7Ngq.js} +2 -2
  45. package/extensions/dashboard-client/dist/assets/{EventsTab-BQf7OGkf.js.map → EventsTab-D-GL7Ngq.js.map} +1 -1
  46. package/extensions/dashboard-client/dist/assets/{HealthTab-B14TaSPN.js → HealthTab-C4x5qQ8s.js} +2 -2
  47. package/extensions/dashboard-client/dist/assets/{HealthTab-B14TaSPN.js.map → HealthTab-C4x5qQ8s.js.map} +1 -1
  48. package/extensions/dashboard-client/dist/assets/{MaintenanceTab-D8lkRoa1.js → MaintenanceTab-BSPs0eq5.js} +2 -2
  49. package/extensions/dashboard-client/dist/assets/{MaintenanceTab-D8lkRoa1.js.map → MaintenanceTab-BSPs0eq5.js.map} +1 -1
  50. package/extensions/dashboard-client/dist/assets/{MemoryMapTab-BOWtGfpx.js → MemoryMapTab-BWEUtTSu.js} +2 -2
  51. package/extensions/dashboard-client/dist/assets/{MemoryMapTab-BOWtGfpx.js.map → MemoryMapTab-BWEUtTSu.js.map} +1 -1
  52. package/extensions/dashboard-client/dist/assets/{MetricsTab-7XI9cWaX.js → MetricsTab-Dhm1c3Cx.js} +2 -2
  53. package/extensions/dashboard-client/dist/assets/{MetricsTab-7XI9cWaX.js.map → MetricsTab-Dhm1c3Cx.js.map} +1 -1
  54. package/extensions/dashboard-client/dist/assets/{OverviewTab-C9KaGYvh.js → OverviewTab-Cm6cySiQ.js} +2 -2
  55. package/extensions/dashboard-client/dist/assets/{OverviewTab-C9KaGYvh.js.map → OverviewTab-Cm6cySiQ.js.map} +1 -1
  56. package/extensions/dashboard-client/dist/assets/{ReposTab-BwESNhox.js → ReposTab-DxLN1N4K.js} +2 -2
  57. package/extensions/dashboard-client/dist/assets/{ReposTab-BwESNhox.js.map → ReposTab-DxLN1N4K.js.map} +1 -1
  58. package/extensions/dashboard-client/dist/assets/{SessionsTab-DKH55Rda.js → SessionsTab-CZuI4ISW.js} +2 -2
  59. package/extensions/dashboard-client/dist/assets/{SessionsTab-DKH55Rda.js.map → SessionsTab-CZuI4ISW.js.map} +1 -1
  60. package/extensions/dashboard-client/dist/assets/{SetupTab-zDxf-nJd.js → SetupTab-C_0VOomm.js} +2 -2
  61. package/extensions/dashboard-client/dist/assets/{SetupTab-zDxf-nJd.js.map → SetupTab-C_0VOomm.js.map} +1 -1
  62. package/extensions/dashboard-client/dist/assets/{TimeSavedCard-C9isog4L.js → TimeSavedCard-BhbaRLmi.js} +2 -2
  63. package/extensions/dashboard-client/dist/assets/{TimeSavedCard-C9isog4L.js.map → TimeSavedCard-BhbaRLmi.js.map} +1 -1
  64. package/extensions/dashboard-client/dist/assets/{TurnsTab-ciI6ydvj.js → TurnsTab-CXJmbjje.js} +2 -2
  65. package/extensions/dashboard-client/dist/assets/{TurnsTab-ciI6ydvj.js.map → TurnsTab-CXJmbjje.js.map} +1 -1
  66. package/extensions/dashboard-client/dist/assets/VectorCortexTab-BGe9hu3r.js +2 -0
  67. package/extensions/dashboard-client/dist/assets/VectorCortexTab-BGe9hu3r.js.map +1 -0
  68. package/extensions/dashboard-client/dist/assets/{WikiTab-DcYHc734.js → WikiTab-C5uvMCzp.js} +2 -2
  69. package/extensions/dashboard-client/dist/assets/{WikiTab-DcYHc734.js.map → WikiTab-C5uvMCzp.js.map} +1 -1
  70. package/extensions/dashboard-client/dist/assets/{button-DF8lx4bt.js → button-Cl_fxJcg.js} +2 -2
  71. package/extensions/dashboard-client/dist/assets/{button-DF8lx4bt.js.map → button-Cl_fxJcg.js.map} +1 -1
  72. package/extensions/dashboard-client/dist/assets/{card-DIoDheSZ.js → card-BH8Le5YM.js} +2 -2
  73. package/extensions/dashboard-client/dist/assets/{card-DIoDheSZ.js.map → card-BH8Le5YM.js.map} +1 -1
  74. package/extensions/dashboard-client/dist/assets/{generateCategoricalChart-BFRzeYX3.js → generateCategoricalChart-sZ6ZNtBi.js} +2 -2
  75. package/extensions/dashboard-client/dist/assets/{generateCategoricalChart-BFRzeYX3.js.map → generateCategoricalChart-sZ6ZNtBi.js.map} +1 -1
  76. package/extensions/dashboard-client/dist/assets/{index-DSZON0Yi.js → index-CX9zv8cJ.js} +3 -3
  77. package/extensions/dashboard-client/dist/assets/{index-DSZON0Yi.js.map → index-CX9zv8cJ.js.map} +1 -1
  78. package/extensions/dashboard-client/dist/assets/{switch-l4qo22mU.js → switch-CXJhcjhM.js} +2 -2
  79. package/extensions/dashboard-client/dist/assets/{switch-l4qo22mU.js.map → switch-CXJhcjhM.js.map} +1 -1
  80. package/extensions/dashboard-client/dist/assets/{toggle-DPn6td1_.js → toggle-CoLtIc6y.js} +2 -2
  81. package/extensions/dashboard-client/dist/assets/{toggle-DPn6td1_.js.map → toggle-CoLtIc6y.js.map} +1 -1
  82. package/extensions/dashboard-client/dist/assets/{useSSE-BLmolqTJ.js → useSSE-fSXho606.js} +2 -2
  83. package/extensions/dashboard-client/dist/assets/{useSSE-BLmolqTJ.js.map → useSSE-fSXho606.js.map} +1 -1
  84. package/extensions/dashboard-client/dist/index.html +1 -1
  85. package/extensions/dashboard-client/src/api/vector-cortex.ts +9 -0
  86. package/extensions/dashboard-client/src/tabs/VectorCortexTab.tsx +35 -0
  87. package/extensions/dashboard-client/src/types/vector-cortex.ts +13 -0
  88. package/extensions/dashboard-server/api-contracts/vector-cortex.ts +53 -0
  89. package/extensions/dashboard-server/routes-cache.test/_helpers.ts +2 -0
  90. package/extensions/dashboard-server/routes-rag-settings-helpers.ts +12 -0
  91. package/extensions/dashboard-server/routes-vector-cortex-helpers.ts +110 -0
  92. package/extensions/dashboard-server/routes-vector-cortex-residual.ts +60 -0
  93. package/extensions/dashboard-server/routes-vector-cortex-shards.ts +57 -0
  94. package/extensions/dashboard-server/routes-vector-cortex.ts +2 -0
  95. package/extensions/dashboard-server/routes.ts +2 -0
  96. package/extensions/dashboard-server/server.ts +46 -17
  97. package/extensions/dashboard-server/tailscale.ts +32 -0
  98. package/package.json +1 -1
  99. package/src/config/vector-cortex.ts +26 -0
  100. package/src/config.ts +2 -0
  101. package/src/vector-cortex/residual/codec.ts +292 -0
  102. package/src/vector-cortex/residual/dct.ts +166 -0
  103. package/src/vector-cortex/residual/fixture-payload.ts +90 -0
  104. package/src/vector-cortex/residual/gf256.ts +196 -0
  105. package/src/vector-cortex/residual/parity.ts +283 -0
  106. package/src/vector-cortex/residual/quantize.ts +230 -0
  107. package/src/vector-cortex/residual/stream.ts +135 -0
  108. package/src/vector-cortex/residual/types.ts +236 -0
  109. package/src/vector-cortex/shards/exact.ts +141 -0
  110. package/src/vector-cortex/shards/manifest.ts +276 -0
  111. package/src/vector-cortex/shards/semantic.ts +156 -0
  112. package/src/vector-cortex/shards/types.ts +212 -0
  113. package/extensions/dashboard-client/dist/assets/VectorCortexTab-qTZ7NWng.js +0 -2
  114. package/extensions/dashboard-client/dist/assets/VectorCortexTab-qTZ7NWng.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"VectorCortexTab-qTZ7NWng.js","sources":["../../src/api/vector-cortex.ts","../../src/tabs/VectorCortexTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/api/vector-cortex.ts — vector-cortex API client.\n * PREVENT-PI-004: relative path only (loopback dashboard).\n */\n\nimport type {\n\tVectorCortexEvaluationSummary,\n\tVectorCortexHealthCard,\n\tVectorCortexLedgerView,\n\tVectorCortexQueryView,\n\tVectorCortexResetResult,\n\tVectorCortexTopologyView,\n} from \"../types/vector-cortex\";\n\nexport type {\n\tVectorCortexEvaluationSummary,\n\tVectorCortexHealthCard,\n\tVectorCortexLedgerView,\n\tVectorCortexQueryView,\n\tVectorCortexResetResult,\n\tVectorCortexTopologyView,\n};\n\nexport async function fetchVectorCortexEvaluation(): Promise<VectorCortexEvaluationSummary> {\n\tconst r = await fetch(\"/api/vector-cortex/evaluation\");\n\tif (!r.ok) throw new Error(`vector-cortex evaluation: ${r.status}`);\n\treturn r.json() as Promise<VectorCortexEvaluationSummary>;\n}\n\nexport async function fetchVectorCortexHealth(): Promise<VectorCortexHealthCard> {\n\tconst r = await fetch(\"/api/vector-cortex/health\");\n\tif (!r.ok) throw new Error(`vector-cortex health: ${r.status}`);\n\treturn r.json() as Promise<VectorCortexHealthCard>;\n}\n\n/** Reader-only cortex topology view (VC3A). */\nexport async function fetchVectorCortexTopology(): Promise<VectorCortexTopologyView> {\n\tconst r = await fetch(\"/api/vector-cortex/topology\");\n\tif (!r.ok) throw new Error(`vector-cortex topology: ${r.status}`);\n\treturn r.json() as Promise<VectorCortexTopologyView>;\n}\n\n/** Reader-only query-layer diagnostics view (VC3C). */\nexport async function fetchVectorCortexQuery(): Promise<VectorCortexQueryView> {\n\tconst r = await fetch(\"/api/vector-cortex/query\");\n\tif (!r.ok) throw new Error(`vector-cortex query: ${r.status}`);\n\treturn r.json() as Promise<VectorCortexQueryView>;\n}\n\n/** Reader-only occurrence-ledger identity view (VC1B). */\nexport async function fetchVectorCortexLedger(\n\tsession = \"default\",\n): Promise<VectorCortexLedgerView> {\n\tconst r = await fetch(\n\t\t`/api/vector-cortex/ledger?session=${encodeURIComponent(session)}`,\n\t);\n\tif (!r.ok) throw new Error(`vector-cortex ledger: ${r.status}`);\n\treturn r.json() as Promise<VectorCortexLedgerView>;\n}\n\n/** Admin capability: reset a breaker's cooldown (never evidence). */\nexport async function resetVectorCortexBreaker(\n\tsubsystem: string,\n): Promise<VectorCortexResetResult> {\n\tconst r = await fetch(\"/api/vector-cortex/breakers/reset\", {\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\tbody: JSON.stringify({ subsystem }),\n\t});\n\tif (!r.ok) throw new Error(`vector-cortex reset: ${r.status}`);\n\treturn r.json() as Promise<VectorCortexResetResult>;\n}\n","/**\n * VectorCortexTab.tsx — vector-cortex dashboard tab.\n * VC0A: reader-only aggregate latency histogram + per-mode sample counts from\n * GET /api/vector-cortex/evaluation. VC0C (task 5): live safety envelope health\n * card (breaker state, window/probe/backoff, durable spool frontier/lag) from\n * GET /api/vector-cortex/health plus an admin \"reset cooldown\" action. Polls\n * every 5s.\n */\n\nimport { useState, useEffect, useCallback } from \"react\";\nimport {\n\tfetchVectorCortexEvaluation,\n\tfetchVectorCortexHealth,\n\tfetchVectorCortexLedger,\n\tfetchVectorCortexQuery,\n\tfetchVectorCortexTopology,\n\tresetVectorCortexBreaker,\n\ttype VectorCortexEvaluationSummary,\n\ttype VectorCortexHealthCard,\n\ttype VectorCortexLedgerView,\n\ttype VectorCortexQueryView,\n\ttype VectorCortexTopologyView,\n} from \"../api/vector-cortex\";\nimport { Card, CardContent, CardHeader, CardTitle } from \"../components/ui/card\";\nimport { Badge } from \"../components/ui/badge\";\n\nfunction ModeChip({ mode, count }: { mode: string; count: number }): React.ReactElement {\n\treturn (\n\t\t<div className=\"flex items-center justify-between border-b border-border/50 py-1 text-sm\">\n\t\t\t<span className=\"text-muted-foreground\">Mode {mode}</span>\n\t\t\t<span className=\"font-mono\">{count}</span>\n\t\t</div>\n\t);\n}\n\nfunction Metric({ label, value }: { label: string; value: string }): React.ReactElement {\n\treturn (\n\t\t<div>\n\t\t\t<div className=\"text-xs text-muted-foreground\">{label}</div>\n\t\t\t<div className=\"font-mono text-sm\">{value}</div>\n\t\t</div>\n\t);\n}\n\nexport default function VectorCortexTab(): React.ReactElement {\n\tconst [data, setData] = useState<VectorCortexEvaluationSummary | null>(null);\n\tconst [err, setError] = useState<string | null>(null);\n\tconst [loading, setLoading] = useState(true);\n\tconst [health, setHealth] = useState<VectorCortexHealthCard | null>(null);\n\tconst [resetMsg, setResetMsg] = useState<string | null>(null);\n\tconst [ledger, setLedger] = useState<VectorCortexLedgerView | null>(null);\n\tconst [topology, setTopology] = useState<VectorCortexTopologyView | null>(null);\n\tconst [query, setQuery] = useState<VectorCortexQueryView | null>(null);\n\n\tconst poll = useCallback(() => {\n\t\tfetchVectorCortexEvaluation()\n\t\t\t.then(setData)\n\t\t\t.catch((e: unknown) =>\n\t\t\t\tsetError(e instanceof Error ? e.message : String(e)),\n\t\t\t)\n\t\t\t.finally(() => setLoading(false));\n\t\tfetchVectorCortexHealth().then(setHealth).catch(() => {\n\t\t\t/* health card is best-effort (VC0C) */\n\t\t});\n\t\tfetchVectorCortexLedger().then(setLedger).catch(() => {\n\t\t\t/* ledger card is best-effort (VC1B) */\n\t\t});\n\t\tfetchVectorCortexTopology().then(setTopology).catch(() => {\n\t\t\t/* topology card is best-effort (VC3A) */\n\t\t});\n\t\tfetchVectorCortexQuery().then(setQuery).catch(() => {\n\t\t\t/* query diagnostics card is best-effort (VC3C) */\n\t\t});\n\t}, []);\n\n\tuseEffect(() => {\n\t\tpoll();\n\t\tconst id = setInterval(poll, 5000);\n\t\treturn () => clearInterval(id);\n\t}, [poll]);\n\n\tconst onReset = () => {\n\t\tresetVectorCortexBreaker(\"provider\")\n\t\t\t.then((r) => {\n\t\t\t\tsetResetMsg(\n\t\t\t\t\t`Breaker \"${r.subsystem}\" ${r.state}; evidence retained: ${r.failures} failures / ${r.attempts} attempts`,\n\t\t\t\t);\n\t\t\t\treturn fetchVectorCortexHealth();\n\t\t\t})\n\t\t\t.then(setHealth)\n\t\t\t.catch((e: unknown) =>\n\t\t\t\tsetResetMsg(e instanceof Error ? e.message : String(e)),\n\t\t\t);\n\t};\n\n\tif (loading && !data)\n\t\treturn <div className=\"vc-loading\">Loading vector-cortex evaluation…</div>;\n\tif (err && !data)\n\t\treturn <div className=\"vc-error\">Error: {err}</div>;\n\tif (!data)\n\t\treturn <div className=\"vc-empty\">No evaluation data available.</div>;\n\n\tconst max = Math.max(1, ...data.histogram.cells, data.histogram.overflow);\n\treturn (\n\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<h2 className=\"text-lg font-semibold\">Vector Cortex Evaluation</h2>\n\t\t\t\t{data.enabled ? (\n\t\t\t\t\t<Badge variant=\"warning\">OBSERVER PENDING (A)</Badge>\n\t\t\t\t) : (\n\t\t\t\t\t<Badge variant=\"danger\">MODE C (OFF)</Badge>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t<div className=\"grid grid-cols-1 gap-4 md:grid-cols-3\">\n\t\t\t\t<Card>\n\t\t\t\t\t<CardHeader>\n\t\t\t\t\t\t<CardTitle>Samples</CardTitle>\n\t\t\t\t\t</CardHeader>\n\t\t\t\t\t<CardContent>\n\t\t\t\t\t\t<div className=\"text-3xl font-bold\">{data.samples}</div>\n\t\t\t\t\t\t<div className=\"mt-2 flex flex-col\">\n\t\t\t\t\t\t\t<ModeChip mode=\"A\" count={data.byMode.A} />\n\t\t\t\t\t\t\t<ModeChip mode=\"B\" count={data.byMode.B} />\n\t\t\t\t\t\t\t<ModeChip mode=\"C\" count={data.byMode.C} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CardContent>\n\t\t\t\t</Card>\n\n\t\t\t\t<Card className=\"md:col-span-2\">\n\t\t\t\t\t<CardHeader>\n\t\t\t\t\t\t<CardTitle>Latency Histogram (ms, inclusive edges)</CardTitle>\n\t\t\t\t\t</CardHeader>\n\t\t\t\t\t<CardContent>\n\t\t\t\t\t\t<div className=\"flex items-end gap-2\" style={{ height: 160 }}>\n\t\t\t\t\t\t\t{data.histogram.edges.map((edge, i) => {\n\t\t\t\t\t\t\t\tconst h = (data.histogram.cells[i] / max) * 140;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<div key={edge} className=\"flex flex-1 flex-col items-center gap-1\">\n\t\t\t\t\t\t\t\t\t\t<span className=\"text-xs text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t\t\t{data.histogram.cells[i]}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"w-full rounded-t\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ height: Math.max(2, h), background: \"#6366f1\" }}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<span className=\"text-[10px] text-muted-foreground\">&le;{edge}</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t<div className=\"flex flex-1 flex-col items-center gap-1\">\n\t\t\t\t\t\t\t\t<span className=\"text-xs text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t{data.histogram.overflow}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName=\"w-full rounded-t\"\n\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\theight: Math.max(2, (data.histogram.overflow / max) * 140),\n\t\t\t\t\t\t\t\t\t\tbackground: \"#f87171\",\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<span className=\"text-[10px] text-muted-foreground\">&gt;250</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"mt-1 text-xs text-muted-foreground\">\n\t\t\t\t\t\t\tTotal: {data.histogram.total} · Rejects: {data.rejects.length}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CardContent>\n\t\t\t\t</Card>\n\t\t\t</div>\n\n\t\t\t<Card>\n\t\t\t\t<CardHeader>\n\t\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t\t<CardTitle>Live Safety Envelope (VC0C)</CardTitle>\n\t\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t{health?.stateSource === \"ephemeral\" && (\n\t\t\t\t\t\t\t\t<Badge variant=\"outline\">EPHEMERAL (non-live)</Badge>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tonClick={onReset}\n\t\t\t\t\t\t\t\tdisabled={!health?.enabled}\n\t\t\t\t\t\t\t\tclassName=\"rounded border border-border px-2 py-1 text-xs disabled:opacity-50\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tReset Cooldown\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</CardHeader>\n\t\t\t\t<CardContent>\n\t\t\t\t\t{resetMsg && (\n\t\t\t\t\t\t<div className=\"mb-2 text-xs text-muted-foreground\">{resetMsg}</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{!health ? (\n\t\t\t\t\t\t<div className=\"vc-empty\">Health unavailable (VC0C off).</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div className=\"grid grid-cols-2 gap-4 md:grid-cols-4\">\n\t\t\t\t\t\t\t<Metric label=\"State\" value={health.state} />\n\t\t\t\t\t\t\t<Metric label=\"Mode\" value={health.mode} />\n\t\t\t\t\t\t\t<Metric label=\"Window\" value={`${health.windowMs}ms`} />\n\t\t\t\t\t\t\t<Metric label=\"Probes\" value={String(health.probeCount)} />\n\t\t\t\t\t\t\t<Metric label=\"Backoff\" value={`${health.backoffDelayMs}ms`} />\n\t\t\t\t\t\t\t<Metric\n\t\t\t\t\t\t\t\tlabel=\"Failures\"\n\t\t\t\t\t\t\t\tvalue={`${health.failures}/${health.attempts}`}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Metric\n\t\t\t\t\t\t\t\tlabel=\"Frontier\"\n\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\thealth.stateSource === \"ephemeral\"\n\t\t\t\t\t\t\t\t\t\t? \"non-live\"\n\t\t\t\t\t\t\t\t\t\t: health.frontierFrozen\n\t\t\t\t\t\t\t\t\t\t\t? \"FROZEN\"\n\t\t\t\t\t\t\t\t\t\t\t: \"LIVE\"\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Metric label=\"Spool lag\" value={String(health.spoolLag)} />\n\t\t\t\t\t\t\t\t<Metric label=\"Encoder mode\" value={health.encoderMode} />\n\t\t\t\t\t\t\t\t<Metric label=\"Encoder asset\" value={health.encoderAssetDigest ? health.encoderAssetDigest.slice(0, 12) : \"none\"} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</CardContent>\n\t\t\t</Card>\n\t\t\t<Card>\n\t\t\t\t<CardHeader>\n\t\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t\t<CardTitle>Derived Cortex Store (VC3A)</CardTitle>\n\t\t\t\t\t\t{topology?.enabled ? (\n\t\t\t\t\t\t\t<Badge variant=\"success\">ACTIVE</Badge>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Badge variant=\"danger\">OFF</Badge>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</CardHeader>\n\t\t\t\t<CardContent>\n\t\t\t\t\t{!topology?.enabled ? (\n\t\t\t\t\t\t<div className=\"vc-empty\">Cortex store disabled (VC3A off).</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"grid grid-cols-2 gap-4 md:grid-cols-3\">\n\t\t\t\t\t\t\t<Metric label=\"Generation\" value={topology.generationId ?? \"—\"} />\n\t\t\t\t\t\t\t<Metric label=\"Ordinal\" value={topology.ordinal ?? \"—\"} />\n\t\t\t\t\t\t\t<Metric label=\"Records\" value={String(topology.recordCount)} />\n\t\t\t\t\t\t\t<Metric label=\"Frontier (HW)\" value={topology.sourceHighWater} />\n\t\t\t\t\t\t\t<Metric\n\t\t\t\t\t\t\t\tlabel=\"Root digest\"\n\t\t\t\t\t\t\t\tvalue={topology.rootDigest ? topology.rootDigest.slice(0, 16) : \"—\"}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{topology.nodes !== undefined && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Metric\n\t\t\t\t\t\t\t\t\t\tlabel=\"Nodes\"\n\t\t\t\t\t\t\t\t\t\tvalue={String(topology.nodes?.length ?? 0)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Metric\n\t\t\t\t\t\t\t\t\t\tlabel=\"Edges\"\n\t\t\t\t\t\t\t\t\t\tvalue={String(topology.edges?.length ?? 0)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<Metric\n\t\t\t\t\t\t\t\t\t\tlabel=\"Graph digest\"\n\t\t\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t\t\ttopology.generationDigest\n\t\t\t\t\t\t\t\t\t\t\t\t? topology.generationDigest.slice(0, 16)\n\t\t\t\t\t\t\t\t\t\t\t\t: \"—\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{topology.nodes !== undefined &&\n\t\t\t\t\t\t\t(topology.edges?.length ?? 0) > 0 && (\n\t\t\t\t\t\t\t\t<div className=\"mt-4 max-h-56 overflow-y-auto\">\n\t\t\t\t\t\t\t\t\t<div className=\"mb-1 text-xs font-medium text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t\tTopology edges (VC3B)\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<table className=\"w-full text-left text-xs\">\n\t\t\t\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t\t\t\t<tr className=\"border-b border-border/50 text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t\t\t\t<th className=\"py-1 pr-2\">source</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th className=\"py-1 pr-2\">target</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th className=\"py-1 pr-2\">head</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th className=\"py-1 pr-2\">dir</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th className=\"py-1\">score</th>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t{topology.edges?.map((e, i) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<tr\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={`${e.source}-${e.target}-${e.head}-${i}`}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"border-b border-border/30\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td className=\"py-1 pr-2 font-mono\">{e.source}</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td className=\"py-1 pr-2 font-mono\">{e.target}</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td className=\"py-1 pr-2 font-mono\">{e.head}</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td className=\"py-1 pr-2\">{e.direction}</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td className=\"py-1 font-mono\">{e.score}</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</CardContent>\n\t\t\t</Card>\n\t\t\t<Card>\n\t\t\t\t<CardHeader>\n\t\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t\t<CardTitle>Topology Query Diagnostics (VC3C)</CardTitle>\n\t\t\t\t\t\t{query?.enabled ? (\n\t\t\t\t\t\t\t<Badge variant=\"success\">ACTIVE</Badge>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Badge variant=\"danger\">OFF</Badge>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</CardHeader>\n\t\t\t\t<CardContent>\n\t\t\t\t\t{!query?.enabled ? (\n\t\t\t\t\t\t<div className=\"vc-empty\">Query diagnostics unavailable (VC3C off).</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div className=\"grid grid-cols-2 gap-4 md:grid-cols-3\">\n\t\t\t\t\t\t\t<Metric label=\"Router version\" value={String(query.routerVersion)} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</CardContent>\n\t\t\t</Card>\n\t\t\t<Card>\n\t\t\t\t<CardHeader>\n\t\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t\t<CardTitle>Occurrence Ledger (VC1B)</CardTitle>\n\t\t\t\t\t\t{ledger?.enabled ? (\n\t\t\t\t\t\t\t<Badge variant=\"success\">ACTIVE</Badge>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Badge variant=\"danger\">OFF</Badge>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</CardHeader>\n\t\t\t\t<CardContent>\n\t\t\t\t\t{!ledger?.enabled ? (\n\t\t\t\t\t\t<div className=\"vc-empty\">Ledger disabled (VC1B off).</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"mb-3 grid grid-cols-2 gap-4 md:grid-cols-3\">\n\t\t\t\t\t\t\t\t<Metric label=\"Session\" value={ledger.session} />\n\t\t\t\t\t\t\t\t<Metric label=\"High-water\" value={ledger.highWater} />\n\t\t\t\t\t\t\t\t<Metric label=\"Occurrences\" value={String(ledger.count)} />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ledger.occurrences.length === 0 ? (\n\t\t\t\t\t\t\t\t<div className=\"vc-empty\">No occurrences recorded.</div>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<div className=\"max-h-64 overflow-y-auto\">\n\t\t\t\t\t\t\t\t\t<table className=\"w-full text-left text-xs\">\n\t\t\t\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t\t\t\t<tr className=\"border-b border-border/50 text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t\t\t\t<th className=\"py-1 pr-2\">seq</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th className=\"py-1 pr-2\">eventId</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th className=\"py-1 pr-2\">kind</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th className=\"py-1 pr-2\">toolCall</th>\n\t\t\t\t\t\t\t\t\t\t\t\t<th className=\"py-1\">digest</th>\n\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t\t\t\t{ledger.occurrences.map((o) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<tr\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={`${o.seq}-${o.eventId}`}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"border-b border-border/30\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td className=\"py-1 pr-2 font-mono\">{o.seq}</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td className=\"py-1 pr-2 font-mono\">{o.eventId}</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td className=\"py-1 pr-2\">{o.kind}</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td className=\"py-1 pr-2 font-mono\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{o.toolCallId ?? \"\\u2014\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<td className=\"max-w-[180px] truncate font-mono text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{o.digest}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t</CardContent>\n\t\t\t</Card>\n\t\t</div>\n\t);\n}\n"],"names":["fetchVectorCortexEvaluation","r","fetchVectorCortexHealth","fetchVectorCortexTopology","fetchVectorCortexQuery","fetchVectorCortexLedger","session","resetVectorCortexBreaker","subsystem","ModeChip","mode","count","jsxs","jsx","Metric","label","value","VectorCortexTab","data","setData","useState","err","setError","loading","setLoading","health","setHealth","resetMsg","setResetMsg","ledger","setLedger","topology","setTopology","query","setQuery","poll","useCallback","e","useEffect","id","onReset","max","Badge","Card","CardHeader","CardTitle","CardContent","edge","i","h","Fragment","o"],"mappings":"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"}