@mneme-ai/core 2.19.5 → 2.19.7
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/__v197_extras/v197_extras.test.d.ts +9 -0
- package/dist/__v197_extras/v197_extras.test.d.ts.map +1 -0
- package/dist/__v197_extras/v197_extras.test.js +208 -0
- package/dist/__v197_extras/v197_extras.test.js.map +1 -0
- package/dist/agent_manifest.d.ts +1 -1
- package/dist/agent_manifest.d.ts.map +1 -1
- package/dist/agent_manifest.js +21 -1
- package/dist/agent_manifest.js.map +1 -1
- package/dist/chronostasis/index.d.ts +24 -0
- package/dist/chronostasis/index.d.ts.map +1 -1
- package/dist/chronostasis/index.js +88 -0
- package/dist/chronostasis/index.js.map +1 -1
- package/dist/colony_mind/colony_mind.test.d.ts +2 -0
- package/dist/colony_mind/colony_mind.test.d.ts.map +1 -0
- package/dist/colony_mind/colony_mind.test.js +89 -0
- package/dist/colony_mind/colony_mind.test.js.map +1 -0
- package/dist/colony_mind/index.d.ts +100 -0
- package/dist/colony_mind/index.d.ts.map +1 -0
- package/dist/colony_mind/index.js +141 -0
- package/dist/colony_mind/index.js.map +1 -0
- package/dist/conversation_compiler/conversation_compiler.test.d.ts +2 -0
- package/dist/conversation_compiler/conversation_compiler.test.d.ts.map +1 -0
- package/dist/conversation_compiler/conversation_compiler.test.js +280 -0
- package/dist/conversation_compiler/conversation_compiler.test.js.map +1 -0
- package/dist/conversation_compiler/index.d.ts +157 -0
- package/dist/conversation_compiler/index.d.ts.map +1 -0
- package/dist/conversation_compiler/index.js +457 -0
- package/dist/conversation_compiler/index.js.map +1 -0
- package/dist/cosmic/aurelian_v196.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v196.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v196.test.js +33 -0
- package/dist/cosmic/aurelian_v196.test.js.map +1 -0
- package/dist/cosmic/aurelian_v197.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v197.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v197.test.js +91 -0
- package/dist/cosmic/aurelian_v197.test.js.map +1 -0
- package/dist/dream_consolidation/dream_consolidation.test.d.ts +2 -0
- package/dist/dream_consolidation/dream_consolidation.test.d.ts.map +1 -0
- package/dist/dream_consolidation/dream_consolidation.test.js +122 -0
- package/dist/dream_consolidation/dream_consolidation.test.js.map +1 -0
- package/dist/dream_consolidation/index.d.ts +107 -0
- package/dist/dream_consolidation/index.d.ts.map +1 -0
- package/dist/dream_consolidation/index.js +265 -0
- package/dist/dream_consolidation/index.js.map +1 -0
- package/dist/genetic_patch/genetic_patch.test.d.ts +2 -0
- package/dist/genetic_patch/genetic_patch.test.d.ts.map +1 -0
- package/dist/genetic_patch/genetic_patch.test.js +75 -0
- package/dist/genetic_patch/genetic_patch.test.js.map +1 -0
- package/dist/genetic_patch/index.d.ts +91 -0
- package/dist/genetic_patch/index.d.ts.map +1 -0
- package/dist/genetic_patch/index.js +163 -0
- package/dist/genetic_patch/index.js.map +1 -0
- package/dist/honey_decision/honey_decision.test.d.ts +2 -0
- package/dist/honey_decision/honey_decision.test.d.ts.map +1 -0
- package/dist/honey_decision/honey_decision.test.js +83 -0
- package/dist/honey_decision/honey_decision.test.js.map +1 -0
- package/dist/honey_decision/index.d.ts +96 -0
- package/dist/honey_decision/index.d.ts.map +1 -0
- package/dist/honey_decision/index.js +203 -0
- package/dist/honey_decision/index.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/intent_router/index.d.ts +13 -0
- package/dist/intent_router/index.d.ts.map +1 -1
- package/dist/intent_router/index.js +79 -0
- package/dist/intent_router/index.js.map +1 -1
- package/dist/retroactive_compile/index.d.ts +85 -0
- package/dist/retroactive_compile/index.d.ts.map +1 -0
- package/dist/retroactive_compile/index.js +209 -0
- package/dist/retroactive_compile/index.js.map +1 -0
- package/dist/retroactive_compile/retroactive_compile.test.d.ts +2 -0
- package/dist/retroactive_compile/retroactive_compile.test.d.ts.map +1 -0
- package/dist/retroactive_compile/retroactive_compile.test.js +99 -0
- package/dist/retroactive_compile/retroactive_compile.test.js.map +1 -0
- 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/package.json +1 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.7 — MNEME RETROACTIVE COMPILE (mine git history → backdated agreements + broken-promise map)
|
|
3
|
+
*
|
|
4
|
+
* "Scan every commit message + every persisted AI session transcript
|
|
5
|
+
* in `.mneme/` for agreement-shaped sentences (must / should / never
|
|
6
|
+
* / ห้าม / ต้อง). For each match, run the conversation_compiler
|
|
7
|
+
* pipeline → produce a backdated Agreement tied to the commit SHA.
|
|
8
|
+
* Then check: did SUBSEQUENT commits actually follow that agreement?
|
|
9
|
+
* Output: a map of EVERY broken promise in the repo's history, with
|
|
10
|
+
* commit SHAs + agreement excerpts + violation severity.
|
|
11
|
+
*
|
|
12
|
+
* For the first time, a team can SEE the gap between what they said
|
|
13
|
+
* and what they did — measurable, recomputable, signed."
|
|
14
|
+
*
|
|
15
|
+
* Honest scope:
|
|
16
|
+
* - We don't claim to understand intent; we recognise the SHAPE of
|
|
17
|
+
* agreement-like sentences (the same pattern set conversation_compiler
|
|
18
|
+
* uses). Manual stubs are skipped during enforcement scoring.
|
|
19
|
+
* - Compliance check uses the same native checkers as run-time
|
|
20
|
+
* conversation_compiler, applied retroactively to each commit's diff.
|
|
21
|
+
* The output is a per-commit pass/fail with severity.
|
|
22
|
+
* - This is a READ-ONLY scan; no commits are modified.
|
|
23
|
+
*
|
|
24
|
+
* Composes onto v2.19.6 CONVERSATION COMPILER (reuses extractDecisions
|
|
25
|
+
* + nativeCheck). Pure orchestrator over `git log` output (caller
|
|
26
|
+
* supplies via `gitLog` callback so tests stay hermetic).
|
|
27
|
+
*/
|
|
28
|
+
import { type Decision } from "../conversation_compiler/index.js";
|
|
29
|
+
declare const PROTOCOL_VERSION: 1;
|
|
30
|
+
export interface CommitRecord {
|
|
31
|
+
sha: string;
|
|
32
|
+
authorEmail: string;
|
|
33
|
+
ts: string;
|
|
34
|
+
message: string;
|
|
35
|
+
filesChanged: string[];
|
|
36
|
+
diffText: string;
|
|
37
|
+
branch?: string;
|
|
38
|
+
}
|
|
39
|
+
export interface BackdatedAgreement {
|
|
40
|
+
v: typeof PROTOCOL_VERSION;
|
|
41
|
+
agreementId: string;
|
|
42
|
+
sourceSha: string;
|
|
43
|
+
sourceTs: string;
|
|
44
|
+
decisions: Decision[];
|
|
45
|
+
/** SHA-256 of the message that produced the decisions. */
|
|
46
|
+
sourceSha256: string;
|
|
47
|
+
sig: string;
|
|
48
|
+
}
|
|
49
|
+
export interface ComplianceViolation {
|
|
50
|
+
v: typeof PROTOCOL_VERSION;
|
|
51
|
+
violationId: string;
|
|
52
|
+
agreementId: string;
|
|
53
|
+
violatingCommitSha: string;
|
|
54
|
+
violatingCommitTs: string;
|
|
55
|
+
decisionText: string;
|
|
56
|
+
pattern: string;
|
|
57
|
+
severity: "info" | "warn" | "block";
|
|
58
|
+
reason: string;
|
|
59
|
+
sig: string;
|
|
60
|
+
}
|
|
61
|
+
export interface MineReport {
|
|
62
|
+
v: typeof PROTOCOL_VERSION;
|
|
63
|
+
reportId: string;
|
|
64
|
+
scannedCommits: number;
|
|
65
|
+
agreementsFound: BackdatedAgreement[];
|
|
66
|
+
violations: ComplianceViolation[];
|
|
67
|
+
brokenPromiseCount: number;
|
|
68
|
+
/** Per-decision compliance stats. */
|
|
69
|
+
perDecisionStats: Array<{
|
|
70
|
+
pattern: string;
|
|
71
|
+
total: number;
|
|
72
|
+
violated: number;
|
|
73
|
+
rate: number;
|
|
74
|
+
}>;
|
|
75
|
+
ranAt: string;
|
|
76
|
+
sig: string;
|
|
77
|
+
}
|
|
78
|
+
export declare function mineHistory(input: {
|
|
79
|
+
commits: CommitRecord[];
|
|
80
|
+
secret?: string;
|
|
81
|
+
}): MineReport;
|
|
82
|
+
export declare function verifyReport(r: MineReport, secret?: string): boolean;
|
|
83
|
+
export declare function formatReportLine(r: MineReport): string;
|
|
84
|
+
export {};
|
|
85
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/retroactive_compile/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAAoB,KAAK,QAAQ,EAAsC,MAAM,mCAAmC,CAAC;AAExH,QAAA,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAEpC,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,kBAAkB,EAAE,CAAC;IACtC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qCAAqC;IACrC,gBAAgB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5F,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAmED,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,UAAU,CA8Fb;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAGpE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAEtD"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.7 — MNEME RETROACTIVE COMPILE (mine git history → backdated agreements + broken-promise map)
|
|
3
|
+
*
|
|
4
|
+
* "Scan every commit message + every persisted AI session transcript
|
|
5
|
+
* in `.mneme/` for agreement-shaped sentences (must / should / never
|
|
6
|
+
* / ห้าม / ต้อง). For each match, run the conversation_compiler
|
|
7
|
+
* pipeline → produce a backdated Agreement tied to the commit SHA.
|
|
8
|
+
* Then check: did SUBSEQUENT commits actually follow that agreement?
|
|
9
|
+
* Output: a map of EVERY broken promise in the repo's history, with
|
|
10
|
+
* commit SHAs + agreement excerpts + violation severity.
|
|
11
|
+
*
|
|
12
|
+
* For the first time, a team can SEE the gap between what they said
|
|
13
|
+
* and what they did — measurable, recomputable, signed."
|
|
14
|
+
*
|
|
15
|
+
* Honest scope:
|
|
16
|
+
* - We don't claim to understand intent; we recognise the SHAPE of
|
|
17
|
+
* agreement-like sentences (the same pattern set conversation_compiler
|
|
18
|
+
* uses). Manual stubs are skipped during enforcement scoring.
|
|
19
|
+
* - Compliance check uses the same native checkers as run-time
|
|
20
|
+
* conversation_compiler, applied retroactively to each commit's diff.
|
|
21
|
+
* The output is a per-commit pass/fail with severity.
|
|
22
|
+
* - This is a READ-ONLY scan; no commits are modified.
|
|
23
|
+
*
|
|
24
|
+
* Composes onto v2.19.6 CONVERSATION COMPILER (reuses extractDecisions
|
|
25
|
+
* + nativeCheck). Pure orchestrator over `git log` output (caller
|
|
26
|
+
* supplies via `gitLog` callback so tests stay hermetic).
|
|
27
|
+
*/
|
|
28
|
+
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
29
|
+
import { extractDecisions } from "../conversation_compiler/index.js";
|
|
30
|
+
const PROTOCOL_VERSION = 1;
|
|
31
|
+
function canon(v) {
|
|
32
|
+
if (v === null || typeof v !== "object")
|
|
33
|
+
return JSON.stringify(v);
|
|
34
|
+
if (Array.isArray(v))
|
|
35
|
+
return "[" + v.map(canon).join(",") + "]";
|
|
36
|
+
const keys = Object.keys(v).sort();
|
|
37
|
+
return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
|
|
38
|
+
}
|
|
39
|
+
function defaultSecret() {
|
|
40
|
+
return process.env["MNEME_RETROACTIVE_SECRET"] || `mneme-retroactive-compile-v${PROTOCOL_VERSION}`;
|
|
41
|
+
}
|
|
42
|
+
function hmac(body, secret) {
|
|
43
|
+
return createHmac("sha256", secret).update(canon(body)).digest("hex");
|
|
44
|
+
}
|
|
45
|
+
function sha256(s) {
|
|
46
|
+
return createHmac("sha256", "retroactive-sha").update(s).digest("hex");
|
|
47
|
+
}
|
|
48
|
+
function safeEqHex(a, b) {
|
|
49
|
+
try {
|
|
50
|
+
return timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Local copy of the native checker logic (matches conversation_compiler:nativeCheck)
|
|
57
|
+
function checkAgreementDecision(d, t) {
|
|
58
|
+
switch (d.pattern) {
|
|
59
|
+
case "test_required": {
|
|
60
|
+
const files = t.filesChanged || [];
|
|
61
|
+
const hasTest = files.some((f) => /\.(test|spec)\./i.test(f) || /(^|\/)tests?\//i.test(f));
|
|
62
|
+
return { decisionText: d.text, pattern: d.pattern, ok: hasTest, reason: hasTest ? "test file present" : "no test file in commit", severity: hasTest ? "info" : "block" };
|
|
63
|
+
}
|
|
64
|
+
case "timing_safe_equal_required": {
|
|
65
|
+
const diff = t.diffText || "";
|
|
66
|
+
if (!/hmac|signature/i.test(diff))
|
|
67
|
+
return { decisionText: d.text, pattern: d.pattern, ok: true, reason: "no HMAC compare in diff", severity: "info" };
|
|
68
|
+
const lines = diff.split("\n");
|
|
69
|
+
const offending = lines.find((line) => /===|!==/.test(line) && /hmac|signature|\bsig\b/i.test(line));
|
|
70
|
+
const usesTS = /timingSafeEqual\s*\(/i.test(diff);
|
|
71
|
+
const ok = usesTS || !offending;
|
|
72
|
+
return { decisionText: d.text, pattern: d.pattern, ok, reason: ok ? "OK" : "HMAC compared with === instead of timingSafeEqual", severity: ok ? "info" : "block" };
|
|
73
|
+
}
|
|
74
|
+
case "no_console_log": {
|
|
75
|
+
const has = /\bconsole\.log\s*\(/i.test(t.diffText || "");
|
|
76
|
+
return { decisionText: d.text, pattern: d.pattern, ok: !has, reason: has ? "console.log added" : "no console.log", severity: has ? "warn" : "info" };
|
|
77
|
+
}
|
|
78
|
+
case "no_direct_push_main": {
|
|
79
|
+
const branch = (t.branch || "").toLowerCase();
|
|
80
|
+
const onMain = branch === "main" || branch === "master";
|
|
81
|
+
return { decisionText: d.text, pattern: d.pattern, ok: !onMain, reason: onMain ? "direct commit on " + branch : "branch ok", severity: onMain ? "block" : "info" };
|
|
82
|
+
}
|
|
83
|
+
case "has_hmac": {
|
|
84
|
+
const has = /createHmac\s*\(/i.test(t.diffText || "");
|
|
85
|
+
return { decisionText: d.text, pattern: d.pattern, ok: has, reason: has ? "HMAC primitive present" : "no HMAC", severity: has ? "info" : "warn" };
|
|
86
|
+
}
|
|
87
|
+
case "no_secret_in_code": {
|
|
88
|
+
const diff = t.diffText || "";
|
|
89
|
+
const patterns = [/sk-(?:proj-)?[A-Za-z0-9_-]{16,}/, /-----BEGIN [A-Z ]+PRIVATE KEY-----/, /AKIA[0-9A-Z]{16}/, /\b(?:password|secret|api[_-]?key)\s*[:=]\s*["'][^"'\s]{8,}["']/i];
|
|
90
|
+
for (const p of patterns)
|
|
91
|
+
if (p.test(diff))
|
|
92
|
+
return { decisionText: d.text, pattern: d.pattern, ok: false, reason: "secret-shaped string", severity: "block" };
|
|
93
|
+
return { decisionText: d.text, pattern: d.pattern, ok: true, reason: "ok", severity: "info" };
|
|
94
|
+
}
|
|
95
|
+
case "must_have_changelog": {
|
|
96
|
+
const files = t.filesChanged || [];
|
|
97
|
+
const has = files.some((f) => /CHANGELOG/i.test(f));
|
|
98
|
+
return { decisionText: d.text, pattern: d.pattern, ok: has, reason: has ? "CHANGELOG touched" : "no CHANGELOG entry", severity: has ? "info" : "block" };
|
|
99
|
+
}
|
|
100
|
+
default:
|
|
101
|
+
return { decisionText: d.text, pattern: d.pattern, ok: true, reason: "manual — skipped in retroactive scoring", severity: "info" };
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
export function mineHistory(input) {
|
|
105
|
+
const ranAt = new Date().toISOString();
|
|
106
|
+
const agreementsFound = [];
|
|
107
|
+
const violations = [];
|
|
108
|
+
// Extract decisions per commit message + record as backdated agreement
|
|
109
|
+
for (const c of input.commits) {
|
|
110
|
+
const decs = extractDecisions({ transcript: c.message });
|
|
111
|
+
// Only count NON-manual decisions for enforcement
|
|
112
|
+
const auto = decs.filter((d) => d.pattern !== "manual");
|
|
113
|
+
if (auto.length === 0)
|
|
114
|
+
continue;
|
|
115
|
+
const sourceSha256 = sha256(c.message);
|
|
116
|
+
const agreementId = "rag-" + createHmac("sha256", "mneme-retroactive-id")
|
|
117
|
+
.update(`${c.sha}|${sourceSha256}`)
|
|
118
|
+
.digest("hex").slice(0, 14);
|
|
119
|
+
const aBody = {
|
|
120
|
+
v: PROTOCOL_VERSION,
|
|
121
|
+
agreementId,
|
|
122
|
+
sourceSha: c.sha,
|
|
123
|
+
sourceTs: c.ts,
|
|
124
|
+
decisions: auto,
|
|
125
|
+
sourceSha256,
|
|
126
|
+
};
|
|
127
|
+
const aSig = hmac(aBody, input.secret ?? defaultSecret());
|
|
128
|
+
agreementsFound.push({ ...aBody, sig: aSig });
|
|
129
|
+
}
|
|
130
|
+
// Walk forward: for each commit AFTER an agreement was proposed, check compliance.
|
|
131
|
+
// Sort commits chronologically.
|
|
132
|
+
const sorted = [...input.commits].sort((a, b) => Date.parse(a.ts) - Date.parse(b.ts));
|
|
133
|
+
for (const ag of agreementsFound) {
|
|
134
|
+
const agreementTs = Date.parse(ag.sourceTs);
|
|
135
|
+
for (const c of sorted) {
|
|
136
|
+
// Skip the commit that PRODUCED the agreement — a commit doesn't violate
|
|
137
|
+
// its own birth even if its filesChanged would technically miss the rule.
|
|
138
|
+
if (c.sha === ag.sourceSha)
|
|
139
|
+
continue;
|
|
140
|
+
if (Date.parse(c.ts) <= agreementTs)
|
|
141
|
+
continue; // only commits strictly after the agreement
|
|
142
|
+
const target = { filesChanged: c.filesChanged, diffText: c.diffText, ...(c.branch ? { branch: c.branch } : {}) };
|
|
143
|
+
for (const d of ag.decisions) {
|
|
144
|
+
const r = checkAgreementDecision(d, target);
|
|
145
|
+
if (!r.ok && r.severity !== "info") {
|
|
146
|
+
const violationId = "v-" + createHmac("sha256", "mneme-retroactive-violation-id")
|
|
147
|
+
.update(`${ag.agreementId}|${c.sha}|${d.pattern}`)
|
|
148
|
+
.digest("hex").slice(0, 14);
|
|
149
|
+
const vBody = {
|
|
150
|
+
v: PROTOCOL_VERSION,
|
|
151
|
+
violationId,
|
|
152
|
+
agreementId: ag.agreementId,
|
|
153
|
+
violatingCommitSha: c.sha,
|
|
154
|
+
violatingCommitTs: c.ts,
|
|
155
|
+
decisionText: d.text,
|
|
156
|
+
pattern: d.pattern,
|
|
157
|
+
severity: r.severity ?? "warn",
|
|
158
|
+
reason: r.reason,
|
|
159
|
+
};
|
|
160
|
+
const vSig = hmac(vBody, input.secret ?? defaultSecret());
|
|
161
|
+
violations.push({ ...vBody, sig: vSig });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Per-decision stats
|
|
167
|
+
const perPattern = new Map();
|
|
168
|
+
for (const ag of agreementsFound) {
|
|
169
|
+
for (const d of ag.decisions) {
|
|
170
|
+
const e = perPattern.get(d.pattern) ?? { total: 0, violated: 0 };
|
|
171
|
+
e.total++;
|
|
172
|
+
perPattern.set(d.pattern, e);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
for (const v of violations) {
|
|
176
|
+
const e = perPattern.get(v.pattern);
|
|
177
|
+
if (e)
|
|
178
|
+
e.violated++;
|
|
179
|
+
}
|
|
180
|
+
const perDecisionStats = Array.from(perPattern.entries()).map(([pattern, { total, violated }]) => ({
|
|
181
|
+
pattern,
|
|
182
|
+
total,
|
|
183
|
+
violated,
|
|
184
|
+
rate: total === 0 ? 0 : Math.round((violated / total) * 1000) / 1000,
|
|
185
|
+
}));
|
|
186
|
+
const reportId = "rmine-" + createHmac("sha256", "mneme-retroactive-report-id")
|
|
187
|
+
.update(`${ranAt}|${input.commits.length}|${agreementsFound.length}|${violations.length}`)
|
|
188
|
+
.digest("hex").slice(0, 14);
|
|
189
|
+
const rBody = {
|
|
190
|
+
v: PROTOCOL_VERSION,
|
|
191
|
+
reportId,
|
|
192
|
+
scannedCommits: input.commits.length,
|
|
193
|
+
agreementsFound,
|
|
194
|
+
violations,
|
|
195
|
+
brokenPromiseCount: violations.filter((v) => v.severity === "block").length,
|
|
196
|
+
perDecisionStats,
|
|
197
|
+
ranAt,
|
|
198
|
+
};
|
|
199
|
+
const rSig = hmac(rBody, input.secret ?? defaultSecret());
|
|
200
|
+
return { ...rBody, sig: rSig };
|
|
201
|
+
}
|
|
202
|
+
export function verifyReport(r, secret) {
|
|
203
|
+
const { sig, ...body } = r;
|
|
204
|
+
return safeEqHex(hmac(body, secret ?? defaultSecret()), sig);
|
|
205
|
+
}
|
|
206
|
+
export function formatReportLine(r) {
|
|
207
|
+
return `📜 RETROACTIVE · scanned ${r.scannedCommits} commits · found ${r.agreementsFound.length} agreements · ${r.brokenPromiseCount} broken promises`;
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/retroactive_compile/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retroactive_compile.test.d.ts","sourceRoot":"","sources":["../../src/retroactive_compile/retroactive_compile.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { mineHistory, verifyReport, formatReportLine } from "./index.js";
|
|
3
|
+
function commit(over) {
|
|
4
|
+
return {
|
|
5
|
+
sha: "abc",
|
|
6
|
+
authorEmail: "shin@example.com",
|
|
7
|
+
ts: "2026-05-01T00:00:00Z",
|
|
8
|
+
message: "feat: a thing",
|
|
9
|
+
filesChanged: [],
|
|
10
|
+
diffText: "",
|
|
11
|
+
branch: "feature",
|
|
12
|
+
...over,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
describe("v2.19.7 · RETROACTIVE COMPILE — mine git history", () => {
|
|
16
|
+
it("emits zero agreements when no commit message matches a pattern", () => {
|
|
17
|
+
const r = mineHistory({
|
|
18
|
+
commits: [
|
|
19
|
+
commit({ sha: "c1", message: "feat: random feature" }),
|
|
20
|
+
commit({ sha: "c2", message: "fix: another thing" }),
|
|
21
|
+
],
|
|
22
|
+
});
|
|
23
|
+
expect(r.agreementsFound.length).toBe(0);
|
|
24
|
+
expect(r.violations.length).toBe(0);
|
|
25
|
+
});
|
|
26
|
+
it("extracts a backdated agreement when commit message contains 'every commit must have a test'", () => {
|
|
27
|
+
const r = mineHistory({
|
|
28
|
+
commits: [
|
|
29
|
+
commit({ sha: "c1", ts: "2026-05-01T00:00:00Z", message: "policy: every commit must have a test going forward" }),
|
|
30
|
+
commit({ sha: "c2", ts: "2026-05-02T00:00:00Z", message: "feat: add helper", filesChanged: ["src/foo.ts"] }),
|
|
31
|
+
],
|
|
32
|
+
});
|
|
33
|
+
expect(r.agreementsFound.length).toBe(1);
|
|
34
|
+
expect(r.agreementsFound[0].sourceSha).toBe("c1");
|
|
35
|
+
expect(r.agreementsFound[0].decisions.some((d) => d.pattern === "test_required")).toBe(true);
|
|
36
|
+
});
|
|
37
|
+
it("flags a SUBSEQUENT commit that violates the backdated agreement (test_required)", () => {
|
|
38
|
+
const r = mineHistory({
|
|
39
|
+
commits: [
|
|
40
|
+
commit({ sha: "c1", ts: "2026-05-01T00:00:00Z", message: "policy: every commit must have a test going forward" }),
|
|
41
|
+
commit({ sha: "c2", ts: "2026-05-02T00:00:00Z", message: "feat: add helper", filesChanged: ["src/foo.ts"] }), // NO test → block
|
|
42
|
+
commit({ sha: "c3", ts: "2026-05-03T00:00:00Z", message: "feat: another", filesChanged: ["src/bar.ts", "src/bar.test.ts"] }), // WITH test → ok
|
|
43
|
+
],
|
|
44
|
+
});
|
|
45
|
+
expect(r.violations.length).toBe(1);
|
|
46
|
+
expect(r.violations[0].violatingCommitSha).toBe("c2");
|
|
47
|
+
expect(r.violations[0].severity).toBe("block");
|
|
48
|
+
expect(r.brokenPromiseCount).toBe(1);
|
|
49
|
+
});
|
|
50
|
+
it("does NOT flag commits PRIOR to the agreement", () => {
|
|
51
|
+
const r = mineHistory({
|
|
52
|
+
commits: [
|
|
53
|
+
commit({ sha: "c0", ts: "2026-04-30T00:00:00Z", message: "feat: legacy", filesChanged: ["src/old.ts"] }), // before agreement
|
|
54
|
+
commit({ sha: "c1", ts: "2026-05-01T00:00:00Z", message: "policy: every commit must have a test going forward" }),
|
|
55
|
+
],
|
|
56
|
+
});
|
|
57
|
+
expect(r.violations.length).toBe(0); // c0 predates the agreement
|
|
58
|
+
});
|
|
59
|
+
it("perDecisionStats aggregates violations per pattern", () => {
|
|
60
|
+
const r = mineHistory({
|
|
61
|
+
commits: [
|
|
62
|
+
commit({ sha: "c1", ts: "2026-05-01T00:00:00Z", message: "policy: every commit must have a test" }),
|
|
63
|
+
commit({ sha: "c2", ts: "2026-05-02T00:00:00Z", message: "f1", filesChanged: ["src/a.ts"] }),
|
|
64
|
+
commit({ sha: "c3", ts: "2026-05-03T00:00:00Z", message: "f2", filesChanged: ["src/b.ts"] }),
|
|
65
|
+
commit({ sha: "c4", ts: "2026-05-04T00:00:00Z", message: "f3", filesChanged: ["src/c.ts", "src/c.test.ts"] }),
|
|
66
|
+
],
|
|
67
|
+
});
|
|
68
|
+
const stats = r.perDecisionStats.find((s) => s.pattern === "test_required");
|
|
69
|
+
expect(stats).toBeDefined();
|
|
70
|
+
expect(stats.violated).toBe(2); // c2 + c3 both violated
|
|
71
|
+
});
|
|
72
|
+
it("verifyReport detects tampering", () => {
|
|
73
|
+
const r = mineHistory({
|
|
74
|
+
commits: [
|
|
75
|
+
commit({ sha: "c1", ts: "2026-05-01T00:00:00Z", message: "policy: every commit must have a test" }),
|
|
76
|
+
commit({ sha: "c2", ts: "2026-05-02T00:00:00Z", message: "feat", filesChanged: ["src/foo.ts"] }),
|
|
77
|
+
],
|
|
78
|
+
});
|
|
79
|
+
expect(verifyReport(r)).toBe(true);
|
|
80
|
+
const tampered = { ...r, brokenPromiseCount: 999 };
|
|
81
|
+
expect(verifyReport(tampered)).toBe(false);
|
|
82
|
+
});
|
|
83
|
+
it("scans many commits without slowdown (sanity)", () => {
|
|
84
|
+
const commits = [
|
|
85
|
+
commit({ sha: "c0", ts: "2026-05-01T00:00:00Z", message: "policy: every commit must have a test" }),
|
|
86
|
+
];
|
|
87
|
+
for (let i = 1; i <= 50; i++) {
|
|
88
|
+
commits.push(commit({ sha: `c${i}`, ts: `2026-05-${String(i + 1).padStart(2, "0")}T00:00:00Z`, message: `feat ${i}`, filesChanged: [`src/${i}.ts`] }));
|
|
89
|
+
}
|
|
90
|
+
const r = mineHistory({ commits });
|
|
91
|
+
expect(r.scannedCommits).toBe(51);
|
|
92
|
+
expect(r.violations.length).toBe(50);
|
|
93
|
+
});
|
|
94
|
+
it("formatReportLine summarises", () => {
|
|
95
|
+
const r = mineHistory({ commits: [] });
|
|
96
|
+
expect(formatReportLine(r)).toContain("RETROACTIVE");
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=retroactive_compile.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retroactive_compile.test.js","sourceRoot":"","sources":["../../src/retroactive_compile/retroactive_compile.test.ts"],"names":[],"mappings":"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"}
|
package/dist/whats_new.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whats_new.d.ts","sourceRoot":"","sources":["../src/whats_new.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;oCAEoC;AACpC,eAAO,MAAM,UAAU,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"whats_new.d.ts","sourceRoot":"","sources":["../src/whats_new.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;oCAEoC;AACpC,eAAO,MAAM,UAAU,EAAE,iBAAiB,EAsMzC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB;kCAC8B;IAC9B,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAoBD;sEACsE;AACtE,wBAAgB,WAAW,CAAC,IAAI,GAAE;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAA2B,GAAG,cAAc,CAkB5I;AAED;yEACyE;AACzE,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAwB3E"}
|
package/dist/whats_new.js
CHANGED
|
@@ -20,6 +20,22 @@ import { fileURLToPath } from "node:url";
|
|
|
20
20
|
* user-visible behavior. Keep `body` plain English so the AI can quote
|
|
21
21
|
* it verbatim to non-engineers. */
|
|
22
22
|
export const HIGHLIGHTS = [
|
|
23
|
+
{
|
|
24
|
+
version: "2.19.7",
|
|
25
|
+
date: "2026-05-16",
|
|
26
|
+
headline: "MEGAPACK -- 6 wild mutations (RETROCAUSAL, DREAM, COLONY, HONEY, RETROACTIVE, GENETIC) + 4 tech-debt repairs (intent persist, agreement uninstall, embedded gravity, WASM selfTest)",
|
|
27
|
+
body: "🔭 RETROCAUSAL -- axiomLineage walks dep graph back + signed proof tree (depth-of-inference). 💤 DREAM CONSOLIDATION -- REM-sleep speculative axiom generator from idle daemon; parent confirms/refutes. 🐝 COLONY MIND -- federated NEXUS broadcast across Mneme instances; collective immune system. 🍯 HONEY DECISION -- vendor honesty calibration via 5 baited agreement kinds + Wilson-LB rank. 📜 RETROACTIVE COMPILE -- mine git history for broken promises (commits that violated past agreement-shaped sentences). 🧬 GENETIC PATCH -- self-modifying child proposals gated by AURELIAN. Plus: intent phrases persist to disk; agreement uninstall (safety-checked hook removal); embedded truth gravity for Chronostasis; WASM embedder selfTest with rich diagnostics; deploy-cron.sh for DO production; witness-loop.mjs end-to-end daemon helper. 75 new tests + AURELIAN SHIP. 13 new MCP tools. 62/62 claim-manifest by exact name.",
|
|
28
|
+
suggestedAction: "Tell the AI: 'is this verified' / 'time-test this' / 'rewind chronostasis' / 'compile this agreement' to use; or 'mine my git history' to see broken promises.",
|
|
29
|
+
tags: ["megapack", "retrocausal", "dream", "colony", "honey", "retroactive", "genetic", "tech-debt"],
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
version: "2.19.6",
|
|
33
|
+
date: "2026-05-16",
|
|
34
|
+
headline: "CONVERSATION COMPILER -- chat becomes deterministic signed callable code (drift becomes impossible)",
|
|
35
|
+
body: "📜 Every conversation can be compiled to an Agreement: decisions auto-extracted (EN+TH, 7 pattern classes + manual stub), generated ES module source, HMAC pair-locks transcript + code. Pre-commit hook generator produces a runnable script that loads the agreement and refuses commits violating any decision. 36 deep tests including end-to-end killer demo (user says 'every commit must have test' -> compile -> naked commit BLOCKED, test commit passes). 5 new MCP tools (mneme.agreement.compile / run / verify_pair / list / pre_commit_hook). AURELIAN SHIP. New intent phrases: 'compile this agreement' / 'what did we agree on'. Composes onto v2.19.5 CHRONOSTASIS (agreements can become axioms).",
|
|
36
|
+
suggestedAction: "Tell the AI: 'compile this agreement' at the end of a decision-making chat. The AI runs the full flow + installs a pre-commit hook so future commits respect the agreement.",
|
|
37
|
+
tags: ["conversation-compiler", "agreement", "pair-lock", "pre-commit-hook", "drift-killer"],
|
|
38
|
+
},
|
|
23
39
|
{
|
|
24
40
|
version: "2.19.5",
|
|
25
41
|
date: "2026-05-16",
|
package/dist/whats_new.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whats_new.js","sourceRoot":"","sources":["../src/whats_new.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"whats_new.js","sourceRoot":"","sources":["../src/whats_new.ts"],"names":[],"mappings":"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"}
|