@mneme-ai/core 2.19.25 → 2.19.27
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/cosmic/aurelian_v1925.test.js +1 -1
- package/dist/cosmic/aurelian_v1925.test.js.map +1 -1
- package/dist/cosmic/aurelian_v1926.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v1926.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v1926.test.js +48 -0
- package/dist/cosmic/aurelian_v1926.test.js.map +1 -0
- package/dist/cosmic/aurelian_v1927.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v1927.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v1927.test.js +73 -0
- package/dist/cosmic/aurelian_v1927.test.js.map +1 -0
- package/dist/dreamspace_cartographer/dreamspace_cartographer.test.d.ts +2 -0
- package/dist/dreamspace_cartographer/dreamspace_cartographer.test.d.ts.map +1 -0
- package/dist/dreamspace_cartographer/dreamspace_cartographer.test.js +153 -0
- package/dist/dreamspace_cartographer/dreamspace_cartographer.test.js.map +1 -0
- package/dist/dreamspace_cartographer/index.d.ts +110 -0
- package/dist/dreamspace_cartographer/index.d.ts.map +1 -0
- package/dist/dreamspace_cartographer/index.js +175 -0
- package/dist/dreamspace_cartographer/index.js.map +1 -0
- package/dist/dreamspace_evolution/dreamspace_evolution.test.d.ts +2 -0
- package/dist/dreamspace_evolution/dreamspace_evolution.test.d.ts.map +1 -0
- package/dist/dreamspace_evolution/dreamspace_evolution.test.js +199 -0
- package/dist/dreamspace_evolution/dreamspace_evolution.test.js.map +1 -0
- package/dist/dreamspace_evolution/index.d.ts +140 -0
- package/dist/dreamspace_evolution/index.d.ts.map +1 -0
- package/dist/dreamspace_evolution/index.js +210 -0
- package/dist/dreamspace_evolution/index.js.map +1 -0
- package/dist/dreamspace_federate/dreamspace_federate.test.d.ts +2 -0
- package/dist/dreamspace_federate/dreamspace_federate.test.d.ts.map +1 -0
- package/dist/dreamspace_federate/dreamspace_federate.test.js +199 -0
- package/dist/dreamspace_federate/dreamspace_federate.test.js.map +1 -0
- package/dist/dreamspace_federate/index.d.ts +131 -0
- package/dist/dreamspace_federate/index.d.ts.map +1 -0
- package/dist/dreamspace_federate/index.js +209 -0
- package/dist/dreamspace_federate/index.js.map +1 -0
- package/dist/dreamspace_gestation/dreamspace_gestation.test.d.ts +2 -0
- package/dist/dreamspace_gestation/dreamspace_gestation.test.d.ts.map +1 -0
- package/dist/dreamspace_gestation/dreamspace_gestation.test.js +160 -0
- package/dist/dreamspace_gestation/dreamspace_gestation.test.js.map +1 -0
- package/dist/dreamspace_gestation/index.d.ts +136 -0
- package/dist/dreamspace_gestation/index.d.ts.map +1 -0
- package/dist/dreamspace_gestation/index.js +186 -0
- package/dist/dreamspace_gestation/index.js.map +1 -0
- package/dist/dreamspace_pair/dreamspace_pair.test.d.ts +2 -0
- package/dist/dreamspace_pair/dreamspace_pair.test.d.ts.map +1 -0
- package/dist/dreamspace_pair/dreamspace_pair.test.js +175 -0
- package/dist/dreamspace_pair/dreamspace_pair.test.js.map +1 -0
- package/dist/dreamspace_pair/index.d.ts +99 -0
- package/dist/dreamspace_pair/index.d.ts.map +1 -0
- package/dist/dreamspace_pair/index.js +161 -0
- package/dist/dreamspace_pair/index.js.map +1 -0
- package/dist/dreamspace_probe/dreamspace_probe.test.d.ts +2 -0
- package/dist/dreamspace_probe/dreamspace_probe.test.d.ts.map +1 -0
- package/dist/dreamspace_probe/dreamspace_probe.test.js +179 -0
- package/dist/dreamspace_probe/dreamspace_probe.test.js.map +1 -0
- package/dist/dreamspace_probe/index.d.ts +125 -0
- package/dist/dreamspace_probe/index.d.ts.map +1 -0
- package/dist/dreamspace_probe/index.js +226 -0
- package/dist/dreamspace_probe/index.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/whats_new.d.ts.map +1 -1
- package/dist/whats_new.js +16 -0
- package/dist/whats_new.js.map +1 -1
- package/dist/wrapper_genesis/index.d.ts.map +1 -1
- package/dist/wrapper_genesis/index.js +37 -0
- package/dist/wrapper_genesis/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dreamspace_pair/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dreamspace_probe.test.d.ts","sourceRoot":"","sources":["../../src/dreamspace_probe/dreamspace_probe.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { latencyScore, outputShapeEntropy, errorRate, utilityScore, aggregateFitness, finaliseProbe, runProbeBattery, verifyProbeReport, formatProbeLine, } from "./index.js";
|
|
3
|
+
const SECRET = "probe-test-secret-997744";
|
|
4
|
+
function run(opts = {}) {
|
|
5
|
+
return {
|
|
6
|
+
inputLabel: "x",
|
|
7
|
+
inputSource: "synthetic",
|
|
8
|
+
latencyMs: 10,
|
|
9
|
+
ok: true,
|
|
10
|
+
result: { ok: true },
|
|
11
|
+
...opts,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
describe("v2.19.27 PROBE · latencyScore", () => {
|
|
15
|
+
it("1.0 when within budget (100ms default)", () => {
|
|
16
|
+
expect(latencyScore(50)).toBe(1.0);
|
|
17
|
+
expect(latencyScore(100)).toBe(1.0);
|
|
18
|
+
});
|
|
19
|
+
it("exponential decay past budget (half at +200ms)", () => {
|
|
20
|
+
expect(latencyScore(300)).toBeCloseTo(0.5, 5);
|
|
21
|
+
expect(latencyScore(500)).toBeCloseTo(0.25, 5);
|
|
22
|
+
});
|
|
23
|
+
it("custom budget + half-life respected", () => {
|
|
24
|
+
expect(latencyScore(50, 30, 20)).toBeCloseTo(Math.pow(0.5, (50 - 30) / 20), 5);
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
describe("v2.19.27 PROBE · outputShapeEntropy", () => {
|
|
28
|
+
it("empty results -> 0", () => {
|
|
29
|
+
expect(outputShapeEntropy([])).toBe(0);
|
|
30
|
+
});
|
|
31
|
+
it("identical shapes -> 0 entropy (flat output)", () => {
|
|
32
|
+
expect(outputShapeEntropy([{ a: 1 }, { a: 2 }, { a: 3 }])).toBe(0);
|
|
33
|
+
});
|
|
34
|
+
it("diverse shapes -> high entropy", () => {
|
|
35
|
+
const ent = outputShapeEntropy([
|
|
36
|
+
{ a: 1 }, { b: 1 }, [1, 2, 3], "string", 42, null,
|
|
37
|
+
]);
|
|
38
|
+
expect(ent).toBeGreaterThan(0.5);
|
|
39
|
+
});
|
|
40
|
+
it("array length buckets distinguish small/med/large", () => {
|
|
41
|
+
const e = outputShapeEntropy([[], [1, 2], new Array(20).fill(0), new Array(200).fill(0)]);
|
|
42
|
+
expect(e).toBeGreaterThan(0.5);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe("v2.19.27 PROBE · errorRate", () => {
|
|
46
|
+
it("zero runs -> 0", () => {
|
|
47
|
+
expect(errorRate([])).toBe(0);
|
|
48
|
+
});
|
|
49
|
+
it("all errors -> 1.0", () => {
|
|
50
|
+
expect(errorRate([run({ ok: false }), run({ ok: false })])).toBe(1.0);
|
|
51
|
+
});
|
|
52
|
+
it("half errors -> 0.5", () => {
|
|
53
|
+
expect(errorRate([run({ ok: true }), run({ ok: false })])).toBe(0.5);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe("v2.19.27 PROBE · utilityScore", () => {
|
|
57
|
+
it("all useful results -> 1.0", () => {
|
|
58
|
+
expect(utilityScore([run({ result: { x: 1 } }), run({ result: "hello" })])).toBe(1.0);
|
|
59
|
+
});
|
|
60
|
+
it("empty / null / undefined treated as useless", () => {
|
|
61
|
+
expect(utilityScore([
|
|
62
|
+
run({ result: null }), run({ result: undefined }),
|
|
63
|
+
run({ result: "" }), run({ result: [] }), run({ result: {} }),
|
|
64
|
+
])).toBe(0);
|
|
65
|
+
});
|
|
66
|
+
it("errored runs don't count as useful", () => {
|
|
67
|
+
expect(utilityScore([run({ ok: false }), run({ ok: true, result: { x: 1 } })])).toBe(0.5);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
describe("v2.19.27 PROBE · aggregateFitness (geometric mean of 4 scores)", () => {
|
|
71
|
+
it("all perfect -> 1.0", () => {
|
|
72
|
+
expect(aggregateFitness({ latencyScore: 1, outputEntropy: 1, errorRate: 0, utilityScore: 1 })).toBeCloseTo(1, 5);
|
|
73
|
+
});
|
|
74
|
+
it("any zero (or near-zero) drags geometric mean toward floor", () => {
|
|
75
|
+
const f = aggregateFitness({ latencyScore: 1, outputEntropy: 1, errorRate: 1, utilityScore: 1 });
|
|
76
|
+
expect(f).toBeLessThan(0.1);
|
|
77
|
+
});
|
|
78
|
+
it("balanced mid -> ~0.5", () => {
|
|
79
|
+
const f = aggregateFitness({ latencyScore: 0.5, outputEntropy: 0.5, errorRate: 0.5, utilityScore: 0.5 });
|
|
80
|
+
expect(f).toBeCloseTo(0.5, 1);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
describe("v2.19.27 PROBE · finaliseProbe (pure aggregator)", () => {
|
|
84
|
+
it("produces HMAC-signed report with all 4 metrics + fitness", () => {
|
|
85
|
+
const r = finaliseProbe({
|
|
86
|
+
toolName: "mneme.x",
|
|
87
|
+
runs: [run({ latencyMs: 50, result: { a: 1 } }), run({ latencyMs: 70, result: { b: 2 } })],
|
|
88
|
+
probedAt: 1_000_000,
|
|
89
|
+
secret: SECRET,
|
|
90
|
+
});
|
|
91
|
+
expect(r.metrics.latencyScore).toBe(1.0);
|
|
92
|
+
expect(r.metrics.errorRate).toBe(0);
|
|
93
|
+
expect(r.metrics.utilityScore).toBe(1.0);
|
|
94
|
+
expect(r.metrics.outputEntropy).toBeGreaterThan(0);
|
|
95
|
+
expect(verifyProbeReport(r, SECRET)).toBe(true);
|
|
96
|
+
});
|
|
97
|
+
it("counts synthetic + real inputs separately", () => {
|
|
98
|
+
const r = finaliseProbe({
|
|
99
|
+
toolName: "mneme.x",
|
|
100
|
+
runs: [
|
|
101
|
+
run({ inputSource: "synthetic" }), run({ inputSource: "synthetic" }),
|
|
102
|
+
run({ inputSource: "real" }),
|
|
103
|
+
],
|
|
104
|
+
probedAt: 0,
|
|
105
|
+
secret: SECRET,
|
|
106
|
+
});
|
|
107
|
+
expect(r.syntheticInputs).toBe(2);
|
|
108
|
+
expect(r.realInputs).toBe(1);
|
|
109
|
+
expect(r.totalInputs).toBe(3);
|
|
110
|
+
});
|
|
111
|
+
it("verify rejects tampered fitness", () => {
|
|
112
|
+
const r = finaliseProbe({ toolName: "x", runs: [run()], probedAt: 0, secret: SECRET });
|
|
113
|
+
expect(verifyProbeReport({ ...r, metrics: { ...r.metrics, fitnessScore: 0.99 } }, SECRET)).toBe(false);
|
|
114
|
+
});
|
|
115
|
+
it("MEASURED 100% determinism: same input -> same sig (30 trials)", () => {
|
|
116
|
+
const input = {
|
|
117
|
+
toolName: "mneme.x",
|
|
118
|
+
runs: [run({ latencyMs: 50 }), run({ latencyMs: 70 })],
|
|
119
|
+
probedAt: 1_000_000,
|
|
120
|
+
secret: SECRET,
|
|
121
|
+
};
|
|
122
|
+
const firstSig = finaliseProbe(input).sig;
|
|
123
|
+
let allEqual = true;
|
|
124
|
+
for (let i = 0; i < 30; i++) {
|
|
125
|
+
if (finaliseProbe(input).sig !== firstSig) {
|
|
126
|
+
allEqual = false;
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
expect(allEqual).toBe(true);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
describe("v2.19.27 PROBE · runProbeBattery (real invoke)", () => {
|
|
134
|
+
it("invokes each input + measures latency + catches errors", async () => {
|
|
135
|
+
const inputs = [
|
|
136
|
+
{ label: "axiom:1", source: "synthetic", args: { x: 1 } },
|
|
137
|
+
{ label: "axiom:2", source: "synthetic", args: { x: 2 } },
|
|
138
|
+
{ label: "real:1", source: "real", args: { x: 3 } },
|
|
139
|
+
];
|
|
140
|
+
const invoke = async (_t, args) => ({ doubled: args["x"] * 2 });
|
|
141
|
+
const r = await runProbeBattery({ toolName: "mneme.double", inputs, invoke, secret: SECRET });
|
|
142
|
+
expect(r.runs.length).toBe(3);
|
|
143
|
+
expect(r.runs.every((x) => x.ok)).toBe(true);
|
|
144
|
+
expect(r.syntheticInputs).toBe(2);
|
|
145
|
+
expect(r.realInputs).toBe(1);
|
|
146
|
+
expect(r.metrics.errorRate).toBe(0);
|
|
147
|
+
expect(r.metrics.utilityScore).toBe(1);
|
|
148
|
+
});
|
|
149
|
+
it("captures errors with messages without crashing the battery", async () => {
|
|
150
|
+
const inputs = [{ label: "x", source: "synthetic", args: {} }];
|
|
151
|
+
const invoke = async () => { throw new Error("kaboom"); };
|
|
152
|
+
const r = await runProbeBattery({ toolName: "mneme.broken", inputs, invoke, secret: SECRET });
|
|
153
|
+
expect(r.runs[0].ok).toBe(false);
|
|
154
|
+
expect(r.runs[0].errorMessage).toBe("kaboom");
|
|
155
|
+
expect(r.metrics.errorRate).toBe(1);
|
|
156
|
+
});
|
|
157
|
+
it("slow tool incurs latency penalty", async () => {
|
|
158
|
+
const inputs = [{ label: "x", source: "synthetic", args: {} }];
|
|
159
|
+
const invoke = async () => {
|
|
160
|
+
await new Promise((res) => setTimeout(res, 250));
|
|
161
|
+
return "done";
|
|
162
|
+
};
|
|
163
|
+
const r = await runProbeBattery({ toolName: "mneme.slow", inputs, invoke, secret: SECRET });
|
|
164
|
+
expect(r.metrics.latencyScore).toBeLessThan(1);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
describe("v2.19.27 PROBE · formatter", () => {
|
|
168
|
+
it("formatProbeLine includes all 4 metric percentages", () => {
|
|
169
|
+
const r = finaliseProbe({ toolName: "mneme.x", runs: [run()], probedAt: 0, secret: SECRET });
|
|
170
|
+
const line = formatProbeLine(r);
|
|
171
|
+
expect(line).toContain("PROBE mneme.x");
|
|
172
|
+
expect(line).toContain("fitness=");
|
|
173
|
+
expect(line).toContain("lat=");
|
|
174
|
+
expect(line).toContain("ent=");
|
|
175
|
+
expect(line).toContain("err=");
|
|
176
|
+
expect(line).toContain("util=");
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
//# sourceMappingURL=dreamspace_probe.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dreamspace_probe.test.js","sourceRoot":"","sources":["../../src/dreamspace_probe/dreamspace_probe.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.27 — MNEME DREAMSPACE · PROBE (stage 1 of 6)
|
|
3
|
+
*
|
|
4
|
+
* "ทุกคืน 02:00 daemon idle detect (BREATH) → run each MCP tool
|
|
5
|
+
* against 5 synthetic inputs (HIPPOCAMPUS axiom pool) + 3 real
|
|
6
|
+
* recent inputs → measure latency / output_entropy / error_rate /
|
|
7
|
+
* utility_score → store in PROPRIOCEPTION → REFLEX query at
|
|
8
|
+
* predict-next-tool time."
|
|
9
|
+
* — user audit, 2026-05-17
|
|
10
|
+
*
|
|
11
|
+
* Diagnosis: v2.19.22 REFLEX predicts by frequency; v2.19.26
|
|
12
|
+
* DREAMSPACE proposes tools from gaps. Neither MEASURES per-tool
|
|
13
|
+
* capability dimensions. PROBE fills that gap.
|
|
14
|
+
*
|
|
15
|
+
* PROBE runs a caller-supplied tool handler against:
|
|
16
|
+
* - synthetic inputs (caller-provided HIPPOCAMPUS axiom samples)
|
|
17
|
+
* - real recent inputs (caller-provided yesterday's reflex log)
|
|
18
|
+
*
|
|
19
|
+
* For each run, computes 4 normalised metrics:
|
|
20
|
+
* 1. latencyScore — 1.0 if < 100ms; decays exponentially
|
|
21
|
+
* 2. outputEntropy — Shannon entropy of result keys; flag flat outputs
|
|
22
|
+
* 3. errorRate — proportion of runs that threw
|
|
23
|
+
* 4. utilityScore — heuristic: result has shape + non-empty + valid
|
|
24
|
+
*
|
|
25
|
+
* Aggregate fitness = geometric mean of all 4. Used by stage 5
|
|
26
|
+
* (v2.19.26 EVOLUTION) for promote/sunset decisions and by stage 2
|
|
27
|
+
* (CARTOGRAPHER) for capability mapping.
|
|
28
|
+
*
|
|
29
|
+
* Composes onto:
|
|
30
|
+
* - v2.19.23 BREATH (caller triggers cycle on idle)
|
|
31
|
+
* - v2.19.23 THALAMUS (dream tier handles the cycle)
|
|
32
|
+
* - v2.19.23 HIPPOCAMPUS (axiom source for synthetic inputs)
|
|
33
|
+
* - v2.19.25 SLEEP TRAINING (fitness gradient blends with probe)
|
|
34
|
+
* - v2.19.26 EVOLUTION (probe results feed lifecycle decisions)
|
|
35
|
+
*
|
|
36
|
+
* Honest scope:
|
|
37
|
+
* - PURE FUNCTION metric computation. Caller supplies the invoke
|
|
38
|
+
* function + inputs; we measure + aggregate.
|
|
39
|
+
* - Latency budget thresholds, entropy bins are CONFIG.
|
|
40
|
+
* - HMAC-signed ProbeReport so daemon can audit forged probes.
|
|
41
|
+
*/
|
|
42
|
+
declare const PROTOCOL_VERSION: 1;
|
|
43
|
+
export interface ProbeInput {
|
|
44
|
+
/** Caller-named input label (e.g., "axiom:fact_check" / "real:yesterday_3"). */
|
|
45
|
+
label: string;
|
|
46
|
+
/** Whether this came from synthetic (axiom) or real recent log. */
|
|
47
|
+
source: "synthetic" | "real";
|
|
48
|
+
/** Args passed to tool. */
|
|
49
|
+
args: Record<string, unknown>;
|
|
50
|
+
}
|
|
51
|
+
export interface ProbeRun {
|
|
52
|
+
inputLabel: string;
|
|
53
|
+
inputSource: ProbeInput["source"];
|
|
54
|
+
latencyMs: number;
|
|
55
|
+
ok: boolean;
|
|
56
|
+
/** Result returned by tool (or undefined on error). */
|
|
57
|
+
result: unknown;
|
|
58
|
+
errorMessage?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface ProbeMetrics {
|
|
61
|
+
latencyScore: number;
|
|
62
|
+
outputEntropy: number;
|
|
63
|
+
errorRate: number;
|
|
64
|
+
utilityScore: number;
|
|
65
|
+
/** Geometric mean of all 4; primary fitness signal. */
|
|
66
|
+
fitnessScore: number;
|
|
67
|
+
}
|
|
68
|
+
export interface ToolProbeReport {
|
|
69
|
+
v: typeof PROTOCOL_VERSION;
|
|
70
|
+
toolName: string;
|
|
71
|
+
runs: ProbeRun[];
|
|
72
|
+
metrics: ProbeMetrics;
|
|
73
|
+
totalInputs: number;
|
|
74
|
+
syntheticInputs: number;
|
|
75
|
+
realInputs: number;
|
|
76
|
+
probedAt: number;
|
|
77
|
+
sig: string;
|
|
78
|
+
}
|
|
79
|
+
/** Latency score: 1.0 if <= budget; decays toward 0 by exponential half-life. */
|
|
80
|
+
export declare function latencyScore(latencyMs: number, budgetMs?: number, halfLifeMs?: number): number;
|
|
81
|
+
/**
|
|
82
|
+
* Shannon entropy over the SHAPE of a result. We bucket by top-level key
|
|
83
|
+
* names + array-vs-object discrimination. High entropy = rich diverse
|
|
84
|
+
* shape; low entropy = flat repetitive structure (suspect bug or stub).
|
|
85
|
+
*
|
|
86
|
+
* Returns 0..1 normalised (entropy / log2(maxBins=8); clamped).
|
|
87
|
+
*/
|
|
88
|
+
export declare function outputShapeEntropy(results: unknown[]): number;
|
|
89
|
+
/** Error rate: fraction of runs that threw. */
|
|
90
|
+
export declare function errorRate(runs: ProbeRun[]): number;
|
|
91
|
+
/** Utility heuristic: result is non-null + non-undefined + non-empty. */
|
|
92
|
+
export declare function utilityScore(runs: ProbeRun[]): number;
|
|
93
|
+
/** Geometric mean of 4 normalised scores; preserves zero floor for safety. */
|
|
94
|
+
export declare function aggregateFitness(m: Omit<ProbeMetrics, "fitnessScore">): number;
|
|
95
|
+
/**
|
|
96
|
+
* One-shot probe of a single tool against a battery of inputs. Caller
|
|
97
|
+
* supplies the invoke function (so we don't need to know how to call
|
|
98
|
+
* tools cross-vendor). Each input gets one run; latency is measured
|
|
99
|
+
* per run with a wall-clock timer; errors are caught.
|
|
100
|
+
*/
|
|
101
|
+
export declare function runProbeBattery(input: {
|
|
102
|
+
toolName: string;
|
|
103
|
+
inputs: ProbeInput[];
|
|
104
|
+
invoke: (toolName: string, args: Record<string, unknown>) => Promise<unknown>;
|
|
105
|
+
latencyBudgetMs?: number;
|
|
106
|
+
latencyHalfLifeMs?: number;
|
|
107
|
+
probedAt?: number;
|
|
108
|
+
secret?: string;
|
|
109
|
+
}): Promise<ToolProbeReport>;
|
|
110
|
+
/**
|
|
111
|
+
* Aggregate a list of runs into a ToolProbeReport. Pure function so
|
|
112
|
+
* tests can feed deterministic run arrays without needing async invoke.
|
|
113
|
+
*/
|
|
114
|
+
export declare function finaliseProbe(input: {
|
|
115
|
+
toolName: string;
|
|
116
|
+
runs: ProbeRun[];
|
|
117
|
+
latencyBudgetMs?: number;
|
|
118
|
+
latencyHalfLifeMs?: number;
|
|
119
|
+
probedAt?: number;
|
|
120
|
+
secret?: string;
|
|
121
|
+
}): ToolProbeReport;
|
|
122
|
+
export declare function verifyProbeReport(r: ToolProbeReport, secret?: string): boolean;
|
|
123
|
+
export declare function formatProbeLine(r: ToolProbeReport): string;
|
|
124
|
+
export {};
|
|
125
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dreamspace_probe/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.27 — MNEME DREAMSPACE · PROBE (stage 1 of 6)
|
|
3
|
+
*
|
|
4
|
+
* "ทุกคืน 02:00 daemon idle detect (BREATH) → run each MCP tool
|
|
5
|
+
* against 5 synthetic inputs (HIPPOCAMPUS axiom pool) + 3 real
|
|
6
|
+
* recent inputs → measure latency / output_entropy / error_rate /
|
|
7
|
+
* utility_score → store in PROPRIOCEPTION → REFLEX query at
|
|
8
|
+
* predict-next-tool time."
|
|
9
|
+
* — user audit, 2026-05-17
|
|
10
|
+
*
|
|
11
|
+
* Diagnosis: v2.19.22 REFLEX predicts by frequency; v2.19.26
|
|
12
|
+
* DREAMSPACE proposes tools from gaps. Neither MEASURES per-tool
|
|
13
|
+
* capability dimensions. PROBE fills that gap.
|
|
14
|
+
*
|
|
15
|
+
* PROBE runs a caller-supplied tool handler against:
|
|
16
|
+
* - synthetic inputs (caller-provided HIPPOCAMPUS axiom samples)
|
|
17
|
+
* - real recent inputs (caller-provided yesterday's reflex log)
|
|
18
|
+
*
|
|
19
|
+
* For each run, computes 4 normalised metrics:
|
|
20
|
+
* 1. latencyScore — 1.0 if < 100ms; decays exponentially
|
|
21
|
+
* 2. outputEntropy — Shannon entropy of result keys; flag flat outputs
|
|
22
|
+
* 3. errorRate — proportion of runs that threw
|
|
23
|
+
* 4. utilityScore — heuristic: result has shape + non-empty + valid
|
|
24
|
+
*
|
|
25
|
+
* Aggregate fitness = geometric mean of all 4. Used by stage 5
|
|
26
|
+
* (v2.19.26 EVOLUTION) for promote/sunset decisions and by stage 2
|
|
27
|
+
* (CARTOGRAPHER) for capability mapping.
|
|
28
|
+
*
|
|
29
|
+
* Composes onto:
|
|
30
|
+
* - v2.19.23 BREATH (caller triggers cycle on idle)
|
|
31
|
+
* - v2.19.23 THALAMUS (dream tier handles the cycle)
|
|
32
|
+
* - v2.19.23 HIPPOCAMPUS (axiom source for synthetic inputs)
|
|
33
|
+
* - v2.19.25 SLEEP TRAINING (fitness gradient blends with probe)
|
|
34
|
+
* - v2.19.26 EVOLUTION (probe results feed lifecycle decisions)
|
|
35
|
+
*
|
|
36
|
+
* Honest scope:
|
|
37
|
+
* - PURE FUNCTION metric computation. Caller supplies the invoke
|
|
38
|
+
* function + inputs; we measure + aggregate.
|
|
39
|
+
* - Latency budget thresholds, entropy bins are CONFIG.
|
|
40
|
+
* - HMAC-signed ProbeReport so daemon can audit forged probes.
|
|
41
|
+
*/
|
|
42
|
+
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
43
|
+
const PROTOCOL_VERSION = 1;
|
|
44
|
+
const DEFAULT_LATENCY_BUDGET_MS = 100;
|
|
45
|
+
const DEFAULT_LATENCY_HALF_LIFE_MS = 200;
|
|
46
|
+
const FITNESS_MIN = 0.001;
|
|
47
|
+
function canon(v) {
|
|
48
|
+
if (v === null || typeof v !== "object")
|
|
49
|
+
return JSON.stringify(v);
|
|
50
|
+
if (Array.isArray(v))
|
|
51
|
+
return "[" + v.map(canon).join(",") + "]";
|
|
52
|
+
const keys = Object.keys(v).sort();
|
|
53
|
+
return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
|
|
54
|
+
}
|
|
55
|
+
function defaultSecret() {
|
|
56
|
+
return process.env["MNEME_DREAMSPACE_PROBE_SECRET"] || `mneme-dreamspace-probe-v${PROTOCOL_VERSION}`;
|
|
57
|
+
}
|
|
58
|
+
function hmacHex(body, secret) {
|
|
59
|
+
return createHmac("sha256", secret).update(canon(body)).digest("hex");
|
|
60
|
+
}
|
|
61
|
+
function safeEqHex(a, b) {
|
|
62
|
+
try {
|
|
63
|
+
return timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/** Latency score: 1.0 if <= budget; decays toward 0 by exponential half-life. */
|
|
70
|
+
export function latencyScore(latencyMs, budgetMs = DEFAULT_LATENCY_BUDGET_MS, halfLifeMs = DEFAULT_LATENCY_HALF_LIFE_MS) {
|
|
71
|
+
if (latencyMs <= budgetMs)
|
|
72
|
+
return 1.0;
|
|
73
|
+
const over = latencyMs - budgetMs;
|
|
74
|
+
return Math.pow(0.5, over / halfLifeMs);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Shannon entropy over the SHAPE of a result. We bucket by top-level key
|
|
78
|
+
* names + array-vs-object discrimination. High entropy = rich diverse
|
|
79
|
+
* shape; low entropy = flat repetitive structure (suspect bug or stub).
|
|
80
|
+
*
|
|
81
|
+
* Returns 0..1 normalised (entropy / log2(maxBins=8); clamped).
|
|
82
|
+
*/
|
|
83
|
+
export function outputShapeEntropy(results) {
|
|
84
|
+
if (results.length === 0)
|
|
85
|
+
return 0;
|
|
86
|
+
const bucketCounts = new Map();
|
|
87
|
+
for (const r of results) {
|
|
88
|
+
const bucket = shapeBucket(r);
|
|
89
|
+
bucketCounts.set(bucket, (bucketCounts.get(bucket) ?? 0) + 1);
|
|
90
|
+
}
|
|
91
|
+
const total = results.length;
|
|
92
|
+
let entropy = 0;
|
|
93
|
+
for (const count of bucketCounts.values()) {
|
|
94
|
+
const p = count / total;
|
|
95
|
+
if (p > 0)
|
|
96
|
+
entropy -= p * Math.log2(p);
|
|
97
|
+
}
|
|
98
|
+
// Normalise to [0, 1]: log2(8) = 3 as max useful entropy (≥8 distinct shapes).
|
|
99
|
+
return Math.min(1, entropy / 3);
|
|
100
|
+
}
|
|
101
|
+
function shapeBucket(v) {
|
|
102
|
+
if (v === null)
|
|
103
|
+
return "null";
|
|
104
|
+
if (v === undefined)
|
|
105
|
+
return "undefined";
|
|
106
|
+
if (Array.isArray(v))
|
|
107
|
+
return `array_len_${v.length === 0 ? "0" : v.length < 5 ? "small" : v.length < 50 ? "med" : "large"}`;
|
|
108
|
+
if (typeof v === "object") {
|
|
109
|
+
const keys = Object.keys(v).sort().slice(0, 4);
|
|
110
|
+
return `obj_${keys.join(",")}`;
|
|
111
|
+
}
|
|
112
|
+
return typeof v;
|
|
113
|
+
}
|
|
114
|
+
/** Error rate: fraction of runs that threw. */
|
|
115
|
+
export function errorRate(runs) {
|
|
116
|
+
if (runs.length === 0)
|
|
117
|
+
return 0;
|
|
118
|
+
let errors = 0;
|
|
119
|
+
for (const r of runs)
|
|
120
|
+
if (!r.ok)
|
|
121
|
+
errors++;
|
|
122
|
+
return errors / runs.length;
|
|
123
|
+
}
|
|
124
|
+
/** Utility heuristic: result is non-null + non-undefined + non-empty. */
|
|
125
|
+
export function utilityScore(runs) {
|
|
126
|
+
if (runs.length === 0)
|
|
127
|
+
return 0;
|
|
128
|
+
let useful = 0;
|
|
129
|
+
for (const r of runs) {
|
|
130
|
+
if (!r.ok)
|
|
131
|
+
continue;
|
|
132
|
+
if (r.result === null || r.result === undefined)
|
|
133
|
+
continue;
|
|
134
|
+
if (typeof r.result === "string" && r.result.length === 0)
|
|
135
|
+
continue;
|
|
136
|
+
if (Array.isArray(r.result) && r.result.length === 0)
|
|
137
|
+
continue;
|
|
138
|
+
if (typeof r.result === "object" && Object.keys(r.result).length === 0)
|
|
139
|
+
continue;
|
|
140
|
+
useful++;
|
|
141
|
+
}
|
|
142
|
+
return useful / runs.length;
|
|
143
|
+
}
|
|
144
|
+
/** Geometric mean of 4 normalised scores; preserves zero floor for safety. */
|
|
145
|
+
export function aggregateFitness(m) {
|
|
146
|
+
const safe = (x) => Math.max(FITNESS_MIN, Math.min(1, x));
|
|
147
|
+
const product = safe(m.latencyScore) * safe(1 - m.errorRate) * safe(m.utilityScore) * safe(m.outputEntropy);
|
|
148
|
+
return Math.pow(product, 1 / 4);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* One-shot probe of a single tool against a battery of inputs. Caller
|
|
152
|
+
* supplies the invoke function (so we don't need to know how to call
|
|
153
|
+
* tools cross-vendor). Each input gets one run; latency is measured
|
|
154
|
+
* per run with a wall-clock timer; errors are caught.
|
|
155
|
+
*/
|
|
156
|
+
export async function runProbeBattery(input) {
|
|
157
|
+
const runs = [];
|
|
158
|
+
for (const inp of input.inputs) {
|
|
159
|
+
const start = Date.now();
|
|
160
|
+
try {
|
|
161
|
+
const r = await input.invoke(input.toolName, inp.args);
|
|
162
|
+
runs.push({
|
|
163
|
+
inputLabel: inp.label,
|
|
164
|
+
inputSource: inp.source,
|
|
165
|
+
latencyMs: Date.now() - start,
|
|
166
|
+
ok: true,
|
|
167
|
+
result: r,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
catch (e) {
|
|
171
|
+
runs.push({
|
|
172
|
+
inputLabel: inp.label,
|
|
173
|
+
inputSource: inp.source,
|
|
174
|
+
latencyMs: Date.now() - start,
|
|
175
|
+
ok: false,
|
|
176
|
+
result: undefined,
|
|
177
|
+
errorMessage: e.message,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return finaliseProbe({
|
|
182
|
+
toolName: input.toolName,
|
|
183
|
+
runs,
|
|
184
|
+
latencyBudgetMs: input.latencyBudgetMs,
|
|
185
|
+
latencyHalfLifeMs: input.latencyHalfLifeMs,
|
|
186
|
+
probedAt: input.probedAt,
|
|
187
|
+
secret: input.secret,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Aggregate a list of runs into a ToolProbeReport. Pure function so
|
|
192
|
+
* tests can feed deterministic run arrays without needing async invoke.
|
|
193
|
+
*/
|
|
194
|
+
export function finaliseProbe(input) {
|
|
195
|
+
const meanLatency = input.runs.length === 0
|
|
196
|
+
? 0
|
|
197
|
+
: input.runs.reduce((s, r) => s + r.latencyMs, 0) / input.runs.length;
|
|
198
|
+
const lat = latencyScore(meanLatency, input.latencyBudgetMs, input.latencyHalfLifeMs);
|
|
199
|
+
const ent = outputShapeEntropy(input.runs.filter((r) => r.ok).map((r) => r.result));
|
|
200
|
+
const err = errorRate(input.runs);
|
|
201
|
+
const util = utilityScore(input.runs);
|
|
202
|
+
const fit = aggregateFitness({ latencyScore: lat, outputEntropy: ent, errorRate: err, utilityScore: util });
|
|
203
|
+
const synthetic = input.runs.filter((r) => r.inputSource === "synthetic").length;
|
|
204
|
+
const real = input.runs.filter((r) => r.inputSource === "real").length;
|
|
205
|
+
const body = {
|
|
206
|
+
v: PROTOCOL_VERSION,
|
|
207
|
+
toolName: input.toolName,
|
|
208
|
+
runs: input.runs,
|
|
209
|
+
metrics: { latencyScore: lat, outputEntropy: ent, errorRate: err, utilityScore: util, fitnessScore: fit },
|
|
210
|
+
totalInputs: input.runs.length,
|
|
211
|
+
syntheticInputs: synthetic,
|
|
212
|
+
realInputs: real,
|
|
213
|
+
probedAt: input.probedAt ?? Date.now(),
|
|
214
|
+
};
|
|
215
|
+
const sig = hmacHex(body, input.secret ?? defaultSecret());
|
|
216
|
+
return { ...body, sig };
|
|
217
|
+
}
|
|
218
|
+
export function verifyProbeReport(r, secret) {
|
|
219
|
+
const { sig, ...body } = r;
|
|
220
|
+
return safeEqHex(hmacHex(body, secret ?? defaultSecret()), sig);
|
|
221
|
+
}
|
|
222
|
+
export function formatProbeLine(r) {
|
|
223
|
+
const f = (r.metrics.fitnessScore * 100).toFixed(0);
|
|
224
|
+
return `🔬 PROBE ${r.toolName} · fitness=${f}% · lat=${(r.metrics.latencyScore * 100).toFixed(0)}% · ent=${(r.metrics.outputEntropy * 100).toFixed(0)}% · err=${(r.metrics.errorRate * 100).toFixed(0)}% · util=${(r.metrics.utilityScore * 100).toFixed(0)}%`;
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dreamspace_probe/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -261,6 +261,12 @@ export * as toolTier from "./tool_tier/index.js";
|
|
|
261
261
|
export * as eventPatternMatch from "./event_pattern_match/index.js";
|
|
262
262
|
export * as sleepTraining from "./sleep_training/index.js";
|
|
263
263
|
export * as endocrine from "./endocrine/index.js";
|
|
264
|
+
export * as dreamspaceGestation from "./dreamspace_gestation/index.js";
|
|
265
|
+
export * as dreamspaceEvolution from "./dreamspace_evolution/index.js";
|
|
266
|
+
export * as dreamspaceProbe from "./dreamspace_probe/index.js";
|
|
267
|
+
export * as dreamspaceCartographer from "./dreamspace_cartographer/index.js";
|
|
268
|
+
export * as dreamspacePair from "./dreamspace_pair/index.js";
|
|
269
|
+
export * as dreamspaceFederate from "./dreamspace_federate/index.js";
|
|
264
270
|
export * as wrapperGenesplicing from "./wrapper_genesplicing/index.js";
|
|
265
271
|
export * as wrapperGenesis from "./wrapper_genesis/index.js";
|
|
266
272
|
export * as dreamConsolidation from "./dream_consolidation/index.js";
|