matryoshka-rlm 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -42
- package/dist/rlm.d.ts.map +1 -1
- package/dist/rlm.js +14 -5
- package/dist/rlm.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -73,7 +73,7 @@ rlm --help
|
|
|
73
73
|
|
|
74
74
|
### MCP Integration
|
|
75
75
|
|
|
76
|
-
RLM includes an MCP (Model Context Protocol) server that exposes the `analyze_document` tool. This allows
|
|
76
|
+
RLM includes an MCP (Model Context Protocol) server that exposes the `analyze_document` tool. This allows coding agents like [Crush](https://github.com/charmbracelet/crush) to analyze documents that exceed its context window.
|
|
77
77
|
|
|
78
78
|
#### MCP Tool: `analyze_document`
|
|
79
79
|
|
|
@@ -84,58 +84,25 @@ RLM includes an MCP (Model Context Protocol) server that exposes the `analyze_do
|
|
|
84
84
|
| `maxTurns` | number | No | Maximum exploration turns (default: 10) |
|
|
85
85
|
| `timeoutMs` | number | No | Timeout per turn in milliseconds (default: 30000) |
|
|
86
86
|
|
|
87
|
-
####
|
|
87
|
+
#### Crush MCP example
|
|
88
88
|
|
|
89
|
-
Add
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
# Add to user config (available in all projects)
|
|
93
|
-
claude mcp add --transport stdio --scope user rlm -- rlm-mcp
|
|
94
|
-
|
|
95
|
-
# Or add to current project only
|
|
96
|
-
claude mcp add --transport stdio rlm -- rlm-mcp
|
|
97
|
-
|
|
98
|
-
# Verify it's connected
|
|
99
|
-
claude mcp list
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Then ask Claude to analyze documents:
|
|
103
|
-
|
|
104
|
-
> Use the analyze_document tool to find all sales figures in /path/to/report.txt and calculate the total
|
|
105
|
-
|
|
106
|
-
#### Claude Desktop
|
|
107
|
-
|
|
108
|
-
Add to your Claude Desktop config file:
|
|
109
|
-
|
|
110
|
-
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
111
|
-
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
112
|
-
|
|
113
|
-
Using npx (no global install needed):
|
|
89
|
+
Add to your `crush.json` config:
|
|
114
90
|
|
|
115
91
|
```json
|
|
116
92
|
{
|
|
117
|
-
"
|
|
118
|
-
"rlm": {
|
|
119
|
-
"command": "npx",
|
|
120
|
-
"args": ["-y", "-p", "matryoshka-rlm", "rlm-mcp"]
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
Or if installed globally:
|
|
127
|
-
|
|
128
|
-
```json
|
|
129
|
-
{
|
|
130
|
-
"mcpServers": {
|
|
93
|
+
"mcp": {
|
|
131
94
|
"rlm": {
|
|
95
|
+
"type": "stdio",
|
|
132
96
|
"command": "rlm-mcp"
|
|
133
97
|
}
|
|
134
98
|
}
|
|
135
99
|
}
|
|
136
100
|
```
|
|
101
|
+
Then ask Crush to analyze documents:
|
|
102
|
+
|
|
103
|
+
> Use the analyze_document tool to find all sales figures in /path/to/report.txt and calculate the total
|
|
137
104
|
|
|
138
|
-
|
|
105
|
+
See [Crush](https://github.com/charmbracelet/crush) for more details.
|
|
139
106
|
|
|
140
107
|
#### Testing the MCP Server
|
|
141
108
|
|
package/dist/rlm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rlm.d.ts","sourceRoot":"","sources":["../src/rlm.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACrB,MAAM,CAwFR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU3D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAClC,MAAM,GAAG,cAAc,GAAG,IAAI,CAgChC;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"rlm.d.ts","sourceRoot":"","sources":["../src/rlm.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACrB,MAAM,CAwFR;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU3D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAClC,MAAM,GAAG,cAAc,GAAG,IAAI,CAgChC;AAED;;GAEG;AACH,wBAAsB,MAAM,CAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,OAAO,CAAC,CAgJlB"}
|
package/dist/rlm.js
CHANGED
|
@@ -47,7 +47,7 @@ ${toolInterfaces}
|
|
|
47
47
|
memory.push({ finding: "important detail", location: 42 });
|
|
48
48
|
\`\`\`
|
|
49
49
|
|
|
50
|
-
4. **Log progress**: Use \`console.log()\` to show what you're discovering.
|
|
50
|
+
4. **Log progress**: Use \`console.log()\` to show what you're discovering. Note: Output is truncated to ~4000 chars, so peek at data with slices like \`context.slice(0, 500)\` rather than printing large blocks.
|
|
51
51
|
|
|
52
52
|
5. **Avoid iterating full context**: Do NOT loop from 0 to ${formattedLength}. Sample first, then target specific sections.
|
|
53
53
|
|
|
@@ -231,20 +231,29 @@ export async function runRLM(query, filePath, options) {
|
|
|
231
231
|
log(`[Turn ${turn}] Applied auto-fixes: ${fixResult.fixes.join(", ")}`);
|
|
232
232
|
}
|
|
233
233
|
const result = await sandbox.execute(codeToRun, turnTimeoutMs);
|
|
234
|
-
// Build execution feedback
|
|
234
|
+
// Build execution feedback with truncation to minimize context passing
|
|
235
|
+
const MAX_OUTPUT_LENGTH = 4000; // Max chars per output section
|
|
236
|
+
const truncate = (s, max = MAX_OUTPUT_LENGTH) => {
|
|
237
|
+
if (s.length <= max)
|
|
238
|
+
return s;
|
|
239
|
+
const half = Math.floor(max / 2) - 20;
|
|
240
|
+
return s.slice(0, half) + `\n... [${s.length - max} chars truncated] ...\n` + s.slice(-half);
|
|
241
|
+
};
|
|
235
242
|
let feedback = `Turn ${turn} Sandbox execution:\n`;
|
|
236
243
|
if (result.logs.length > 0) {
|
|
237
244
|
log(`[Turn ${turn}] Console output:`);
|
|
238
245
|
result.logs.forEach(l => log(` ${l}`));
|
|
239
|
-
|
|
246
|
+
const logsText = result.logs.join("\n");
|
|
247
|
+
feedback += `Logs:\n${truncate(logsText)}\n`;
|
|
240
248
|
}
|
|
241
249
|
if (result.error) {
|
|
242
250
|
log(`[Turn ${turn}] Error: ${result.error}`);
|
|
243
251
|
feedback += `Error: ${result.error}\n`;
|
|
244
252
|
}
|
|
245
253
|
else if (result.result !== undefined && result.result !== null) {
|
|
246
|
-
|
|
247
|
-
|
|
254
|
+
const resultStr = JSON.stringify(result.result, null, 2);
|
|
255
|
+
log(`[Turn ${turn}] Result: ${resultStr}`);
|
|
256
|
+
feedback += `Result: ${truncate(resultStr)}\n`;
|
|
248
257
|
}
|
|
249
258
|
// Remind about final answer format
|
|
250
259
|
feedback += `\nIf you have enough information, provide your final answer using this exact format:\n<<<FINAL>>>\n[Write your complete answer to the query here based on the data you found]\n<<<END>>>\n\nOtherwise, write more JavaScript code to continue exploring.`;
|
package/dist/rlm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rlm.js","sourceRoot":"","sources":["../src/rlm.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rlm.js","sourceRoot":"","sources":["../src/rlm.ts"],"names":[],"mappings":"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"}
|