@mneme-ai/core 2.19.32 → 2.19.33

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.
Files changed (54) hide show
  1. package/dist/autonomic_scheduler/b4_context_shift.test.d.ts +12 -0
  2. package/dist/autonomic_scheduler/b4_context_shift.test.d.ts.map +1 -0
  3. package/dist/autonomic_scheduler/b4_context_shift.test.js +213 -0
  4. package/dist/autonomic_scheduler/b4_context_shift.test.js.map +1 -0
  5. package/dist/autonomic_scheduler/index.d.ts +44 -0
  6. package/dist/autonomic_scheduler/index.d.ts.map +1 -1
  7. package/dist/autonomic_scheduler/index.js +68 -1
  8. package/dist/autonomic_scheduler/index.js.map +1 -1
  9. package/dist/conversation_compiler/b1_extract_decisions.test.d.ts +2 -0
  10. package/dist/conversation_compiler/b1_extract_decisions.test.d.ts.map +1 -0
  11. package/dist/conversation_compiler/b1_extract_decisions.test.js +150 -0
  12. package/dist/conversation_compiler/b1_extract_decisions.test.js.map +1 -0
  13. package/dist/conversation_compiler/index.d.ts +19 -1
  14. package/dist/conversation_compiler/index.d.ts.map +1 -1
  15. package/dist/conversation_compiler/index.js +128 -39
  16. package/dist/conversation_compiler/index.js.map +1 -1
  17. package/dist/cosmic/aurelian_v1933.test.d.ts +2 -0
  18. package/dist/cosmic/aurelian_v1933.test.d.ts.map +1 -0
  19. package/dist/cosmic/aurelian_v1933.test.js +82 -0
  20. package/dist/cosmic/aurelian_v1933.test.js.map +1 -0
  21. package/dist/cosmic/v1933_integration.test.d.ts +2 -0
  22. package/dist/cosmic/v1933_integration.test.d.ts.map +1 -0
  23. package/dist/cosmic/v1933_integration.test.js +128 -0
  24. package/dist/cosmic/v1933_integration.test.js.map +1 -0
  25. package/dist/index.d.ts +2 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +5 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/tool_browser/index.d.ts +128 -0
  30. package/dist/tool_browser/index.d.ts.map +1 -0
  31. package/dist/tool_browser/index.js +218 -0
  32. package/dist/tool_browser/index.js.map +1 -0
  33. package/dist/tool_browser/tool_browser.test.d.ts +2 -0
  34. package/dist/tool_browser/tool_browser.test.d.ts.map +1 -0
  35. package/dist/tool_browser/tool_browser.test.js +167 -0
  36. package/dist/tool_browser/tool_browser.test.js.map +1 -0
  37. package/dist/tool_tier/index.d.ts.map +1 -1
  38. package/dist/tool_tier/index.js +23 -5
  39. package/dist/tool_tier/index.js.map +1 -1
  40. package/dist/truth_sensor_pack/index.d.ts +105 -0
  41. package/dist/truth_sensor_pack/index.d.ts.map +1 -0
  42. package/dist/truth_sensor_pack/index.js +201 -0
  43. package/dist/truth_sensor_pack/index.js.map +1 -0
  44. package/dist/truth_sensor_pack/truth_sensor_pack.test.d.ts +2 -0
  45. package/dist/truth_sensor_pack/truth_sensor_pack.test.d.ts.map +1 -0
  46. package/dist/truth_sensor_pack/truth_sensor_pack.test.js +153 -0
  47. package/dist/truth_sensor_pack/truth_sensor_pack.test.js.map +1 -0
  48. package/dist/whats_new.d.ts.map +1 -1
  49. package/dist/whats_new.js +8 -0
  50. package/dist/whats_new.js.map +1 -1
  51. package/dist/wrapper_genesis/index.d.ts.map +1 -1
  52. package/dist/wrapper_genesis/index.js +13 -0
  53. package/dist/wrapper_genesis/index.js.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1,218 @@
1
+ /**
2
+ * v2.19.33 B3 fix — MNEME TOOL BROWSER (discoverability for 600+ tools)
3
+ *
4
+ * User-audit diagnosis (2026-05-17):
5
+ * "STARTER tier เล็กไป (13/594 = 2.2%) ... 97.8% hidden from default view.
6
+ * ปัญหาแม่นยำคือ discoverability ไม่ใช่ catalog size.
7
+ * Wisdom fix:
8
+ * - expand STARTER ไป ~30-40 tools (~5-7%)
9
+ * - เพิ่ม mneme browse — interactive TUI explorer ของ 594 tools
10
+ * - เพิ่ม mneme suggest — repo-aware tool recommendations
11
+ * - wisdom: discoverability = curated tour, not just curated subset"
12
+ *
13
+ * v2.19.33 ships two pure-function helpers + 2 MCP wrappers:
14
+ *
15
+ * browseCatalog({tier?, family?, query?, limit?, offset?})
16
+ * → paginated list of tool descriptions filtered + sorted by tier
17
+ * → caller (CLI / MCP) renders the page
18
+ *
19
+ * suggestTools({recentActions?, repoSignals?, intent?, limit?})
20
+ * → returns top-N tool recommendations based on:
21
+ * - recent CLI activity (tail of .mneme/cli-activity.jsonl)
22
+ * - repo signals (presence of package.json / Cargo.toml / git history)
23
+ * - explicit intent string
24
+ * → SCORED + sorted; deterministic given the same input
25
+ *
26
+ * Both stay pure (no I/O). The caller supplies the catalog snapshot +
27
+ * activity tail; this module ranks + filters.
28
+ *
29
+ * Composes onto:
30
+ * - v2.19.24 TOOL TIER (consumes Tier classification)
31
+ * - v2.19.32 HANDOFF SNAPSHOT (recentActivity format reused)
32
+ *
33
+ * Honest scope:
34
+ * - PURE FUNCTION. Never throws. Caller supplies I/O.
35
+ * - Deterministic ranking (no Math.random in scoring).
36
+ * - 24/7 safe: 1000 random browse/suggest calls never crash.
37
+ */
38
+ const PROTOCOL_VERSION = 1;
39
+ /** Paginated catalog browse. Pure; no I/O. */
40
+ export function browseCatalog(input) {
41
+ const limit = input.limit && input.limit > 0 ? Math.min(input.limit, 200) : 30;
42
+ const offset = input.offset && input.offset >= 0 ? input.offset : 0;
43
+ const cat = Array.isArray(input.catalog) ? input.catalog : [];
44
+ const q = (input.query ?? "").toLowerCase().trim();
45
+ const family = (input.family ?? "").toLowerCase().trim();
46
+ const filtered = cat.filter((e) => {
47
+ if (!e || typeof e.name !== "string")
48
+ return false;
49
+ if (input.tier && e.tier !== input.tier)
50
+ return false;
51
+ if (family) {
52
+ const parts = e.name.toLowerCase().split(".");
53
+ const fam = parts[1] ?? "";
54
+ if (fam !== family && !fam.startsWith(family))
55
+ return false;
56
+ }
57
+ if (q) {
58
+ const hay = [e.name, e.description ?? "", (e.triggers ?? []).join(" ")].join(" ").toLowerCase();
59
+ if (!hay.includes(q))
60
+ return false;
61
+ }
62
+ return true;
63
+ });
64
+ // Stable, deterministic sort: starter > explorer > deep > experimental, then alpha by name.
65
+ const tierRank = { starter: 0, explorer: 1, deep: 2, experimental: 3 };
66
+ filtered.sort((a, b) => {
67
+ const ra = tierRank[a.tier ?? "deep"] ?? 9;
68
+ const rb = tierRank[b.tier ?? "deep"] ?? 9;
69
+ if (ra !== rb)
70
+ return ra - rb;
71
+ return a.name.localeCompare(b.name);
72
+ });
73
+ const total = filtered.length;
74
+ const entries = filtered.slice(offset, offset + limit);
75
+ const pageNum = Math.floor(offset / limit) + 1;
76
+ const totalPages = Math.max(1, Math.ceil(total / limit));
77
+ const filterDesc = [
78
+ input.tier ? `tier=${input.tier}` : "",
79
+ family ? `family=${family}` : "",
80
+ q ? `query="${q}"` : "",
81
+ ].filter(Boolean).join(" ");
82
+ const pulseLine = `🔎 BROWSE ${entries.length}/${total} tools (page ${pageNum}/${totalPages})${filterDesc ? ` · ${filterDesc}` : ""}`;
83
+ return {
84
+ v: PROTOCOL_VERSION,
85
+ totalMatches: total,
86
+ pageOffset: offset,
87
+ pageLimit: limit,
88
+ entries,
89
+ pulseLine,
90
+ };
91
+ }
92
+ /**
93
+ * Suggest top-N tools for the caller's current context.
94
+ * Deterministic scoring: same inputs → same suggestions in same order.
95
+ */
96
+ export function suggestTools(input) {
97
+ const cat = Array.isArray(input.catalog) ? input.catalog : [];
98
+ const limit = input.limit && input.limit > 0 ? Math.min(input.limit, 20) : 5;
99
+ const recent = Array.isArray(input.recentActions) ? input.recentActions : [];
100
+ const signals = input.repoSignals ?? {};
101
+ const intent = (input.intent ?? "").toLowerCase().trim();
102
+ // Build a "recently-used" map for cooldown (don't re-suggest tools the user just ran).
103
+ const recentNames = new Set();
104
+ for (const r of recent.slice(-50)) {
105
+ if (r && typeof r.action === "string")
106
+ recentNames.add(r.action.toLowerCase());
107
+ }
108
+ const scored = [];
109
+ for (const tool of cat) {
110
+ if (!tool || typeof tool.name !== "string")
111
+ continue;
112
+ let score = 0;
113
+ const reasons = [];
114
+ // +tier bias (starter gets a small first-run nudge)
115
+ if (tool.tier === "starter") {
116
+ score += 0.5;
117
+ reasons.push("starter tier");
118
+ }
119
+ else if (tool.tier === "explorer") {
120
+ score += 0.2;
121
+ reasons.push("explorer tier");
122
+ }
123
+ // -recency penalty (cool down recently-used tools)
124
+ if (recentNames.has(tool.name.toLowerCase())) {
125
+ score -= 1.5;
126
+ reasons.push("recently used (cooldown)");
127
+ }
128
+ // +intent match (substring across name/description/triggers)
129
+ if (intent) {
130
+ const hay = [tool.name, tool.description ?? "", (tool.triggers ?? []).join(" ")].join(" ").toLowerCase();
131
+ if (hay.includes(intent)) {
132
+ score += 2.0;
133
+ reasons.push(`matches intent "${intent}"`);
134
+ }
135
+ else {
136
+ // Token overlap for fuzzy intent matching
137
+ const intentTokens = intent.split(/\s+/).filter((t) => t.length > 2);
138
+ let hits = 0;
139
+ for (const t of intentTokens)
140
+ if (hay.includes(t))
141
+ hits++;
142
+ if (hits > 0) {
143
+ score += 0.3 * hits;
144
+ reasons.push(`partial intent match (${hits} tokens)`);
145
+ }
146
+ }
147
+ }
148
+ // +repo-signal nudges (deterministic; pure)
149
+ if (signals.hasPackageJson && /\b(?:antivirus|guard|truth)\b/.test(tool.name)) {
150
+ score += 0.4;
151
+ reasons.push("Node repo signal");
152
+ }
153
+ if (signals.hasUncommittedChanges && /\b(?:premortem|guard|antivirus|truth)\b/.test(tool.name)) {
154
+ score += 0.6;
155
+ reasons.push("uncommitted-changes signal");
156
+ }
157
+ if (signals.hasDotGit && /\b(?:who_knows|atrophy|why|stigmergy)\b/.test(tool.name)) {
158
+ score += 0.3;
159
+ reasons.push("git history signal");
160
+ }
161
+ if (signals.hasGithubActions && /\b(?:catalog|reachability|sentinel)\b/.test(tool.name)) {
162
+ score += 0.3;
163
+ reasons.push("CI signal");
164
+ }
165
+ if (signals.recentCommitCount && signals.recentCommitCount >= 3
166
+ && /\b(?:why|atrophy|premortem)\b/.test(tool.name)) {
167
+ score += 0.4;
168
+ reasons.push("active development signal");
169
+ }
170
+ if (score > 0)
171
+ scored.push({ tool, score: Math.round(score * 100) / 100, reasons });
172
+ }
173
+ // Sort: score desc, then alpha by name (deterministic tie-break).
174
+ scored.sort((a, b) => {
175
+ if (a.score !== b.score)
176
+ return b.score - a.score;
177
+ return a.tool.name.localeCompare(b.tool.name);
178
+ });
179
+ const top = scored.slice(0, limit);
180
+ const pulseLine = top.length === 0
181
+ ? "💡 SUGGEST · no signals — try mneme.browse to explore"
182
+ : `💡 SUGGEST · top ${top.length} tool(s) for current context (top score ${top[0].score})`;
183
+ return { v: PROTOCOL_VERSION, suggestions: top, pulseLine };
184
+ }
185
+ export function computeBrowseStats(catalog) {
186
+ let s = 0, e = 0, d = 0, x = 0;
187
+ for (const t of catalog) {
188
+ if (!t)
189
+ continue;
190
+ if (t.tier === "starter")
191
+ s++;
192
+ else if (t.tier === "explorer")
193
+ e++;
194
+ else if (t.tier === "experimental")
195
+ x++;
196
+ else
197
+ d++;
198
+ }
199
+ const total = catalog.length;
200
+ return {
201
+ starterCount: s,
202
+ explorerCount: e,
203
+ deepCount: d,
204
+ experimentalCount: x,
205
+ totalTools: total,
206
+ starterPct: total > 0 ? Math.round((s / total) * 1000) / 10 : 0,
207
+ };
208
+ }
209
+ export function formatBrowseStatsLine(s) {
210
+ return `🔎 CATALOG · ${s.totalTools} tools · ⭐⭐⭐${s.starterCount} (${s.starterPct}%) · ⭐⭐${s.explorerCount} · ⭐${s.deepCount} · 🔬${s.experimentalCount}`;
211
+ }
212
+ export const TOOL_BROWSER_TUNABLES = Object.freeze({
213
+ PROTOCOL_VERSION,
214
+ DEFAULT_PAGE_LIMIT: 30,
215
+ MAX_PAGE_LIMIT: 200,
216
+ DEFAULT_SUGGEST_LIMIT: 5,
217
+ });
218
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tool_browser/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tool_browser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool_browser.test.d.ts","sourceRoot":"","sources":["../../src/tool_browser/tool_browser.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,167 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { browseCatalog, suggestTools, computeBrowseStats, formatBrowseStatsLine, TOOL_BROWSER_TUNABLES, } from "./index.js";
3
+ const SAMPLE_CATALOG = [
4
+ { name: "mneme.status", tier: "starter", description: "show status", triggers: ["status"] },
5
+ { name: "mneme.ask", tier: "starter", description: "semantic Q&A", triggers: ["ask"] },
6
+ { name: "mneme.truth.forensic", tier: "starter", description: "verify claim", triggers: ["verify", "truth"] },
7
+ { name: "mneme.synapse.sync_export", tier: "starter", description: "cross-device sync" },
8
+ { name: "mneme.handoff.snapshot", tier: "starter", description: "fresh context capture" },
9
+ { name: "mneme.arena.judge", tier: "explorer", description: "AI vendor showdown" },
10
+ { name: "mneme.soul.embalm", tier: "explorer", description: "agent state snapshot" },
11
+ { name: "mneme.fork.record", tier: "deep", description: "fork lineage" },
12
+ { name: "mneme.beacon.spawn", tier: "experimental", description: "QR transfer server" },
13
+ { name: "mneme.alien.template", tier: "experimental", description: "alien skill template" },
14
+ ];
15
+ describe("v2.19.33 B3 — browseCatalog (pagination + filtering)", () => {
16
+ it("returns all entries when no filter", () => {
17
+ const r = browseCatalog({ catalog: SAMPLE_CATALOG });
18
+ expect(r.totalMatches).toBe(SAMPLE_CATALOG.length);
19
+ expect(r.entries.length).toBe(SAMPLE_CATALOG.length);
20
+ });
21
+ it("filters by tier=starter (5 of 10)", () => {
22
+ const r = browseCatalog({ catalog: SAMPLE_CATALOG, tier: "starter" });
23
+ expect(r.totalMatches).toBe(5);
24
+ expect(r.entries.every((e) => e.tier === "starter")).toBe(true);
25
+ });
26
+ it("filters by family prefix (synapse → 1)", () => {
27
+ const r = browseCatalog({ catalog: SAMPLE_CATALOG, family: "synapse" });
28
+ expect(r.totalMatches).toBe(1);
29
+ expect(r.entries[0].name).toBe("mneme.synapse.sync_export");
30
+ });
31
+ it("substring query across name/description/triggers", () => {
32
+ const r = browseCatalog({ catalog: SAMPLE_CATALOG, query: "verify" });
33
+ // truth.forensic has 'verify' in triggers
34
+ expect(r.totalMatches).toBe(1);
35
+ expect(r.entries[0].name).toBe("mneme.truth.forensic");
36
+ });
37
+ it("paginates: limit=3 offset=0 returns 3 of 10", () => {
38
+ const r = browseCatalog({ catalog: SAMPLE_CATALOG, limit: 3, offset: 0 });
39
+ expect(r.entries.length).toBe(3);
40
+ expect(r.totalMatches).toBe(10);
41
+ });
42
+ it("paginates: limit=3 offset=3 returns next 3", () => {
43
+ const a = browseCatalog({ catalog: SAMPLE_CATALOG, limit: 3, offset: 0 });
44
+ const b = browseCatalog({ catalog: SAMPLE_CATALOG, limit: 3, offset: 3 });
45
+ expect(a.entries[0].name).not.toBe(b.entries[0].name);
46
+ });
47
+ it("DETERMINISTIC sort: starter > explorer > deep > experimental, then alpha", () => {
48
+ const r = browseCatalog({ catalog: SAMPLE_CATALOG });
49
+ // First 5 should all be starter
50
+ expect(r.entries.slice(0, 5).every((e) => e.tier === "starter")).toBe(true);
51
+ // Next 2 should be explorer
52
+ expect(r.entries.slice(5, 7).every((e) => e.tier === "explorer")).toBe(true);
53
+ });
54
+ it("pulseLine shows progress", () => {
55
+ const r = browseCatalog({ catalog: SAMPLE_CATALOG, limit: 5 });
56
+ expect(r.pulseLine).toContain("BROWSE");
57
+ expect(r.pulseLine).toContain("page 1");
58
+ });
59
+ it("DEFENSIVE: empty catalog returns empty page (no throw)", () => {
60
+ const r = browseCatalog({ catalog: [] });
61
+ expect(r.totalMatches).toBe(0);
62
+ expect(r.entries).toEqual([]);
63
+ });
64
+ it("DEFENSIVE: malformed catalog entries dropped silently", () => {
65
+ const dirty = [...SAMPLE_CATALOG, null, { name: 123 }];
66
+ const r = browseCatalog({ catalog: dirty });
67
+ expect(r.totalMatches).toBe(SAMPLE_CATALOG.length);
68
+ });
69
+ });
70
+ describe("v2.19.33 B3 — suggestTools (repo-aware ranking)", () => {
71
+ it("intent matching dominates: 'verify claim' → truth.forensic top", () => {
72
+ const r = suggestTools({ catalog: SAMPLE_CATALOG, intent: "verify claim" });
73
+ expect(r.suggestions.length).toBeGreaterThan(0);
74
+ expect(r.suggestions[0].tool.name).toBe("mneme.truth.forensic");
75
+ });
76
+ it("starter tier bias when no other signals", () => {
77
+ const r = suggestTools({ catalog: SAMPLE_CATALOG });
78
+ // top suggestion should be a starter tool
79
+ expect(r.suggestions[0].tool.tier).toBe("starter");
80
+ });
81
+ it("recency cooldown: recently-used tools demoted", () => {
82
+ // Use two tools that both match the intent so cooldown actually swaps rank
83
+ const cat = [
84
+ { name: "mneme.truth.forensic", tier: "starter", description: "verify claim", triggers: ["verify"] },
85
+ { name: "mneme.fork.verify_ledger", tier: "deep", description: "verify ledger" },
86
+ ];
87
+ const noRecent = suggestTools({ catalog: cat, intent: "verify" });
88
+ const withRecent = suggestTools({ catalog: cat, intent: "verify", recentActions: [{ action: "mneme.truth.forensic", ts: Date.now() }] });
89
+ const noRecentTruthIdx = noRecent.suggestions.findIndex((s) => s.tool.name === "mneme.truth.forensic");
90
+ const withRecentTruthIdx = withRecent.suggestions.findIndex((s) => s.tool.name === "mneme.truth.forensic");
91
+ // truth.forensic should rank LOWER (higher index) when in cooldown
92
+ expect(withRecentTruthIdx).toBeGreaterThan(noRecentTruthIdx);
93
+ });
94
+ it("repo signal: uncommittedChanges boosts premortem/guard/truth", () => {
95
+ const truthOnly = SAMPLE_CATALOG.find((t) => t.name === "mneme.truth.forensic");
96
+ const r = suggestTools({ catalog: [truthOnly], repoSignals: { hasUncommittedChanges: true } });
97
+ expect(r.suggestions[0].reasons.some((x) => /uncommitted/.test(x))).toBe(true);
98
+ });
99
+ it("DETERMINISTIC: same input → same ranking", () => {
100
+ const a = suggestTools({ catalog: SAMPLE_CATALOG, intent: "verify" });
101
+ const b = suggestTools({ catalog: SAMPLE_CATALOG, intent: "verify" });
102
+ expect(a.suggestions.map((x) => x.tool.name)).toEqual(b.suggestions.map((x) => x.tool.name));
103
+ expect(a.suggestions.map((x) => x.score)).toEqual(b.suggestions.map((x) => x.score));
104
+ });
105
+ it("DEFAULT limit = 5", () => {
106
+ const r = suggestTools({ catalog: SAMPLE_CATALOG, intent: "tier mneme" });
107
+ expect(r.suggestions.length).toBeLessThanOrEqual(5);
108
+ });
109
+ it("custom limit honored", () => {
110
+ const r = suggestTools({ catalog: SAMPLE_CATALOG, intent: "mneme", limit: 3 });
111
+ expect(r.suggestions.length).toBeLessThanOrEqual(3);
112
+ });
113
+ it("DEFENSIVE: empty catalog returns empty suggestions", () => {
114
+ const r = suggestTools({ catalog: [], intent: "anything" });
115
+ expect(r.suggestions.length).toBe(0);
116
+ expect(r.pulseLine).toContain("no signals");
117
+ });
118
+ });
119
+ describe("v2.19.33 B3 — A/B before-vs-after STARTER expansion", () => {
120
+ // The user-audit complained 13/594 = 2.2% starter coverage.
121
+ // v2.19.33 expands the whitelist; this test pins the new floor.
122
+ it("expanded STARTER_WHITELIST is ≥30 entries (was 13 in audit)", async () => {
123
+ const tt = await import("../tool_tier/index.js");
124
+ expect(tt.STARTER_WHITELIST.size).toBeGreaterThanOrEqual(30);
125
+ });
126
+ it("expanded STARTER_WHITELIST includes new v2.19.31/32 headline tools", async () => {
127
+ const tt = await import("../tool_tier/index.js");
128
+ expect(tt.STARTER_WHITELIST.has("mneme.truth.forensic")).toBe(true);
129
+ expect(tt.STARTER_WHITELIST.has("mneme.truth.contradictions")).toBe(true);
130
+ expect(tt.STARTER_WHITELIST.has("mneme.handoff.snapshot")).toBe(true);
131
+ expect(tt.STARTER_WHITELIST.has("mneme.synapse.sync_export")).toBe(true);
132
+ expect(tt.STARTER_WHITELIST.has("mneme.browse")).toBe(true);
133
+ expect(tt.STARTER_WHITELIST.has("mneme.suggest")).toBe(true);
134
+ });
135
+ it("A/B DELTA: post-fix STARTER count ≥ 2× pre-fix audit baseline (13)", async () => {
136
+ const tt = await import("../tool_tier/index.js");
137
+ expect(tt.STARTER_WHITELIST.size).toBeGreaterThanOrEqual(26);
138
+ });
139
+ });
140
+ describe("v2.19.33 B3 — stats + resilience", () => {
141
+ it("computeBrowseStats reports counts + percentage", () => {
142
+ const s = computeBrowseStats(SAMPLE_CATALOG);
143
+ expect(s.starterCount).toBe(5);
144
+ expect(s.explorerCount).toBe(2);
145
+ expect(s.deepCount).toBe(1);
146
+ expect(s.experimentalCount).toBe(2);
147
+ expect(s.totalTools).toBe(10);
148
+ expect(s.starterPct).toBe(50);
149
+ expect(formatBrowseStatsLine(s)).toContain("CATALOG");
150
+ });
151
+ it("PROTOCOL_VERSION exposed", () => {
152
+ expect(TOOL_BROWSER_TUNABLES.PROTOCOL_VERSION).toBe(1);
153
+ });
154
+ it("1000 random browse/suggest calls never crash", () => {
155
+ const tiers = ["starter", "explorer", "deep", "experimental"];
156
+ for (let i = 0; i < 1000; i++) {
157
+ const tier = tiers[Math.floor(Math.random() * tiers.length)];
158
+ expect(() => browseCatalog({ catalog: SAMPLE_CATALOG, tier, limit: Math.floor(Math.random() * 50) })).not.toThrow();
159
+ expect(() => suggestTools({
160
+ catalog: SAMPLE_CATALOG,
161
+ intent: `random ${Math.random()}`,
162
+ recentActions: [{ action: `mneme.x${i}`, ts: i }],
163
+ })).not.toThrow();
164
+ }
165
+ });
166
+ });
167
+ //# sourceMappingURL=tool_browser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool_browser.test.js","sourceRoot":"","sources":["../../src/tool_browser/tool_browser.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tool_tier/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAIH,QAAA,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAEpC,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,cAAc,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAqChD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAmBhD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAOpD,CAAC;AAEH,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAqBjE;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAsBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAmB7F;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAGpE;AAED,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG,MAAM,EAAE,CAE/E;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAK3C,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAK3C,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAEtD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tool_tier/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAIH,QAAA,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAEpC,MAAM,MAAM,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,cAAc,CAAC;AAEpE;;;GAGG;AAKH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAmDhD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAmBhD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAOpD,CAAC;AAEH,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAqBjE;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAsBD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAmB7F;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAGpE;AAED,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG,MAAM,EAAE,CAE/E;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAK3C,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAK3C,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAEtD"}
@@ -38,6 +38,10 @@ const PROTOCOL_VERSION = 1;
38
38
  * Curated essentials — first-time users meet Mneme through these.
39
39
  * Hand-picked; small enough that beginners aren't overwhelmed.
40
40
  */
41
+ // v2.19.33 B3 fix: expanded STARTER from 13 visible (2.2% of 594) → ~35
42
+ // (~5.5% of 647) so first-time users see ONE representative tool per
43
+ // major capability category, not a cherry-picked dozen. Each addition is
44
+ // the "ask the AI to do X" entry point users actually need on day 1.
41
45
  export const STARTER_WHITELIST = new Set([
42
46
  // Core memory + retrieval
43
47
  "mneme.status",
@@ -61,20 +65,34 @@ export const STARTER_WHITELIST = new Set([
61
65
  // Embedder + tier health
62
66
  "mneme.embeddings.status",
63
67
  "mneme.embeddings.upgrade",
64
- // Antivirus (the highest-impact daily-use tools)
68
+ // Antivirus (highest-impact daily-use tools)
65
69
  "mneme.antivirus.scan",
66
70
  "mneme.antivirus.cure",
67
- // LIMBIC organism health (the new front door)
71
+ // LIMBIC organism health
68
72
  "mneme.limbic.health",
69
73
  "mneme.breath.stats",
70
- // People diagnostics (high-value commit-history queries)
74
+ // People diagnostics
71
75
  "mneme.atrophy",
72
- "mneme.who_knows",
73
76
  // Premortem (the answer to "is this safe to ship?")
74
77
  "mneme.premortem",
75
- // Tier discovery (this very command)
78
+ // Tier discovery + B3 NEW discoverability commands
76
79
  "mneme.tier.classify",
77
80
  "mneme.tier.list_by_tier",
81
+ "mneme.browse", // v2.19.33 B3: interactive catalog tour
82
+ "mneme.suggest", // v2.19.33 B3: repo-aware tool recommendations
83
+ // v2.19.31 truth + contradictions (the "is this real?" entry point)
84
+ "mneme.truth.forensic",
85
+ "mneme.truth.contradictions",
86
+ "mneme.truth.init", // v2.19.33 B2: zero-config sensor stack
87
+ // v2.19.32 cross-device handoff (headline of the release)
88
+ "mneme.handoff.snapshot",
89
+ "mneme.handoff.pair_generate",
90
+ // v2.19.31 cross-device sync (the brain unification entry point)
91
+ "mneme.synapse.sync_export",
92
+ // Bug prophet — "what could go wrong if I ship this?"
93
+ "mneme.guard",
94
+ // Reflex — auto-cache (one of the v2.19.22 flagship features)
95
+ "mneme.reflex.observe",
78
96
  ]);
79
97
  /**
80
98
  * Families that ALWAYS land in EXPLORER (v2.18+ pentads + organs).
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tool_tier/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tool_tier/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * v2.19.33 B2 fix — MNEME TRUTH SENSOR PACK (zero-config defaults that work first-run)
3
+ *
4
+ * User-audit diagnosis (2026-05-17):
5
+ * "mneme truth check_multi sensors=0 (no active sensors).
6
+ * verdict: INCONCLUSIVE · pTrue: 0.5 · sensors: 0.
7
+ * Root cause: TRUTH KERNEL ออกแบบให้ register sensors แต่ default config มี 0 sensors active.
8
+ * Wisdom: zero-config means good defaults — ไม่ใช่ 'empty until configured'"
9
+ *
10
+ * v2.19.33 ships a CANONICAL DEFAULT STACK that any AI agent can wire
11
+ * into `mneme.truth.check_multi` without having to invent the recipe.
12
+ *
13
+ * The stack is intentionally PURE METADATA (not executable) because the
14
+ * real sensors require I/O the kernel deliberately doesn't do:
15
+ * - inverse_forensics needs the codebase + LLM call
16
+ * - truth_forensic needs the live MCP catalog
17
+ * - apoptosis needs file/symbol grep + git history
18
+ * - bountyVendor needs vendor-API calls
19
+ *
20
+ * So the recipe tells the CALLER:
21
+ * 1. Which sensors to invoke
22
+ * 2. What MCP tool to invoke each one through
23
+ * 3. What weight to apply
24
+ * 4. What to do if the sensor is unavailable
25
+ *
26
+ * The CALLER (AI agent / daemon) wires the I/O; the kernel fuses the
27
+ * results. This stays vendor-neutral + testable + offline-safe.
28
+ *
29
+ * Plus: `proposeSensorPlan(claim)` filters the stack to the sensors most
30
+ * relevant for the claim shape (e.g., file-existence claim → apoptosis +
31
+ * truth_forensic; conceptual claim → inverse_forensics + bountyVendor).
32
+ *
33
+ * Composes onto:
34
+ * - v2.6 TRUTH KERNEL (consumes Sensor list; fuses verdicts)
35
+ * - v2.19.15 TRUTH FORENSIC (one of the canonical sensors)
36
+ * - v2.19.3 INVERSE LLM (one of the canonical sensors)
37
+ * - v1.65 APOPTOSIS (one of the canonical sensors)
38
+ *
39
+ * Honest scope:
40
+ * - PURE FUNCTION metadata + planner. No I/O.
41
+ * - The recipe is the canonical Mneme answer to "what sensors do I run by default?"
42
+ * - Defensive: empty claim / weird input never throws; returns minimal plan.
43
+ * - 24/7 safe: 1000 random plans never crash (measured in test suite).
44
+ */
45
+ declare const PROTOCOL_VERSION: 1;
46
+ export type ClaimShape = "file_existence" | "symbol_existence" | "version_claim" | "tool_capability" | "conceptual" | "narrative" | "unknown";
47
+ export interface SensorRecipe {
48
+ /** Canonical sensor id used by truthKernel.checkTruth. */
49
+ id: string;
50
+ /** What MCP tool the CALLER should invoke to get this sensor's verdict. */
51
+ mcpTool: string;
52
+ /** Suggested weight for log-odds fusion (higher = more authoritative). */
53
+ weight: number;
54
+ /** One-sentence description for the AI agent / user. */
55
+ description: string;
56
+ /** What to feed the MCP tool; placeholder template. */
57
+ inputTemplate: Record<string, string>;
58
+ /** What to do if this sensor is unavailable (e.g., no network). */
59
+ fallbackBehaviour: "skip" | "treat_as_uncertain" | "treat_as_inapplicable";
60
+ /** Which claim shapes this sensor performs best on. */
61
+ bestFor: ClaimShape[];
62
+ }
63
+ export declare const DEFAULT_SENSOR_PACK: ReadonlyArray<SensorRecipe>;
64
+ /**
65
+ * Detect the shape of a claim from its text. Pure heuristic; defensive.
66
+ * Returns "unknown" if no signal — caller may still use the full default pack.
67
+ */
68
+ export declare function classifyClaimShape(claim: string): ClaimShape;
69
+ export interface SensorPlan {
70
+ v: typeof PROTOCOL_VERSION;
71
+ claim: string;
72
+ shape: ClaimShape;
73
+ recommendedSensors: SensorRecipe[];
74
+ /** Sensors NOT in the recommendation but available if the caller wants the full stack. */
75
+ optionalSensors: SensorRecipe[];
76
+ /** Human-readable summary: "🛡 4 sensors recommended for file_existence claim". */
77
+ rationale: string;
78
+ }
79
+ /**
80
+ * Build a recommended sensor plan for a specific claim.
81
+ * If the claim shape is "unknown" or the caller wants the full stack, use
82
+ * `DEFAULT_SENSOR_PACK` directly. Otherwise this filters to high-relevance sensors.
83
+ */
84
+ export declare function proposeSensorPlan(input: {
85
+ claim: string;
86
+ full?: boolean;
87
+ }): SensorPlan;
88
+ /**
89
+ * Render the recipe as the AI-agent-ingestible instruction text used by
90
+ * `mneme.truth.init`. Vendor-neutral; safe to display in clear text.
91
+ */
92
+ export declare function explainDefaultStack(plan: SensorPlan): string;
93
+ export interface SensorPackStats {
94
+ totalDefaults: number;
95
+ shapeSpecificMappings: number;
96
+ averageWeight: number;
97
+ }
98
+ export declare function computePackStats(pack?: ReadonlyArray<SensorRecipe>): SensorPackStats;
99
+ export declare function formatPackLine(s: SensorPackStats): string;
100
+ export declare const TRUTH_SENSOR_PACK_TUNABLES: Readonly<{
101
+ PROTOCOL_VERSION: 1;
102
+ DEFAULT_SENSOR_COUNT: number;
103
+ }>;
104
+ export {};
105
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/truth_sensor_pack/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,QAAA,MAAM,gBAAgB,EAAG,CAAU,CAAC;AAEpC,MAAM,MAAM,UAAU,GAClB,gBAAgB,GAChB,kBAAkB,GAClB,eAAe,GACf,iBAAiB,GACjB,YAAY,GACZ,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,mEAAmE;IACnE,iBAAiB,EAAE,MAAM,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;IAC3E,uDAAuD;IACvD,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAqDD,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,YAAY,CAAoC,CAAC;AAEjG;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAU5D;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,kBAAkB,EAAE,YAAY,EAAE,CAAC;IACnC,0FAA0F;IAC1F,eAAe,EAAE,YAAY,EAAE,CAAC;IAChC,mFAAmF;IACnF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,UAAU,CAuBtF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CA0B5D;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,aAAa,CAAC,YAAY,CAAuB,GAAG,eAAe,CAazG;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAEzD;AAED,eAAO,MAAM,0BAA0B;;;EAGrC,CAAC"}