mind-palace-graph 0.3.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 (51) hide show
  1. package/INSTALL.md +387 -0
  2. package/README.md +602 -0
  3. package/dist/api.d.ts +682 -0
  4. package/dist/api.js +660 -0
  5. package/dist/api.js.map +1 -0
  6. package/dist/cli.d.ts +95 -0
  7. package/dist/cli.js +856 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/format.d.ts +16 -0
  10. package/dist/format.js +199 -0
  11. package/dist/format.js.map +1 -0
  12. package/dist/fuzzy.d.ts +45 -0
  13. package/dist/fuzzy.js +150 -0
  14. package/dist/fuzzy.js.map +1 -0
  15. package/dist/index.d.ts +9 -0
  16. package/dist/index.js +528 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/mcp-server.d.ts +24 -0
  19. package/dist/mcp-server.js +187 -0
  20. package/dist/mcp-server.js.map +1 -0
  21. package/dist/mind-palace.d.ts +148 -0
  22. package/dist/mind-palace.js +780 -0
  23. package/dist/mind-palace.js.map +1 -0
  24. package/dist/nodes.d.ts +57 -0
  25. package/dist/nodes.js +220 -0
  26. package/dist/nodes.js.map +1 -0
  27. package/dist/pagination.d.ts +41 -0
  28. package/dist/pagination.js +63 -0
  29. package/dist/pagination.js.map +1 -0
  30. package/dist/palace-format.d.ts +30 -0
  31. package/dist/palace-format.js +146 -0
  32. package/dist/palace-format.js.map +1 -0
  33. package/dist/rg.d.ts +34 -0
  34. package/dist/rg.js +288 -0
  35. package/dist/rg.js.map +1 -0
  36. package/dist/sources.d.ts +87 -0
  37. package/dist/sources.js +457 -0
  38. package/dist/sources.js.map +1 -0
  39. package/dist/tokens.d.ts +35 -0
  40. package/dist/tokens.js +95 -0
  41. package/dist/tokens.js.map +1 -0
  42. package/dist/types.d.ts +236 -0
  43. package/dist/types.js +8 -0
  44. package/dist/types.js.map +1 -0
  45. package/package.json +67 -0
  46. package/skills/mpg-context/SKILL.md +556 -0
  47. package/skills/mpg-context/references/anti-patterns.md +133 -0
  48. package/skills/mpg-context/references/integration.md +123 -0
  49. package/skills/mpg-context/references/mind-palace.md +217 -0
  50. package/skills/mpg-context/references/multi-agent.md +147 -0
  51. package/skills/mpg-context/references/sources.md +120 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Output formatters.
3
+ *
4
+ * The default `llm` format is designed to be both human-readable and
5
+ * directly consumable by an LLM harness: clear delimiters, source
6
+ * attribution, line numbers, and a summary footer. An LLM can paste
7
+ * the entire output into its context and immediately know which file
8
+ * each snippet came from.
9
+ *
10
+ * Other formats:
11
+ * - text: raw, like rg -C output with file:line prefixes
12
+ * - markdown: GitHub-flavored markdown with code blocks
13
+ * - json: structured for programmatic harness integration
14
+ */
15
+ import type { Result, OutputFormat } from "./types.js";
16
+ export declare function format(result: Result, fmt: OutputFormat, color: boolean): string;
package/dist/format.js ADDED
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Output formatters.
3
+ *
4
+ * The default `llm` format is designed to be both human-readable and
5
+ * directly consumable by an LLM harness: clear delimiters, source
6
+ * attribution, line numbers, and a summary footer. An LLM can paste
7
+ * the entire output into its context and immediately know which file
8
+ * each snippet came from.
9
+ *
10
+ * Other formats:
11
+ * - text: raw, like rg -C output with file:line prefixes
12
+ * - markdown: GitHub-flavored markdown with code blocks
13
+ * - json: structured for programmatic harness integration
14
+ */
15
+ import { paginationAnnotation, paginationTextNote } from "./pagination.js";
16
+ const RESET = "\x1b[0m";
17
+ const BOLD = "\x1b[1m";
18
+ const DIM = "\x1b[2m";
19
+ const FG_RED = "\x1b[31m";
20
+ const FG_CYAN = "\x1b[36m";
21
+ const FG_YELLOW = "\x1b[33m";
22
+ export function format(result, fmt, color) {
23
+ switch (fmt) {
24
+ case "json": return formatJson(result);
25
+ case "markdown": return formatMarkdown(result, color);
26
+ case "text": return formatText(result, color);
27
+ case "llm": return formatLlm(result, color);
28
+ }
29
+ }
30
+ function formatJson(result) {
31
+ return JSON.stringify(result, null, 2);
32
+ }
33
+ function formatText(result, color) {
34
+ const out = [];
35
+ for (const node of result.nodes) {
36
+ out.push("");
37
+ out.push(colorize(color, BOLD + FG_CYAN, node.source.id) +
38
+ colorize(color, DIM, `:${node.match_line}`));
39
+ for (let i = 0; i < node.context_before.length; i++) {
40
+ const lineNum = node.start_line + i;
41
+ out.push(`${lineNum} ${node.context_before[i]}`);
42
+ }
43
+ out.push(colorize(color, BOLD + FG_RED, `${node.match_line} ${node.match_text}`));
44
+ for (let i = 0; i < node.context_after.length; i++) {
45
+ const lineNum = node.match_line + 1 + i;
46
+ out.push(`${lineNum} ${node.context_after[i]}`);
47
+ }
48
+ out.push(colorize(color, DIM, `~${node.tokens} tokens`));
49
+ }
50
+ if (result.truncated) {
51
+ out.push("");
52
+ out.push(colorize(color, FG_YELLOW, `[truncated: total token budget reached]`));
53
+ }
54
+ return out.join("\n");
55
+ }
56
+ function formatMarkdown(result, color) {
57
+ const out = [];
58
+ for (const node of result.nodes) {
59
+ out.push(`### \`${node.source.id}\` line ${node.match_line}`);
60
+ out.push("");
61
+ const lang = inferLang(node.source.id);
62
+ const lines = [];
63
+ for (let i = 0; i < node.context_before.length; i++) {
64
+ lines.push(`${node.start_line + i} ${node.context_before[i]}`);
65
+ }
66
+ lines.push(`**${node.match_line}** ${node.match_text}`);
67
+ for (let i = 0; i < node.context_after.length; i++) {
68
+ lines.push(`${node.match_line + 1 + i} ${node.context_after[i]}`);
69
+ }
70
+ out.push("```" + lang);
71
+ out.push(lines.join("\n"));
72
+ out.push("```");
73
+ out.push("");
74
+ if (color)
75
+ out.push(`*${node.tokens} tokens*`);
76
+ else
77
+ out.push(`_${node.tokens} tokens_`);
78
+ out.push("");
79
+ }
80
+ if (result.truncated) {
81
+ out.push(`> ⚠ Truncated to fit token budget.`);
82
+ }
83
+ return out.join("\n");
84
+ }
85
+ /**
86
+ * The LLM-friendly default. This is what the tool is built for.
87
+ *
88
+ * Layout:
89
+ *
90
+ * <mpg result pattern="X" nodes=3 tokens=1234 effort=normal strategy=fill>
91
+ * --- NODE 1 of 3 | src/file.ts:42 | ~380 tokens ---
92
+ * <code block with line numbers, match highlighted with >> prefix>
93
+ * --- NODE 2 of 3 | ...
94
+ * --- TOTAL ---
95
+ * 3 nodes | ~1234 tokens | 2 sources | 234ms
96
+ * </mpg result>
97
+ */
98
+ function formatLlm(result, color) {
99
+ const out = [];
100
+ const header = [
101
+ `pattern="${result.pattern}"`,
102
+ `status=${result.status}`,
103
+ `nodes=${result.total_nodes}`,
104
+ `tokens=~${result.total_tokens}`,
105
+ result.page_tokens !== result.total_tokens
106
+ ? `page_tokens=~${result.page_tokens}` : null,
107
+ `effort=${result.effort}`,
108
+ `strategy=${result.strategy}`,
109
+ paginationAnnotation(result.pagination),
110
+ ].filter(Boolean).join(" ");
111
+ out.push(`<mpg result ${header.trim()}>`);
112
+ for (const node of result.nodes) {
113
+ out.push("");
114
+ const meta = `NODE ${node.id} of ${result.total_nodes} | ${node.source.id}:${node.match_line} | ~${node.tokens} tokens`;
115
+ out.push(`--- ${meta} ---`);
116
+ // Build a code block with line numbers and match highlight.
117
+ const startLine = node.start_line;
118
+ const allLines = [];
119
+ for (let i = 0; i < node.context_before.length; i++) {
120
+ allLines.push({ num: startLine + i, text: node.context_before[i], isMatch: false });
121
+ }
122
+ allLines.push({ num: node.match_line, text: node.match_text, isMatch: true });
123
+ for (let i = 0; i < node.context_after.length; i++) {
124
+ allLines.push({ num: node.match_line + 1 + i, text: node.context_after[i], isMatch: false });
125
+ }
126
+ // Render with the match line prefixed by ">>" and the others by " ".
127
+ // Highlight the actual matched substring within the match line.
128
+ const width = String(node.end_line).length;
129
+ for (const line of allLines) {
130
+ const numStr = String(line.num).padStart(width, " ");
131
+ const marker = line.isMatch ? ">>" : " ";
132
+ const prefix = `${numStr} ${marker} `;
133
+ if (line.isMatch && node.match_spans.length > 0 && color) {
134
+ const [s, e] = node.match_spans[0];
135
+ const before = line.text.slice(0, s);
136
+ const hit = line.text.slice(s, e);
137
+ const after = line.text.slice(e);
138
+ out.push(prefix + before + colorize(color, BOLD + FG_YELLOW, hit) + after);
139
+ }
140
+ else if (line.isMatch) {
141
+ const [s, e] = node.match_spans[0] ?? [0, 0];
142
+ const before = line.text.slice(0, s);
143
+ const hit = line.text.slice(s, e);
144
+ const after = line.text.slice(e);
145
+ out.push(prefix + before + `**${hit}**` + after);
146
+ }
147
+ else {
148
+ out.push(prefix + line.text);
149
+ }
150
+ }
151
+ }
152
+ out.push("");
153
+ out.push(`--- TOTAL ---`);
154
+ const total = [
155
+ `${result.total_nodes} node${result.total_nodes === 1 ? "" : "s"}`,
156
+ `~${result.total_tokens} tokens`,
157
+ `${result.sources_count} source${result.sources_count === 1 ? "" : "s"}`,
158
+ `${result.duration_ms}ms`,
159
+ ].join(" | ");
160
+ out.push(total);
161
+ if (result.truncated) {
162
+ out.push(colorize(color, FG_YELLOW, `(truncated: hit --max-tokens budget)`));
163
+ }
164
+ if (result.pagination) {
165
+ const nav = result.pagination.has_next ? " (more pages available — pass --page N)" : "";
166
+ out.push(colorize(color, DIM, paginationTextNote(result.pagination) + nav));
167
+ }
168
+ out.push("</mpg result>");
169
+ return out.join("\n");
170
+ }
171
+ function inferLang(path) {
172
+ if (path.endsWith(".ts") || path.endsWith(".tsx"))
173
+ return "typescript";
174
+ if (path.endsWith(".js") || path.endsWith(".jsx"))
175
+ return "javascript";
176
+ if (path.endsWith(".py"))
177
+ return "python";
178
+ if (path.endsWith(".rs"))
179
+ return "rust";
180
+ if (path.endsWith(".go"))
181
+ return "go";
182
+ if (path.endsWith(".md"))
183
+ return "markdown";
184
+ if (path.endsWith(".json"))
185
+ return "json";
186
+ if (path.endsWith(".yaml") || path.endsWith(".yml"))
187
+ return "yaml";
188
+ if (path.endsWith(".sh") || path.endsWith(".bash"))
189
+ return "bash";
190
+ if (path.endsWith(".sql"))
191
+ return "sql";
192
+ return "";
193
+ }
194
+ function colorize(useColor, code, text) {
195
+ if (!useColor)
196
+ return text;
197
+ return `${code}${text}${RESET}`;
198
+ }
199
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,OAAO,GAAG,UAAU,CAAC;AAC3B,MAAM,SAAS,GAAG,UAAU,CAAC;AAE7B,MAAM,UAAU,MAAM,CAAC,MAAc,EAAE,GAAiB,EAAE,KAAc;IACtE,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,CAAK,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,KAAK,UAAU,CAAC,CAAC,OAAO,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,CAAK,OAAO,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,KAAK,KAAK,CAAC,CAAM,OAAO,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,KAAc;IAChD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,yCAAyC,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,KAAc;IACpD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9D,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACb,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;QACvB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,UAAU,CAAC,CAAC;;YAC1C,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,UAAU,CAAC,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,SAAS,CAAC,MAAc,EAAE,KAAc;IAC/C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG;QACb,YAAY,MAAM,CAAC,OAAO,GAAG;QAC7B,UAAU,MAAM,CAAC,MAAM,EAAE;QACzB,SAAS,MAAM,CAAC,WAAW,EAAE;QAC7B,WAAW,MAAM,CAAC,YAAY,EAAE;QAChC,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,YAAY;YACxC,CAAC,CAAC,gBAAgB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;QAC/C,UAAU,MAAM,CAAC,MAAM,EAAE;QACzB,YAAY,MAAM,CAAC,QAAQ,EAAE;QAC7B,oBAAoB,CAAC,MAAM,CAAC,UAAU,CAAC;KACxC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,GAAG,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACb,MAAM,IAAI,GAAG,QAAQ,IAAI,CAAC,EAAE,OAAO,MAAM,CAAC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,UAAU,OAAO,IAAI,CAAC,MAAM,SAAS,CAAC;QACxH,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC;QAE5B,4DAA4D;QAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,MAAM,QAAQ,GAA2D,EAAE,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/F,CAAC;QAED,sEAAsE;QACtE,gEAAgE;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1C,MAAM,MAAM,GAAG,GAAG,MAAM,IAAI,MAAM,GAAG,CAAC;YACtC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;gBACzD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,GAAG,SAAS,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YAC7E,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG;QACZ,GAAG,MAAM,CAAC,WAAW,QAAQ,MAAM,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;QAClE,IAAI,MAAM,CAAC,YAAY,SAAS;QAChC,GAAG,MAAM,CAAC,aAAa,UAAU,MAAM,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;QACxE,GAAG,MAAM,CAAC,WAAW,IAAI;KAC1B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACd,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,sCAAsC,CAAC,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9E,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,YAAY,CAAC;IACvE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,YAAY,CAAC;IACvE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC;IAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IACnE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAClE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,QAAQ,CAAC,QAAiB,EAAE,IAAY,EAAE,IAAY;IAC7D,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Fuzzy matching helpers.
3
+ *
4
+ * The old --fuzzy mode transformed `foo` into `f[^\n]{0,2}o[^\n]{0,2}o`,
5
+ * which only catches MISSING chars in the search term (search shorter
6
+ * than the actual text). It fails on swaps and inserts.
7
+ *
8
+ * This module replaces that with a two-step approach:
9
+ * 1. buildFuzzyRegex(search): emit a trigram-union regex used to drive rg.
10
+ * Any line in the corpus that contains ≥1 trigram of the search is
11
+ * a candidate.
12
+ * 2. verifyFuzzy(line, matchPos, search, maxDist): slide a candidate
13
+ * window across the line and Levenshtein-match against the search.
14
+ * Accept the candidate iff edit distance ≤ maxDist.
15
+ *
16
+ * Handles drop / insert / substitute / swap typos (edit distance ≤ 2).
17
+ * Cost: O(line_len × search_len × max_dist) per candidate line, bounded
18
+ * for normal corpora.
19
+ */
20
+ /** Standard Levenshtein with early exit when row min > cutoff. */
21
+ export declare function levenshtein(a: string, b: string, cutoff?: number): number;
22
+ /**
23
+ * Build a trigram-union regex from the search pattern. Splits on
24
+ * whitespace so multi-word searches don't blow up trigram space.
25
+ *
26
+ * Hard constraints (these protect agent harnesses from runaway scans):
27
+ *
28
+ * - Patterns shorter than 2 non-whitespace chars throw. An empty
29
+ * pattern would otherwise become `""` and match every line.
30
+ * - Patterns containing regex meta-chars are passed through as-is
31
+ * (regex authors usually mean it literally) and a warning is
32
+ * written to stderr so a confused caller can spot the silent
33
+ * skip.
34
+ * - The trigram set is capped at MAX_TRIGRAMS, picking the rarest
35
+ * trigrams first. Past the cap, fall back to literal-search of
36
+ * the longest token.
37
+ */
38
+ export declare function buildFuzzyRegex(search: string): string;
39
+ /**
40
+ * Verify that the match position in `line` actually corresponds to
41
+ * the original search within edit distance `maxDist`. Slides candidate
42
+ * windows of length len(search) ± maxDist around matchPos and
43
+ * Levenshteins each one. Returns true on first qualifying window.
44
+ */
45
+ export declare function verifyFuzzy(line: string, matchPos: number, search: string, maxDist?: number): boolean;
package/dist/fuzzy.js ADDED
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Fuzzy matching helpers.
3
+ *
4
+ * The old --fuzzy mode transformed `foo` into `f[^\n]{0,2}o[^\n]{0,2}o`,
5
+ * which only catches MISSING chars in the search term (search shorter
6
+ * than the actual text). It fails on swaps and inserts.
7
+ *
8
+ * This module replaces that with a two-step approach:
9
+ * 1. buildFuzzyRegex(search): emit a trigram-union regex used to drive rg.
10
+ * Any line in the corpus that contains ≥1 trigram of the search is
11
+ * a candidate.
12
+ * 2. verifyFuzzy(line, matchPos, search, maxDist): slide a candidate
13
+ * window across the line and Levenshtein-match against the search.
14
+ * Accept the candidate iff edit distance ≤ maxDist.
15
+ *
16
+ * Handles drop / insert / substitute / swap typos (edit distance ≤ 2).
17
+ * Cost: O(line_len × search_len × max_dist) per candidate line, bounded
18
+ * for normal corpora.
19
+ */
20
+ const TRIGRAM_LEN = 3;
21
+ const DEFAULT_MAX_DIST = 2;
22
+ /** Standard Levenshtein with early exit when row min > cutoff. */
23
+ export function levenshtein(a, b, cutoff = Infinity) {
24
+ if (a === b)
25
+ return 0;
26
+ if (a.length === 0)
27
+ return b.length;
28
+ if (b.length === 0)
29
+ return a.length;
30
+ if (Math.abs(a.length - b.length) > cutoff)
31
+ return cutoff + 1;
32
+ let prev = new Array(b.length + 1);
33
+ let curr = new Array(b.length + 1);
34
+ for (let j = 0; j <= b.length; j++)
35
+ prev[j] = j;
36
+ for (let i = 1; i <= a.length; i++) {
37
+ curr[0] = i;
38
+ let rowMin = i;
39
+ for (let j = 1; j <= b.length; j++) {
40
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
41
+ curr[j] = Math.min(prev[j] + 1, curr[j - 1] + 1, prev[j - 1] + cost);
42
+ if (curr[j] < rowMin)
43
+ rowMin = curr[j];
44
+ }
45
+ if (rowMin > cutoff)
46
+ return cutoff + 1;
47
+ [prev, curr] = [curr, prev];
48
+ }
49
+ return prev[b.length];
50
+ }
51
+ /** Extract distinct trigrams from a string. */
52
+ function trigrams(s) {
53
+ const out = new Set();
54
+ if (s.length < TRIGRAM_LEN) {
55
+ if (s.length > 0)
56
+ out.add(s);
57
+ return out;
58
+ }
59
+ for (let i = 0; i + TRIGRAM_LEN <= s.length; i++) {
60
+ out.add(s.slice(i, i + TRIGRAM_LEN));
61
+ }
62
+ return out;
63
+ }
64
+ /** Cap the trigram alternation size — past this rg's regex compiler
65
+ * starts to choke (default --regex-size-limit ~10MB DFA). */
66
+ const MAX_TRIGRAMS = 64;
67
+ /**
68
+ * Build a trigram-union regex from the search pattern. Splits on
69
+ * whitespace so multi-word searches don't blow up trigram space.
70
+ *
71
+ * Hard constraints (these protect agent harnesses from runaway scans):
72
+ *
73
+ * - Patterns shorter than 2 non-whitespace chars throw. An empty
74
+ * pattern would otherwise become `""` and match every line.
75
+ * - Patterns containing regex meta-chars are passed through as-is
76
+ * (regex authors usually mean it literally) and a warning is
77
+ * written to stderr so a confused caller can spot the silent
78
+ * skip.
79
+ * - The trigram set is capped at MAX_TRIGRAMS, picking the rarest
80
+ * trigrams first. Past the cap, fall back to literal-search of
81
+ * the longest token.
82
+ */
83
+ export function buildFuzzyRegex(search) {
84
+ const trimmed = search.trim();
85
+ if (trimmed.length < 2) {
86
+ throw new Error(`--fuzzy requires a pattern of at least 2 non-whitespace characters. ` +
87
+ `Got: ${JSON.stringify(search)}.`);
88
+ }
89
+ if (/[\\^$.()\[\]{}|*+?]/.test(search)) {
90
+ if (process.env.MPG_DEBUG) {
91
+ process.stderr.write(`mpg[fuzzy]: pattern contains regex meta-chars, fuzzy matching skipped: ${JSON.stringify(search)}\n`);
92
+ }
93
+ return search;
94
+ }
95
+ const tokens = trimmed.split(/\s+/).filter((t) => t.length > 0);
96
+ const all = new Set();
97
+ for (const tok of tokens) {
98
+ for (const g of trigrams(tok))
99
+ all.add(g);
100
+ }
101
+ if (all.size === 0) {
102
+ // Degenerate (all tokens < TRIGRAM_LEN, which we already short-
103
+ // circuited via the trimmed.length check). Fall back to literal.
104
+ return trimmed;
105
+ }
106
+ let chosen;
107
+ if (all.size <= MAX_TRIGRAMS) {
108
+ chosen = [...all];
109
+ }
110
+ else {
111
+ // Fallback: drop fuzziness and just literal-search the longest token.
112
+ // This keeps the regex bounded while still finding *something*; the
113
+ // Levenshtein post-filter in verifyFuzzy then re-validates around
114
+ // each hit.
115
+ const longest = [...tokens].sort((a, b) => b.length - a.length)[0];
116
+ if (process.env.MPG_DEBUG) {
117
+ process.stderr.write(`mpg[fuzzy]: ${all.size} trigrams exceeded cap ${MAX_TRIGRAMS}; ` +
118
+ `falling back to literal search of "${longest}"\n`);
119
+ }
120
+ return longest.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
121
+ }
122
+ // Escape regex meta-chars inside each trigram.
123
+ const escaped = chosen.map((t) => t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
124
+ return `(${escaped.join("|")})`;
125
+ }
126
+ /**
127
+ * Verify that the match position in `line` actually corresponds to
128
+ * the original search within edit distance `maxDist`. Slides candidate
129
+ * windows of length len(search) ± maxDist around matchPos and
130
+ * Levenshteins each one. Returns true on first qualifying window.
131
+ */
132
+ export function verifyFuzzy(line, matchPos, search, maxDist = DEFAULT_MAX_DIST) {
133
+ const searchLen = search.length;
134
+ const windowRadius = searchLen + maxDist;
135
+ const winStart = Math.max(0, matchPos - windowRadius);
136
+ const winEnd = Math.min(line.length, matchPos + windowRadius);
137
+ const window = line.slice(winStart, winEnd);
138
+ // Try every substring length in [searchLen - maxDist, searchLen + maxDist].
139
+ const minLen = Math.max(1, searchLen - maxDist);
140
+ const maxLen = searchLen + maxDist;
141
+ for (let start = 0; start <= window.length - minLen; start++) {
142
+ for (let len = minLen; len <= Math.min(maxLen, window.length - start); len++) {
143
+ const candidate = window.slice(start, start + len);
144
+ if (levenshtein(candidate, search, maxDist) <= maxDist)
145
+ return true;
146
+ }
147
+ }
148
+ return false;
149
+ }
150
+ //# sourceMappingURL=fuzzy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fuzzy.js","sourceRoot":"","sources":["../src/fuzzy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * mpg — entry point.
4
+ *
5
+ * Wires together: arg parsing → source resolution → rg search → node
6
+ * building → budget enforcement → (optional) mind-palace operations
7
+ * → formatting → stdout.
8
+ */
9
+ export {};