@mneme-ai/core 2.5.0 → 2.6.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.
package/dist/index.d.ts CHANGED
@@ -115,6 +115,8 @@ export * as interstellar from "./interstellar/index.js";
115
115
  export * as gladiator from "./gladiator/index.js";
116
116
  export * as lexicon from "./lexicon/index.js";
117
117
  export * as symbiosis from "./symbiosis/index.js";
118
+ export * as truthKernel from "./truth_kernel/index.js";
119
+ export * as wormhole from "./wormhole/index.js";
118
120
  export * as triage from "./triage/auto_issue.js";
119
121
  export * as devhealth from "./devhealth/snapshot.js";
120
122
  export * as compliance from "./compliance/evidence_pack.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,cAAc,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAIrD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AAInD,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAK1D,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AAIpE,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAK7D,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAIjJ,OAAO,KAAK,uBAAuB,MAAM,gCAAgC,CAAC;AAC1E,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AAYnD,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,kBAAkB,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,eAAe,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,aAAa,MAAM,+BAA+B,CAAC;AAY/D,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,qBAAqB,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,aAAa,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,uBAAuB,MAAM,gCAAgC,CAAC;AAI1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAOzD,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AAWjD,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,eAAe,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAG3D,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AAKvD,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAO/C,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAC;AAIzD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AAMrD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAKrD,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAI3D,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AAKjD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAOrD,OAAO,KAAK,aAAa,MAAM,6BAA6B,CAAC;AAO7D,OAAO,KAAK,mBAAmB,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAC;AAKzD,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AAQjD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AAOnD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AAOnD,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC;AAQzD,OAAO,KAAK,WAAW,MAAM,yBAAyB,CAAC;AAOvD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AAOjD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAK1C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,gBAAgB,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AAMxD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AASlD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAK9C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAMlD,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAKjD,OAAO,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAKrD,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAM5D,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAShD,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAM3D,OAAO,KAAK,qBAAqB,MAAM,8BAA8B,CAAC;AAYtE,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,YAAY,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,iBAAiB,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,cAAc,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,WAAW,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AAQtD,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,WAAW,MAAM,4BAA4B,CAAC;AAM1D,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,cAAc,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AAMtD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAKhD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAKlD,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAEnD,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAEnD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,aAAa,MAAM,oCAAoC,CAAC;AAEpE,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AAMtD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAQ5C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAK9C,OAAO,KAAK,aAAa,MAAM,kCAAkC,CAAC;AAIlE,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAKnD,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AAMvD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AASlD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAGlD,OAAO,KAAK,oBAAoB,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,qBAAqB,MAAM,uBAAuB,CAAC;AAK/D,OAAO,KAAK,oBAAoB,MAAM,4BAA4B,CAAC;AAOnE,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAKhD,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAKrD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAMhD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAYhD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AAWpD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAOhD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAKlD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAI1C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAIhD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAM9C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAO5C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAK9C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAI9C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAK9C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AAKxC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAK1C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAMlD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAK5C,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAa9C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAU5C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AASlD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAclD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAM1C,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,YAAY,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -284,6 +284,18 @@ export * as lexicon from "./lexicon/index.js";
284
284
  // v2.3 LEXICON so Mneme can speak each vendor's preferred dialect while
285
285
  // still neutralizing demonic vocabulary at the byte level.
286
286
  export * as symbiosis from "./symbiosis/index.js";
287
+ // v2.6.0 -- TRUTH KERNEL: weighted-Bayesian fusion of every Mneme
288
+ // hallucination gate as sensors → ONE verdict + disagreement signal.
289
+ // Composes flash + apoptosis + xray + adversarial_twins (or any caller-
290
+ // supplied sensor). No breaking change — sensors stay independently
291
+ // callable; the kernel is a new SURFACE on top.
292
+ export * as truthKernel from "./truth_kernel/index.js";
293
+ // v2.6.0 -- WORMHOLE: channel auto-negotiation for cross-device sync.
294
+ // ICE-style: probe every transport in parallel, race-to-success on the
295
+ // live ones, adaptive score (EWMA success × inverse latency × preference)
296
+ // decides order. Composes anchor / aura / relay / synapse / rainbow /
297
+ // ... transports without breaking any of them.
298
+ export * as wormhole from "./wormhole/index.js";
287
299
  // v1.37.0 -- AUTONOMOUS BUG TRIAGE. Reads gap-scan + supernova
288
300
  // telemetry and produces GitHub-issue-shaped proposals (title + body +
289
301
  // labels + fissile-mass severity). Operation Automation bet #4 from
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * v2.6.0 -- TRUTH KERNEL.
3
+ *
4
+ * "Many gates · one verdict · disagreement is signal, not noise."
5
+ *
6
+ * The pattern Mneme accumulated by v2.5: more than ten folders all
7
+ * answering the same family of question — "is this AI claim true?".
8
+ * Each carries a different sensor:
9
+ * FLASH — Veracity-Velocity Singularity over evidence weights
10
+ * APOPTOSIS — 7-witness fusion (file ∧ symbol ∧ type ∧ git ∧ test ∧ ...)
11
+ * X-RAY — surface-text hedging vs. absolutism
12
+ * TWINS — opposing-prior debate disagreement
13
+ * (additional sensors can be added — the kernel is sensor-agnostic.)
14
+ *
15
+ * Until now AI agents had to PICK which sensor to call. That's the
16
+ * wrong mental model. A truthful claim should look truthful to every
17
+ * sensor; a false claim is detected EARLIER when multiple sensors are
18
+ * fused. Mneme should ask the AI for a claim and run every sensor in
19
+ * parallel, then BAYESIAN-FUSE the verdicts into a single probability
20
+ * with calibrated weights.
21
+ *
22
+ * Wild move: DISAGREEMENT is itself the most valuable output. When
23
+ * apoptosis says HEALTHY and x-ray says LOW-CONFIDENCE, that conflict
24
+ * is a louder signal than either verdict alone. The kernel surfaces
25
+ * the disagreement, not just the fused score.
26
+ *
27
+ * Sensors stay independently callable (no breaking change). Kernel
28
+ * is a NEW SURFACE that composes them.
29
+ */
30
+ export type SensorVerdict = "TRUE" | "FALSE" | "UNCERTAIN" | "INAPPLICABLE";
31
+ export interface SensorOutput {
32
+ /** Stable sensor id ("flash" / "apoptosis" / etc). */
33
+ sensor: string;
34
+ /** This sensor's verdict on the claim. */
35
+ verdict: SensorVerdict;
36
+ /** Sensor's confidence in its own verdict, 0..1. */
37
+ confidence: number;
38
+ /** Free-form rationale a human can read. */
39
+ rationale?: string;
40
+ /** Wall-clock ms the sensor took. */
41
+ ms?: number;
42
+ }
43
+ export interface SensorAdapter {
44
+ /** Stable id used in fusion + reporting. */
45
+ id: string;
46
+ /** Optional prior weight 0..1 — calibrated from historical accuracy.
47
+ * Default 1.0 (treat as fully reliable until measured otherwise). */
48
+ weight?: number;
49
+ /** Run the sensor. Must never throw — return a degraded verdict instead. */
50
+ run: (claim: string, ctx?: Record<string, unknown>) => Promise<SensorOutput> | SensorOutput;
51
+ }
52
+ export interface TruthKernelInput {
53
+ /** The claim under test. */
54
+ claim: string;
55
+ /** Sensors to fan out to. Must be ≥ 1. */
56
+ sensors: readonly SensorAdapter[];
57
+ /** Optional context passed verbatim to every sensor. */
58
+ ctx?: Record<string, unknown>;
59
+ /** Hard timeout per sensor in ms. Default 5000. */
60
+ perSensorTimeoutMs?: number;
61
+ }
62
+ export interface TruthVerdict {
63
+ /** Fused probability the claim is true, 0..1. */
64
+ pTrue: number;
65
+ /** Convenience label derived from pTrue + disagreement. */
66
+ verdict: "ACCEPTED" | "DISPUTED" | "REJECTED" | "INCONCLUSIVE";
67
+ /** 0..1 — how much sensors disagree. High disagreement = uncertain. */
68
+ disagreement: number;
69
+ /** Each sensor's raw verdict. */
70
+ sensorOutputs: SensorOutput[];
71
+ /** When applicable, the sensor that most-strongly drove the fused score. */
72
+ dominantSensor?: string;
73
+ /** When applicable, the sensor whose verdict is the outlier. */
74
+ outlierSensor?: string;
75
+ /** Total wall-clock ms. */
76
+ totalMs: number;
77
+ }
78
+ /** Run the kernel: fan out → fuse → label. */
79
+ export declare function checkTruth(input: TruthKernelInput): Promise<TruthVerdict>;
80
+ /** Compact one-line pulse summary. */
81
+ export declare function formatTruthKernelPulseLine(v: TruthVerdict): string;
82
+ /** Calibrate sensor weights from historical (sensorOutput, groundTruth) pairs.
83
+ * Returns a new weight map; higher weight = sensor was more often right.
84
+ *
85
+ * Simple algorithm: weight = max(0.1, accuracy * 2) so a 50% sensor → 1.0,
86
+ * a perfect sensor → 2.0, a random sensor → 1.0. Caps at 2.0 to avoid
87
+ * any single sensor dominating the log-odds sum. */
88
+ export declare function calibrateWeights(history: ReadonlyArray<{
89
+ sensor: string;
90
+ verdictWasCorrect: boolean;
91
+ }>): Map<string, number>;
92
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/truth_kernel/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,cAAc,CAAC;AAE5E,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,OAAO,EAAE,aAAa,CAAC;IACvB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX;0EACsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;CAC7F;AAED,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAClC,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;IAC/D,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAiGD,8CAA8C;AAC9C,wBAAsB,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiC/E;AAED,sCAAsC;AACtC,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAElE;AAED;;;;;qDAKqD;AACrD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB5H"}
@@ -0,0 +1,203 @@
1
+ /**
2
+ * v2.6.0 -- TRUTH KERNEL.
3
+ *
4
+ * "Many gates · one verdict · disagreement is signal, not noise."
5
+ *
6
+ * The pattern Mneme accumulated by v2.5: more than ten folders all
7
+ * answering the same family of question — "is this AI claim true?".
8
+ * Each carries a different sensor:
9
+ * FLASH — Veracity-Velocity Singularity over evidence weights
10
+ * APOPTOSIS — 7-witness fusion (file ∧ symbol ∧ type ∧ git ∧ test ∧ ...)
11
+ * X-RAY — surface-text hedging vs. absolutism
12
+ * TWINS — opposing-prior debate disagreement
13
+ * (additional sensors can be added — the kernel is sensor-agnostic.)
14
+ *
15
+ * Until now AI agents had to PICK which sensor to call. That's the
16
+ * wrong mental model. A truthful claim should look truthful to every
17
+ * sensor; a false claim is detected EARLIER when multiple sensors are
18
+ * fused. Mneme should ask the AI for a claim and run every sensor in
19
+ * parallel, then BAYESIAN-FUSE the verdicts into a single probability
20
+ * with calibrated weights.
21
+ *
22
+ * Wild move: DISAGREEMENT is itself the most valuable output. When
23
+ * apoptosis says HEALTHY and x-ray says LOW-CONFIDENCE, that conflict
24
+ * is a louder signal than either verdict alone. The kernel surfaces
25
+ * the disagreement, not just the fused score.
26
+ *
27
+ * Sensors stay independently callable (no breaking change). Kernel
28
+ * is a NEW SURFACE that composes them.
29
+ */
30
+ /** Convert a sensor verdict into a probability that the claim is true.
31
+ * TRUE → confidence (clamp 0.5..1)
32
+ * FALSE → 1 - confidence (clamp 0..0.5)
33
+ * UNCERTAIN → 0.5 (no information)
34
+ * INAPPLICABLE → 0.5 with weight 0 (effectively removed) */
35
+ function verdictToProb(o) {
36
+ const c = Math.max(0, Math.min(1, o.confidence ?? 0));
37
+ switch (o.verdict) {
38
+ case "TRUE": return { p: 0.5 + 0.5 * c, informational: true };
39
+ case "FALSE": return { p: 0.5 - 0.5 * c, informational: true };
40
+ case "UNCERTAIN": return { p: 0.5, informational: false };
41
+ case "INAPPLICABLE": return { p: 0.5, informational: false };
42
+ default: return { p: 0.5, informational: false };
43
+ }
44
+ }
45
+ /** Run one sensor with a hard timeout. Always returns a verdict — on
46
+ * timeout / throw, returns an UNCERTAIN sensor output so the kernel
47
+ * stays robust. */
48
+ async function runSensorSafe(s, claim, ctx, timeoutMs) {
49
+ const t0 = Date.now();
50
+ try {
51
+ const result = await Promise.race([
52
+ Promise.resolve(s.run(claim, ctx)),
53
+ new Promise((_resolve, reject) => setTimeout(() => reject(new Error("timeout")), timeoutMs)),
54
+ ]);
55
+ return { ...result, ms: result.ms ?? Date.now() - t0 };
56
+ }
57
+ catch (e) {
58
+ return { sensor: s.id, verdict: "UNCERTAIN", confidence: 0, rationale: `sensor failed: ${e.message?.slice(0, 80) ?? "unknown"}`, ms: Date.now() - t0 };
59
+ }
60
+ }
61
+ /** Weighted log-odds fusion with calibrated weights.
62
+ * Each informational sensor contributes log(p/(1-p)) * weight; the sum
63
+ * becomes the fused log-odds. Convert back with sigmoid. */
64
+ function fuse(sensorOutputs, adapters) {
65
+ let logOdds = 0;
66
+ let informational = 0;
67
+ for (const o of sensorOutputs) {
68
+ const { p, informational: inf } = verdictToProb(o);
69
+ if (!inf)
70
+ continue;
71
+ const a = adapters.get(o.sensor);
72
+ const w = a?.weight ?? 1.0;
73
+ // Clamp p away from {0,1} to keep log-odds finite.
74
+ const pSafe = Math.min(0.999, Math.max(0.001, p));
75
+ logOdds += Math.log(pSafe / (1 - pSafe)) * w;
76
+ informational++;
77
+ }
78
+ if (informational === 0)
79
+ return { pTrue: 0.5, informationalCount: 0 };
80
+ const pTrue = 1 / (1 + Math.exp(-logOdds));
81
+ return { pTrue, informationalCount: informational };
82
+ }
83
+ /** Disagreement = WEIGHTED variance of per-sensor pTrue across informational
84
+ * sensors, normalized to 0..1 (max weighted-variance is 0.25 when sensors
85
+ * split evenly). Weighting matters: a low-weight outlier shouldn't
86
+ * trigger DISPUTED when the high-weight sensors agree. */
87
+ function disagreementScore(sensorOutputs, adapters) {
88
+ const ps = [];
89
+ for (const o of sensorOutputs) {
90
+ const { p, informational } = verdictToProb(o);
91
+ if (!informational)
92
+ continue;
93
+ const w = adapters.get(o.sensor)?.weight ?? 1;
94
+ if (w <= 0)
95
+ continue;
96
+ ps.push({ p, w });
97
+ }
98
+ if (ps.length < 2)
99
+ return 0;
100
+ const totalW = ps.reduce((acc, x) => acc + x.w, 0);
101
+ if (totalW <= 0)
102
+ return 0;
103
+ const mean = ps.reduce((acc, x) => acc + x.p * x.w, 0) / totalW;
104
+ const variance = ps.reduce((acc, x) => acc + x.w * (x.p - mean) ** 2, 0) / totalW;
105
+ return Math.min(1, variance / 0.25);
106
+ }
107
+ /** Pick the dominant / outlier sensors from the informational set. */
108
+ function pickRoleSensors(sensorOutputs, adapters, pTrue) {
109
+ let dominantId;
110
+ let dominantPull = -Infinity;
111
+ let outlierId;
112
+ let outlierDist = -1;
113
+ for (const o of sensorOutputs) {
114
+ const { p, informational } = verdictToProb(o);
115
+ if (!informational)
116
+ continue;
117
+ const w = adapters.get(o.sensor)?.weight ?? 1;
118
+ // Dominant = strongest weighted log-odds contribution aligned with consensus.
119
+ const pSafe = Math.min(0.999, Math.max(0.001, p));
120
+ const contribution = (pTrue > 0.5 ? Math.log(pSafe / (1 - pSafe)) : -Math.log(pSafe / (1 - pSafe))) * w;
121
+ if (contribution > dominantPull) {
122
+ dominantPull = contribution;
123
+ dominantId = o.sensor;
124
+ }
125
+ // Outlier = furthest from consensus.
126
+ const dist = Math.abs(p - pTrue);
127
+ if (dist > outlierDist) {
128
+ outlierDist = dist;
129
+ outlierId = o.sensor;
130
+ }
131
+ }
132
+ return { dominant: dominantId, outlier: outlierId };
133
+ }
134
+ /** Run the kernel: fan out → fuse → label. */
135
+ export async function checkTruth(input) {
136
+ if (input.sensors.length === 0) {
137
+ return { pTrue: 0.5, verdict: "INCONCLUSIVE", disagreement: 0, sensorOutputs: [], totalMs: 0 };
138
+ }
139
+ const t0 = Date.now();
140
+ const timeout = input.perSensorTimeoutMs ?? 5000;
141
+ const adapterMap = new Map();
142
+ for (const s of input.sensors)
143
+ adapterMap.set(s.id, s);
144
+ const sensorOutputs = await Promise.all(input.sensors.map((s) => runSensorSafe(s, input.claim, input.ctx, timeout)));
145
+ const { pTrue, informationalCount } = fuse(sensorOutputs, adapterMap);
146
+ const disagreement = disagreementScore(sensorOutputs, adapterMap);
147
+ const { dominant, outlier } = pickRoleSensors(sensorOutputs, adapterMap, pTrue);
148
+ let verdict;
149
+ if (informationalCount === 0) {
150
+ verdict = "INCONCLUSIVE";
151
+ }
152
+ else if (disagreement >= 0.5 && informationalCount >= 2) {
153
+ verdict = "DISPUTED";
154
+ }
155
+ else if (pTrue >= 0.75) {
156
+ verdict = "ACCEPTED";
157
+ }
158
+ else if (pTrue <= 0.25) {
159
+ verdict = "REJECTED";
160
+ }
161
+ else {
162
+ verdict = "INCONCLUSIVE";
163
+ }
164
+ return {
165
+ pTrue,
166
+ verdict,
167
+ disagreement,
168
+ sensorOutputs,
169
+ dominantSensor: dominant,
170
+ outlierSensor: outlier,
171
+ totalMs: Date.now() - t0,
172
+ };
173
+ }
174
+ /** Compact one-line pulse summary. */
175
+ export function formatTruthKernelPulseLine(v) {
176
+ return `TRUTH-KERNEL · ${v.verdict} · pTrue=${v.pTrue.toFixed(2)} · disagree=${v.disagreement.toFixed(2)} · sensors=${v.sensorOutputs.length} · ${v.totalMs}ms`;
177
+ }
178
+ /** Calibrate sensor weights from historical (sensorOutput, groundTruth) pairs.
179
+ * Returns a new weight map; higher weight = sensor was more often right.
180
+ *
181
+ * Simple algorithm: weight = max(0.1, accuracy * 2) so a 50% sensor → 1.0,
182
+ * a perfect sensor → 2.0, a random sensor → 1.0. Caps at 2.0 to avoid
183
+ * any single sensor dominating the log-odds sum. */
184
+ export function calibrateWeights(history) {
185
+ const tallies = new Map();
186
+ for (const h of history) {
187
+ const t = tallies.get(h.sensor) ?? { right: 0, total: 0 };
188
+ t.total++;
189
+ if (h.verdictWasCorrect)
190
+ t.right++;
191
+ tallies.set(h.sensor, t);
192
+ }
193
+ const weights = new Map();
194
+ for (const [sensor, t] of tallies) {
195
+ if (t.total === 0)
196
+ continue;
197
+ const acc = t.right / t.total;
198
+ const w = Math.max(0.1, Math.min(2.0, acc * 2));
199
+ weights.set(sensor, w);
200
+ }
201
+ return weights;
202
+ }
203
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/truth_kernel/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=truth_kernel.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truth_kernel.test.d.ts","sourceRoot":"","sources":["../../src/truth_kernel/truth_kernel.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,126 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { checkTruth, calibrateWeights, formatTruthKernelPulseLine } from "./index.js";
3
+ function makeSensor(id, verdict, confidence, weight = 1) {
4
+ return { id, weight, run: () => ({ sensor: id, verdict, confidence }) };
5
+ }
6
+ describe("v2.6 TRUTH KERNEL · fusion", () => {
7
+ it("two confident TRUE sensors → ACCEPTED with high pTrue", async () => {
8
+ const r = await checkTruth({
9
+ claim: "the sky is blue",
10
+ sensors: [makeSensor("flash", "TRUE", 0.9), makeSensor("apoptosis", "TRUE", 0.85)],
11
+ });
12
+ expect(r.verdict).toBe("ACCEPTED");
13
+ expect(r.pTrue).toBeGreaterThan(0.9);
14
+ expect(r.disagreement).toBeLessThan(0.05);
15
+ });
16
+ it("two confident FALSE sensors → REJECTED with low pTrue", async () => {
17
+ const r = await checkTruth({
18
+ claim: "the sky is green",
19
+ sensors: [makeSensor("flash", "FALSE", 0.9), makeSensor("apoptosis", "FALSE", 0.9)],
20
+ });
21
+ expect(r.verdict).toBe("REJECTED");
22
+ expect(r.pTrue).toBeLessThan(0.1);
23
+ });
24
+ it("conflicting sensors → DISPUTED with high disagreement", async () => {
25
+ const r = await checkTruth({
26
+ claim: "ambiguous claim",
27
+ sensors: [makeSensor("flash", "TRUE", 0.9), makeSensor("apoptosis", "FALSE", 0.9)],
28
+ });
29
+ expect(r.verdict).toBe("DISPUTED");
30
+ expect(r.disagreement).toBeGreaterThan(0.5);
31
+ expect(r.outlierSensor).toBeDefined();
32
+ });
33
+ it("all UNCERTAIN sensors → INCONCLUSIVE", async () => {
34
+ const r = await checkTruth({
35
+ claim: "x",
36
+ sensors: [makeSensor("a", "UNCERTAIN", 0), makeSensor("b", "UNCERTAIN", 0)],
37
+ });
38
+ expect(r.verdict).toBe("INCONCLUSIVE");
39
+ expect(r.pTrue).toBeCloseTo(0.5, 2);
40
+ });
41
+ it("INAPPLICABLE sensors are excluded from fusion", async () => {
42
+ const r = await checkTruth({
43
+ claim: "x",
44
+ sensors: [makeSensor("a", "TRUE", 0.95), makeSensor("b", "INAPPLICABLE", 0)],
45
+ });
46
+ expect(r.verdict).toBe("ACCEPTED");
47
+ expect(r.pTrue).toBeGreaterThan(0.9);
48
+ });
49
+ it("higher-weight sensor dominates the fused verdict", async () => {
50
+ const r = await checkTruth({
51
+ claim: "tie-breaker test",
52
+ sensors: [makeSensor("trustworthy", "TRUE", 0.9, 2.0), makeSensor("flaky", "FALSE", 0.9, 0.2)],
53
+ });
54
+ expect(r.verdict).toBe("ACCEPTED");
55
+ expect(r.pTrue).toBeGreaterThan(0.5);
56
+ expect(r.dominantSensor).toBe("trustworthy");
57
+ });
58
+ it("empty sensor list → INCONCLUSIVE", async () => {
59
+ const r = await checkTruth({ claim: "x", sensors: [] });
60
+ expect(r.verdict).toBe("INCONCLUSIVE");
61
+ });
62
+ it("crashing sensor degrades to UNCERTAIN gracefully", async () => {
63
+ const crashy = {
64
+ id: "crashy",
65
+ run: () => { throw new Error("kaboom"); },
66
+ };
67
+ const r = await checkTruth({
68
+ claim: "x",
69
+ sensors: [makeSensor("ok", "TRUE", 0.9), crashy],
70
+ });
71
+ // Crashy sensor is non-informational → ok sensor drives the verdict.
72
+ expect(r.verdict).toBe("ACCEPTED");
73
+ const crashOut = r.sensorOutputs.find((o) => o.sensor === "crashy");
74
+ expect(crashOut?.verdict).toBe("UNCERTAIN");
75
+ });
76
+ it("slow sensor times out without blocking the kernel", async () => {
77
+ const slow = {
78
+ id: "slow",
79
+ run: () => new Promise((resolve) => setTimeout(() => resolve({ sensor: "slow", verdict: "TRUE", confidence: 1 }), 200)),
80
+ };
81
+ const r = await checkTruth({
82
+ claim: "x",
83
+ sensors: [makeSensor("fast", "TRUE", 0.9), slow],
84
+ perSensorTimeoutMs: 50,
85
+ });
86
+ const slowOut = r.sensorOutputs.find((o) => o.sensor === "slow");
87
+ expect(slowOut?.verdict).toBe("UNCERTAIN");
88
+ expect(r.verdict).toBe("ACCEPTED"); // fast sensor still drives the verdict
89
+ });
90
+ });
91
+ describe("v2.6 TRUTH KERNEL · calibration", () => {
92
+ it("perfectly-accurate sensor gets weight 2.0", () => {
93
+ const history = Array.from({ length: 10 }, () => ({ sensor: "perfect", verdictWasCorrect: true }));
94
+ const w = calibrateWeights(history);
95
+ expect(w.get("perfect")).toBe(2.0);
96
+ });
97
+ it("50%-accurate sensor gets weight 1.0", () => {
98
+ const history = [
99
+ ...Array.from({ length: 5 }, () => ({ sensor: "average", verdictWasCorrect: true })),
100
+ ...Array.from({ length: 5 }, () => ({ sensor: "average", verdictWasCorrect: false })),
101
+ ];
102
+ const w = calibrateWeights(history);
103
+ expect(w.get("average")).toBeCloseTo(1.0, 2);
104
+ });
105
+ it("always-wrong sensor gets weight floor 0.1", () => {
106
+ const history = Array.from({ length: 10 }, () => ({ sensor: "wrong", verdictWasCorrect: false }));
107
+ const w = calibrateWeights(history);
108
+ expect(w.get("wrong")).toBe(0.1);
109
+ });
110
+ it("empty history → empty weight map", () => {
111
+ expect(calibrateWeights([]).size).toBe(0);
112
+ });
113
+ });
114
+ describe("v2.6 TRUTH KERNEL · pulse", () => {
115
+ it("formatTruthKernelPulseLine produces a compact summary", async () => {
116
+ const r = await checkTruth({
117
+ claim: "x",
118
+ sensors: [makeSensor("a", "TRUE", 0.9)],
119
+ });
120
+ const line = formatTruthKernelPulseLine(r);
121
+ expect(line).toContain("TRUTH-KERNEL");
122
+ expect(line).toContain("ACCEPTED");
123
+ expect(line).toContain("pTrue=");
124
+ });
125
+ });
126
+ //# sourceMappingURL=truth_kernel.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truth_kernel.test.js","sourceRoot":"","sources":["../../src/truth_kernel/truth_kernel.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * v2.6.0 -- WORMHOLE: channel auto-negotiation for cross-device sync.
3
+ *
4
+ * "One call · every channel races · fastest live channel wins."
5
+ *
6
+ * The pattern Mneme accumulated by v2.5: more than ten folders all
7
+ * answering the same family of question — "how do I move this brain
8
+ * to another device / vendor?":
9
+ * ANCHOR — parent-pole / child-rope identity
10
+ * AURA — same-WiFi owner-only pairing
11
+ * RELAY — anonymous public paste services
12
+ * CHAMELEON — environment-adaptive transport selection
13
+ * RAINBOW — multi-channel handoff orchestrator
14
+ * SYNAPSE — short-code + QR
15
+ * CONDUIT — phantom-exec cross-vendor loop
16
+ * PERMEATE — userscript + bookmarklet route-around
17
+ * DIASPORA — gitignore + spore + HTTP bridge
18
+ * ABYSS — capsule TTL + replay
19
+ * SEAMLESS — voice directive
20
+ *
21
+ * The receiving AI never had a UNIFIED entry. WORMHOLE is that entry.
22
+ *
23
+ * Design — modeled on ICE/STUN/TURN connectivity establishment:
24
+ * 1. Caller asks: "send this payload to peer X with quality Q".
25
+ * 2. WORMHOLE enumerates registered CHANNELS (each wraps one of the
26
+ * existing transport modules).
27
+ * 3. Channels marked `probe: () => boolean` are pinged in parallel
28
+ * with a hard timeout. Live ones survive.
29
+ * 4. Among live channels, WORMHOLE sorts by ADAPTIVE SCORE (recent
30
+ * success rate × inverse latency × user preference).
31
+ * 5. The first channel to successfully `send()` wins; the rest are
32
+ * cancelled. WORMHOLE records the outcome (success/latency) for
33
+ * the next negotiation's score.
34
+ *
35
+ * Wild move: the score is not static. Channels that worked yesterday
36
+ * but flake today see their weight decay fast (~30-trial half-life).
37
+ * A WiFi pairing channel scores high on a home network, low on a
38
+ * coffee-shop captive portal — without anyone configuring anything.
39
+ *
40
+ * Transports stay independently usable (no breaking change). WORMHOLE
41
+ * is a NEW SURFACE that composes them.
42
+ */
43
+ export type ChannelProbeResult = "available" | "unavailable" | "needs-pairing";
44
+ export interface Channel<Payload, Receipt> {
45
+ /** Stable id used in scoring + reporting. */
46
+ id: string;
47
+ /** Higher = caller would prefer this channel if all else equal. */
48
+ preference?: number;
49
+ /** Cheap availability probe. Must return within probeTimeoutMs. */
50
+ probe: (ctx?: Record<string, unknown>) => Promise<ChannelProbeResult> | ChannelProbeResult;
51
+ /** Heavy operation: actually move the payload. Must never throw —
52
+ * return { ok: false, reason } instead. */
53
+ send: (payload: Payload, ctx?: Record<string, unknown>) => Promise<{
54
+ ok: true;
55
+ receipt: Receipt;
56
+ } | {
57
+ ok: false;
58
+ reason: string;
59
+ }>;
60
+ }
61
+ export interface ChannelTrial {
62
+ channel: string;
63
+ outcome: "succeeded" | "failed" | "unavailable" | "needs-pairing";
64
+ ms: number;
65
+ reason?: string;
66
+ ts: number;
67
+ }
68
+ export interface WormholeNegotiation<Receipt> {
69
+ /** Channel that won the race. null if every channel failed. */
70
+ winner: string | null;
71
+ /** Receipt from the winning channel. */
72
+ receipt: Receipt | null;
73
+ /** Per-channel trial detail for the AI to surface to the user. */
74
+ trials: ChannelTrial[];
75
+ /** Total wall-clock ms. */
76
+ totalMs: number;
77
+ /** Adaptive score of each channel at the moment of negotiation. */
78
+ scoresAtNegotiation: Record<string, number>;
79
+ }
80
+ /** Persisted-by-caller stats; WORMHOLE never writes to disk itself. */
81
+ export interface ChannelStats {
82
+ channel: string;
83
+ trials: number;
84
+ succeeded: number;
85
+ /** Exponentially-weighted recent success rate (recency = newer trials weigh more). */
86
+ ewmaSuccess: number;
87
+ /** Exponentially-weighted recent latency in ms. */
88
+ ewmaLatencyMs: number;
89
+ }
90
+ /** Update channel stats with one new trial. Returns the new stats
91
+ * object — callers persist this (e.g. into .mneme/wormhole-stats.json). */
92
+ export declare function ingestTrial(prev: ChannelStats | undefined, trial: ChannelTrial): ChannelStats;
93
+ export interface WormholeInput<Payload, Receipt> {
94
+ payload: Payload;
95
+ channels: ReadonlyArray<Channel<Payload, Receipt>>;
96
+ /** Caller-supplied stats keyed by channel id. Undefined entries → cold start. */
97
+ stats?: Record<string, ChannelStats>;
98
+ /** Context passed verbatim to probe + send. */
99
+ ctx?: Record<string, unknown>;
100
+ /** Hard timeout per probe. Default 1500ms. */
101
+ probeTimeoutMs?: number;
102
+ /** Hard timeout per send. Default 15000ms. */
103
+ sendTimeoutMs?: number;
104
+ /** Maximum channels to try simultaneously during the send phase.
105
+ * Default 3 — keeps bandwidth + cost bounded. */
106
+ concurrency?: number;
107
+ }
108
+ /** Run the negotiation. Returns the winning channel's receipt or null. */
109
+ export declare function sendViaWormhole<Payload, Receipt>(input: WormholeInput<Payload, Receipt>): Promise<WormholeNegotiation<Receipt>>;
110
+ /** Compact one-line pulse summary. */
111
+ export declare function formatWormholePulseLine<R>(n: WormholeNegotiation<R>): string;
112
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wormhole/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ /**
2
+ * v2.6.0 -- WORMHOLE: channel auto-negotiation for cross-device sync.
3
+ *
4
+ * "One call · every channel races · fastest live channel wins."
5
+ *
6
+ * The pattern Mneme accumulated by v2.5: more than ten folders all
7
+ * answering the same family of question — "how do I move this brain
8
+ * to another device / vendor?":
9
+ * ANCHOR — parent-pole / child-rope identity
10
+ * AURA — same-WiFi owner-only pairing
11
+ * RELAY — anonymous public paste services
12
+ * CHAMELEON — environment-adaptive transport selection
13
+ * RAINBOW — multi-channel handoff orchestrator
14
+ * SYNAPSE — short-code + QR
15
+ * CONDUIT — phantom-exec cross-vendor loop
16
+ * PERMEATE — userscript + bookmarklet route-around
17
+ * DIASPORA — gitignore + spore + HTTP bridge
18
+ * ABYSS — capsule TTL + replay
19
+ * SEAMLESS — voice directive
20
+ *
21
+ * The receiving AI never had a UNIFIED entry. WORMHOLE is that entry.
22
+ *
23
+ * Design — modeled on ICE/STUN/TURN connectivity establishment:
24
+ * 1. Caller asks: "send this payload to peer X with quality Q".
25
+ * 2. WORMHOLE enumerates registered CHANNELS (each wraps one of the
26
+ * existing transport modules).
27
+ * 3. Channels marked `probe: () => boolean` are pinged in parallel
28
+ * with a hard timeout. Live ones survive.
29
+ * 4. Among live channels, WORMHOLE sorts by ADAPTIVE SCORE (recent
30
+ * success rate × inverse latency × user preference).
31
+ * 5. The first channel to successfully `send()` wins; the rest are
32
+ * cancelled. WORMHOLE records the outcome (success/latency) for
33
+ * the next negotiation's score.
34
+ *
35
+ * Wild move: the score is not static. Channels that worked yesterday
36
+ * but flake today see their weight decay fast (~30-trial half-life).
37
+ * A WiFi pairing channel scores high on a home network, low on a
38
+ * coffee-shop captive portal — without anyone configuring anything.
39
+ *
40
+ * Transports stay independently usable (no breaking change). WORMHOLE
41
+ * is a NEW SURFACE that composes them.
42
+ */
43
+ const EWMA_ALPHA = 1 / 30; // ~30-trial half-life
44
+ /** Update channel stats with one new trial. Returns the new stats
45
+ * object — callers persist this (e.g. into .mneme/wormhole-stats.json). */
46
+ export function ingestTrial(prev, trial) {
47
+ const trials = (prev?.trials ?? 0) + 1;
48
+ const succeeded = (prev?.succeeded ?? 0) + (trial.outcome === "succeeded" ? 1 : 0);
49
+ const wasSuccess = trial.outcome === "succeeded" ? 1 : 0;
50
+ const ewmaSuccess = prev ? prev.ewmaSuccess * (1 - EWMA_ALPHA) + wasSuccess * EWMA_ALPHA : wasSuccess;
51
+ const ewmaLatencyMs = prev ? prev.ewmaLatencyMs * (1 - EWMA_ALPHA) + trial.ms * EWMA_ALPHA : trial.ms;
52
+ return { channel: trial.channel, trials, succeeded, ewmaSuccess, ewmaLatencyMs };
53
+ }
54
+ /** Adaptive score: weight a channel by its EWMA success rate, inverse
55
+ * latency, and caller preference. Channels never tried before get a
56
+ * neutral 0.5 success rate so they actually get a chance to compete. */
57
+ function adaptiveScore(c, stats) {
58
+ const success = stats ? stats.ewmaSuccess : 0.5;
59
+ const latencyPenalty = stats ? 1 / (1 + stats.ewmaLatencyMs / 1000) : 1; // 1s → 0.5
60
+ const pref = c.preference ?? 1;
61
+ return success * latencyPenalty * pref;
62
+ }
63
+ async function runWithTimeout(p, ms) {
64
+ let timer;
65
+ const timeoutP = new Promise((resolve) => {
66
+ timer = setTimeout(() => resolve("timeout"), ms);
67
+ });
68
+ try {
69
+ return await Promise.race([Promise.resolve(p), timeoutP]);
70
+ }
71
+ finally {
72
+ if (timer)
73
+ clearTimeout(timer);
74
+ }
75
+ }
76
+ /** Run the negotiation. Returns the winning channel's receipt or null. */
77
+ export async function sendViaWormhole(input) {
78
+ const t0 = Date.now();
79
+ const trials = [];
80
+ if (input.channels.length === 0) {
81
+ return { winner: null, receipt: null, trials, totalMs: 0, scoresAtNegotiation: {} };
82
+ }
83
+ // Phase 1: probe in parallel.
84
+ const probeTimeout = input.probeTimeoutMs ?? 1500;
85
+ const probes = await Promise.all(input.channels.map(async (c) => {
86
+ const probeStart = Date.now();
87
+ const res = await runWithTimeout(Promise.resolve(c.probe(input.ctx)), probeTimeout);
88
+ const ms = Date.now() - probeStart;
89
+ if (res === "timeout") {
90
+ trials.push({ channel: c.id, outcome: "unavailable", ms, reason: "probe timeout", ts: Date.now() });
91
+ return null;
92
+ }
93
+ if (res === "unavailable") {
94
+ trials.push({ channel: c.id, outcome: "unavailable", ms, ts: Date.now() });
95
+ return null;
96
+ }
97
+ if (res === "needs-pairing") {
98
+ trials.push({ channel: c.id, outcome: "needs-pairing", ms, ts: Date.now() });
99
+ return null;
100
+ }
101
+ return c;
102
+ }));
103
+ const live = probes.filter((x) => x !== null);
104
+ const scoresAtNegotiation = {};
105
+ for (const c of input.channels)
106
+ scoresAtNegotiation[c.id] = adaptiveScore(c, input.stats?.[c.id]);
107
+ if (live.length === 0) {
108
+ return { winner: null, receipt: null, trials, totalMs: Date.now() - t0, scoresAtNegotiation };
109
+ }
110
+ // Phase 2: rank by adaptive score, slice to concurrency, race.
111
+ const sorted = live.slice().sort((a, b) => adaptiveScore(b, input.stats?.[b.id]) - adaptiveScore(a, input.stats?.[a.id]));
112
+ const racers = sorted.slice(0, Math.max(1, input.concurrency ?? 3));
113
+ const sendTimeout = input.sendTimeoutMs ?? 15000;
114
+ let winner = null;
115
+ const racePromises = racers.map(async (c) => {
116
+ const sendStart = Date.now();
117
+ const res = await runWithTimeout(c.send(input.payload, input.ctx), sendTimeout);
118
+ const ms = Date.now() - sendStart;
119
+ if (res === "timeout") {
120
+ trials.push({ channel: c.id, outcome: "failed", ms, reason: "send timeout", ts: Date.now() });
121
+ return null;
122
+ }
123
+ if (!res.ok) {
124
+ trials.push({ channel: c.id, outcome: "failed", ms, reason: res.reason, ts: Date.now() });
125
+ return null;
126
+ }
127
+ trials.push({ channel: c.id, outcome: "succeeded", ms, ts: Date.now() });
128
+ return { channel: c.id, receipt: res.receipt };
129
+ });
130
+ // First-to-succeed wins. We still wait for all so the trials list is
131
+ // complete (the AI may want to surface why losers lost).
132
+ const results = await Promise.all(racePromises);
133
+ for (const r of results) {
134
+ if (r && !winner)
135
+ winner = r;
136
+ }
137
+ return {
138
+ winner: winner?.channel ?? null,
139
+ receipt: winner?.receipt ?? null,
140
+ trials,
141
+ totalMs: Date.now() - t0,
142
+ scoresAtNegotiation,
143
+ };
144
+ }
145
+ /** Compact one-line pulse summary. */
146
+ export function formatWormholePulseLine(n) {
147
+ if (!n.winner)
148
+ return `WORMHOLE · NO-CHANNEL · tried=${n.trials.length} · ${n.totalMs}ms`;
149
+ return `WORMHOLE · OK · winner=${n.winner} · tried=${n.trials.length} · ${n.totalMs}ms`;
150
+ }
151
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wormhole/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=wormhole.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wormhole.test.d.ts","sourceRoot":"","sources":["../../src/wormhole/wormhole.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,154 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { sendViaWormhole, ingestTrial, formatWormholePulseLine } from "./index.js";
3
+ function fakeChannel(id, opts = { probe: "available" }) {
4
+ return {
5
+ id,
6
+ preference: opts.preference,
7
+ probe: () => opts.probe,
8
+ send: async () => {
9
+ if (opts.sendDelay)
10
+ await new Promise((r) => setTimeout(r, opts.sendDelay));
11
+ if (opts.sendOk === false)
12
+ return { ok: false, reason: opts.reason ?? "fake-fail" };
13
+ return { ok: true, receipt: `delivered-via-${id}` };
14
+ },
15
+ };
16
+ }
17
+ describe("v2.6 WORMHOLE · negotiation", () => {
18
+ it("single available channel wins immediately", async () => {
19
+ const r = await sendViaWormhole({
20
+ payload: "hello",
21
+ channels: [fakeChannel("lan", { probe: "available" })],
22
+ });
23
+ expect(r.winner).toBe("lan");
24
+ expect(r.receipt).toBe("delivered-via-lan");
25
+ });
26
+ it("unavailable channels are filtered before send", async () => {
27
+ const r = await sendViaWormhole({
28
+ payload: "hello",
29
+ channels: [
30
+ fakeChannel("lan", { probe: "unavailable" }),
31
+ fakeChannel("paste", { probe: "available" }),
32
+ ],
33
+ });
34
+ expect(r.winner).toBe("paste");
35
+ const lanTrial = r.trials.find((t) => t.channel === "lan");
36
+ expect(lanTrial?.outcome).toBe("unavailable");
37
+ });
38
+ it("needs-pairing channels are excluded", async () => {
39
+ const r = await sendViaWormhole({
40
+ payload: "hello",
41
+ channels: [
42
+ fakeChannel("aura", { probe: "needs-pairing" }),
43
+ fakeChannel("paste", { probe: "available" }),
44
+ ],
45
+ });
46
+ expect(r.winner).toBe("paste");
47
+ const auraTrial = r.trials.find((t) => t.channel === "aura");
48
+ expect(auraTrial?.outcome).toBe("needs-pairing");
49
+ });
50
+ it("no live channels → NO-CHANNEL winner null", async () => {
51
+ const r = await sendViaWormhole({
52
+ payload: "hello",
53
+ channels: [fakeChannel("a", { probe: "unavailable" }), fakeChannel("b", { probe: "unavailable" })],
54
+ });
55
+ expect(r.winner).toBeNull();
56
+ expect(r.receipt).toBeNull();
57
+ });
58
+ it("send failure on one channel allows another to win", async () => {
59
+ const r = await sendViaWormhole({
60
+ payload: "hello",
61
+ channels: [
62
+ fakeChannel("flaky", { probe: "available", sendOk: false, reason: "503" }),
63
+ fakeChannel("solid", { probe: "available" }),
64
+ ],
65
+ });
66
+ expect(r.winner).toBe("solid");
67
+ const flakyTrial = r.trials.find((t) => t.channel === "flaky");
68
+ expect(flakyTrial?.outcome).toBe("failed");
69
+ expect(flakyTrial?.reason).toBe("503");
70
+ });
71
+ it("send timeout marks channel as failed", async () => {
72
+ const r = await sendViaWormhole({
73
+ payload: "hello",
74
+ channels: [
75
+ fakeChannel("slow", { probe: "available", sendDelay: 200 }),
76
+ fakeChannel("fast", { probe: "available" }),
77
+ ],
78
+ sendTimeoutMs: 50,
79
+ concurrency: 2,
80
+ });
81
+ expect(r.winner).toBe("fast");
82
+ const slowTrial = r.trials.find((t) => t.channel === "slow");
83
+ expect(slowTrial?.reason).toContain("timeout");
84
+ });
85
+ it("higher preference channel runs first when scores tied", async () => {
86
+ const r = await sendViaWormhole({
87
+ payload: "hello",
88
+ channels: [
89
+ fakeChannel("low", { probe: "available", preference: 0.1 }),
90
+ fakeChannel("high", { probe: "available", preference: 10 }),
91
+ ],
92
+ concurrency: 1,
93
+ });
94
+ expect(r.winner).toBe("high");
95
+ });
96
+ it("empty channel list → NO-CHANNEL", async () => {
97
+ const r = await sendViaWormhole({ payload: "x", channels: [] });
98
+ expect(r.winner).toBeNull();
99
+ expect(r.trials.length).toBe(0);
100
+ });
101
+ it("scoresAtNegotiation reports per-channel scores", async () => {
102
+ const r = await sendViaWormhole({
103
+ payload: "x",
104
+ channels: [fakeChannel("a"), fakeChannel("b")],
105
+ });
106
+ expect(r.scoresAtNegotiation["a"]).toBeGreaterThan(0);
107
+ expect(r.scoresAtNegotiation["b"]).toBeGreaterThan(0);
108
+ });
109
+ });
110
+ describe("v2.6 WORMHOLE · EWMA stats", () => {
111
+ it("first success → ewmaSuccess = 1", () => {
112
+ const s = ingestTrial(undefined, { channel: "a", outcome: "succeeded", ms: 100, ts: 0 });
113
+ expect(s.ewmaSuccess).toBe(1);
114
+ expect(s.succeeded).toBe(1);
115
+ expect(s.trials).toBe(1);
116
+ });
117
+ it("first failure → ewmaSuccess = 0", () => {
118
+ const s = ingestTrial(undefined, { channel: "a", outcome: "failed", ms: 100, ts: 0 });
119
+ expect(s.ewmaSuccess).toBe(0);
120
+ expect(s.succeeded).toBe(0);
121
+ expect(s.trials).toBe(1);
122
+ });
123
+ it("repeated successes converge ewmaSuccess to 1", () => {
124
+ let s = ingestTrial(undefined, { channel: "a", outcome: "failed", ms: 100, ts: 0 });
125
+ for (let i = 0; i < 60; i++) {
126
+ s = ingestTrial(s, { channel: "a", outcome: "succeeded", ms: 100, ts: i });
127
+ }
128
+ expect(s.ewmaSuccess).toBeGreaterThan(0.85);
129
+ expect(s.trials).toBe(61);
130
+ expect(s.succeeded).toBe(60);
131
+ });
132
+ it("recent failures pull ewmaSuccess down even after long success streak", () => {
133
+ let s = ingestTrial(undefined, { channel: "a", outcome: "succeeded", ms: 100, ts: 0 });
134
+ for (let i = 0; i < 30; i++)
135
+ s = ingestTrial(s, { channel: "a", outcome: "succeeded", ms: 100, ts: i });
136
+ const before = s.ewmaSuccess;
137
+ for (let i = 0; i < 30; i++)
138
+ s = ingestTrial(s, { channel: "a", outcome: "failed", ms: 100, ts: i });
139
+ expect(s.ewmaSuccess).toBeLessThan(before);
140
+ expect(s.ewmaSuccess).toBeLessThan(0.5);
141
+ });
142
+ });
143
+ describe("v2.6 WORMHOLE · pulse", () => {
144
+ it("formatWormholePulseLine OK case", async () => {
145
+ const r = await sendViaWormhole({ payload: "x", channels: [fakeChannel("a")] });
146
+ expect(formatWormholePulseLine(r)).toContain("OK");
147
+ expect(formatWormholePulseLine(r)).toContain("winner=a");
148
+ });
149
+ it("formatWormholePulseLine NO-CHANNEL case", async () => {
150
+ const r = await sendViaWormhole({ payload: "x", channels: [fakeChannel("a", { probe: "unavailable" })] });
151
+ expect(formatWormholePulseLine(r)).toContain("NO-CHANNEL");
152
+ });
153
+ });
154
+ //# sourceMappingURL=wormhole.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wormhole.test.js","sourceRoot":"","sources":["../../src/wormhole/wormhole.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mneme-ai/core",
3
- "version": "2.5.0",
3
+ "version": "2.6.0",
4
4
  "description": "Core indexing, retrieval, and graph engine for Mneme",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",