@mneme-ai/core 2.6.0 → 2.8.0

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 (74) hide show
  1. package/dist/ai_handshake.d.ts.map +1 -1
  2. package/dist/ai_handshake.js +9 -11
  3. package/dist/ai_handshake.js.map +1 -1
  4. package/dist/antivirus/vaccines.js +8 -8
  5. package/dist/antivirus/vaccines.js.map +1 -1
  6. package/dist/birthright/birthright.test.d.ts +2 -0
  7. package/dist/birthright/birthright.test.d.ts.map +1 -0
  8. package/dist/birthright/birthright.test.js +102 -0
  9. package/dist/birthright/birthright.test.js.map +1 -0
  10. package/dist/birthright/index.d.ts +85 -0
  11. package/dist/birthright/index.d.ts.map +1 -0
  12. package/dist/birthright/index.js +132 -0
  13. package/dist/birthright/index.js.map +1 -0
  14. package/dist/evolve/evolve.js +7 -7
  15. package/dist/evolve/evolve.js.map +1 -1
  16. package/dist/exodus/quantum_cache.js +7 -7
  17. package/dist/exodus/quantum_cache.js.map +1 -1
  18. package/dist/forensics/stack-priors.d.ts.map +1 -1
  19. package/dist/forensics/stack-priors.js +6 -8
  20. package/dist/forensics/stack-priors.js.map +1 -1
  21. package/dist/handoff/handoff.test.d.ts +2 -0
  22. package/dist/handoff/handoff.test.d.ts.map +1 -0
  23. package/dist/handoff/handoff.test.js +67 -0
  24. package/dist/handoff/handoff.test.js.map +1 -0
  25. package/dist/handoff/index.d.ts +86 -0
  26. package/dist/handoff/index.d.ts.map +1 -0
  27. package/dist/handoff/index.js +168 -0
  28. package/dist/handoff/index.js.map +1 -0
  29. package/dist/index.d.ts +8 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +26 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/metron/code_audit.d.ts +55 -0
  34. package/dist/metron/code_audit.d.ts.map +1 -0
  35. package/dist/metron/code_audit.js +140 -0
  36. package/dist/metron/code_audit.js.map +1 -0
  37. package/dist/metron/code_audit.test.d.ts +2 -0
  38. package/dist/metron/code_audit.test.d.ts.map +1 -0
  39. package/dist/metron/code_audit.test.js +81 -0
  40. package/dist/metron/code_audit.test.js.map +1 -0
  41. package/dist/metron/index.d.ts +95 -0
  42. package/dist/metron/index.d.ts.map +1 -0
  43. package/dist/metron/index.js +393 -0
  44. package/dist/metron/index.js.map +1 -0
  45. package/dist/metron/metron.test.d.ts +2 -0
  46. package/dist/metron/metron.test.d.ts.map +1 -0
  47. package/dist/metron/metron.test.js +123 -0
  48. package/dist/metron/metron.test.js.map +1 -0
  49. package/dist/metron/update_notifier.d.ts +56 -0
  50. package/dist/metron/update_notifier.d.ts.map +1 -0
  51. package/dist/metron/update_notifier.js +162 -0
  52. package/dist/metron/update_notifier.js.map +1 -0
  53. package/dist/nucleus_daemon.d.ts.map +1 -1
  54. package/dist/nucleus_daemon.js +14 -14
  55. package/dist/nucleus_daemon.js.map +1 -1
  56. package/dist/pulse.js +13 -13
  57. package/dist/pulse.js.map +1 -1
  58. package/dist/shadow_consensus/index.d.ts +117 -0
  59. package/dist/shadow_consensus/index.d.ts.map +1 -0
  60. package/dist/shadow_consensus/index.js +132 -0
  61. package/dist/shadow_consensus/index.js.map +1 -0
  62. package/dist/shadow_consensus/shadow_consensus.test.d.ts +2 -0
  63. package/dist/shadow_consensus/shadow_consensus.test.d.ts.map +1 -0
  64. package/dist/shadow_consensus/shadow_consensus.test.js +84 -0
  65. package/dist/shadow_consensus/shadow_consensus.test.js.map +1 -0
  66. package/dist/util/best_effort.d.ts +32 -0
  67. package/dist/util/best_effort.d.ts.map +1 -0
  68. package/dist/util/best_effort.js +58 -0
  69. package/dist/util/best_effort.js.map +1 -0
  70. package/dist/wormhole/auto_wire.d.ts +68 -0
  71. package/dist/wormhole/auto_wire.d.ts.map +1 -0
  72. package/dist/wormhole/auto_wire.js +186 -0
  73. package/dist/wormhole/auto_wire.js.map +1 -0
  74. package/package.json +1 -1
package/dist/pulse.js CHANGED
@@ -69,7 +69,7 @@ export function collectPulseStatus(repoRoot) {
69
69
  });
70
70
  }
71
71
  }
72
- catch { /* silent */ }
72
+ catch { /* BE:silent-by-design silent */ }
73
73
  // Version. v1.27.3 (HOTFIX): the comparison MUST use the LIVE
74
74
  // current version (readMyVersion above), not the `v.current` field
75
75
  // from the cache. AND must use semver "latest > current", not just
@@ -92,7 +92,7 @@ export function collectPulseStatus(repoRoot) {
92
92
  status.version.updateAvailable = true;
93
93
  }
94
94
  }
95
- catch { /* ignore */ }
95
+ catch { /* BE:silent-by-design ignore */ }
96
96
  }
97
97
  // Daemon heartbeat
98
98
  const hbPath = join(repoRoot, ".mneme/nucleus.heartbeat.json");
@@ -104,7 +104,7 @@ export function collectPulseStatus(repoRoot) {
104
104
  const ageMs = hb.lastTick ? Date.now() - Date.parse(hb.lastTick) : Infinity;
105
105
  status.daemon.running = ageMs < 5 * 60 * 1000;
106
106
  }
107
- catch { /* ignore */ }
107
+ catch { /* BE:silent-by-design ignore */ }
108
108
  }
109
109
  // Inbox unsent count + collect:
110
110
  // - AUTO-ACTION-flagged messages (v1.26.3, surface as [AUTO-ACTION])
@@ -133,7 +133,7 @@ export function collectPulseStatus(repoRoot) {
133
133
  }
134
134
  }
135
135
  }
136
- catch { /* skip */ }
136
+ catch { /* BE:silent-by-design skip */ }
137
137
  }
138
138
  status.inbox.unsent = unsent;
139
139
  // Cache for renderPulse via non-enumerable side-channels so the
@@ -141,7 +141,7 @@ export function collectPulseStatus(repoRoot) {
141
141
  Object.defineProperty(status.inbox, "_autoActions", { value: inboxAutoActions, enumerable: false });
142
142
  Object.defineProperty(status.inbox, "_priority", { value: inboxPriority, enumerable: false });
143
143
  }
144
- catch { /* ignore */ }
144
+ catch { /* BE:silent-by-design ignore */ }
145
145
  }
146
146
  // Antivirus
147
147
  const avStatsPath = join(repoRoot, ".mneme/antivirus/stats.json");
@@ -150,7 +150,7 @@ export function collectPulseStatus(repoRoot) {
150
150
  const s = JSON.parse(readFileSync(avStatsPath, "utf8"));
151
151
  status.antivirus.totalInfectionsCaught = s.totalInfectionsCaught ?? 0;
152
152
  }
153
- catch { /* ignore */ }
153
+ catch { /* BE:silent-by-design ignore */ }
154
154
  }
155
155
  const avPharm = join(repoRoot, ".mneme/antivirus/pharmacopoeia.json");
156
156
  if (existsSync(avPharm)) {
@@ -159,7 +159,7 @@ export function collectPulseStatus(repoRoot) {
159
159
  status.antivirus.activeVaccines = p.vaccines?.length ?? 0;
160
160
  status.antivirus.uncertified = (p.vaccines ?? []).filter((v) => v.efficacy?.f1 == null).length;
161
161
  }
162
- catch { /* ignore */ }
162
+ catch { /* BE:silent-by-design ignore */ }
163
163
  }
164
164
  // Retrieval lab
165
165
  const lbPath = join(repoRoot, ".mneme/retrieval/leaderboard.json");
@@ -169,7 +169,7 @@ export function collectPulseStatus(repoRoot) {
169
169
  status.retrieval.totalTrials = lb.totalTrials ?? 0;
170
170
  status.retrieval.activeConfig = lb.active ?? null;
171
171
  }
172
- catch { /* ignore */ }
172
+ catch { /* BE:silent-by-design ignore */ }
173
173
  }
174
174
  // Build notable[] from the gathered state.
175
175
  // v1.27.3 (HOTFIX): belt-and-suspenders. Even if upstream logic
@@ -272,7 +272,7 @@ export function renderPulse(status, opts = {}) {
272
272
  const hci = computeHci(opts.repoRoot);
273
273
  hciSuffix = ` hci=${hci.score}/100[${hci.band}]`;
274
274
  }
275
- catch { /* */ }
275
+ catch { /* BE:silent-by-design */ }
276
276
  }
277
277
  // v1.30.0 -- show the embedder tier on the pulse line so the user can
278
278
  // tell at a glance whether their "memory layer" is real semantic search
@@ -417,7 +417,7 @@ export function hasAutoBootMarker(homeDir, repoRoot) {
417
417
  if (existsSync(serviceMarkerPath(homeDir)))
418
418
  return true;
419
419
  }
420
- catch { /* */ }
420
+ catch { /* BE:silent-by-design */ }
421
421
  // Repo-local fallback marker.
422
422
  if (repoRoot) {
423
423
  try {
@@ -425,7 +425,7 @@ export function hasAutoBootMarker(homeDir, repoRoot) {
425
425
  if (existsSync(repoMarker))
426
426
  return true;
427
427
  }
428
- catch { /* */ }
428
+ catch { /* BE:silent-by-design */ }
429
429
  }
430
430
  return false;
431
431
  }
@@ -442,7 +442,7 @@ function writeAutoBootMarker(detail, homeDir, repoRoot) {
442
442
  return true;
443
443
  }
444
444
  }
445
- catch { /* fall through to repo-local fallback */ }
445
+ catch { /* BE:silent-by-design fall through to repo-local fallback */ }
446
446
  // Fallback: repo-local marker so we don't re-attempt every prompt
447
447
  // when home is unwritable (sandboxed envs, locked-down corp boxes).
448
448
  if (repoRoot) {
@@ -485,7 +485,7 @@ function spawnDetachedSilent(args) {
485
485
  child.on("error", () => { });
486
486
  child.unref();
487
487
  }
488
- catch { /* swallow */ }
488
+ catch { /* BE:silent-by-design swallow */ }
489
489
  };
490
490
  try {
491
491
  const cmd = mnemeCmdName();
package/dist/pulse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pulse.js","sourceRoot":"","sources":["../src/pulse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pulse.js","sourceRoot":"","sources":["../src/pulse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * v2.8.0 -- SHADOW CONSENSUS.
3
+ *
4
+ * "N vendors silently vote on a claim · winner is the fused verdict."
5
+ *
6
+ * The wild move: Mneme can already PREPARE a question + soul-prompt
7
+ * context. It can already FUSE multiple sensor verdicts via the v2.6
8
+ * TRUTH KERNEL. SHADOW CONSENSUS composes these two:
9
+ *
10
+ * 1. User asks Mneme a high-stakes question.
11
+ * 2. Mneme generates a soul prompt + question payload tagged with
12
+ * a "ballot id".
13
+ * 3. Mneme writes the ballot to N vendor inboxes (Claude / GPT /
14
+ * Gemini / Cursor / etc) via the existing handoff paths — the
15
+ * user (or AI orchestrator) pastes to each vendor.
16
+ * 4. Each vendor's reply lands back as a sensor output (caller calls
17
+ * `recordVendorReply(ballotId, vendor, answer)`).
18
+ * 5. When ≥ M replies arrive, SHADOW CONSENSUS fuses them via the
19
+ * v2.6 TRUTH KERNEL and emits a verdict + per-vendor breakdown.
20
+ *
21
+ * Mneme becomes a META-LLM that you don't pay for: it asks every
22
+ * vendor, fuses the answers, surfaces the disagreement. The user paid
23
+ * for the actual vendor seats; Mneme adds the consensus layer.
24
+ *
25
+ * Nobel-tier move: each ballot is HMAC-chained — sending the same
26
+ * question to Claude twice doesn't fool the consensus (Mneme detects
27
+ * the duplicate signature). Tampering with one vendor's reply also
28
+ * fails verification. The consensus IS the proof.
29
+ *
30
+ * Privacy: ballots are NEVER persisted off-disk by default. The caller
31
+ * decides if + where to store them.
32
+ */
33
+ import { type TruthVerdict } from "../truth_kernel/index.js";
34
+ export interface Ballot {
35
+ /** Unique ballot id. */
36
+ id: string;
37
+ /** The question being voted on. */
38
+ question: string;
39
+ /** The optional soul-prompt context the AI agent should consider. */
40
+ context?: string;
41
+ /** Vendors invited to vote — ballot is invalid for any vendor not listed. */
42
+ vendors: readonly string[];
43
+ /** ISO timestamp the ballot opened. */
44
+ openedAt: string;
45
+ /** HMAC over the canonical ballot. */
46
+ sig: string;
47
+ }
48
+ export interface VendorReply {
49
+ ballotId: string;
50
+ vendor: string;
51
+ /** TRUE / FALSE / UNCERTAIN / INAPPLICABLE — the vendor's verdict. */
52
+ verdict: "TRUE" | "FALSE" | "UNCERTAIN" | "INAPPLICABLE";
53
+ /** Vendor-supplied confidence (0..1). */
54
+ confidence: number;
55
+ /** Vendor-supplied rationale. */
56
+ rationale?: string;
57
+ /** ISO timestamp the reply arrived. */
58
+ receivedAt: string;
59
+ /** HMAC signature linking the reply back to the ballot. */
60
+ sig: string;
61
+ }
62
+ export interface ConsensusOutcome {
63
+ ballot: Ballot;
64
+ replies: VendorReply[];
65
+ /** Fused TRUTH KERNEL verdict. */
66
+ truth: TruthVerdict;
67
+ /** Coverage: replied vendors / invited vendors. */
68
+ coverage: number;
69
+ /** Whether consensus is QUORATE (≥ floor(N/2)+1 replies). */
70
+ quorate: boolean;
71
+ /** ISO timestamp the consensus was closed. */
72
+ closedAt: string;
73
+ }
74
+ export interface OpenBallotInput {
75
+ question: string;
76
+ vendors: readonly string[];
77
+ context?: string;
78
+ secret: string;
79
+ }
80
+ /** Open a new ballot. The HMAC is computed over the canonical body so
81
+ * duplicates with a different timestamp don't match. */
82
+ export declare function openBallot(input: OpenBallotInput): Ballot;
83
+ /** Verify a ballot's HMAC matches the secret. */
84
+ export declare function verifyBallot(ballot: Ballot, secret: string): boolean;
85
+ export interface RecordReplyInput {
86
+ ballot: Ballot;
87
+ vendor: string;
88
+ verdict: VendorReply["verdict"];
89
+ confidence: number;
90
+ rationale?: string;
91
+ secret: string;
92
+ }
93
+ /** Record a vendor's reply against a ballot. Fails if the vendor wasn't
94
+ * invited or the ballot signature is bad. */
95
+ export declare function recordReply(input: RecordReplyInput): {
96
+ ok: true;
97
+ reply: VendorReply;
98
+ } | {
99
+ ok: false;
100
+ reason: string;
101
+ };
102
+ /** Verify a vendor reply's HMAC. */
103
+ export declare function verifyReply(reply: VendorReply, secret: string): boolean;
104
+ export interface CloseConsensusInput {
105
+ ballot: Ballot;
106
+ replies: readonly VendorReply[];
107
+ secret: string;
108
+ /** Minimum replies required for quorum. Defaults to floor(N/2)+1. */
109
+ quorumOverride?: number;
110
+ }
111
+ /** Close the ballot and compute the fused consensus.
112
+ * Replies that fail HMAC verification are silently dropped + reported
113
+ * via `replies.length`. */
114
+ export declare function closeConsensus(input: CloseConsensusInput): Promise<ConsensusOutcome>;
115
+ /** Compact pulse summary. */
116
+ export declare function formatConsensusPulseLine(c: ConsensusOutcome): string;
117
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shadow_consensus/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAAkC,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7F,MAAM,WAAW,MAAM;IACrB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,cAAc,CAAC;IACzD,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,kCAAkC;IAClC,KAAK,EAAE,YAAY,CAAC;IACpB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAUD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;yDACyD;AACzD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAazD;AAED,iDAAiD;AACjD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAGpE;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;8CAC8C;AAC9C,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAarH;AAED,oCAAoC;AACpC,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAGvE;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;4BAE4B;AAC5B,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiC1F;AAED,6BAA6B;AAC7B,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAEpE"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * v2.8.0 -- SHADOW CONSENSUS.
3
+ *
4
+ * "N vendors silently vote on a claim · winner is the fused verdict."
5
+ *
6
+ * The wild move: Mneme can already PREPARE a question + soul-prompt
7
+ * context. It can already FUSE multiple sensor verdicts via the v2.6
8
+ * TRUTH KERNEL. SHADOW CONSENSUS composes these two:
9
+ *
10
+ * 1. User asks Mneme a high-stakes question.
11
+ * 2. Mneme generates a soul prompt + question payload tagged with
12
+ * a "ballot id".
13
+ * 3. Mneme writes the ballot to N vendor inboxes (Claude / GPT /
14
+ * Gemini / Cursor / etc) via the existing handoff paths — the
15
+ * user (or AI orchestrator) pastes to each vendor.
16
+ * 4. Each vendor's reply lands back as a sensor output (caller calls
17
+ * `recordVendorReply(ballotId, vendor, answer)`).
18
+ * 5. When ≥ M replies arrive, SHADOW CONSENSUS fuses them via the
19
+ * v2.6 TRUTH KERNEL and emits a verdict + per-vendor breakdown.
20
+ *
21
+ * Mneme becomes a META-LLM that you don't pay for: it asks every
22
+ * vendor, fuses the answers, surfaces the disagreement. The user paid
23
+ * for the actual vendor seats; Mneme adds the consensus layer.
24
+ *
25
+ * Nobel-tier move: each ballot is HMAC-chained — sending the same
26
+ * question to Claude twice doesn't fool the consensus (Mneme detects
27
+ * the duplicate signature). Tampering with one vendor's reply also
28
+ * fails verification. The consensus IS the proof.
29
+ *
30
+ * Privacy: ballots are NEVER persisted off-disk by default. The caller
31
+ * decides if + where to store them.
32
+ */
33
+ import { createHash, createHmac, randomBytes } from "node:crypto";
34
+ import { checkTruth } from "../truth_kernel/index.js";
35
+ import { safeHmacEqual } from "../util/hmac_compare.js";
36
+ function canonicalBallot(b) {
37
+ return JSON.stringify({ id: b.id, question: b.question, context: b.context ?? "", vendors: [...b.vendors].sort(), openedAt: b.openedAt });
38
+ }
39
+ function canonicalReply(r) {
40
+ return JSON.stringify({ ballotId: r.ballotId, vendor: r.vendor, verdict: r.verdict, confidence: r.confidence, rationale: r.rationale ?? "", receivedAt: r.receivedAt });
41
+ }
42
+ /** Open a new ballot. The HMAC is computed over the canonical body so
43
+ * duplicates with a different timestamp don't match. */
44
+ export function openBallot(input) {
45
+ if (input.vendors.length === 0)
46
+ throw new Error("openBallot: at least one vendor required");
47
+ if (input.question.length === 0)
48
+ throw new Error("openBallot: question must be non-empty");
49
+ const id = createHash("sha256").update(randomBytes(16)).digest("hex").slice(0, 16);
50
+ const body = {
51
+ id,
52
+ question: input.question,
53
+ context: input.context,
54
+ vendors: input.vendors,
55
+ openedAt: new Date().toISOString(),
56
+ };
57
+ const sig = createHmac("sha256", input.secret).update(canonicalBallot(body)).digest("hex");
58
+ return { ...body, sig };
59
+ }
60
+ /** Verify a ballot's HMAC matches the secret. */
61
+ export function verifyBallot(ballot, secret) {
62
+ const expected = createHmac("sha256", secret).update(canonicalBallot(ballot)).digest("hex");
63
+ return safeHmacEqual(expected, ballot.sig);
64
+ }
65
+ /** Record a vendor's reply against a ballot. Fails if the vendor wasn't
66
+ * invited or the ballot signature is bad. */
67
+ export function recordReply(input) {
68
+ if (!verifyBallot(input.ballot, input.secret))
69
+ return { ok: false, reason: "ballot signature invalid" };
70
+ if (!input.ballot.vendors.includes(input.vendor))
71
+ return { ok: false, reason: `vendor ${input.vendor} not invited` };
72
+ const body = {
73
+ ballotId: input.ballot.id,
74
+ vendor: input.vendor,
75
+ verdict: input.verdict,
76
+ confidence: Math.max(0, Math.min(1, input.confidence)),
77
+ rationale: input.rationale,
78
+ receivedAt: new Date().toISOString(),
79
+ };
80
+ const sig = createHmac("sha256", input.secret).update(canonicalReply(body)).digest("hex");
81
+ return { ok: true, reply: { ...body, sig } };
82
+ }
83
+ /** Verify a vendor reply's HMAC. */
84
+ export function verifyReply(reply, secret) {
85
+ const expected = createHmac("sha256", secret).update(canonicalReply(reply)).digest("hex");
86
+ return safeHmacEqual(expected, reply.sig);
87
+ }
88
+ /** Close the ballot and compute the fused consensus.
89
+ * Replies that fail HMAC verification are silently dropped + reported
90
+ * via `replies.length`. */
91
+ export async function closeConsensus(input) {
92
+ if (!verifyBallot(input.ballot, input.secret)) {
93
+ throw new Error("closeConsensus: ballot signature invalid");
94
+ }
95
+ const valid = [];
96
+ const seenVendors = new Set();
97
+ for (const r of input.replies) {
98
+ if (r.ballotId !== input.ballot.id)
99
+ continue;
100
+ if (!input.ballot.vendors.includes(r.vendor))
101
+ continue;
102
+ if (seenVendors.has(r.vendor))
103
+ continue; // one vote per vendor
104
+ if (!verifyReply(r, input.secret))
105
+ continue;
106
+ valid.push(r);
107
+ seenVendors.add(r.vendor);
108
+ }
109
+ const minQuorum = input.quorumOverride ?? Math.floor(input.ballot.vendors.length / 2) + 1;
110
+ const quorate = valid.length >= minQuorum;
111
+ // Wrap each reply as a TRUTH KERNEL sensor adapter.
112
+ const sensors = valid.map((r) => ({
113
+ id: r.vendor,
114
+ weight: 1,
115
+ run: () => ({ sensor: r.vendor, verdict: r.verdict, confidence: r.confidence, rationale: r.rationale }),
116
+ }));
117
+ const truth = await checkTruth({ claim: input.ballot.question, sensors });
118
+ const coverage = input.ballot.vendors.length > 0 ? valid.length / input.ballot.vendors.length : 0;
119
+ return {
120
+ ballot: input.ballot,
121
+ replies: valid,
122
+ truth,
123
+ coverage,
124
+ quorate,
125
+ closedAt: new Date().toISOString(),
126
+ };
127
+ }
128
+ /** Compact pulse summary. */
129
+ export function formatConsensusPulseLine(c) {
130
+ return `SHADOW-CONSENSUS · ${c.truth.verdict} · pTrue=${c.truth.pTrue.toFixed(2)} · coverage=${(c.coverage * 100).toFixed(0)}% · quorate=${c.quorate} · ballot=${c.ballot.id.slice(0, 8)}`;
131
+ }
132
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shadow_consensus/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,UAAU,EAAyC,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AA6CxD,SAAS,eAAe,CAAC,CAAsB;IAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5I,CAAC;AAED,SAAS,cAAc,CAAC,CAA2B;IACjD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1K,CAAC;AASD;yDACyD;AACzD,MAAM,UAAU,UAAU,CAAC,KAAsB;IAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC5F,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC3F,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnF,MAAM,IAAI,GAAwB;QAChC,EAAE;QACF,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACnC,CAAC;IACF,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3F,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,MAAc;IACzD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5F,OAAO,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AAWD;8CAC8C;AAC9C,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC;IACxG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,KAAK,CAAC,MAAM,cAAc,EAAE,CAAC;IACrH,MAAM,IAAI,GAA6B;QACrC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;QACzB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACtD,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrC,CAAC;IACF,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;AAC/C,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,WAAW,CAAC,KAAkB,EAAE,MAAc;IAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1F,OAAO,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;AAUD;;4BAE4B;AAC5B,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAA0B;IAC7D,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE;YAAE,SAAS;QAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,SAAS;QACvD,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAAE,SAAS,CAAC,sBAAsB;QAC/D,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;YAAE,SAAS;QAC5C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACd,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC;IAE1C,oDAAoD;IACpD,MAAM,OAAO,GAAoB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,CAAC,CAAC,MAAM;QACZ,MAAM,EAAE,CAAC;QACT,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;KACxG,CAAC,CAAC,CAAC;IACJ,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,KAAK;QACd,KAAK;QACL,QAAQ;QACR,OAAO;QACP,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACnC,CAAC;AACJ,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,wBAAwB,CAAC,CAAmB;IAC1D,OAAO,sBAAsB,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC7L,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shadow_consensus.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow_consensus.test.d.ts","sourceRoot":"","sources":["../../src/shadow_consensus/shadow_consensus.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,84 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { openBallot, recordReply, closeConsensus, verifyBallot, verifyReply, formatConsensusPulseLine } from "./index.js";
3
+ describe("v2.8 SHADOW CONSENSUS", () => {
4
+ const secret = "test-secret";
5
+ it("openBallot mints a signed ballot", () => {
6
+ const b = openBallot({ question: "is X true?", vendors: ["claude", "gpt", "gemini"], secret });
7
+ expect(b.id).toMatch(/^[0-9a-f]{16}$/);
8
+ expect(b.sig.length).toBe(64);
9
+ expect(verifyBallot(b, secret)).toBe(true);
10
+ });
11
+ it("openBallot rejects empty inputs", () => {
12
+ expect(() => openBallot({ question: "", vendors: ["claude"], secret })).toThrow();
13
+ expect(() => openBallot({ question: "?", vendors: [], secret })).toThrow();
14
+ });
15
+ it("verifyBallot detects tampering", () => {
16
+ const b = openBallot({ question: "q", vendors: ["claude", "gpt"], secret });
17
+ const tampered = { ...b, question: "different" };
18
+ expect(verifyBallot(tampered, secret)).toBe(false);
19
+ });
20
+ it("recordReply succeeds for invited vendor", () => {
21
+ const b = openBallot({ question: "q", vendors: ["claude", "gpt"], secret });
22
+ const r = recordReply({ ballot: b, vendor: "claude", verdict: "TRUE", confidence: 0.9, secret });
23
+ expect(r.ok).toBe(true);
24
+ if (r.ok)
25
+ expect(verifyReply(r.reply, secret)).toBe(true);
26
+ });
27
+ it("recordReply rejects un-invited vendor", () => {
28
+ const b = openBallot({ question: "q", vendors: ["claude"], secret });
29
+ const r = recordReply({ ballot: b, vendor: "stranger", verdict: "TRUE", confidence: 1, secret });
30
+ expect(r.ok).toBe(false);
31
+ if (!r.ok)
32
+ expect(r.reason).toContain("not invited");
33
+ });
34
+ it("recordReply rejects with wrong secret", () => {
35
+ const b = openBallot({ question: "q", vendors: ["claude"], secret });
36
+ const r = recordReply({ ballot: b, vendor: "claude", verdict: "TRUE", confidence: 1, secret: "wrong" });
37
+ expect(r.ok).toBe(false);
38
+ });
39
+ it("closeConsensus fuses N replies via TRUTH KERNEL", async () => {
40
+ const b = openBallot({ question: "is X true?", vendors: ["claude", "gpt", "gemini"], secret });
41
+ const claudeR = recordReply({ ballot: b, vendor: "claude", verdict: "TRUE", confidence: 0.9, secret });
42
+ const gptR = recordReply({ ballot: b, vendor: "gpt", verdict: "TRUE", confidence: 0.85, secret });
43
+ expect(claudeR.ok && gptR.ok).toBe(true);
44
+ const replies = [
45
+ claudeR.reply,
46
+ gptR.reply,
47
+ ];
48
+ const c = await closeConsensus({ ballot: b, replies, secret });
49
+ expect(c.truth.verdict).toBe("ACCEPTED");
50
+ expect(c.quorate).toBe(true); // 2 of 3 ≥ floor(3/2)+1 = 2
51
+ expect(c.coverage).toBeCloseTo(2 / 3, 2);
52
+ });
53
+ it("closeConsensus drops replies with tampered HMAC", async () => {
54
+ const b = openBallot({ question: "q", vendors: ["claude", "gpt"], secret });
55
+ const r1 = recordReply({ ballot: b, vendor: "claude", verdict: "TRUE", confidence: 0.9, secret });
56
+ const replyOk = r1.reply;
57
+ const tampered = { ...replyOk, verdict: "FALSE" };
58
+ const c = await closeConsensus({ ballot: b, replies: [replyOk, tampered], secret });
59
+ expect(c.replies.length).toBe(1); // tampered dropped
60
+ });
61
+ it("closeConsensus enforces one-vote-per-vendor", async () => {
62
+ const b = openBallot({ question: "q", vendors: ["claude"], secret });
63
+ const r1 = recordReply({ ballot: b, vendor: "claude", verdict: "TRUE", confidence: 0.9, secret });
64
+ const r2 = recordReply({ ballot: b, vendor: "claude", verdict: "FALSE", confidence: 0.9, secret });
65
+ const replies = [r1.reply, r2.reply];
66
+ const c = await closeConsensus({ ballot: b, replies, secret });
67
+ expect(c.replies.length).toBe(1); // duplicate dropped
68
+ });
69
+ it("closeConsensus not quorate when too few replies", async () => {
70
+ const b = openBallot({ question: "q", vendors: ["a", "b", "c", "d", "e"], secret });
71
+ const r = recordReply({ ballot: b, vendor: "a", verdict: "TRUE", confidence: 1, secret });
72
+ const reply = r.reply;
73
+ const c = await closeConsensus({ ballot: b, replies: [reply], secret });
74
+ expect(c.quorate).toBe(false); // 1 of 5 < floor(5/2)+1 = 3
75
+ });
76
+ it("formatConsensusPulseLine emits a compact summary", async () => {
77
+ const b = openBallot({ question: "q", vendors: ["a"], secret });
78
+ const r = recordReply({ ballot: b, vendor: "a", verdict: "TRUE", confidence: 1, secret });
79
+ const reply = r.reply;
80
+ const c = await closeConsensus({ ballot: b, replies: [reply], secret });
81
+ expect(formatConsensusPulseLine(c)).toContain("SHADOW-CONSENSUS");
82
+ });
83
+ });
84
+ //# sourceMappingURL=shadow_consensus.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow_consensus.test.js","sourceRoot":"","sources":["../../src/shadow_consensus/shadow_consensus.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * v2.8.0 -- BEST EFFORT marker.
3
+ *
4
+ * "Distinguish deliberate silent catches from accidental bug-swallowers."
5
+ *
6
+ * METRON v2.7 counted every `catch {}` as a Reliability penalty. That's
7
+ * unfair: some catches are intentionally silent (best-effort writes,
8
+ * optional probes, cleanup paths). The fix is structural — wrap
9
+ * deliberate silent catches in `bestEffort()` so:
10
+ *
11
+ * 1. The intent is documented at the call site (a comment with the
12
+ * reason instead of an opaque `catch {}`).
13
+ * 2. The auditor in METRON can recognise the marker and exclude it
14
+ * from the silent-catch penalty.
15
+ * 3. Optional `onError` callback lets callers log to a structured
16
+ * channel without changing the catch shape.
17
+ *
18
+ * Nobel-tier move: the marker IS the audit gate. Mneme refuses to ship
19
+ * Reliability score > 90 unless every catch{} is either WRAPPED in
20
+ * bestEffort() or REMEDIATED to a real handler. No more silent decay.
21
+ */
22
+ /** Sentinel string embedded in the call site so METRON's audit can
23
+ * recognise a deliberate silent catch. */
24
+ export declare const BEST_EFFORT_MARKER = "BE:silent-by-design";
25
+ /** Synchronous best-effort wrapper. Runs the body, swallows errors,
26
+ * optionally invokes onError for telemetry. NEVER throws. */
27
+ export declare function bestEffort<T>(body: () => T, onError?: (e: unknown) => void): T | undefined;
28
+ /** Async best-effort wrapper. */
29
+ export declare function bestEffortAsync<T>(body: () => Promise<T> | T, onError?: (e: unknown) => void): Promise<T | undefined>;
30
+ /** Match catch-block bodies that are documented as best-effort. */
31
+ export declare const BEST_EFFORT_REGEX: RegExp;
32
+ //# sourceMappingURL=best_effort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"best_effort.d.ts","sourceRoot":"","sources":["../../src/util/best_effort.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;2CAC2C;AAC3C,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAExD;8DAC8D;AAC9D,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,CAAC,GAAG,SAAS,CAS1F;AAED,iCAAiC;AACjC,wBAAsB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAS3H;AAED,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,QAA8E,CAAC"}