matryoshka-rlm 0.2.31 → 0.2.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 (89) hide show
  1. package/README.md +124 -24
  2. package/config.example.json +10 -2
  3. package/dist/adapters/nucleus.d.ts.map +1 -1
  4. package/dist/adapters/nucleus.js +76 -55
  5. package/dist/adapters/nucleus.js.map +1 -1
  6. package/dist/config/grammar-config.d.ts +9 -50
  7. package/dist/config/grammar-config.d.ts.map +1 -1
  8. package/dist/config/grammar-config.js +17 -68
  9. package/dist/config/grammar-config.js.map +1 -1
  10. package/dist/config/index.d.ts +4 -2
  11. package/dist/config/index.d.ts.map +1 -1
  12. package/dist/config/index.js +4 -2
  13. package/dist/config/index.js.map +1 -1
  14. package/dist/config/paths.d.ts +3 -0
  15. package/dist/config/paths.d.ts.map +1 -0
  16. package/dist/config/paths.js +7 -0
  17. package/dist/config/paths.js.map +1 -0
  18. package/dist/config.d.ts +23 -1
  19. package/dist/config.d.ts.map +1 -1
  20. package/dist/config.js +37 -10
  21. package/dist/config.js.map +1 -1
  22. package/dist/engine/handle-session.d.ts +19 -0
  23. package/dist/engine/handle-session.d.ts.map +1 -1
  24. package/dist/engine/handle-session.js +2 -0
  25. package/dist/engine/handle-session.js.map +1 -1
  26. package/dist/engine/nucleus-engine.d.ts +24 -0
  27. package/dist/engine/nucleus-engine.d.ts.map +1 -1
  28. package/dist/engine/nucleus-engine.js +15 -2
  29. package/dist/engine/nucleus-engine.js.map +1 -1
  30. package/dist/fsm/rlm-states.d.ts +31 -0
  31. package/dist/fsm/rlm-states.d.ts.map +1 -1
  32. package/dist/fsm/rlm-states.js +246 -7
  33. package/dist/fsm/rlm-states.js.map +1 -1
  34. package/dist/index.js +3 -2
  35. package/dist/index.js.map +1 -1
  36. package/dist/lattice-mcp-server.d.ts.map +1 -1
  37. package/dist/lattice-mcp-server.js +111 -0
  38. package/dist/lattice-mcp-server.js.map +1 -1
  39. package/dist/llm/deepseek.d.ts +1 -1
  40. package/dist/llm/deepseek.d.ts.map +1 -1
  41. package/dist/llm/deepseek.js +4 -49
  42. package/dist/llm/deepseek.js.map +1 -1
  43. package/dist/llm/glm.d.ts +1 -1
  44. package/dist/llm/glm.d.ts.map +1 -1
  45. package/dist/llm/glm.js +6 -49
  46. package/dist/llm/glm.js.map +1 -1
  47. package/dist/llm/index.d.ts +4 -3
  48. package/dist/llm/index.d.ts.map +1 -1
  49. package/dist/llm/index.js +4 -3
  50. package/dist/llm/index.js.map +1 -1
  51. package/dist/llm/ollama.js +1 -1
  52. package/dist/llm/ollama.js.map +1 -1
  53. package/dist/llm/openai-compat.d.ts +9 -0
  54. package/dist/llm/openai-compat.d.ts.map +1 -0
  55. package/dist/llm/openai-compat.js +58 -0
  56. package/dist/llm/openai-compat.js.map +1 -0
  57. package/dist/llm/types.d.ts +1 -1
  58. package/dist/llm/types.d.ts.map +1 -1
  59. package/dist/logic/lc-parser.d.ts.map +1 -1
  60. package/dist/logic/lc-parser.js +121 -1
  61. package/dist/logic/lc-parser.js.map +1 -1
  62. package/dist/logic/lc-solver.d.ts +66 -0
  63. package/dist/logic/lc-solver.d.ts.map +1 -1
  64. package/dist/logic/lc-solver.js +284 -0
  65. package/dist/logic/lc-solver.js.map +1 -1
  66. package/dist/logic/type-inference.d.ts.map +1 -1
  67. package/dist/logic/type-inference.js +8 -0
  68. package/dist/logic/type-inference.js.map +1 -1
  69. package/dist/logic/types.d.ts +118 -2
  70. package/dist/logic/types.d.ts.map +1 -1
  71. package/dist/mcp-server.js +1 -1
  72. package/dist/mcp-server.js.map +1 -1
  73. package/dist/rlm.d.ts +51 -1
  74. package/dist/rlm.d.ts.map +1 -1
  75. package/dist/rlm.js +209 -6
  76. package/dist/rlm.js.map +1 -1
  77. package/dist/synthesis/knowledge-base.d.ts +5 -2
  78. package/dist/synthesis/knowledge-base.d.ts.map +1 -1
  79. package/dist/synthesis/knowledge-base.js +5 -2
  80. package/dist/synthesis/knowledge-base.js.map +1 -1
  81. package/dist/treesitter/builtin-grammars.d.ts +1 -1
  82. package/dist/treesitter/builtin-grammars.js +1 -1
  83. package/dist/treesitter/index.d.ts +1 -1
  84. package/dist/treesitter/index.js +1 -1
  85. package/dist/treesitter/language-map.d.ts +1 -1
  86. package/dist/treesitter/language-map.d.ts.map +1 -1
  87. package/dist/treesitter/language-map.js +25 -4
  88. package/dist/treesitter/language-map.js.map +1 -1
  89. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Matryoshka
2
2
 
3
3
  [![Tests](https://github.com/yogthos/Matryoshka/actions/workflows/test.yml/badge.svg)](https://github.com/yogthos/Matryoshka/actions/workflows/test.yml)
4
+ [![SafeSkill 88/100](https://img.shields.io/badge/SafeSkill-88%2F100_Passes%20with%20Notes-yellow)](https://safeskill.dev/scan/yogthos-matryoshka)
4
5
 
5
6
  Process documents 100x larger than your LLM's context window—without vector databases or chunking heuristics.
6
7
 
@@ -54,6 +55,103 @@ The LLM outputs commands in the Nucleus DSL—an S-expression language designed
54
55
  <<<FINAL>>>13000000<<<END>>>
55
56
  ```
56
57
 
58
+ #### Feature availability by execution path
59
+
60
+ Matryoshka has two execution paths and not every primitive works in both:
61
+
62
+ | Feature | `runRLM` (CLI / programmatic) | `lattice-mcp` (MCP server) |
63
+ |---|---|---|
64
+ | `(grep …)`, `(filter …)`, `(map …)`, etc. | ✅ | ✅ |
65
+ | `(llm_query …)`, `(llm_batch …)` | ✅ | ✅ via MCP sampling protocol |
66
+ | `(rlm_query …)`, `(rlm_batch …)` | ✅ (concurrent rlm_batch) | ✅ — child Nucleus session spawns via the same MCP sampling bridge; M suspensions per `rlm_query` call. `rlm_batch` runs **sequentially** (children one at a time) because the multi-turn suspension protocol only carries one pending request at a time — concurrent children would lose suspensions. Round-trip count is the same; wall-clock is N×slower for non-sampling clients. |
67
+ | `(context N)` selector | ✅ (multi-doc via `runRLMFromContent(query, string[])`) | partial — `(context 0)` works; multi-doc loading not exposed via `lattice_load` |
68
+ | `(grep "X" haystack)` | ✅ | ✅ |
69
+ | `(show_vars)` | ✅ | ✅ (internal `_<name>` bindings filtered out) |
70
+ | `FINAL_VAR(name)` resolution | ✅ | N/A — MCP returns query results directly |
71
+ | `maxTimeoutMs` / `maxTokens` / `maxErrors` | ✅ | ❌ — MCP has its own session timeout |
72
+ | `compactionThresholdChars` | ✅ | ❌ — MCP doesn't have a multi-turn FSM history |
73
+
74
+ The resource-limit features remain `runRLM`-only. The recursive primitives (`rlm_query`/`rlm_batch`) work in both paths — the MCP path spawns a child `runRLMFromContent` whose `llmClient` is the same sampling bridge as the parent, so each child turn flows through the existing MCP suspension/sampling protocol.
75
+
76
+ #### Recursive Primitives
77
+
78
+ `rlm_query` spawns a child Nucleus session with its own FSM loop. The child runs to FINAL and returns a string — useful when a sub-task needs multi-turn reasoning over a structured handle:
79
+
80
+ ```scheme
81
+ ; Child sees the resolved handle as its working document, NOT a
82
+ ; JSON-stringified prompt blob. Lets the child use grep/lines/
83
+ ; chunk_by_lines over arrays without JSON-syntax noise.
84
+ (rlm_query "extract dates" (context RESULTS))
85
+
86
+ ; No (context …) → child's document is the prompt itself.
87
+ (rlm_query "summarize each error type")
88
+ ```
89
+
90
+ `rlm_batch` runs the same per-item recursion across a collection. Each item produces one entry in the returned array, in input order. Per-item failures surface as `"Error: rlm_batch item N failed — …"` strings without aborting the rest of the batch:
91
+
92
+ ```scheme
93
+ (rlm_batch (chunk_by_lines 100)
94
+ (lambda c (rlm_query "extract metrics" (context c))))
95
+ ```
96
+
97
+ - **`runRLM`**: children fan out concurrently via a worker pool capped at `maxConcurrentSubcalls` (default 4).
98
+ - **`lattice-mcp`**: children run **sequentially** because the multi-turn suspension protocol can carry only one pending request at a time. Round-trip count is identical to the concurrent path (N children × M turns each); only wall-clock differs.
99
+
100
+ #### Multi-Context Loading
101
+
102
+ Pass `string[]` to `runRLMFromContent` to load multiple documents. Address them via `(context N)`; index 0 is the default for primitives that don't specify a haystack:
103
+
104
+ ```scheme
105
+ (grep "DEPLOY" (context 0)) ; deploy.log
106
+ (grep "OUTAGE" (context 2)) ; comms.log
107
+
108
+ ; (context N) is just a term — pipe it anywhere a string is expected
109
+ (rlm_query "scan" (context (context 1))) ; child sees doc 1
110
+ ```
111
+
112
+ Per-doc line numbers come back, so the LLM can cite "doc 0 line 4, doc 2 line 2" with confidence rather than inventing absolute offsets across a concatenation.
113
+
114
+ #### Introspection
115
+
116
+ ```scheme
117
+ (show_vars) ; Returns a string summary of every binding currently
118
+ ; in scope. Useful before a (filter RESULTS …) or a
119
+ ; FINAL_VAR(name) reference when the LLM lost track of
120
+ ; what's bound. Same surface as the `lattice_bindings`
121
+ ; MCP tool but reachable from inside a query.
122
+ ```
123
+
124
+ Unknown FINAL_VAR markers surface a clear error rather than passing the literal text through:
125
+
126
+ ```
127
+ <<<FINAL>>>FINAL_VAR(_99)<<<END>>>
128
+ → "[FINAL_VAR error: unknown binding "_99". Available: _1, RESULTS]"
129
+ ```
130
+
131
+ #### Resource Limits
132
+
133
+ All optional. With none set, behavior is unchanged:
134
+
135
+ ```typescript
136
+ runRLM(query, file, {
137
+ maxTimeoutMs: 30_000, // wall-clock cap, propagates to children
138
+ maxTokens: 100_000, // cumulative chars sent + received
139
+ maxErrors: 5, // consecutive parse/execution errors
140
+ compactionThresholdChars: 50_000, // summarize history when prompt grows past this
141
+ })
142
+ ```
143
+
144
+ When a limit hits, the run terminates cleanly with a string of the form:
145
+
146
+ ```
147
+ [aborted: timeout 32100ms of 30000ms]
148
+
149
+ Best partial answer:
150
+ <the most recent meaningful solver result>
151
+ ```
152
+
153
+ The partial answer is always preserved when present — completed work is never silently lost on abort.
154
+
57
155
  ### The Lattice Engine
58
156
 
59
157
  The Lattice engine (`src/logic/`) processes Nucleus commands:
@@ -150,7 +248,7 @@ npm run build
150
248
 
151
249
  ## Configuration
152
250
 
153
- Copy `config.example.json` to `config.json` and configure your LLM provider:
251
+ Copy `config.example.json` to `~/.config/matryoshka/config.json`:
154
252
 
155
253
  ```json
156
254
  {
@@ -159,23 +257,44 @@ Copy `config.example.json` to `config.json` and configure your LLM provider:
159
257
  },
160
258
  "providers": {
161
259
  "ollama": {
162
- "baseUrl": "http://localhost:11434",
260
+ "url": "http://localhost:11434/api/generate",
163
261
  "model": "qwen3-coder:30b",
164
262
  "options": { "temperature": 0.2, "num_ctx": 8192 }
165
263
  },
166
264
  "deepseek": {
167
- "baseUrl": "https://api.deepseek.com",
265
+ "url": "https://api.deepseek.com/chat/completions",
168
266
  "apiKey": "${DEEPSEEK_API_KEY}",
169
267
  "model": "deepseek-chat",
170
268
  "options": { "temperature": 0.2 }
269
+ },
270
+ "glm": {
271
+ "url": "https://open.bigmodel.cn/api/paas/v4/chat/completions",
272
+ "apiKey": "${ZHIPU_API_KEY}",
273
+ "model": "glm-4-plus",
274
+ "options": { "temperature": 0.2 }
171
275
  }
172
276
  },
173
277
  "rlm": {
174
278
  "maxTurns": 10
279
+ },
280
+ "grammars": {
281
+ "ocaml": {
282
+ "package": "tree-sitter-ocaml",
283
+ "extensions": [".ml", ".mli"],
284
+ "moduleExport": "ocaml",
285
+ "symbols": {
286
+ "value_definition": "function",
287
+ "type_definition": "type",
288
+ "module_definition": "module"
289
+ }
290
+ }
175
291
  }
176
292
  }
177
293
  ```
178
294
 
295
+ - **`llm` / `providers` / `rlm`** — LLM provider selection and RLM tuning (shown above with example providers). Each provider takes a full `url` (the complete API endpoint), an optional `apiKey` (supports `${ENV_VAR}` interpolation), a `model` name, and `options`.
296
+ - **`grammars`** — custom tree-sitter language mappings for symbol extraction (see [Adding Language Support](#adding-language-support) for the full list of built-in languages). Use the [tree-sitter playground](https://tree-sitter.github.io/tree-sitter/playground) to explore node types for your language.
297
+
179
298
  ## Usage
180
299
 
181
300
  ### CLI
@@ -344,7 +463,7 @@ import { runRLM } from "matryoshka-rlm/rlm";
344
463
  import { createLLMClient } from "matryoshka-rlm";
345
464
 
346
465
  const llmClient = createLLMClient("ollama", {
347
- baseUrl: "http://localhost:11434",
466
+ url: "http://localhost:11434/api/generate",
348
467
  model: "qwen3-coder:30b",
349
468
  options: { temperature: 0.2 }
350
469
  });
@@ -464,26 +583,7 @@ Once a package is installed, the language is automatically available for symbol
464
583
 
465
584
  #### Custom Language Configuration
466
585
 
467
- For languages without built-in mappings, create `~/.matryoshka/config.json` mapping tree-sitter node types to symbol kinds (`function`, `method`, `class`, `interface`, `type`, `struct`, `enum`, `trait`, `module`, `variable`, `constant`, `property`):
468
-
469
- ```json
470
- {
471
- "grammars": {
472
- "ocaml": {
473
- "package": "tree-sitter-ocaml",
474
- "extensions": [".ml", ".mli"],
475
- "moduleExport": "ocaml",
476
- "symbols": {
477
- "value_definition": "function",
478
- "type_definition": "type",
479
- "module_definition": "module"
480
- }
481
- }
482
- }
483
- }
484
- ```
485
-
486
- Use the [tree-sitter playground](https://tree-sitter.github.io/tree-sitter/playground) to explore node types for your language.
586
+ For languages without built-in mappings, add a `grammars` entry to your config see the [Configuration](#configuration) section for the full example and details.
487
587
 
488
588
  ### Control Flow
489
589
 
@@ -4,7 +4,7 @@
4
4
  },
5
5
  "providers": {
6
6
  "ollama": {
7
- "baseUrl": "http://localhost:11434",
7
+ "url": "http://localhost:11434/api/generate",
8
8
  "model": "qwen3-coder:30b",
9
9
  "options": {
10
10
  "temperature": 0.2,
@@ -12,12 +12,20 @@
12
12
  }
13
13
  },
14
14
  "deepseek": {
15
- "baseUrl": "https://api.deepseek.com",
15
+ "url": "https://api.deepseek.com/chat/completions",
16
16
  "apiKey": "${DEEPSEEK_API_KEY}",
17
17
  "model": "deepseek-chat",
18
18
  "options": {
19
19
  "temperature": 0.2
20
20
  }
21
+ },
22
+ "glm": {
23
+ "url": "https://open.bigmodel.cn/api/paas/v4/chat/completions",
24
+ "apiKey": "${ZHIPU_API_KEY}",
25
+ "model": "glm-4-plus",
26
+ "options": {
27
+ "temperature": 0.2
28
+ }
21
29
  }
22
30
  },
23
31
  "rlm": {
@@ -1 +1 @@
1
- {"version":3,"file":"nucleus.d.ts","sourceRoot":"","sources":["../../src/adapters/nucleus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,YAAY,CAAC;AA6bzD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,YAAY,CAWnD"}
1
+ {"version":3,"file":"nucleus.d.ts","sourceRoot":"","sources":["../../src/adapters/nucleus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,YAAY,CAAC;AAkdzD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,YAAY,CAWnD"}
@@ -18,56 +18,50 @@ function buildSystemPrompt(contextLength, toolInterfaces, hints) {
18
18
  if (!Number.isFinite(contextLength) || contextLength < 0)
19
19
  contextLength = 0;
20
20
  const sizeCategory = contextLength < 2000 ? "SMALL" : "LARGE";
21
- return `Analyze document. ONE command per turn.
21
+ return `ONE command per turn.
22
22
 
23
23
  SEARCH:
24
- (grep "pattern") → matching lines w/ line numbers
25
- (lines START END) get line range (1-indexed)
24
+ (grep "pat") → matched lines + lineNums
25
+ (lines START END) → line range, 1-indexed
26
26
 
27
- CHUNK (slice document before mapping over it — for too-large docs):
28
- (chunk_by_size N) → N-char slices
29
- (chunk_by_lines N) → N-line slices
30
- (chunk_by_regex "pat") slices split on regex (e.g. "\\n\\n")
31
- feed to (map … (lambda c (llm_query "summarize: {chunk}" (chunk c))))
32
- to fire a sub-LLM per chunk of a document too big for the root window
27
+ CHUNK (slice big doc for map):
28
+ (chunk_by_size N) → N-char slices
29
+ (chunk_by_lines N) → N-line slices
30
+ (chunk_by_regex "pat") → split on regex
31
+ use w/ (map … (lambda c (llm_query "..." (chunk c))))
33
32
 
34
33
  TRANSFORM:
35
34
  (filter RESULTS (lambda x (match x "pat" 0)))
36
35
  (map RESULTS (lambda x (match x "pat" 1)))
37
36
  (count RESULTS) (sum RESULTS)
38
37
 
39
- SUB-LLM (semantic work on what grep/filter can't express):
40
- (llm_query "Summarize the data below: {items}" (items RESULTS))
41
- one sub-LLM call over the whole binding
42
- (map RESULTS (lambda x (llm_query "classify: {item}" (item x))))
43
- — one sub-LLM call PER ITEM, returns an array of strings
44
- (filter RESULTS (lambda x (match (llm_query "keep?: {item}" (item x)) "keep" 0)))
45
- — semantic predicate, keep items whose sub-LLM response matches
38
+ SUB-LLM (work grep can't do):
39
+ (llm_query "...{items}" (items RESULTS)) → one call over binding
40
+ (map RESULTS (lambda x (llm_query "..." (item x)))) → per-item
41
+ (filter RESULTS (lambda x (match (llm_query "..." (item x)) "keep" 0)))
46
42
  Rules:
47
- prompt is a literal string with {name} placeholders
48
- each (name TERM) fills one placeholder with TERM's evaluated value
49
- use for open-ended semantic tasks (classification, summarization,
50
- paraphrase) that don't reduce to regex patterns
43
+ prompt literal w/ {name} placeholders
44
+ each (name TERM) fills one placeholder
45
+ use for classify/summarize/paraphrase, not regex
51
46
 
52
- CODE (when analyzing code):
47
+ CODE:
53
48
  (list_symbols) (list_symbols "function")
54
49
  (get_symbol_body "name") (find_references "name")
55
- (callers "name") (callees "name")
56
- (ancestors "Class") (descendants "Class")
57
- (implementations "IFace") (dependents "name")
58
- (symbol_graph "name" depth)
59
- (communities) (community_of "name")
60
- (god_nodes) (god_nodes 5)
61
- (surprising_connections) (bridge_nodes)
62
- (suggest_questions) (graph_report)
50
+ (callers "name") (callees "name")
51
+ (ancestors "Class") (descendants "Class")
52
+ (implementations "IFace") (dependents "name")
53
+ (symbol_graph "name" depth)
54
+ (communities) (community_of "name")
55
+ (god_nodes) (god_nodes 5)
56
+ (surprising_connections) (bridge_nodes)
57
+ (suggest_questions) (graph_report)
63
58
 
64
- MULTI-LINE: grep keyword → get lineNum → (lines N M)
65
- QUERY MAP: count→count, total/sum→sum, list→grep+FINAL
59
+ MULTI-LINE: grep keyword → lineNum → (lines N M)
60
+ QUERY: count→count, sum/total→sum, list→grep+FINAL
66
61
  ANSWER: <<<FINAL>>>answer<<<END>>>
67
- for large answers, use FINAL_VAR(name) to reference a binding:
68
- <<<FINAL>>>FINAL_VAR(_2)<<<END>>> — substitutes _2's full value
69
- <<<FINAL>>>The matches: FINAL_VAR(RESULTS)<<<END>>>
70
- — use this when inlining a large result would blow the context window
62
+ big answer: FINAL_VAR(name) refs binding
63
+ <<<FINAL>>>FINAL_VAR(_2)<<<END>>>
64
+ <<<FINAL>>>matches: FINAL_VAR(RESULTS)<<<END>>>
71
65
 
72
66
  ${hints?.hintsText || ""}${hints?.selfCorrectionText || ""}`;
73
67
  }
@@ -210,7 +204,31 @@ function extractCode(response) {
210
204
  }
211
205
  // Check for plain S-expression in raw text
212
206
  // Find opening paren and balance to closing
213
- const KNOWN_COMMANDS = ["grep", "filter", "map", "reduce", "count", "sum", "lines", "fuzzy_search", "bm25", "semantic", "fuse", "dampen", "rerank", "text_stats", "match", "replace", "split", "parseInt", "parseFloat", "parseDate", "parseCurrency", "parseNumber", "coerce", "extract", "synthesize", "lambda", "if", "classify", "predicate", "define-fn", "apply-fn", "list_symbols", "get_symbol_body", "find_references", "callers", "callees", "ancestors", "descendants", "implementations", "dependents", "symbol_graph", "communities", "community_of", "god_nodes", "surprising_connections", "bridge_nodes", "suggest_questions", "graph_report", "llm_query", "chunk_by_size", "chunk_by_lines", "chunk_by_regex"];
207
+ const KNOWN_COMMANDS = [
208
+ // Search / retrieval
209
+ "grep", "fuzzy_search", "bm25", "semantic", "fuse", "dampen", "rerank",
210
+ "text_stats", "lines",
211
+ // Collection ops
212
+ "filter", "map", "reduce", "count", "sum",
213
+ // String / numeric ops
214
+ "match", "replace", "split", "parseInt", "parseFloat", "parseDate",
215
+ "parseCurrency", "parseNumber", "coerce",
216
+ // Synthesis / lambda
217
+ "extract", "synthesize", "lambda", "if", "classify", "predicate",
218
+ "define-fn", "apply-fn",
219
+ // Symbol / graph ops
220
+ "list_symbols", "get_symbol_body", "find_references", "callers", "callees",
221
+ "ancestors", "descendants", "implementations", "dependents",
222
+ "symbol_graph", "communities", "community_of", "god_nodes",
223
+ "surprising_connections", "bridge_nodes", "suggest_questions",
224
+ "graph_report",
225
+ // Sub-LLM / recursive
226
+ "llm_query", "llm_batch", "rlm_query", "rlm_batch",
227
+ // Context + introspection
228
+ "context", "show_vars",
229
+ // Chunking
230
+ "chunk_by_size", "chunk_by_lines", "chunk_by_regex",
231
+ ];
214
232
  const MAX_SEXP_ITERATIONS = 200;
215
233
  let sexpIterations = 0;
216
234
  let searchFrom = firstParen;
@@ -254,7 +272,13 @@ function extractCode(response) {
254
272
  const expr = response.slice(parenIdx, end);
255
273
  // Check the expression starts with a known command
256
274
  const exprContent = expr.slice(1).trim(); // remove leading (
257
- const firstWord = exprContent.match(/^(\S+)/)?.[1];
275
+ // Match identifier characters only — terms like `(show_vars)`
276
+ // (no args) leave a `)` immediately after the head word, so a
277
+ // greedy `\S+` would capture "show_vars)" and miss the
278
+ // KNOWN_COMMANDS lookup. Constraining to identifier chars
279
+ // stops at the closing paren, the leading whitespace, or any
280
+ // non-identifier character.
281
+ const firstWord = exprContent.match(/^([A-Za-z_][A-Za-z0-9_-]*)/)?.[1];
258
282
  if (firstWord && KNOWN_COMMANDS.includes(firstWord)) {
259
283
  return expr;
260
284
  }
@@ -377,14 +401,14 @@ function extractFinalAnswer(response) {
377
401
  * Feedback when no LC term found
378
402
  */
379
403
  function getNoCodeFeedback() {
380
- return `Parse error: no valid command. Extract a keyword from the query and search:
404
+ return `No command. Extract keyword from query:
381
405
 
382
- (grep "KEYWORD") <- extract keyword from query, e.g., "SALES", "ERROR", "stage"
406
+ (grep "KEYWORD") e.g., "ERROR", "SALES", "stage"
383
407
 
384
- Then based on query type:
385
- - "list/show/what": output items directly <<<FINAL>>>item1, item2<<<END>>>
386
- - "how many/count": (count RESULTS)
387
- - "total/sum": (sum RESULTS)
408
+ Then by query type:
409
+ list/show/what <<<FINAL>>>item1, item2<<<END>>>
410
+ count (count RESULTS)
411
+ total/sum (sum RESULTS)
388
412
 
389
413
  Next:`;
390
414
  }
@@ -410,27 +434,25 @@ function getErrorFeedback(error, code) {
410
434
  function getSuccessFeedback(resultCount, previousCount, query) {
411
435
  const safeQuery = (query || "the query").slice(0, 200);
412
436
  if (resultCount === 0 && previousCount && previousCount > 0) {
413
- return `Filter matched nothing. Try different pattern.
437
+ return `Filter matched 0. Try different pattern.
414
438
 
415
439
  Next:`;
416
440
  }
417
441
  if (resultCount === 0) {
418
- return `No matches. Try different search terms.
442
+ return `No matches. Try different terms.
419
443
 
420
444
  Next:`;
421
445
  }
422
446
  if (resultCount && resultCount > 0) {
423
- return `Found ${resultCount} matches.
424
-
425
- Check: Do these results answer "${safeQuery}"?
426
- - For "list/show/what": output the items directly <<<FINAL>>>item1, item2...<<<END>>>
427
- - For "how many/count": (count RESULTS)
428
- - For "total/sum": (sum RESULTS)
429
- - If too broad: (filter RESULTS (lambda x (match x "specific_term" 0)))
447
+ return `Found ${resultCount} matches. Answer "${safeQuery}"?
448
+ list/show/what → <<<FINAL>>>item1, item2<<<END>>>
449
+ count (count RESULTS)
450
+ total/sum (sum RESULTS)
451
+ too broad (filter RESULTS (lambda x (match x "term" 0)))
430
452
 
431
453
  Next:`;
432
454
  }
433
- return `Done. Output your answer.
455
+ return `Done. Output answer.
434
456
 
435
457
  Next:`;
436
458
  }
@@ -439,12 +461,11 @@ Next:`;
439
461
  */
440
462
  function getRepeatedCodeFeedback(resultCount) {
441
463
  if (resultCount === 0) {
442
- return `Already tried. Use different keyword.
464
+ return `Already tried. Try different keyword.
443
465
 
444
466
  Next:`;
445
467
  }
446
468
  return `Already done. RESULTS has ${resultCount ?? "your"} data.
447
-
448
469
  Output: (sum RESULTS) or <<<FINAL>>>answer<<<END>>>
449
470
 
450
471
  Next:`;
@@ -1 +1 @@
1
- {"version":3,"file":"nucleus.js","sourceRoot":"","sources":["../../src/adapters/nucleus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nucleus.js","sourceRoot":"","sources":["../../src/adapters/nucleus.ts"],"names":[],"mappings":"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"}
@@ -1,55 +1,14 @@
1
1
  /**
2
- * Grammar configuration loader
2
+ * Grammar configuration helpers
3
3
  *
4
- * Loads grammar configurations from ~/.matryoshka/config.json
4
+ * Reads grammar configurations from the unified config file
5
5
  * and merges with built-in grammars.
6
6
  */
7
- import type { SymbolKind } from "../treesitter/types.js";
8
- /**
9
- * Grammar configuration for a language
10
- */
11
- export interface GrammarConfig {
12
- /** npm package name (e.g., "tree-sitter-rust") */
13
- package: string;
14
- /** File extensions (e.g., [".rs"]) */
15
- extensions: string[];
16
- /** Map of AST node types to symbol kinds */
17
- symbols: Record<string, SymbolKind>;
18
- /** Optional: how to extract the grammar from the module */
19
- moduleExport?: string;
20
- }
21
- /**
22
- * Full configuration file structure
23
- */
24
- export interface MatryoshkaConfig {
25
- /** Custom grammar configurations */
26
- grammars?: Record<string, GrammarConfig>;
27
- }
28
- /**
29
- * Default config directory and file paths
30
- */
31
- export declare const CONFIG_DIR: string;
32
- export declare const CONFIG_FILE: string;
33
- export declare function loadConfig(): MatryoshkaConfig;
34
- /**
35
- * Ensure config directory exists
36
- */
37
- export declare function ensureConfigDir(): void;
38
- /**
39
- * Save configuration to ~/.matryoshka/config.json
40
- */
41
- export declare function saveConfig(config: MatryoshkaConfig): void;
42
- /**
43
- * Get custom grammars from config
44
- */
45
- export declare function getCustomGrammars(): Record<string, GrammarConfig>;
46
- export declare function addCustomGrammar(language: string, grammar: GrammarConfig): void;
47
- /**
48
- * Remove a custom grammar from config
49
- */
50
- export declare function removeCustomGrammar(language: string): boolean;
51
- /**
52
- * Example config for reference
53
- */
54
- export declare const EXAMPLE_CONFIG: MatryoshkaConfig;
7
+ import { type Config, type GrammarConfig } from "../config.js";
8
+ export type { GrammarConfig } from "../config.js";
9
+ export { CONFIG_DIR, CONFIG_FILE } from "./paths.js";
10
+ export declare function getCustomGrammars(): Promise<Record<string, GrammarConfig>>;
11
+ export declare function addCustomGrammar(language: string, grammar: GrammarConfig): Promise<void>;
12
+ export declare function removeCustomGrammar(language: string): Promise<boolean>;
13
+ export declare const EXAMPLE_CONFIG: Config;
55
14
  //# sourceMappingURL=grammar-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grammar-config.d.ts","sourceRoot":"","sources":["../../src/config/grammar-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACpC,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAE1C;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,QAAiC,CAAC;AACzD,eAAO,MAAM,WAAW,QAAkC,CAAC;AAQ3D,wBAAgB,UAAU,IAAI,gBAAgB,CAiB7C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAItC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAGzD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAGjE;AAWD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAuC/E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAQ7D;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,gBAkB5B,CAAC"}
1
+ {"version":3,"file":"grammar-config.d.ts","sourceRoot":"","sources":["../../src/config/grammar-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAA0B,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAGvF,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAErD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAGhF;AAQD,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC9F;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ5E;AAED,eAAO,MAAM,cAAc,EAAE,MAuB5B,CAAC"}