@mneme-ai/core 1.78.0 → 1.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/agent_manifest.d.ts +1 -1
  2. package/dist/agent_manifest.d.ts.map +1 -1
  3. package/dist/agent_manifest.js +10 -1
  4. package/dist/agent_manifest.js.map +1 -1
  5. package/dist/conduit/conduit.test.d.ts +2 -0
  6. package/dist/conduit/conduit.test.d.ts.map +1 -0
  7. package/dist/conduit/conduit.test.js +149 -0
  8. package/dist/conduit/conduit.test.js.map +1 -0
  9. package/dist/conduit/index.d.ts +20 -0
  10. package/dist/conduit/index.d.ts.map +1 -0
  11. package/dist/conduit/index.js +20 -0
  12. package/dist/conduit/index.js.map +1 -0
  13. package/dist/conduit/phantom_exec.d.ts +41 -0
  14. package/dist/conduit/phantom_exec.d.ts.map +1 -0
  15. package/dist/conduit/phantom_exec.js +52 -0
  16. package/dist/conduit/phantom_exec.js.map +1 -0
  17. package/dist/conduit/relay_prompt.d.ts +52 -0
  18. package/dist/conduit/relay_prompt.d.ts.map +1 -0
  19. package/dist/conduit/relay_prompt.js +127 -0
  20. package/dist/conduit/relay_prompt.js.map +1 -0
  21. package/dist/conduit/sync_status.d.ts +34 -0
  22. package/dist/conduit/sync_status.d.ts.map +1 -0
  23. package/dist/conduit/sync_status.js +63 -0
  24. package/dist/conduit/sync_status.js.map +1 -0
  25. package/dist/conduit/uninstall_directive.d.ts +40 -0
  26. package/dist/conduit/uninstall_directive.d.ts.map +1 -0
  27. package/dist/conduit/uninstall_directive.js +100 -0
  28. package/dist/conduit/uninstall_directive.js.map +1 -0
  29. package/dist/conduit/version_gate.d.ts +27 -0
  30. package/dist/conduit/version_gate.d.ts.map +1 -0
  31. package/dist/conduit/version_gate.js +59 -0
  32. package/dist/conduit/version_gate.js.map +1 -0
  33. package/dist/genesplice/genesplice.test.js +3 -2
  34. package/dist/genesplice/genesplice.test.js.map +1 -1
  35. package/dist/genesplice/soul_prompt.d.ts.map +1 -1
  36. package/dist/genesplice/soul_prompt.js +6 -0
  37. package/dist/genesplice/soul_prompt.js.map +1 -1
  38. package/dist/index.d.ts +2 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +13 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/neuron/auto_atoms.d.ts +28 -0
  43. package/dist/neuron/auto_atoms.d.ts.map +1 -0
  44. package/dist/neuron/auto_atoms.js +39 -0
  45. package/dist/neuron/auto_atoms.js.map +1 -0
  46. package/dist/neuron/fuzzy.d.ts +27 -0
  47. package/dist/neuron/fuzzy.d.ts.map +1 -0
  48. package/dist/neuron/fuzzy.js +51 -0
  49. package/dist/neuron/fuzzy.js.map +1 -0
  50. package/dist/neuron/index.d.ts +17 -0
  51. package/dist/neuron/index.d.ts.map +1 -0
  52. package/dist/neuron/index.js +17 -0
  53. package/dist/neuron/index.js.map +1 -0
  54. package/dist/neuron/neuron.test.d.ts +2 -0
  55. package/dist/neuron/neuron.test.d.ts.map +1 -0
  56. package/dist/neuron/neuron.test.js +137 -0
  57. package/dist/neuron/neuron.test.js.map +1 -0
  58. package/dist/neuron/oracle.d.ts +50 -0
  59. package/dist/neuron/oracle.d.ts.map +1 -0
  60. package/dist/neuron/oracle.js +76 -0
  61. package/dist/neuron/oracle.js.map +1 -0
  62. package/dist/neuron/triage.d.ts +43 -0
  63. package/dist/neuron/triage.d.ts.map +1 -0
  64. package/dist/neuron/triage.js +91 -0
  65. package/dist/neuron/triage.js.map +1 -0
  66. package/package.json +1 -1
@@ -0,0 +1,43 @@
1
+ /**
2
+ * v1.79.0 -- NEURON: TELEPATHIC TRIAGE.
3
+ *
4
+ * The molecule of intelligence. Receives a user prompt + a tool
5
+ * catalog, and routes it via 4 stacked strategies (each independent):
6
+ *
7
+ * 1. EXACT LATTICE -- hand-crafted intent atoms, priority=absolute
8
+ * 2. AUTO-DERIVED -- every tool's triggers[] becomes a fallback atom
9
+ * 3. FUZZY TRIGRAM -- Jaccard similarity for near-matches
10
+ * 4. KEYWORD BIAS -- prompt mentions "mneme" / "soul" / "version" etc.
11
+ *
12
+ * Returns a ranked list of {tool, confidence, strategy, reason}.
13
+ * If the top result is `absolute` (strategy = exact lattice), AI must
14
+ * obey. Otherwise it can pick the top candidate or surface 2-3 for
15
+ * the user.
16
+ *
17
+ * NEW WILDEST FUNCTION (nobody dares to ship this): even when no
18
+ * direct match, NEURON returns a confidence-weighted "best guess"
19
+ * with a `confusion: true` flag so the AI knows to ask the user.
20
+ */
21
+ import { type ToolLike } from "./auto_atoms.js";
22
+ export type TriageStrategy = "exact-lattice" | "auto-derived" | "fuzzy-trigram" | "keyword-bias";
23
+ export interface TriageCandidate {
24
+ tool: string;
25
+ confidence: number;
26
+ strategy: TriageStrategy;
27
+ reason: string;
28
+ matchedTrigger?: string;
29
+ intent: string;
30
+ }
31
+ export interface TriageReport {
32
+ /** Top recommendation. */
33
+ recommended: TriageCandidate | null;
34
+ /** All candidates above threshold, sorted by confidence desc. */
35
+ candidates: TriageCandidate[];
36
+ /** True when top candidate is < 0.7 OR there are 2+ candidates
37
+ * within 0.1 confidence -- AI should ask the user to clarify. */
38
+ confusion: boolean;
39
+ summary: string;
40
+ }
41
+ /** Run the full 4-strategy triage. */
42
+ export declare function telepathicTriage(userPrompt: string, toolCatalog?: readonly ToolLike[]): TriageReport;
43
+ //# sourceMappingURL=triage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../../src/neuron/triage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EAAsC,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEpF,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,cAAc,GAAG,eAAe,GAAG,cAAc,CAAC;AAEjG,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IACpC,iEAAiE;IACjE,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B;sEACkE;IAClE,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,sCAAsC;AACtC,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,SAAS,QAAQ,EAAO,GACpC,YAAY,CAyEd"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * v1.79.0 -- NEURON: TELEPATHIC TRIAGE.
3
+ *
4
+ * The molecule of intelligence. Receives a user prompt + a tool
5
+ * catalog, and routes it via 4 stacked strategies (each independent):
6
+ *
7
+ * 1. EXACT LATTICE -- hand-crafted intent atoms, priority=absolute
8
+ * 2. AUTO-DERIVED -- every tool's triggers[] becomes a fallback atom
9
+ * 3. FUZZY TRIGRAM -- Jaccard similarity for near-matches
10
+ * 4. KEYWORD BIAS -- prompt mentions "mneme" / "soul" / "version" etc.
11
+ *
12
+ * Returns a ranked list of {tool, confidence, strategy, reason}.
13
+ * If the top result is `absolute` (strategy = exact lattice), AI must
14
+ * obey. Otherwise it can pick the top candidate or surface 2-3 for
15
+ * the user.
16
+ *
17
+ * NEW WILDEST FUNCTION (nobody dares to ship this): even when no
18
+ * direct match, NEURON returns a confidence-weighted "best guess"
19
+ * with a `confusion: true` flag so the AI knows to ask the user.
20
+ */
21
+ import { routeIntent, INTENT_ATOMS } from "../lattice/intent_atoms.js";
22
+ import { rankByFuzzy } from "./fuzzy.js";
23
+ import { deriveAtomsFromCatalog, mergeAtoms } from "./auto_atoms.js";
24
+ const MNEME_KEYWORD_RE = /\b(mneme|soul prompt|ส่งสมอง)\b/i;
25
+ const FUZZY_THRESHOLD = 0.20;
26
+ /** Run the full 4-strategy triage. */
27
+ export function telepathicTriage(userPrompt, toolCatalog = []) {
28
+ if (!userPrompt || !userPrompt.trim()) {
29
+ return {
30
+ recommended: null,
31
+ candidates: [],
32
+ confusion: false,
33
+ summary: "empty prompt -- nothing to route",
34
+ };
35
+ }
36
+ const candidates = [];
37
+ // Strategy 1: exact lattice (hand-crafted, absolute priority wins).
38
+ const latticeMatch = routeIntent(userPrompt);
39
+ if (latticeMatch) {
40
+ candidates.push({
41
+ tool: latticeMatch.atom.tool,
42
+ confidence: latticeMatch.absolute ? 1.0 : 0.85,
43
+ strategy: "exact-lattice",
44
+ reason: `hand-crafted intent atom matched "${latticeMatch.matchedTrigger}"`,
45
+ matchedTrigger: latticeMatch.matchedTrigger,
46
+ intent: latticeMatch.atom.intent,
47
+ });
48
+ }
49
+ // Strategy 2 + 3: auto-derived atoms from tool catalog (fuzzy ranked).
50
+ const autoAtoms = deriveAtomsFromCatalog(toolCatalog);
51
+ const allAtoms = mergeAtoms(INTENT_ATOMS, autoAtoms);
52
+ const fuzzyRanked = rankByFuzzy(userPrompt, allAtoms.map((a) => ({ item: a, triggers: a.triggers })), FUZZY_THRESHOLD);
53
+ const seenTools = new Set(candidates.map((c) => c.tool));
54
+ for (const r of fuzzyRanked.slice(0, 5)) {
55
+ if (seenTools.has(r.item.tool))
56
+ continue;
57
+ const isAutoDerived = autoAtoms.some((a) => a.tool === r.item.tool);
58
+ candidates.push({
59
+ tool: r.item.tool,
60
+ confidence: Math.min(0.85, r.similarity + 0.1),
61
+ strategy: isAutoDerived ? "auto-derived" : "fuzzy-trigram",
62
+ reason: `trigram similarity ${(r.similarity * 100).toFixed(0)}% to "${r.matched}"`,
63
+ matchedTrigger: r.matched,
64
+ intent: r.item.intent,
65
+ });
66
+ seenTools.add(r.item.tool);
67
+ }
68
+ // Strategy 4: keyword bias -- prompt mentions Mneme generally,
69
+ // suggest the most likely tool (system.upgrade if "update", etc.)
70
+ if (candidates.length === 0 && MNEME_KEYWORD_RE.test(userPrompt)) {
71
+ candidates.push({
72
+ tool: "mneme.lattice.route",
73
+ confidence: 0.3,
74
+ strategy: "keyword-bias",
75
+ reason: "prompt mentions Mneme but no atom matched -- route via lattice for disambiguation",
76
+ intent: "ask the user what they want",
77
+ });
78
+ }
79
+ candidates.sort((a, b) => b.confidence - a.confidence);
80
+ const recommended = candidates[0] ?? null;
81
+ const confusion = !recommended ||
82
+ recommended.confidence < 0.7 ||
83
+ (candidates.length >= 2 && candidates[0].confidence - candidates[1].confidence < 0.1);
84
+ const summary = recommended
85
+ ? confusion
86
+ ? `${candidates.length} candidates -- top: ${recommended.tool} @ ${(recommended.confidence * 100).toFixed(0)}% (ASK USER, low confidence or tied)`
87
+ : `route to ${recommended.tool} @ ${(recommended.confidence * 100).toFixed(0)}% via ${recommended.strategy}`
88
+ : "no route found";
89
+ return { recommended, candidates, confusion, summary };
90
+ }
91
+ //# sourceMappingURL=triage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triage.js","sourceRoot":"","sources":["../../src/neuron/triage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mneme-ai/core",
3
- "version": "1.78.0",
3
+ "version": "1.80.0",
4
4
  "description": "Core indexing, retrieval, and graph engine for Mneme",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",