@mneme-ai/core 1.65.0 → 1.66.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/ai_compliance.d.ts +16 -0
- package/dist/ai_compliance.d.ts.map +1 -1
- package/dist/ai_compliance.js +33 -1
- package/dist/ai_compliance.js.map +1 -1
- package/dist/ai_compliance_windowed.test.d.ts +5 -0
- package/dist/ai_compliance_windowed.test.d.ts.map +1 -0
- package/dist/ai_compliance_windowed.test.js +70 -0
- package/dist/ai_compliance_windowed.test.js.map +1 -0
- package/dist/autarchy/autarchy.test.d.ts +5 -0
- package/dist/autarchy/autarchy.test.d.ts.map +1 -0
- package/dist/autarchy/autarchy.test.js +219 -0
- package/dist/autarchy/autarchy.test.js.map +1 -0
- package/dist/autarchy/baked_pharmacopoeia.d.ts +57 -0
- package/dist/autarchy/baked_pharmacopoeia.d.ts.map +1 -0
- package/dist/autarchy/baked_pharmacopoeia.js +139 -0
- package/dist/autarchy/baked_pharmacopoeia.js.map +1 -0
- package/dist/autarchy/eager_pin.d.ts +48 -0
- package/dist/autarchy/eager_pin.d.ts.map +1 -0
- package/dist/autarchy/eager_pin.js +140 -0
- package/dist/autarchy/eager_pin.js.map +1 -0
- package/dist/autarchy/index.d.ts +56 -0
- package/dist/autarchy/index.d.ts.map +1 -0
- package/dist/autarchy/index.js +104 -0
- package/dist/autarchy/index.js.map +1 -0
- package/dist/autarchy/mesh_as_cloud.d.ts +40 -0
- package/dist/autarchy/mesh_as_cloud.d.ts.map +1 -0
- package/dist/autarchy/mesh_as_cloud.js +115 -0
- package/dist/autarchy/mesh_as_cloud.js.map +1 -0
- package/dist/autarchy/schroedinger_embedder.d.ts +54 -0
- package/dist/autarchy/schroedinger_embedder.d.ts.map +1 -0
- package/dist/autarchy/schroedinger_embedder.js +122 -0
- package/dist/autarchy/schroedinger_embedder.js.map +1 -0
- package/dist/embedder_autodiagnose.d.ts +64 -0
- package/dist/embedder_autodiagnose.d.ts.map +1 -0
- package/dist/embedder_autodiagnose.js +153 -0
- package/dist/embedder_autodiagnose.js.map +1 -0
- package/dist/embedder_autodiagnose.test.d.ts +5 -0
- package/dist/embedder_autodiagnose.test.d.ts.map +1 -0
- package/dist/embedder_autodiagnose.test.js +101 -0
- package/dist/embedder_autodiagnose.test.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/ai_compliance.d.ts
CHANGED
|
@@ -59,6 +59,22 @@ export interface ComplianceStats {
|
|
|
59
59
|
inlineComplianceRate: number;
|
|
60
60
|
}
|
|
61
61
|
export declare function computeComplianceStats(entries: ComplianceEntry[]): ComplianceStats;
|
|
62
|
+
/** v1.65.1 -- WINDOWED compliance stats. Pre-filters entries to those
|
|
63
|
+
* within the last `windowDays` (default 30) before computing the rate.
|
|
64
|
+
* Fixes the legacy-failure-tail problem: historical Windows-lock
|
|
65
|
+
* schtasks failures from v1.56 stay in the file forever and drag the
|
|
66
|
+
* lifetime rate down even after the root cause is fixed. The 30-day
|
|
67
|
+
* window gives an honest "what's happening NOW" rate while the full
|
|
68
|
+
* lifetime stat remains available via computeComplianceStats(). */
|
|
69
|
+
export interface WindowedComplianceStats extends ComplianceStats {
|
|
70
|
+
/** Window in days used to filter entries (e.g. 30). */
|
|
71
|
+
windowDays: number;
|
|
72
|
+
/** Entries OLDER than the window. Reported but not counted in rate. */
|
|
73
|
+
excludedOlderCount: number;
|
|
74
|
+
/** Boundary timestamp (entries at or after this date are counted). */
|
|
75
|
+
windowStartTs: string;
|
|
76
|
+
}
|
|
77
|
+
export declare function computeWindowedComplianceStats(entries: ComplianceEntry[], windowDays?: number): WindowedComplianceStats;
|
|
62
78
|
export interface PreExecutionResult {
|
|
63
79
|
tool: string;
|
|
64
80
|
outcome: "executed" | "queued" | "skipped" | "failed";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai_compliance.d.ts","sourceRoot":"","sources":["../src/ai_compliance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA2B9C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,oBAAoB,GAAG,cAAc,GAAG,UAAU,CAAC;IAC7D,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"ai_compliance.d.ts","sourceRoot":"","sources":["../src/ai_compliance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA2B9C,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,oBAAoB,GAAG,cAAc,GAAG,UAAU,CAAC;IAC7D,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,eAAe,EAAE,CA+BlF;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,0EAA0E;IAC1E,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,eAAe,CAmBlF;AAED;;;;;;oEAMoE;AACpE,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sEAAsE;IACtE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,eAAe,EAAE,EAC1B,UAAU,GAAE,MAAW,GACtB,uBAAuB,CAYzB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAOD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAO5E;AAqBD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAIpG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtH;AA0BD;;qEAEqE;AACrE,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,WAAW,EAAE,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAoC/B;AAED;4EAC4E;AAC5E,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,WAAW,EAAE,EACtB,OAAO,EAAE,kBAAkB,EAAE,GAC5B,IAAI,CAmBN"}
|
package/dist/ai_compliance.js
CHANGED
|
@@ -63,7 +63,24 @@ export function readComplianceLog(repoRoot, limit = 200) {
|
|
|
63
63
|
const lines = readFileSync(p, "utf8").split("\n").filter((l) => l.trim().length > 0);
|
|
64
64
|
const entries = lines.map((l) => {
|
|
65
65
|
try {
|
|
66
|
-
|
|
66
|
+
const raw = JSON.parse(l);
|
|
67
|
+
// v1.65.1 -- normalize the v1.41-era schema (`at` + `mandateId`)
|
|
68
|
+
// into the canonical (`ts` + `mandate`) shape so downstream
|
|
69
|
+
// stats see one homogeneous stream. Old entries are otherwise
|
|
70
|
+
// dropped by the windowed filter (no `ts` -> invalid date).
|
|
71
|
+
if (typeof raw["ts"] !== "string" && typeof raw["at"] === "string") {
|
|
72
|
+
raw["ts"] = raw["at"];
|
|
73
|
+
}
|
|
74
|
+
if (typeof raw["mandate"] !== "string" && typeof raw["mandateId"] === "string") {
|
|
75
|
+
raw["mandate"] = raw["mandateId"];
|
|
76
|
+
}
|
|
77
|
+
if (typeof raw["executor"] !== "string") {
|
|
78
|
+
raw["executor"] = "ai-agent";
|
|
79
|
+
}
|
|
80
|
+
if (typeof raw["args"] !== "object" || raw["args"] === null) {
|
|
81
|
+
raw["args"] = {};
|
|
82
|
+
}
|
|
83
|
+
return raw;
|
|
67
84
|
}
|
|
68
85
|
catch {
|
|
69
86
|
return null;
|
|
@@ -96,6 +113,21 @@ export function computeComplianceStats(entries) {
|
|
|
96
113
|
stats.inlineComplianceRate = inline === 0 ? 1 : (stats.byOutcome["executed"] ?? 0) / inline;
|
|
97
114
|
return stats;
|
|
98
115
|
}
|
|
116
|
+
export function computeWindowedComplianceStats(entries, windowDays = 30) {
|
|
117
|
+
const boundaryMs = Date.now() - windowDays * 86400 * 1000;
|
|
118
|
+
const windowStartTs = new Date(boundaryMs).toISOString();
|
|
119
|
+
const inWindow = [];
|
|
120
|
+
let excluded = 0;
|
|
121
|
+
for (const e of entries) {
|
|
122
|
+
const t = Date.parse(e.ts);
|
|
123
|
+
if (Number.isFinite(t) && t >= boundaryMs)
|
|
124
|
+
inWindow.push(e);
|
|
125
|
+
else
|
|
126
|
+
excluded += 1;
|
|
127
|
+
}
|
|
128
|
+
const base = computeComplianceStats(inWindow);
|
|
129
|
+
return { ...base, windowDays, excludedOlderCount: excluded, windowStartTs };
|
|
130
|
+
}
|
|
99
131
|
function ensureMnemeDir(repoRoot) {
|
|
100
132
|
const dir = join(repoRoot, ".mneme");
|
|
101
133
|
if (!existsSync(dir))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai_compliance.js","sourceRoot":"","sources":["../src/ai_compliance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,cAAc,GAAG,4BAA4B,CAAC;AACpD,MAAM,aAAa,GAAG,0BAA0B,CAAC;AACjD,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,YAAY,GAAG,EAAE,CAAC,CAAO,uDAAuD;AAEtF;;iDAEiD;AACjD,MAAM,oBAAoB,GAA6B;IACrD,gCAAgC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;IAC5D,qBAAqB,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC;IAC3C,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;IACvC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;IACvC,mBAAmB,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;IACvC,oBAAoB,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF;;0CAE0C;AAC1C,MAAM,eAAe,GAAgB,IAAI,GAAG,CAAC;IAC3C,sBAAsB;CACvB,CAAC,CAAC;AAgBH,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,KAAK,GAAG,GAAG;IAC7D,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACzC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ai_compliance.js","sourceRoot":"","sources":["../src/ai_compliance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai_compliance_windowed.test.d.ts","sourceRoot":"","sources":["../src/ai_compliance_windowed.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1.65.1 -- Windowed compliance stats tests.
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect } from "vitest";
|
|
5
|
+
import { computeComplianceStats, computeWindowedComplianceStats } from "./ai_compliance.js";
|
|
6
|
+
function entry(tsDaysAgo, outcome, mandate = "mneme.system.upgrade") {
|
|
7
|
+
return {
|
|
8
|
+
ts: new Date(Date.now() - tsDaysAgo * 86400 * 1000).toISOString(),
|
|
9
|
+
mandate,
|
|
10
|
+
args: {},
|
|
11
|
+
executor: "pulse-pre-executor",
|
|
12
|
+
outcome,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
describe("v1.65.1 WindowedComplianceStats", () => {
|
|
16
|
+
it("30-day window excludes legacy failures from rate", () => {
|
|
17
|
+
const entries = [
|
|
18
|
+
// 5 failures 60 days ago (the legacy Windows-lock incident)
|
|
19
|
+
entry(60, "failed"), entry(60, "failed"), entry(60, "failed"), entry(60, "failed"), entry(60, "failed"),
|
|
20
|
+
// 5 successes in the last 7 days
|
|
21
|
+
entry(7, "executed"), entry(6, "executed"), entry(5, "executed"), entry(4, "executed"), entry(3, "executed"),
|
|
22
|
+
];
|
|
23
|
+
const lifetime = computeComplianceStats(entries);
|
|
24
|
+
const windowed = computeWindowedComplianceStats(entries, 30);
|
|
25
|
+
expect(lifetime.inlineComplianceRate).toBeCloseTo(5 / 10, 2);
|
|
26
|
+
expect(windowed.inlineComplianceRate).toBeCloseTo(1.0, 2);
|
|
27
|
+
expect(windowed.excludedOlderCount).toBe(5);
|
|
28
|
+
expect(windowed.windowDays).toBe(30);
|
|
29
|
+
});
|
|
30
|
+
it("includes ts boundary entries (>=)", () => {
|
|
31
|
+
// Make sure an entry exactly at the boundary survives the cutoff.
|
|
32
|
+
const exactly30 = entry(30, "executed");
|
|
33
|
+
const stats = computeWindowedComplianceStats([exactly30], 30);
|
|
34
|
+
expect(stats.total).toBe(1);
|
|
35
|
+
expect(stats.excludedOlderCount).toBe(0);
|
|
36
|
+
});
|
|
37
|
+
it("empty input gives 100% rate and zero entries", () => {
|
|
38
|
+
const s = computeWindowedComplianceStats([], 30);
|
|
39
|
+
expect(s.total).toBe(0);
|
|
40
|
+
expect(s.inlineComplianceRate).toBe(1);
|
|
41
|
+
expect(s.excludedOlderCount).toBe(0);
|
|
42
|
+
});
|
|
43
|
+
it("invalid ts entries are excluded", () => {
|
|
44
|
+
const bad = { ts: "not-a-date", mandate: "x", args: {}, executor: "pulse-pre-executor", outcome: "failed" };
|
|
45
|
+
const s = computeWindowedComplianceStats([bad, entry(1, "executed")], 30);
|
|
46
|
+
expect(s.total).toBe(1);
|
|
47
|
+
expect(s.excludedOlderCount).toBe(1);
|
|
48
|
+
});
|
|
49
|
+
it("windowDays parameter is honored", () => {
|
|
50
|
+
const entries = [
|
|
51
|
+
entry(45, "failed"), // outside 30-day, inside 60-day
|
|
52
|
+
entry(15, "executed"),
|
|
53
|
+
];
|
|
54
|
+
const w30 = computeWindowedComplianceStats(entries, 30);
|
|
55
|
+
const w60 = computeWindowedComplianceStats(entries, 60);
|
|
56
|
+
expect(w30.total).toBe(1);
|
|
57
|
+
expect(w60.total).toBe(2);
|
|
58
|
+
});
|
|
59
|
+
it("preserves byMandate breakdown inside window", () => {
|
|
60
|
+
const entries = [
|
|
61
|
+
entry(60, "failed", "old-mandate"),
|
|
62
|
+
entry(10, "executed", "new-mandate"),
|
|
63
|
+
entry(5, "executed", "new-mandate"),
|
|
64
|
+
];
|
|
65
|
+
const s = computeWindowedComplianceStats(entries, 30);
|
|
66
|
+
expect(s.byMandate["new-mandate"]?.executed).toBe(2);
|
|
67
|
+
expect(s.byMandate["old-mandate"]).toBeUndefined();
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=ai_compliance_windowed.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai_compliance_windowed.test.js","sourceRoot":"","sources":["../src/ai_compliance_windowed.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autarchy.test.d.ts","sourceRoot":"","sources":["../../src/autarchy/autarchy.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1.66.0 -- AUTARCHY PROTOCOL test suite.
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
5
|
+
import { mkdtempSync, mkdirSync, rmSync, writeFileSync, readFileSync, existsSync } from "node:fs";
|
|
6
|
+
import { tmpdir } from "node:os";
|
|
7
|
+
import { join } from "node:path";
|
|
8
|
+
import { meshCloudReport } from "./mesh_as_cloud.js";
|
|
9
|
+
import { observeEmbedders, readEmbedderStatus } from "./schroedinger_embedder.js";
|
|
10
|
+
import { installBakedBundle, pharmacopoeiaStatus, ensurePharmacopoeia, getBakedBundle, BAKED_BUNDLE_VERSION } from "./baked_pharmacopoeia.js";
|
|
11
|
+
import { pinIfUnpinned, reverifyAgainstPin } from "./eager_pin.js";
|
|
12
|
+
import { autarchy } from "./index.js";
|
|
13
|
+
function setup() { return mkdtempSync(join(tmpdir(), "mneme-autarchy-")); }
|
|
14
|
+
function cleanup(r) { try {
|
|
15
|
+
rmSync(r, { recursive: true, force: true });
|
|
16
|
+
}
|
|
17
|
+
catch { /* */ } }
|
|
18
|
+
// ─── A1 MESH-AS-CLOUD ───────────────────────────────────────────────
|
|
19
|
+
describe("v1.66 Autarchy A1 · Mesh-as-Cloud", () => {
|
|
20
|
+
let r;
|
|
21
|
+
beforeEach(() => { r = setup(); });
|
|
22
|
+
afterEach(() => cleanup(r));
|
|
23
|
+
it("isolated when no mesh artifacts", () => {
|
|
24
|
+
const r1 = meshCloudReport(r);
|
|
25
|
+
expect(r1.state).toBe("isolated");
|
|
26
|
+
expect(r1.uniquePeers).toBe(0);
|
|
27
|
+
});
|
|
28
|
+
it("mesh-only when mesh-seen has recent peers", () => {
|
|
29
|
+
mkdirSync(join(r, ".mneme"), { recursive: true });
|
|
30
|
+
writeFileSync(join(r, ".mneme/mesh-seen.jsonl"), JSON.stringify({ peer: "peer-a", ts: new Date().toISOString() }) + "\n" +
|
|
31
|
+
JSON.stringify({ peer: "peer-b", ts: new Date().toISOString() }) + "\n", "utf8");
|
|
32
|
+
const r1 = meshCloudReport(r);
|
|
33
|
+
expect(r1.state).toBe("mesh-only");
|
|
34
|
+
expect(r1.uniquePeers).toBe(2);
|
|
35
|
+
expect(r1.sources.meshGossip).toBe(2);
|
|
36
|
+
});
|
|
37
|
+
it("excludes peers outside the lookback window", () => {
|
|
38
|
+
mkdirSync(join(r, ".mneme"), { recursive: true });
|
|
39
|
+
const old = new Date(Date.now() - 48 * 3600 * 1000).toISOString(); // 48h ago
|
|
40
|
+
writeFileSync(join(r, ".mneme/mesh-seen.jsonl"), JSON.stringify({ peer: "peer-old", ts: old }) + "\n", "utf8");
|
|
41
|
+
const r1 = meshCloudReport(r, { lookbackHours: 24 });
|
|
42
|
+
expect(r1.state).toBe("isolated");
|
|
43
|
+
});
|
|
44
|
+
it("reports central-online when flagged", () => {
|
|
45
|
+
const r1 = meshCloudReport(r, { centralOnline: true });
|
|
46
|
+
expect(r1.state).toBe("central-online");
|
|
47
|
+
});
|
|
48
|
+
it("dedups peers across sources", () => {
|
|
49
|
+
mkdirSync(join(r, ".mneme"), { recursive: true });
|
|
50
|
+
writeFileSync(join(r, ".mneme/mesh-seen.jsonl"), JSON.stringify({ peer: "peer-x", ts: new Date().toISOString() }) + "\n", "utf8");
|
|
51
|
+
writeFileSync(join(r, ".mneme/wisdom-inheritance.jsonl"), JSON.stringify({ from: "peer-x", ts: new Date().toISOString() }) + "\n", "utf8");
|
|
52
|
+
const r1 = meshCloudReport(r);
|
|
53
|
+
expect(r1.uniquePeers).toBe(1);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
// ─── A2 SCHROEDINGER EMBEDDER ──────────────────────────────────────
|
|
57
|
+
describe("v1.66 Autarchy A2 · Schroedinger Embedder", () => {
|
|
58
|
+
let r;
|
|
59
|
+
beforeEach(() => { r = setup(); });
|
|
60
|
+
afterEach(() => cleanup(r));
|
|
61
|
+
it("races probes + writes authoritative status file", async () => {
|
|
62
|
+
const status = await observeEmbedders(r, { skipOllama: true, skipBundled: true });
|
|
63
|
+
expect(status.allTiers.length).toBeGreaterThanOrEqual(2);
|
|
64
|
+
expect(status.winner).toBeDefined();
|
|
65
|
+
expect(existsSync(join(r, ".mneme/embedder-status.json"))).toBe(true);
|
|
66
|
+
});
|
|
67
|
+
it("respects cooldown -- reuses cached status when fresh", async () => {
|
|
68
|
+
await observeEmbedders(r, { skipOllama: true, skipBundled: true, cooldownMs: 60_000 });
|
|
69
|
+
const first = JSON.parse(readFileSync(join(r, ".mneme/embedder-status.json"), "utf8"));
|
|
70
|
+
await new Promise((res) => setTimeout(res, 50));
|
|
71
|
+
await observeEmbedders(r, { skipOllama: true, skipBundled: true, cooldownMs: 60_000 });
|
|
72
|
+
const second = JSON.parse(readFileSync(join(r, ".mneme/embedder-status.json"), "utf8"));
|
|
73
|
+
expect(second.ts).toBe(first.ts); // not reprobed
|
|
74
|
+
});
|
|
75
|
+
it("force=true reprobes even within cooldown", async () => {
|
|
76
|
+
await observeEmbedders(r, { skipOllama: true, skipBundled: true, cooldownMs: 60_000 });
|
|
77
|
+
const first = JSON.parse(readFileSync(join(r, ".mneme/embedder-status.json"), "utf8"));
|
|
78
|
+
await new Promise((res) => setTimeout(res, 30));
|
|
79
|
+
await observeEmbedders(r, { skipOllama: true, skipBundled: true, cooldownMs: 60_000, force: true });
|
|
80
|
+
const second = JSON.parse(readFileSync(join(r, ".mneme/embedder-status.json"), "utf8"));
|
|
81
|
+
expect(second.ts).not.toBe(first.ts);
|
|
82
|
+
});
|
|
83
|
+
it("readEmbedderStatus returns null when not probed", () => {
|
|
84
|
+
expect(readEmbedderStatus(r)).toBeNull();
|
|
85
|
+
});
|
|
86
|
+
it("winnerChangedAt tracks transition", async () => {
|
|
87
|
+
// First probe -- winner is hash (everything skipped)
|
|
88
|
+
await observeEmbedders(r, { skipOllama: true, skipBundled: true });
|
|
89
|
+
const first = readEmbedderStatus(r);
|
|
90
|
+
expect(first.winnerChangedAt).toBeNull(); // first probe ever
|
|
91
|
+
// Second probe immediately -- same winner -> stableSince unchanged
|
|
92
|
+
await observeEmbedders(r, { skipOllama: true, skipBundled: true, force: true });
|
|
93
|
+
const second = readEmbedderStatus(r);
|
|
94
|
+
expect(second.stableSince).toBe(first.stableSince);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
// ─── A3 TIMECRYSTAL PHARMACOPOEIA ──────────────────────────────────
|
|
98
|
+
describe("v1.66 Autarchy A3 · Timecrystal Pharmacopoeia", () => {
|
|
99
|
+
let r;
|
|
100
|
+
beforeEach(() => { r = setup(); });
|
|
101
|
+
afterEach(() => cleanup(r));
|
|
102
|
+
it("baked bundle has stable version + non-empty entries", () => {
|
|
103
|
+
expect(BAKED_BUNDLE_VERSION).toMatch(/^v1\.66/);
|
|
104
|
+
expect(getBakedBundle().length).toBeGreaterThanOrEqual(5);
|
|
105
|
+
});
|
|
106
|
+
it("status reports zero installed on cold repo", () => {
|
|
107
|
+
const s = pharmacopoeiaStatus(r);
|
|
108
|
+
expect(s.localCount).toBe(0);
|
|
109
|
+
expect(s.bakedAlreadyInstalled).toBe(false);
|
|
110
|
+
});
|
|
111
|
+
it("installBakedBundle is idempotent", () => {
|
|
112
|
+
const a = installBakedBundle(r);
|
|
113
|
+
expect(a).toBeGreaterThan(0);
|
|
114
|
+
const b = installBakedBundle(r);
|
|
115
|
+
expect(b).toBe(0); // already installed
|
|
116
|
+
const s = pharmacopoeiaStatus(r);
|
|
117
|
+
expect(s.bakedAlreadyInstalled).toBe(true);
|
|
118
|
+
});
|
|
119
|
+
it("ensurePharmacopoeia auto-installs on cold repo", () => {
|
|
120
|
+
const { installed, status } = ensurePharmacopoeia(r);
|
|
121
|
+
expect(installed).toBeGreaterThan(0);
|
|
122
|
+
expect(status.bakedAlreadyInstalled).toBe(true);
|
|
123
|
+
});
|
|
124
|
+
it("ensurePharmacopoeia skips when CDN override set", () => {
|
|
125
|
+
const prev = process.env["MNEME_PHARMACOPOEIA_CDN"];
|
|
126
|
+
process.env["MNEME_PHARMACOPOEIA_CDN"] = "https://example.com/cdn";
|
|
127
|
+
try {
|
|
128
|
+
const { installed } = ensurePharmacopoeia(r);
|
|
129
|
+
expect(installed).toBe(0);
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
if (prev === undefined)
|
|
133
|
+
delete process.env["MNEME_PHARMACOPOEIA_CDN"];
|
|
134
|
+
else
|
|
135
|
+
process.env["MNEME_PHARMACOPOEIA_CDN"] = prev;
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
it("does not duplicate vaccines already in bank", () => {
|
|
139
|
+
installBakedBundle(r);
|
|
140
|
+
const before = readFileSync(join(r, ".mneme/squadron/lie-vaccines.jsonl"), "utf8").split("\n").filter(Boolean).length;
|
|
141
|
+
installBakedBundle(r);
|
|
142
|
+
const after = readFileSync(join(r, ".mneme/squadron/lie-vaccines.jsonl"), "utf8").split("\n").filter(Boolean).length;
|
|
143
|
+
expect(after).toBe(before);
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
// ─── A4 QUANTUM CHECKSUM ──────────────────────────────────────────
|
|
147
|
+
describe("v1.66 Autarchy A4 · Quantum Checksum (triple-witness pin)", () => {
|
|
148
|
+
let r;
|
|
149
|
+
let cacheDir;
|
|
150
|
+
beforeEach(() => {
|
|
151
|
+
r = setup();
|
|
152
|
+
cacheDir = join(r, "model-cache");
|
|
153
|
+
mkdirSync(cacheDir, { recursive: true });
|
|
154
|
+
});
|
|
155
|
+
afterEach(() => cleanup(r));
|
|
156
|
+
it("no pin when cache empty", () => {
|
|
157
|
+
const out = pinIfUnpinned(r, cacheDir);
|
|
158
|
+
expect(out.pinned).toBe(false);
|
|
159
|
+
expect(out.pin).toBeNull();
|
|
160
|
+
});
|
|
161
|
+
it("pins on first call with non-empty cache", () => {
|
|
162
|
+
writeFileSync(join(cacheDir, "model.onnx"), "FAKE-MODEL-BINARY-DATA", "utf8");
|
|
163
|
+
writeFileSync(join(cacheDir, "config.json"), '{"x":1}', "utf8");
|
|
164
|
+
const out = pinIfUnpinned(r, cacheDir);
|
|
165
|
+
expect(out.pinned).toBe(true);
|
|
166
|
+
expect(out.pin?.fileHashes["model.onnx"]).toBeDefined();
|
|
167
|
+
expect(out.pin?.bundleHash).toMatch(/^[a-f0-9]{64}$/);
|
|
168
|
+
});
|
|
169
|
+
it("pinIfUnpinned is idempotent", () => {
|
|
170
|
+
writeFileSync(join(cacheDir, "model.onnx"), "DATA", "utf8");
|
|
171
|
+
const a = pinIfUnpinned(r, cacheDir);
|
|
172
|
+
expect(a.pinned).toBe(true);
|
|
173
|
+
const b = pinIfUnpinned(r, cacheDir);
|
|
174
|
+
expect(b.pinned).toBe(false);
|
|
175
|
+
expect(b.pin?.pinnedAt).toBe(a.pin?.pinnedAt);
|
|
176
|
+
});
|
|
177
|
+
it("reverify detects drift", () => {
|
|
178
|
+
writeFileSync(join(cacheDir, "model.onnx"), "ORIGINAL", "utf8");
|
|
179
|
+
pinIfUnpinned(r, cacheDir);
|
|
180
|
+
writeFileSync(join(cacheDir, "model.onnx"), "TAMPERED", "utf8");
|
|
181
|
+
const rv = reverifyAgainstPin(r, cacheDir);
|
|
182
|
+
expect(rv.status).toBe("drift");
|
|
183
|
+
expect(rv.driftedFiles.length).toBeGreaterThan(0);
|
|
184
|
+
});
|
|
185
|
+
it("reverify matches when unchanged", () => {
|
|
186
|
+
writeFileSync(join(cacheDir, "model.onnx"), "DATA", "utf8");
|
|
187
|
+
pinIfUnpinned(r, cacheDir);
|
|
188
|
+
const rv = reverifyAgainstPin(r, cacheDir);
|
|
189
|
+
expect(rv.status).toBe("match");
|
|
190
|
+
});
|
|
191
|
+
it("reverify returns no-pin when none recorded", () => {
|
|
192
|
+
const rv = reverifyAgainstPin(r, cacheDir);
|
|
193
|
+
expect(rv.status).toBe("no-pin");
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
// ─── Aggregate ─────────────────────────────────────────────────────
|
|
197
|
+
describe("v1.66 Autarchy · aggregate score", () => {
|
|
198
|
+
let r;
|
|
199
|
+
beforeEach(() => { r = setup(); });
|
|
200
|
+
afterEach(() => cleanup(r));
|
|
201
|
+
it("cold repo scores low + recommends actions", async () => {
|
|
202
|
+
const rep = await autarchy(r, { skipOllama: true, skipBundled: true });
|
|
203
|
+
expect(rep.score).toBeGreaterThanOrEqual(0);
|
|
204
|
+
expect(rep.score).toBeLessThan(60);
|
|
205
|
+
expect(rep.recommendations.length).toBeGreaterThan(0);
|
|
206
|
+
expect(rep.headline).toContain("Autarchy score");
|
|
207
|
+
});
|
|
208
|
+
it("install=true installs baked bundle + probes embedder", async () => {
|
|
209
|
+
const rep = await autarchy(r, { install: true, skipOllama: true, skipBundled: true });
|
|
210
|
+
expect(rep.axes.A3_pharmacopoeia.bakedAlreadyInstalled).toBe(true);
|
|
211
|
+
expect(rep.axes.A2_embedder).not.toBeNull();
|
|
212
|
+
});
|
|
213
|
+
it("score increases after install", async () => {
|
|
214
|
+
const before = await autarchy(r, { skipOllama: true, skipBundled: true });
|
|
215
|
+
const after = await autarchy(r, { install: true, skipOllama: true, skipBundled: true });
|
|
216
|
+
expect(after.score).toBeGreaterThanOrEqual(before.score);
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
//# sourceMappingURL=autarchy.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autarchy.test.js","sourceRoot":"","sources":["../../src/autarchy/autarchy.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1.66.0 -- AUTARCHY A3: TIMECRYSTAL PHARMACOPOEIA.
|
|
3
|
+
*
|
|
4
|
+
* Wild idea: vaccines replicate across TIME (every git commit) AND
|
|
5
|
+
* SPACE (every npm install). A baked vaccine bundle ships INSIDE the
|
|
6
|
+
* @mneme-ai/core package. First call auto-installs the baked bundle
|
|
7
|
+
* if no local vaccines exist + no CDN env var is set. No setup, no
|
|
8
|
+
* env var, no manual download.
|
|
9
|
+
*
|
|
10
|
+
* The CDN env var (MNEME_PHARMACOPOEIA_CDN) remains the override
|
|
11
|
+
* path for orgs that pin a custom bundle. Free-first by default.
|
|
12
|
+
*
|
|
13
|
+
* Pure read on init; only writes when explicitly installed.
|
|
14
|
+
*/
|
|
15
|
+
/** Baked vaccine bundle shipped with the npm package. Conservative seed
|
|
16
|
+
* set: 5 classic hallucination patterns that ALWAYS apply to any code
|
|
17
|
+
* repo. The bundle grows over time via apoptosis auto-mints + mesh
|
|
18
|
+
* imports. */
|
|
19
|
+
declare const BAKED_BUNDLE_V1: Array<{
|
|
20
|
+
id: string;
|
|
21
|
+
simhash: string;
|
|
22
|
+
signature: string;
|
|
23
|
+
refuteCount: number;
|
|
24
|
+
sample: string;
|
|
25
|
+
}>;
|
|
26
|
+
export declare const BAKED_BUNDLE_VERSION = "v1.66.0-seed1";
|
|
27
|
+
export interface PharmacopoeiaStatus {
|
|
28
|
+
/** Number of vaccines currently in the local bank. */
|
|
29
|
+
localCount: number;
|
|
30
|
+
/** Bundle version baked into this npm install. */
|
|
31
|
+
bakedVersion: string;
|
|
32
|
+
/** Number of vaccines in the baked bundle. */
|
|
33
|
+
bakedCount: number;
|
|
34
|
+
/** Whether the env CDN override is set. */
|
|
35
|
+
cdnOverrideSet: boolean;
|
|
36
|
+
/** Whether the local bank has already absorbed the baked bundle. */
|
|
37
|
+
bakedAlreadyInstalled: boolean;
|
|
38
|
+
/** Plain-English headline. */
|
|
39
|
+
headline: string;
|
|
40
|
+
}
|
|
41
|
+
/** Install the baked bundle into the local vaccine bank, idempotently.
|
|
42
|
+
* Returns the number of vaccines newly added. */
|
|
43
|
+
export declare function installBakedBundle(repoRoot: string): number;
|
|
44
|
+
/** Read pharmacopoeia status: what's local, what's baked, has the
|
|
45
|
+
* baked bundle been absorbed already? */
|
|
46
|
+
export declare function pharmacopoeiaStatus(repoRoot: string): PharmacopoeiaStatus;
|
|
47
|
+
/** Auto-install baked bundle on first read if local bank is empty AND
|
|
48
|
+
* no CDN override is configured. The "free-first" path: users get a
|
|
49
|
+
* working vaccine bank from npm install, not from manual setup. */
|
|
50
|
+
export declare function ensurePharmacopoeia(repoRoot: string): {
|
|
51
|
+
installed: number;
|
|
52
|
+
status: PharmacopoeiaStatus;
|
|
53
|
+
};
|
|
54
|
+
/** Expose the baked bundle for inspection (e.g. by tests). */
|
|
55
|
+
export declare function getBakedBundle(): typeof BAKED_BUNDLE_V1;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=baked_pharmacopoeia.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baked_pharmacopoeia.d.ts","sourceRoot":"","sources":["../../src/autarchy/baked_pharmacopoeia.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH;;;eAGe;AACf,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAoCA,CAAC;AAEF,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AAEpD,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,cAAc,EAAE,OAAO,CAAC;IACxB,oEAAoE;IACpE,qBAAqB,EAAE,OAAO,CAAC;IAC/B,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAsBD;kDACkD;AAClD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAa3D;AAED;0CAC0C;AAC1C,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAkBzE;AAED;;oEAEoE;AACpE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAMxG;AAED,8DAA8D;AAC9D,wBAAgB,cAAc,IAAI,OAAO,eAAe,CAEvD"}
|