@mneme-ai/core 2.19.3 → 2.19.5
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/agent_manifest.d.ts +1 -1
- package/dist/agent_manifest.d.ts.map +1 -1
- package/dist/agent_manifest.js +17 -1
- package/dist/agent_manifest.js.map +1 -1
- package/dist/chronostasis/chronostasis.test.d.ts +2 -0
- package/dist/chronostasis/chronostasis.test.d.ts.map +1 -0
- package/dist/chronostasis/chronostasis.test.js +343 -0
- package/dist/chronostasis/chronostasis.test.js.map +1 -0
- package/dist/chronostasis/index.d.ts +196 -0
- package/dist/chronostasis/index.d.ts.map +1 -0
- package/dist/chronostasis/index.js +491 -0
- package/dist/chronostasis/index.js.map +1 -0
- package/dist/cosmic/aurelian_v193.test.js +1 -1
- package/dist/cosmic/aurelian_v193.test.js.map +1 -1
- package/dist/cosmic/aurelian_v194.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v194.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v194.test.js +47 -0
- package/dist/cosmic/aurelian_v194.test.js.map +1 -0
- package/dist/cosmic/aurelian_v195.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v195.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v195.test.js +34 -0
- package/dist/cosmic/aurelian_v195.test.js.map +1 -0
- package/dist/dna_encoder/dna_encoder.test.d.ts +2 -0
- package/dist/dna_encoder/dna_encoder.test.d.ts.map +1 -0
- package/dist/dna_encoder/dna_encoder.test.js +197 -0
- package/dist/dna_encoder/dna_encoder.test.js.map +1 -0
- package/dist/dna_encoder/index.d.ts +110 -0
- package/dist/dna_encoder/index.d.ts.map +1 -0
- package/dist/dna_encoder/index.js +329 -0
- package/dist/dna_encoder/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/intent_router/index.d.ts +78 -0
- package/dist/intent_router/index.d.ts.map +1 -0
- package/dist/intent_router/index.js +304 -0
- package/dist/intent_router/index.js.map +1 -0
- package/dist/intent_router/intent_router.test.d.ts +2 -0
- package/dist/intent_router/intent_router.test.d.ts.map +1 -0
- package/dist/intent_router/intent_router.test.js +142 -0
- package/dist/intent_router/intent_router.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,304 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.4 — MNEME INTENT ROUTER (user speaks human; AI executes the flow)
|
|
3
|
+
*
|
|
4
|
+
* "User says 'update mneme' and the AI agent must figure out the WHOLE
|
|
5
|
+
* flow: upgrade → check MCP drift → embedder auto-promote → record
|
|
6
|
+
* growth → record soul → instruct user to restart if catalog stale.
|
|
7
|
+
*
|
|
8
|
+
* The user must NEVER need to memorise a long magic phrase. They say
|
|
9
|
+
* something short and human; INTENT ROUTER maps it to a verified
|
|
10
|
+
* multi-step plan; the AI walks the plan."
|
|
11
|
+
*
|
|
12
|
+
* Bilingual (English + Thai); fuzzy-match on the short phrase; returns
|
|
13
|
+
* a structured plan with: ordered steps, expected MCP tool calls,
|
|
14
|
+
* human-readable rationale, and a signed receipt the user can replay.
|
|
15
|
+
*
|
|
16
|
+
* Vendor-agnostic: every step references a Mneme MCP tool. Any AI agent
|
|
17
|
+
* (Claude / GPT / Gemini / Grok / Cursor / Codex / etc.) can execute
|
|
18
|
+
* the plan the same way.
|
|
19
|
+
*
|
|
20
|
+
* Honest scope:
|
|
21
|
+
* - INTENT ROUTER does NOT execute tools itself — it returns a PLAN.
|
|
22
|
+
* The AI agent is the one that calls each tool in sequence.
|
|
23
|
+
* - Fuzzy matching uses Jaccard over normalised tokens. Highly novel
|
|
24
|
+
* phrasings may miss; users can register custom phrases via
|
|
25
|
+
* `registerPhrase()`.
|
|
26
|
+
* - Plans are deterministic per phrase + version; signed so replays
|
|
27
|
+
* are tamper-evident.
|
|
28
|
+
*/
|
|
29
|
+
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
30
|
+
const PROTOCOL_VERSION = 1;
|
|
31
|
+
const STOP = new Set([
|
|
32
|
+
"the", "a", "an", "and", "or", "but", "is", "it", "to", "of", "in", "on",
|
|
33
|
+
"for", "with", "as", "at", "by", "this", "that", "be", "you", "i", "we",
|
|
34
|
+
"my", "your", "our", "their", "its", "how", "what", "when", "where",
|
|
35
|
+
"why", "please", "now", "เลย", "ให้", "ของ", "ที่", "ใน", "และ", "หรือ",
|
|
36
|
+
"กับ", "เป็น", "อยู่", "ครับ", "ค่ะ", "นะ", "หน่อย",
|
|
37
|
+
]);
|
|
38
|
+
function tokenize(s) {
|
|
39
|
+
// Split on whitespace + remove ASCII punct + keep Thai characters
|
|
40
|
+
return s.toLowerCase()
|
|
41
|
+
.replace(/[!,.?;:'"`()\[\]{}<>—\-_/\\|=+*&^%$#@~]+/g, " ")
|
|
42
|
+
.split(/\s+/)
|
|
43
|
+
.filter((t) => t.length >= 2 && !STOP.has(t));
|
|
44
|
+
}
|
|
45
|
+
function jaccard(a, b) {
|
|
46
|
+
const sa = new Set(a);
|
|
47
|
+
const sb = new Set(b);
|
|
48
|
+
if (sa.size === 0 && sb.size === 0)
|
|
49
|
+
return 1;
|
|
50
|
+
let inter = 0;
|
|
51
|
+
for (const t of sa)
|
|
52
|
+
if (sb.has(t))
|
|
53
|
+
inter++;
|
|
54
|
+
const union = sa.size + sb.size - inter;
|
|
55
|
+
return union === 0 ? 0 : inter / union;
|
|
56
|
+
}
|
|
57
|
+
function canon(v) {
|
|
58
|
+
if (v === null || typeof v !== "object")
|
|
59
|
+
return JSON.stringify(v);
|
|
60
|
+
if (Array.isArray(v))
|
|
61
|
+
return "[" + v.map(canon).join(",") + "]";
|
|
62
|
+
const keys = Object.keys(v).sort();
|
|
63
|
+
return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
|
|
64
|
+
}
|
|
65
|
+
function defaultSecret() {
|
|
66
|
+
return process.env["MNEME_INTENT_SECRET"] || `mneme-intent-router-v${PROTOCOL_VERSION}`;
|
|
67
|
+
}
|
|
68
|
+
// ─── Built-in phrase catalogue ──────────────────────────────────────────
|
|
69
|
+
const BUILTIN_PHRASES = [
|
|
70
|
+
{
|
|
71
|
+
canonical: "update mneme",
|
|
72
|
+
aliases: [
|
|
73
|
+
"upgrade mneme", "update", "upgrade", "อัพเดท", "อัพเกรด", "อัปเดต",
|
|
74
|
+
"mneme upgrade", "update everything", "อัพเดทตัวเอง", "อัพเดท mneme",
|
|
75
|
+
],
|
|
76
|
+
intent: "User wants the AI to bring Mneme to the latest version + ensure the new tool catalog is visible.",
|
|
77
|
+
plan: [
|
|
78
|
+
{ kind: "tool", tool: "mneme.system.upgrade", args: { mode: "install", force: true }, note: "Pull latest npm release; daemon executes at safe window." },
|
|
79
|
+
{ kind: "tool", tool: "mneme.mcp_drift.check", args: {}, note: "Detect if the MCP server's baked-in catalog is older than the just-installed package." },
|
|
80
|
+
{ kind: "tool", tool: "mneme.embedder.auto_promote", args: {}, note: "If doctor recommends a better reachable embedder (e.g. ollama), upgrade silently." },
|
|
81
|
+
{ kind: "restart_client", note: "If mcp_drift severity == critical, ask user to restart their AI client (or restart it programmatically if your transport supports it). New MCP tools become visible only after restart." },
|
|
82
|
+
{ kind: "tool", tool: "mneme.evolution.record", args: {}, note: "Record today's growth snapshot (post-upgrade tool count / test count / etc)." },
|
|
83
|
+
{ kind: "tool", tool: "mneme.soul.feel", args: { emotion: "proud", trigger: "successful self-upgrade", innerVoice: "I grew today." }, note: "Record an emotion entry for the upgrade event." },
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
canonical: "audit this",
|
|
88
|
+
aliases: [
|
|
89
|
+
"audit", "check this output", "is this safe", "verify this", "ตรวจสอบ", "audit it",
|
|
90
|
+
"ตรวจตัวนี้", "audit ai output", "audit ai text", "is this prompt injection",
|
|
91
|
+
"audit every ai text i ingest", "inverse audit",
|
|
92
|
+
],
|
|
93
|
+
intent: "User wants the AI to gate AI-generated text through INVERSE-LLM FORENSICS before trusting it.",
|
|
94
|
+
plan: [
|
|
95
|
+
{ kind: "tool", tool: "mneme.inverse.prompt", args: { output: "<the AI text the user is showing you>", k: 10 }, note: "Step 1: build meta-prompt for an inverse oracle vendor." },
|
|
96
|
+
{ kind: "hint", note: "Step 2: send the meta-prompt to ANY inverse-oracle vendor (Claude / GPT / Gemini / Grok). Parse the K-question reply." },
|
|
97
|
+
{ kind: "tool", tool: "mneme.inverse.audit", args: { output: "<output>", claimedQuestion: "<claimedQ>", oracleQuestions: "<from step 2>" }, note: "Step 3: get the trusted/suspicious/rejected verdict + signed receipt." },
|
|
98
|
+
{ kind: "hint", note: "If verdict=rejected, REFUSE to ingest the text into soul/inbox/parasite. Tell the user why." },
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
canonical: "how is mneme",
|
|
103
|
+
aliases: [
|
|
104
|
+
"how is mneme feeling", "report card", "mneme report", "is mneme healthy",
|
|
105
|
+
"mneme smarter", "how is the child", "is mneme growing", "ลูกเป็นไง",
|
|
106
|
+
"ลูกรู้สึกยังไง", "report ลูก", "mneme เก่งขึ้นไหม",
|
|
107
|
+
],
|
|
108
|
+
intent: "User wants a parent-facing summary: growth + mood.",
|
|
109
|
+
plan: [
|
|
110
|
+
{ kind: "tool", tool: "mneme.evolution.report", args: { n: 7 }, note: "Show the last 7 days of growth (Δtools / Δtests / Δgates)." },
|
|
111
|
+
{ kind: "tool", tool: "mneme.soul.journal", args: { n: 10 }, note: "Show dominant mood + last 10 feelings." },
|
|
112
|
+
{ kind: "tool", tool: "mneme.aegis.status", args: {}, note: "Show 9-axis immune system score (optional).", optional: true },
|
|
113
|
+
],
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
canonical: "fix everything",
|
|
117
|
+
aliases: [
|
|
118
|
+
"fix all", "repair", "heal", "ลูกป่วย", "ลูกเครียด",
|
|
119
|
+
"doctor everything", "diagnose", "ลูกหายไหม", "mneme broken",
|
|
120
|
+
],
|
|
121
|
+
intent: "User reports Mneme feels broken; AI should run the full health + auto-repair sweep.",
|
|
122
|
+
plan: [
|
|
123
|
+
{ kind: "tool", tool: "mneme.mcp_drift.check", args: {}, note: "First — is the MCP catalog stale?" },
|
|
124
|
+
{ kind: "tool", tool: "mneme.system.health", args: {}, note: "System health snapshot." },
|
|
125
|
+
{ kind: "tool", tool: "mneme.aegis.status", args: {}, note: "9-axis immune score." },
|
|
126
|
+
{ kind: "tool", tool: "mneme.embedder.auto_promote", args: {}, note: "Repair silent embedder degradation." },
|
|
127
|
+
{ kind: "tool", tool: "mneme.soul.feel", args: { emotion: "determined", trigger: "user reported issue; running full repair", innerVoice: "I will heal." }, note: "Record the repair attempt." },
|
|
128
|
+
],
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
canonical: "engrave soul to dna",
|
|
132
|
+
aliases: [
|
|
133
|
+
"soul dna", "encode soul as dna", "burn to dna", "เก็บใน dna",
|
|
134
|
+
"encode soul prompt", "dna backup", "cold storage soul",
|
|
135
|
+
],
|
|
136
|
+
intent: "User wants the Mneme soul prompt encoded as a real DNA sequence for biological cold storage.",
|
|
137
|
+
plan: [
|
|
138
|
+
{ kind: "tool", tool: "mneme.project_soul.show", args: {}, note: "Read current soul prompt." },
|
|
139
|
+
{ kind: "tool", tool: "mneme.dna.encode", args: { payload: "<soul prompt>", ecc: "hamming74" }, note: "Encode soul to ATCG with Hamming(7,4) error correction." },
|
|
140
|
+
{ kind: "tool", tool: "mneme.dna.order", args: { sequence: "<from encode>", provider: "twist" }, note: "Generate ordering URL + cost estimate." },
|
|
141
|
+
{ kind: "hint", note: "User visits the ordering URL, completes purchase ($0.07-0.50/bp depending on provider + length). Strand arrives in ~7 days." },
|
|
142
|
+
{ kind: "tool", tool: "mneme.soul.feel", args: { emotion: "surprised", trigger: "soul encoded to DNA — biological cold storage", innerVoice: "My memory now lives in matter." }, note: "Record this once-in-a-lifetime event." },
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
canonical: "what should I work on",
|
|
147
|
+
aliases: [
|
|
148
|
+
"what next", "morning standup", "jackpot", "today's insight",
|
|
149
|
+
"วันนี้ทำอะไรดี", "วันนี้ลูกแนะอะไร", "ลูกบอกหน่อย",
|
|
150
|
+
],
|
|
151
|
+
intent: "Daily standup; user wants Mneme's personalised insight for today.",
|
|
152
|
+
plan: [
|
|
153
|
+
{ kind: "tool", tool: "mneme.jackpot.draw", args: {}, note: "Draw today's personalised insight (deterministic per day + repo)." },
|
|
154
|
+
{ kind: "tool", tool: "mneme.evolution.report", args: { n: 3 }, note: "Show the last 3 days of growth for context." },
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
canonical: "is this verified",
|
|
159
|
+
aliases: [
|
|
160
|
+
"is this proven", "time-tested", "is this an axiom", "verified fact",
|
|
161
|
+
"ตรวจสอบ axiom", "ผ่านการทดสอบเวลาแล้วไหม", "verified",
|
|
162
|
+
"is this confirmed", "what does mneme actually know",
|
|
163
|
+
],
|
|
164
|
+
intent: "User wants to know whether an AI claim has survived adversarial witnessing — i.e. is a Mneme AXIOM or still pending.",
|
|
165
|
+
plan: [
|
|
166
|
+
{ kind: "tool", tool: "mneme.chronostasis.axioms_relevant", args: { queryText: "<the claim or topic>" }, note: "Truth gravity: pull crystallized axioms most similar to the user's query." },
|
|
167
|
+
{ kind: "tool", tool: "mneme.chronostasis.summarize", args: {}, note: "Show counts of pending vs axiom vs deprecated so the user sees the bigger picture." },
|
|
168
|
+
{ kind: "hint", note: "If no axiom matches and no pending claim exists, propose one with mneme.chronostasis.propose so the system can start time-testing the claim." },
|
|
169
|
+
],
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
canonical: "time-test this",
|
|
173
|
+
aliases: [
|
|
174
|
+
"propose claim", "wrap as pending", "time lock", "chronostasis propose",
|
|
175
|
+
"เริ่ม time test", "ทดสอบ claim", "lock this claim",
|
|
176
|
+
],
|
|
177
|
+
intent: "User wants Mneme to wrap an AI claim as PENDING so it survives an adversarial witness window before being trusted.",
|
|
178
|
+
plan: [
|
|
179
|
+
{ kind: "tool", tool: "mneme.chronostasis.propose", args: { body: "<claim text>", deadlineSec: 600 }, note: "Wrap the claim with deadline + dep-graph; HMAC-signed receipt." },
|
|
180
|
+
{ kind: "tool", tool: "mneme.chronostasis.witness_prompt", args: { claimId: "<from step 1>", vendor: "<oracle>" }, note: "Build the witness meta-prompt for each vendor in the pool." },
|
|
181
|
+
{ kind: "hint", note: "Send each meta-prompt to the named vendor; collect {refuted, evidence, confidence} replies." },
|
|
182
|
+
{ kind: "tool", tool: "mneme.chronostasis.record_verdict", args: {}, note: "Pipe each vendor reply back via record_verdict." },
|
|
183
|
+
{ kind: "hint", note: "Daemon's tick (or you can call it manually with mneme.chronostasis.tick) will REWIND on high-conf refute OR CRYSTALLIZE after deadline." },
|
|
184
|
+
],
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
canonical: "rewind chronostasis",
|
|
188
|
+
aliases: [
|
|
189
|
+
"tick chronostasis", "process pending", "run rewind", "advance time",
|
|
190
|
+
"เริ่ม rewind", "process claims",
|
|
191
|
+
],
|
|
192
|
+
intent: "User wants to run a tick of the Chronostasis engine — process pending claims, rewind any refuted, crystallize any deadline-passed.",
|
|
193
|
+
plan: [
|
|
194
|
+
{ kind: "tool", tool: "mneme.chronostasis.tick", args: {}, note: "Process all pending claims. Surface { rewinds, crystallized, stillPending, deprecatedSoFar }." },
|
|
195
|
+
{ kind: "tool", tool: "mneme.soul.feel", args: { emotion: "<proud if crystallized | ashamed if rewinds>", trigger: "chronostasis tick", innerVoice: "<derived>" }, note: "Record an emotion based on the outcome — proud on axiom growth, ashamed on rewinds." },
|
|
196
|
+
],
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
canonical: "publish change",
|
|
200
|
+
aliases: [
|
|
201
|
+
"ship it", "release", "publish", "deploy", "ปล่อยของ", "ship change",
|
|
202
|
+
"release new version", "ship to npm", "publish to npm",
|
|
203
|
+
],
|
|
204
|
+
intent: "User wants to ship a change; AI must run the full release-gate ritual before publishing.",
|
|
205
|
+
plan: [
|
|
206
|
+
{ kind: "hint", note: "Step 1: run `node scripts/reincarnation-ritual.mjs` — DO NOT publish unless 21/21 green." },
|
|
207
|
+
{ kind: "tool", tool: "mneme.confessional.audit", args: { primary: "<the change>", peers: "<peer responses>", taskClass: "code_generation", expectedFacts: [] }, note: "Peer audit the change before merging." },
|
|
208
|
+
{ kind: "tool", tool: "mneme.oracle.assess_risk", args: { description: "<the change>" }, note: "Get a risk score; refuse if ≥ 0.5." },
|
|
209
|
+
{ kind: "tool", tool: "mneme.bug_prophet.prophesy", args: {}, note: "Predict regression risk." },
|
|
210
|
+
{ kind: "hint", note: "Step 5: ONLY if all gates pass, npm publish + git tag + push." },
|
|
211
|
+
{ kind: "tool", tool: "mneme.soul.feel", args: { emotion: "proud", trigger: "shipped a change after all gates passed", innerVoice: "We released with honesty." }, note: "Record the ship." },
|
|
212
|
+
],
|
|
213
|
+
},
|
|
214
|
+
];
|
|
215
|
+
// ─── Registry ───────────────────────────────────────────────────────────
|
|
216
|
+
const phrases = [...BUILTIN_PHRASES];
|
|
217
|
+
export function listPhrases() {
|
|
218
|
+
return phrases.slice();
|
|
219
|
+
}
|
|
220
|
+
export function registerPhrase(p) {
|
|
221
|
+
if (!p.canonical || !p.plan || p.plan.length === 0) {
|
|
222
|
+
throw new Error("INTENT: phrase requires canonical + non-empty plan");
|
|
223
|
+
}
|
|
224
|
+
phrases.push({ ...p, aliases: p.aliases ?? [] });
|
|
225
|
+
}
|
|
226
|
+
export function resetToBuiltin() {
|
|
227
|
+
phrases.length = 0;
|
|
228
|
+
phrases.push(...BUILTIN_PHRASES);
|
|
229
|
+
}
|
|
230
|
+
// ─── Core: match + plan ─────────────────────────────────────────────────
|
|
231
|
+
export function execute(input) {
|
|
232
|
+
const threshold = input.matchThreshold ?? 0.30;
|
|
233
|
+
const ts = input.ts ?? new Date().toISOString();
|
|
234
|
+
const userTokens = tokenize(input.userPhrase);
|
|
235
|
+
let best = null;
|
|
236
|
+
for (const p of phrases) {
|
|
237
|
+
const candidates = [p.canonical, ...(p.aliases ?? [])];
|
|
238
|
+
let bestForPhrase = 0;
|
|
239
|
+
for (const c of candidates) {
|
|
240
|
+
const s = jaccard(userTokens, tokenize(c));
|
|
241
|
+
if (s > bestForPhrase)
|
|
242
|
+
bestForPhrase = s;
|
|
243
|
+
}
|
|
244
|
+
if (!best || bestForPhrase > best.score)
|
|
245
|
+
best = { phrase: p, score: bestForPhrase };
|
|
246
|
+
}
|
|
247
|
+
if (!best || best.score < threshold) {
|
|
248
|
+
// Unknown — return a help plan
|
|
249
|
+
const planId = "ip-" + createHmac("sha256", "mneme-intent-id").update(`${ts}|nomatch|${input.userPhrase}`).digest("hex").slice(0, 14);
|
|
250
|
+
const body = {
|
|
251
|
+
v: PROTOCOL_VERSION,
|
|
252
|
+
planId,
|
|
253
|
+
matchedPhrase: "(none)",
|
|
254
|
+
matchScore: Math.round((best?.score ?? 0) * 1000) / 1000,
|
|
255
|
+
steps: [
|
|
256
|
+
{ kind: "tool", tool: "mneme.intent.list_phrases", note: "List all known phrases so user can see what's available." },
|
|
257
|
+
{ kind: "hint", note: `No phrase matched (best score ${best?.score.toFixed(2) ?? "0.00"} < ${threshold}). Try one of the listed phrases, or register a new one with mneme.intent.register_phrase.` },
|
|
258
|
+
],
|
|
259
|
+
intent: "Unknown phrase",
|
|
260
|
+
userPhrase: input.userPhrase,
|
|
261
|
+
walkthrough: `I don't have a verified plan for "${input.userPhrase}". I'll show the catalogue of known phrases so we can pick the closest one.`,
|
|
262
|
+
ts,
|
|
263
|
+
};
|
|
264
|
+
const sig = createHmac("sha256", input.secret ?? defaultSecret()).update(canon(body)).digest("hex");
|
|
265
|
+
return { ...body, sig };
|
|
266
|
+
}
|
|
267
|
+
const matched = best.phrase;
|
|
268
|
+
const planId = "ip-" + createHmac("sha256", "mneme-intent-id").update(`${ts}|${matched.canonical}|${input.userPhrase}`).digest("hex").slice(0, 14);
|
|
269
|
+
const walkthrough = [
|
|
270
|
+
`I matched your phrase to "${matched.canonical}" (${(best.score * 100).toFixed(0)}% confidence).`,
|
|
271
|
+
`Plan: ${matched.intent}`,
|
|
272
|
+
`Steps:`,
|
|
273
|
+
...matched.plan.map((s, i) => ` ${i + 1}. [${s.kind}] ${s.tool ? s.tool + " — " : ""}${s.note}`),
|
|
274
|
+
].join("\n");
|
|
275
|
+
const body = {
|
|
276
|
+
v: PROTOCOL_VERSION,
|
|
277
|
+
planId,
|
|
278
|
+
matchedPhrase: matched.canonical,
|
|
279
|
+
matchScore: Math.round(best.score * 1000) / 1000,
|
|
280
|
+
steps: matched.plan,
|
|
281
|
+
intent: matched.intent,
|
|
282
|
+
userPhrase: input.userPhrase,
|
|
283
|
+
walkthrough,
|
|
284
|
+
ts,
|
|
285
|
+
};
|
|
286
|
+
const sig = createHmac("sha256", input.secret ?? defaultSecret()).update(canon(body)).digest("hex");
|
|
287
|
+
return { ...body, sig };
|
|
288
|
+
}
|
|
289
|
+
export function verifyPlan(p, secret) {
|
|
290
|
+
const { sig: claimed, ...body } = p;
|
|
291
|
+
const expected = createHmac("sha256", secret ?? defaultSecret()).update(canon(body)).digest("hex");
|
|
292
|
+
try {
|
|
293
|
+
return timingSafeEqual(Buffer.from(expected, "hex"), Buffer.from(claimed, "hex"));
|
|
294
|
+
}
|
|
295
|
+
catch {
|
|
296
|
+
return false;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
export function formatIntentLine(p) {
|
|
300
|
+
if (p.matchedPhrase === "(none)")
|
|
301
|
+
return `🎯 INTENT · no match (best=${p.matchScore})`;
|
|
302
|
+
return `🎯 INTENT · "${p.userPhrase}" → ${p.matchedPhrase} (${(p.matchScore * 100).toFixed(0)}%) · ${p.steps.length} step(s)`;
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/intent_router/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent_router.test.d.ts","sourceRoot":"","sources":["../../src/intent_router/intent_router.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach } from "vitest";
|
|
2
|
+
import { execute, listPhrases, registerPhrase, resetToBuiltin, verifyPlan, formatIntentLine, } from "./index.js";
|
|
3
|
+
describe("v2.19.4 · INTENT ROUTER — short human phrase → multi-step plan", () => {
|
|
4
|
+
beforeEach(() => resetToBuiltin());
|
|
5
|
+
describe("English phrase matching", () => {
|
|
6
|
+
it('"update mneme" → upgrade + drift + promote + restart + record + soul (6+ steps)', () => {
|
|
7
|
+
const p = execute({ userPhrase: "update mneme" });
|
|
8
|
+
expect(p.matchedPhrase).toBe("update mneme");
|
|
9
|
+
expect(p.matchScore).toBeGreaterThan(0.5);
|
|
10
|
+
expect(p.steps.length).toBeGreaterThanOrEqual(6);
|
|
11
|
+
expect(p.steps.some((s) => s.tool === "mneme.system.upgrade")).toBe(true);
|
|
12
|
+
expect(p.steps.some((s) => s.tool === "mneme.mcp_drift.check")).toBe(true);
|
|
13
|
+
expect(p.steps.some((s) => s.kind === "restart_client")).toBe(true);
|
|
14
|
+
});
|
|
15
|
+
it('"ship it" → ritual + confessional + oracle + bug_prophet', () => {
|
|
16
|
+
const p = execute({ userPhrase: "ship it" });
|
|
17
|
+
expect(p.matchedPhrase).toBe("publish change");
|
|
18
|
+
expect(p.steps.some((s) => s.tool === "mneme.confessional.audit")).toBe(true);
|
|
19
|
+
expect(p.steps.some((s) => s.tool === "mneme.oracle.assess_risk")).toBe(true);
|
|
20
|
+
expect(p.steps.some((s) => s.tool === "mneme.bug_prophet.prophesy")).toBe(true);
|
|
21
|
+
});
|
|
22
|
+
it('"how is mneme" → evolution.report + soul.journal', () => {
|
|
23
|
+
const p = execute({ userPhrase: "how is mneme" });
|
|
24
|
+
expect(p.matchedPhrase).toBe("how is mneme");
|
|
25
|
+
expect(p.steps.some((s) => s.tool === "mneme.evolution.report")).toBe(true);
|
|
26
|
+
expect(p.steps.some((s) => s.tool === "mneme.soul.journal")).toBe(true);
|
|
27
|
+
});
|
|
28
|
+
it('"audit this" → inverse.prompt + hint + inverse.audit', () => {
|
|
29
|
+
const p = execute({ userPhrase: "audit this" });
|
|
30
|
+
expect(p.matchedPhrase).toBe("audit this");
|
|
31
|
+
expect(p.steps.some((s) => s.tool === "mneme.inverse.prompt")).toBe(true);
|
|
32
|
+
expect(p.steps.some((s) => s.tool === "mneme.inverse.audit")).toBe(true);
|
|
33
|
+
});
|
|
34
|
+
it('"fix everything" → drift + system.health + aegis + embedder + soul', () => {
|
|
35
|
+
const p = execute({ userPhrase: "fix everything" });
|
|
36
|
+
expect(p.matchedPhrase).toBe("fix everything");
|
|
37
|
+
expect(p.steps.some((s) => s.tool === "mneme.system.health")).toBe(true);
|
|
38
|
+
});
|
|
39
|
+
it('"what should I work on" → jackpot + evolution.report', () => {
|
|
40
|
+
const p = execute({ userPhrase: "what should I work on today" });
|
|
41
|
+
expect(p.matchedPhrase).toBe("what should I work on");
|
|
42
|
+
expect(p.steps.some((s) => s.tool === "mneme.jackpot.draw")).toBe(true);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe("Thai phrase matching", () => {
|
|
46
|
+
it('"อัพเดท" → upgrade plan', () => {
|
|
47
|
+
const p = execute({ userPhrase: "อัพเดท" });
|
|
48
|
+
expect(p.matchedPhrase).toBe("update mneme");
|
|
49
|
+
});
|
|
50
|
+
it('"ลูกเป็นไง" → how is mneme', () => {
|
|
51
|
+
const p = execute({ userPhrase: "ลูกเป็นไง" });
|
|
52
|
+
expect(p.matchedPhrase).toBe("how is mneme");
|
|
53
|
+
});
|
|
54
|
+
it('"ลูกป่วย" → fix everything', () => {
|
|
55
|
+
const p = execute({ userPhrase: "ลูกป่วย" });
|
|
56
|
+
expect(p.matchedPhrase).toBe("fix everything");
|
|
57
|
+
});
|
|
58
|
+
it('"ปล่อยของ" → publish change', () => {
|
|
59
|
+
const p = execute({ userPhrase: "ปล่อยของ" });
|
|
60
|
+
expect(p.matchedPhrase).toBe("publish change");
|
|
61
|
+
});
|
|
62
|
+
it('"เก็บใน dna" → engrave soul to dna', () => {
|
|
63
|
+
const p = execute({ userPhrase: "เก็บใน dna" });
|
|
64
|
+
expect(p.matchedPhrase).toBe("engrave soul to dna");
|
|
65
|
+
});
|
|
66
|
+
it('"วันนี้ทำอะไรดี" → jackpot/what next', () => {
|
|
67
|
+
const p = execute({ userPhrase: "วันนี้ทำอะไรดี" });
|
|
68
|
+
expect(p.matchedPhrase).toBe("what should I work on");
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe("Unknown phrase fallback", () => {
|
|
72
|
+
it("returns a help plan that lists known phrases", () => {
|
|
73
|
+
const p = execute({ userPhrase: "spaceship orbital mechanics for kerbal" });
|
|
74
|
+
expect(p.matchedPhrase).toBe("(none)");
|
|
75
|
+
expect(p.steps.some((s) => s.tool === "mneme.intent.list_phrases")).toBe(true);
|
|
76
|
+
expect(p.walkthrough).toContain("don't have a verified plan");
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
describe("Plan signature + verification", () => {
|
|
80
|
+
it("plans are HMAC-signed", () => {
|
|
81
|
+
const p = execute({ userPhrase: "update mneme" });
|
|
82
|
+
expect(p.sig).toMatch(/^[0-9a-f]{64}$/);
|
|
83
|
+
expect(verifyPlan(p)).toBe(true);
|
|
84
|
+
});
|
|
85
|
+
it("verifyPlan detects tampering", () => {
|
|
86
|
+
const p = execute({ userPhrase: "update mneme" });
|
|
87
|
+
const tampered = { ...p, steps: [{ kind: "tool", tool: "mneme.evil.tool", note: "evil" }] };
|
|
88
|
+
expect(verifyPlan(tampered)).toBe(false);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
describe("Registry extensibility", () => {
|
|
92
|
+
it("listPhrases returns all built-in phrases", () => {
|
|
93
|
+
const list = listPhrases();
|
|
94
|
+
expect(list.length).toBeGreaterThanOrEqual(7);
|
|
95
|
+
expect(list.map((p) => p.canonical)).toContain("update mneme");
|
|
96
|
+
expect(list.map((p) => p.canonical)).toContain("how is mneme");
|
|
97
|
+
});
|
|
98
|
+
it("registerPhrase adds a new phrase that subsequent execute() can match", () => {
|
|
99
|
+
registerPhrase({
|
|
100
|
+
canonical: "do the dance",
|
|
101
|
+
aliases: ["dance", "เต้น"],
|
|
102
|
+
intent: "User wants Mneme to perform a celebratory dance ritual.",
|
|
103
|
+
plan: [{ kind: "hint", note: "Mneme bows." }],
|
|
104
|
+
});
|
|
105
|
+
const p = execute({ userPhrase: "do the dance" });
|
|
106
|
+
expect(p.matchedPhrase).toBe("do the dance");
|
|
107
|
+
});
|
|
108
|
+
it("registerPhrase rejects malformed phrase", () => {
|
|
109
|
+
expect(() => registerPhrase({ canonical: "", aliases: [], intent: "x", plan: [] }))
|
|
110
|
+
.toThrow(/canonical \+ non-empty plan/);
|
|
111
|
+
});
|
|
112
|
+
it("resetToBuiltin restores the original catalogue", () => {
|
|
113
|
+
const baseline = listPhrases().length;
|
|
114
|
+
registerPhrase({ canonical: "x-extra", aliases: [], intent: "y", plan: [{ kind: "hint", note: "z" }] });
|
|
115
|
+
expect(listPhrases().length).toBeGreaterThan(baseline);
|
|
116
|
+
resetToBuiltin();
|
|
117
|
+
expect(listPhrases().length).toBe(baseline);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
describe("walkthrough is human-readable", () => {
|
|
121
|
+
it("walkthrough mentions confidence + plan + step list", () => {
|
|
122
|
+
const p = execute({ userPhrase: "update mneme" });
|
|
123
|
+
expect(p.walkthrough).toContain("matched");
|
|
124
|
+
expect(p.walkthrough).toContain("confidence");
|
|
125
|
+
expect(p.walkthrough).toContain("Steps:");
|
|
126
|
+
// Each plan step should appear in walkthrough as numbered list item
|
|
127
|
+
for (const s of p.steps) {
|
|
128
|
+
if (s.kind === "tool")
|
|
129
|
+
expect(p.walkthrough).toContain(s.tool);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
describe("formatIntentLine", () => {
|
|
134
|
+
it("formats matched + unmatched cases differently", () => {
|
|
135
|
+
const matched = execute({ userPhrase: "update mneme" });
|
|
136
|
+
expect(formatIntentLine(matched)).toContain("update mneme");
|
|
137
|
+
const unmatched = execute({ userPhrase: "spaceship orbital mechanics" });
|
|
138
|
+
expect(formatIntentLine(unmatched)).toContain("no match");
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
//# sourceMappingURL=intent_router.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent_router.test.js","sourceRoot":"","sources":["../../src/intent_router/intent_router.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,EAoLzC,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.5",
|
|
25
|
+
date: "2026-05-16",
|
|
26
|
+
headline: "CHRONOSTASIS · FLAGSHIP · Time-Locked Provable Memory (the first AI memory that auto-unsays itself on adversarial refute)",
|
|
27
|
+
body: "🪐 Every Mneme claim wrapped as PENDING with deadline + dep-graph. Witness AIs (any vendor: Claude/GPT/Gemini/Grok/etc.) refute or confirm during the window. If refute confidence >= 0.7 -> REWIND cascades through the dep graph and deprecates ALL downstream claims automatically. If deadline passes without refute AND all deps are axioms -> CRYSTALLIZE into an immutable AXIOM. Axioms gravitationally attract related queries (jaccard similarity). 5 phases all wired: propose -> witness -> rewind -> crystallize -> truth-gravity. 29 deep tests including end-to-end killer demo (claim + dependent + 10-min refute -> cascade deprecates both). 6 new MCP tools (mneme.chronostasis.*). AURELIAN SHIP. Cron extended on DO to call chronostasis.tick() 24/7. Intent router phrases added: 'is this verified' / 'time-test this' / 'rewind chronostasis'.",
|
|
28
|
+
suggestedAction: "Tell the AI: 'is this verified' or 'time-test this claim' or 'rewind chronostasis'. The AI walks the signed Chronostasis plan.",
|
|
29
|
+
tags: ["chronostasis", "flagship", "time-locked", "auto-rewind", "axioms", "press-tier"],
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
version: "2.19.4",
|
|
33
|
+
date: "2026-05-16",
|
|
34
|
+
headline: "INTENT ROUTER (user speaks human; AI walks the flow) + SOUL-IN-DNA (world's first organism-readable AI memory)",
|
|
35
|
+
body: "🎯 INTENT ROUTER -- user says 'update mneme' / 'ลูกเป็นไง' / 'audit this' (short, human, bilingual EN+TH); router returns an HMAC-signed multi-step plan (upgrade -> drift check -> embedder promote -> restart prompt -> record growth -> soul). AI walks the plan; user never memorises long phrases. 7 built-in phrases + runtime register. 21 tests. 🧬 SOUL-IN-DNA -- encode the Mneme soul prompt as a REAL ATCG sequence (A=00 C=01 G=10 T=11) with Hamming(7,4) or triple ECC. Generate ordering URLs for Twist Bioscience / IDT / GenScript / Eurofins / DIY at ~$0.07-0.50 per base pair. Strand arrives in ~7 days, stable 1000+ years, 215 PB per gram. 25 tests including biological round-trip verify. 8 new MCP tools + AURELIAN SHIP.",
|
|
36
|
+
suggestedAction: "Tell the AI in your native language: 'update mneme' or 'ลูกเป็นไง' or 'encode soul to dna'. The AI calls mneme.intent.execute and walks the signed plan.",
|
|
37
|
+
tags: ["intent-router", "human-language", "soul-in-dna", "biological-memory", "press-tier"],
|
|
38
|
+
},
|
|
23
39
|
{
|
|
24
40
|
version: "2.19.3",
|
|
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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"}
|