@cloudwarriors-ai/rlm 0.1.7 → 0.1.9
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/dist/application/handlers/llm-query-handler.d.ts +67 -0
- package/dist/application/handlers/llm-query-handler.d.ts.map +1 -0
- package/dist/application/handlers/llm-query-handler.js +169 -0
- package/dist/application/handlers/llm-query-handler.js.map +1 -0
- package/dist/application/query-handler.d.ts +23 -2
- package/dist/application/query-handler.d.ts.map +1 -1
- package/dist/application/query-handler.js +215 -112
- package/dist/application/query-handler.js.map +1 -1
- package/dist/cli/index.js +0 -0
- package/dist/domain/constants.d.ts +124 -0
- package/dist/domain/constants.d.ts.map +1 -0
- package/dist/domain/constants.js +148 -0
- package/dist/domain/constants.js.map +1 -0
- package/dist/domain/errors/index.d.ts +1 -0
- package/dist/domain/errors/index.d.ts.map +1 -1
- package/dist/domain/errors/index.js +2 -0
- package/dist/domain/errors/index.js.map +1 -1
- package/dist/domain/errors/token-budget-error.d.ts +47 -0
- package/dist/domain/errors/token-budget-error.d.ts.map +1 -0
- package/dist/domain/errors/token-budget-error.js +41 -0
- package/dist/domain/errors/token-budget-error.js.map +1 -0
- package/dist/domain/interfaces/code-executor.d.ts +32 -2
- package/dist/domain/interfaces/code-executor.d.ts.map +1 -1
- package/dist/domain/interfaces/event-emitter.d.ts +55 -1
- package/dist/domain/interfaces/event-emitter.d.ts.map +1 -1
- package/dist/domain/interfaces/llm-provider.d.ts +4 -0
- package/dist/domain/interfaces/llm-provider.d.ts.map +1 -1
- package/dist/domain/services/cost-calculator.d.ts.map +1 -1
- package/dist/domain/services/cost-calculator.js +9 -4
- package/dist/domain/services/cost-calculator.js.map +1 -1
- package/dist/domain/types/config.d.ts +17 -0
- package/dist/domain/types/config.d.ts.map +1 -1
- package/dist/domain/types/config.js +41 -0
- package/dist/domain/types/config.js.map +1 -1
- package/dist/domain/types/index-schema.d.ts +206 -0
- package/dist/domain/types/index-schema.d.ts.map +1 -0
- package/dist/domain/types/index-schema.js +41 -0
- package/dist/domain/types/index-schema.js.map +1 -0
- package/dist/domain/types/index.d.ts +2 -0
- package/dist/domain/types/index.d.ts.map +1 -1
- package/dist/domain/types/index.js +4 -0
- package/dist/domain/types/index.js.map +1 -1
- package/dist/domain/utils/timer.d.ts +34 -0
- package/dist/domain/utils/timer.d.ts.map +1 -0
- package/dist/domain/utils/timer.js +39 -0
- package/dist/domain/utils/timer.js.map +1 -0
- package/dist/factory/create-rlm.d.ts.map +1 -1
- package/dist/factory/create-rlm.js +1 -0
- package/dist/factory/create-rlm.js.map +1 -1
- package/dist/infrastructure/llm/openrouter-provider.d.ts +1 -0
- package/dist/infrastructure/llm/openrouter-provider.d.ts.map +1 -1
- package/dist/infrastructure/llm/openrouter-provider.js +30 -9
- package/dist/infrastructure/llm/openrouter-provider.js.map +1 -1
- package/dist/infrastructure/llm/prompts/index.d.ts +1 -1
- package/dist/infrastructure/llm/prompts/index.d.ts.map +1 -1
- package/dist/infrastructure/llm/prompts/index.js +1 -1
- package/dist/infrastructure/llm/prompts/index.js.map +1 -1
- package/dist/infrastructure/llm/prompts/system-prompt.d.ts +14 -1
- package/dist/infrastructure/llm/prompts/system-prompt.d.ts.map +1 -1
- package/dist/infrastructure/llm/prompts/system-prompt.js +186 -52
- package/dist/infrastructure/llm/prompts/system-prompt.js.map +1 -1
- package/dist/infrastructure/logging/debug-logger.d.ts +29 -0
- package/dist/infrastructure/logging/debug-logger.d.ts.map +1 -0
- package/dist/infrastructure/logging/debug-logger.js +35 -0
- package/dist/infrastructure/logging/debug-logger.js.map +1 -0
- package/dist/infrastructure/sandbox/prelude/rlm_prelude.py +637 -41
- package/dist/infrastructure/sandbox/process-manager.d.ts +1 -0
- package/dist/infrastructure/sandbox/process-manager.d.ts.map +1 -1
- package/dist/infrastructure/sandbox/process-manager.js +19 -6
- package/dist/infrastructure/sandbox/process-manager.js.map +1 -1
- package/dist/infrastructure/sandbox/python-executor.d.ts +6 -2
- package/dist/infrastructure/sandbox/python-executor.d.ts.map +1 -1
- package/dist/infrastructure/sandbox/python-executor.js +138 -5
- package/dist/infrastructure/sandbox/python-executor.js.map +1 -1
- package/package.json +2 -1
- package/src/infrastructure/sandbox/prelude/rlm_prelude.py +637 -41
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-manager.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/sandbox/process-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"process-manager.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/sandbox/process-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO3C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,8BAA8B;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,wBAAwB;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEtB,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACjD,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3D,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;IAClD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,YAAY,CAAM;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM;IA0CpD;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzB;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAMhC;;OAEG;IACH,IAAI,CAAC,MAAM,GAAE,MAAM,CAAC,OAAmB,GAAG,IAAI;IAQ9C;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,OAAO,CAAC,aAAa;CAsCtB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,eAAe,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;;IAQrC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,aAAa;IA4B3C;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKlC;;OAEG;IACH,OAAO,IAAI,IAAI;IAOf;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
|
|
@@ -2,6 +2,8 @@ import { spawn } from 'node:child_process';
|
|
|
2
2
|
import { EventEmitter } from 'node:events';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { createDebugLogger } from '../logging/debug-logger.js';
|
|
6
|
+
const dbg = createDebugLogger('PM');
|
|
5
7
|
/**
|
|
6
8
|
* A managed Python process
|
|
7
9
|
*/
|
|
@@ -11,9 +13,12 @@ export class PythonProcess extends EventEmitter {
|
|
|
11
13
|
killed = false;
|
|
12
14
|
stdoutBuffer = '';
|
|
13
15
|
stderrBuffer = '';
|
|
16
|
+
startTime;
|
|
14
17
|
constructor(process, timeoutMs) {
|
|
15
18
|
super();
|
|
16
19
|
this.process = process;
|
|
20
|
+
this.startTime = Date.now();
|
|
21
|
+
dbg('PROCESS_CREATED', { pid: process.pid, timeoutMs });
|
|
17
22
|
// Set up timeout
|
|
18
23
|
this.timeout = setTimeout(() => {
|
|
19
24
|
this.kill('SIGKILL');
|
|
@@ -22,6 +27,7 @@ export class PythonProcess extends EventEmitter {
|
|
|
22
27
|
// Handle stdout
|
|
23
28
|
process.stdout?.on('data', (data) => {
|
|
24
29
|
const text = data.toString();
|
|
30
|
+
dbg('STDOUT_CHUNK', { pid: process.pid, bytes: data.length });
|
|
25
31
|
this.stdoutBuffer += text;
|
|
26
32
|
this.processOutput();
|
|
27
33
|
});
|
|
@@ -34,6 +40,7 @@ export class PythonProcess extends EventEmitter {
|
|
|
34
40
|
// Handle exit
|
|
35
41
|
process.on('exit', (code, signal) => {
|
|
36
42
|
clearTimeout(this.timeout);
|
|
43
|
+
dbg('EXIT', { pid: process.pid, code, signal, durationMs: Date.now() - this.startTime });
|
|
37
44
|
this.emit('exit', code, signal);
|
|
38
45
|
});
|
|
39
46
|
// Handle errors
|
|
@@ -46,6 +53,7 @@ export class PythonProcess extends EventEmitter {
|
|
|
46
53
|
* Send input to the process
|
|
47
54
|
*/
|
|
48
55
|
write(data) {
|
|
56
|
+
dbg('STDIN_WRITE', { pid: this.process.pid, bytes: data.length });
|
|
49
57
|
this.process.stdin?.write(data);
|
|
50
58
|
}
|
|
51
59
|
/**
|
|
@@ -53,6 +61,7 @@ export class PythonProcess extends EventEmitter {
|
|
|
53
61
|
*/
|
|
54
62
|
respond(response) {
|
|
55
63
|
const json = JSON.stringify(response);
|
|
64
|
+
dbg('RESPONSE', { pid: this.process.pid, bytes: json.length });
|
|
56
65
|
this.write(`__RESPONSE__:${json}\n`);
|
|
57
66
|
}
|
|
58
67
|
/**
|
|
@@ -93,6 +102,9 @@ export class PythonProcess extends EventEmitter {
|
|
|
93
102
|
* Process stdout to extract commands
|
|
94
103
|
*/
|
|
95
104
|
processOutput() {
|
|
105
|
+
// Check if buffer ends with newline (meaning all lines are complete)
|
|
106
|
+
// If not, the last line is incomplete and should be kept for next chunk
|
|
107
|
+
const bufferEndsWithNewline = this.stdoutBuffer.endsWith('\n');
|
|
96
108
|
// Look for command markers in output
|
|
97
109
|
const lines = this.stdoutBuffer.split('\n');
|
|
98
110
|
const remainingLines = [];
|
|
@@ -101,6 +113,7 @@ export class PythonProcess extends EventEmitter {
|
|
|
101
113
|
try {
|
|
102
114
|
const json = line.slice('__COMMAND__:'.length);
|
|
103
115
|
const command = JSON.parse(json);
|
|
116
|
+
dbg('COMMAND_RECEIVED', { pid: this.process.pid, type: command.type, payloadSize: json.length });
|
|
104
117
|
this.emit('command', command);
|
|
105
118
|
}
|
|
106
119
|
catch {
|
|
@@ -108,15 +121,13 @@ export class PythonProcess extends EventEmitter {
|
|
|
108
121
|
remainingLines.push(line);
|
|
109
122
|
}
|
|
110
123
|
}
|
|
111
|
-
else if (line.length > 0
|
|
124
|
+
else if (line.length > 0) {
|
|
112
125
|
remainingLines.push(line);
|
|
113
126
|
}
|
|
114
127
|
}
|
|
115
|
-
//
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
this.stdoutBuffer = lastLine;
|
|
119
|
-
remainingLines.pop();
|
|
128
|
+
// Only keep the last line if the buffer didn't end with newline (incomplete line)
|
|
129
|
+
if (!bufferEndsWithNewline && remainingLines.length > 0) {
|
|
130
|
+
this.stdoutBuffer = remainingLines.pop();
|
|
120
131
|
}
|
|
121
132
|
else {
|
|
122
133
|
this.stdoutBuffer = '';
|
|
@@ -144,6 +155,7 @@ export class ProcessManager {
|
|
|
144
155
|
*/
|
|
145
156
|
spawn(options) {
|
|
146
157
|
const pythonPath = process.env['PYTHON_PATH'] ?? 'python3';
|
|
158
|
+
dbg('SPAWN_START', { pythonPath, timeoutMs: options.timeoutMs });
|
|
147
159
|
const childProcess = spawn(pythonPath, ['-u', this.preludePath], {
|
|
148
160
|
cwd: options.cwd,
|
|
149
161
|
env: {
|
|
@@ -154,6 +166,7 @@ export class ProcessManager {
|
|
|
154
166
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
155
167
|
});
|
|
156
168
|
const pythonProcess = new PythonProcess(childProcess, options.timeoutMs);
|
|
169
|
+
dbg('SPAWN_COMPLETE', { pid: childProcess.pid });
|
|
157
170
|
this.activeProcesses.add(pythonProcess);
|
|
158
171
|
pythonProcess.on('exit', () => {
|
|
159
172
|
this.activeProcesses.delete(pythonProcess);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-manager.js","sourceRoot":"","sources":["../../../src/infrastructure/sandbox/process-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"process-manager.js","sourceRoot":"","sources":["../../../src/infrastructure/sandbox/process-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ICodeExecutor, ExecutionContext, ExecutionResult, ValidationResult } from '../../domain/interfaces/code-executor.js';
|
|
1
|
+
import type { ICodeExecutor, ExecutionContext, ExecutionResult, ValidationResult, PythonCommand } from '../../domain/interfaces/code-executor.js';
|
|
2
2
|
/**
|
|
3
3
|
* Configuration for Python executor
|
|
4
4
|
*/
|
|
@@ -20,7 +20,11 @@ export declare class PythonExecutor implements ICodeExecutor {
|
|
|
20
20
|
private pendingQueryReject;
|
|
21
21
|
constructor(config?: PythonExecutorConfig);
|
|
22
22
|
validate(code: string): ValidationResult;
|
|
23
|
-
execute(code: string, context: ExecutionContext
|
|
23
|
+
execute(code: string, context: ExecutionContext, onCommand?: (command: PythonCommand) => Promise<{
|
|
24
|
+
result: string;
|
|
25
|
+
} | {
|
|
26
|
+
error: string;
|
|
27
|
+
} | undefined>): Promise<ExecutionResult>;
|
|
24
28
|
respondToQuery(response: string): Promise<void>;
|
|
25
29
|
kill(): Promise<void>;
|
|
26
30
|
isReady(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python-executor.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/sandbox/python-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,gBAAgB,
|
|
1
|
+
{"version":3,"file":"python-executor.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/sandbox/python-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,aAAa,EAMd,MAAM,0CAA0C,CAAC;AA4ClD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAE9B,6CAA6C;IAC7C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IAExD,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,mBAAmB,CAA0C;IACrE,OAAO,CAAC,kBAAkB,CAAyC;gBAEvD,MAAM,GAAE,oBAAyB;IAS7C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAIlC,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,gBAAgB,EACzB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,GAClG,OAAO,CAAC,eAAe,CAAC;IAmOrB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B,OAAO,IAAI,OAAO;IAIlB,OAAO,CAAC,cAAc;CAoDvB"}
|
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
import { ExecutionError, ExecutionTimeoutError, CodeValidationError, } from '../../domain/errors/index.js';
|
|
2
2
|
import { ASTValidator } from './ast-validator.js';
|
|
3
3
|
import { ProcessManager } from './process-manager.js';
|
|
4
|
+
import { writeFileSync, unlinkSync, mkdirSync } from 'node:fs';
|
|
5
|
+
import { tmpdir } from 'node:os';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
import { randomBytes } from 'node:crypto';
|
|
8
|
+
import { STDIN_SIZE_THRESHOLD, MAX_CONCURRENT_BATCH_QUERIES, DEFAULT_PYTHON_TIMEOUT_MS, PROTOCOL_INIT, PROTOCOL_INIT_FILE, } from '../../domain/constants.js';
|
|
9
|
+
import { createDebugLogger } from '../logging/debug-logger.js';
|
|
10
|
+
const dbg = createDebugLogger('PE');
|
|
11
|
+
/**
|
|
12
|
+
* Execute async functions with concurrency limit to avoid resource exhaustion.
|
|
13
|
+
* Processes items in chunks of `limit` at a time.
|
|
14
|
+
*/
|
|
15
|
+
async function executeWithConcurrencyLimit(items, fn, limit) {
|
|
16
|
+
const results = [];
|
|
17
|
+
const startTime = Date.now();
|
|
18
|
+
for (let i = 0; i < items.length; i += limit) {
|
|
19
|
+
const chunk = items.slice(i, i + limit);
|
|
20
|
+
dbg('BATCH_CHUNK', { processing: `${i + 1}-${i + chunk.length}`, total: items.length });
|
|
21
|
+
const chunkResults = await Promise.all(chunk.map(fn));
|
|
22
|
+
results.push(...chunkResults);
|
|
23
|
+
}
|
|
24
|
+
dbg('BATCH_COMPLETE', { total: items.length, durationMs: Date.now() - startTime });
|
|
25
|
+
return results;
|
|
26
|
+
}
|
|
4
27
|
/**
|
|
5
28
|
* Python code executor implementation
|
|
6
29
|
*/
|
|
@@ -14,7 +37,7 @@ export class PythonExecutor {
|
|
|
14
37
|
constructor(config = {}) {
|
|
15
38
|
this.config = {
|
|
16
39
|
strictMode: config.strictMode ?? true,
|
|
17
|
-
defaultTimeoutMs: config.defaultTimeoutMs ??
|
|
40
|
+
defaultTimeoutMs: config.defaultTimeoutMs ?? DEFAULT_PYTHON_TIMEOUT_MS,
|
|
18
41
|
};
|
|
19
42
|
this.validator = new ASTValidator(this.config.strictMode);
|
|
20
43
|
this.processManager = new ProcessManager();
|
|
@@ -22,7 +45,7 @@ export class PythonExecutor {
|
|
|
22
45
|
validate(code) {
|
|
23
46
|
return this.validator.validate(code);
|
|
24
47
|
}
|
|
25
|
-
async execute(code, context) {
|
|
48
|
+
async execute(code, context, onCommand) {
|
|
26
49
|
// Validate code first
|
|
27
50
|
const validation = this.validate(code);
|
|
28
51
|
if (!validation.valid) {
|
|
@@ -39,6 +62,13 @@ export class PythonExecutor {
|
|
|
39
62
|
let stderr = '';
|
|
40
63
|
let result;
|
|
41
64
|
let error;
|
|
65
|
+
let finalAnswerConfidence;
|
|
66
|
+
// Calculate context size for logging
|
|
67
|
+
let contextSize = 0;
|
|
68
|
+
for (const [, value] of context.variables) {
|
|
69
|
+
contextSize += value.length;
|
|
70
|
+
}
|
|
71
|
+
dbg('EXECUTE_START', { session: context.sessionId, depth: context.depth, contextSize, codeLen: code.length });
|
|
42
72
|
return new Promise((resolve, reject) => {
|
|
43
73
|
const timeoutMs = context.timeoutMs || this.config.defaultTimeoutMs;
|
|
44
74
|
// Spawn Python process
|
|
@@ -53,17 +83,76 @@ export class PythonExecutor {
|
|
|
53
83
|
stderr += data;
|
|
54
84
|
});
|
|
55
85
|
// Handle commands from Python
|
|
56
|
-
process.on('command', (command) => {
|
|
57
|
-
|
|
86
|
+
process.on('command', async (command) => {
|
|
87
|
+
const converted = this.convertCommand(command);
|
|
88
|
+
commands.push(converted);
|
|
58
89
|
if (command.type === 'set_result') {
|
|
59
90
|
const payload = command.payload;
|
|
60
91
|
result = payload.result;
|
|
61
92
|
}
|
|
93
|
+
// Handle set_result_final - early termination signal
|
|
94
|
+
if (command.type === 'set_result_final') {
|
|
95
|
+
const payload = command.payload;
|
|
96
|
+
result = payload.result;
|
|
97
|
+
finalAnswerConfidence = payload.confidence;
|
|
98
|
+
}
|
|
99
|
+
// Handle llm_query DURING execution (fixes deadlock)
|
|
100
|
+
if (command.type === 'llm_query' && onCommand) {
|
|
101
|
+
// CRITICAL: Capture parent process reference BEFORE await
|
|
102
|
+
// Recursive calls will overwrite this.currentProcess with sub-processes
|
|
103
|
+
const parentProcess = process;
|
|
104
|
+
try {
|
|
105
|
+
const response = await onCommand(converted);
|
|
106
|
+
if (response && parentProcess && parentProcess.isRunning()) {
|
|
107
|
+
// Pass response object directly - it already has the correct shape
|
|
108
|
+
parentProcess.respond(response);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
if (parentProcess && parentProcess.isRunning()) {
|
|
113
|
+
parentProcess.respond({ error: err.message });
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// Handle llm_query_batch for PARALLEL processing (per MIT RLM paper)
|
|
118
|
+
// Uses concurrency limit to avoid resource exhaustion from spawning too many processes
|
|
119
|
+
if (command.type === 'llm_query_batch' && onCommand) {
|
|
120
|
+
const parentProcess = process;
|
|
121
|
+
const batchCommand = converted;
|
|
122
|
+
dbg('BATCH_START', { total: batchCommand.queries.length, limit: MAX_CONCURRENT_BATCH_QUERIES });
|
|
123
|
+
try {
|
|
124
|
+
// Process queries with concurrency limit to avoid resource exhaustion
|
|
125
|
+
const processSingleQuery = async (q) => {
|
|
126
|
+
const singleCommand = {
|
|
127
|
+
type: 'llm_query',
|
|
128
|
+
query: q.query,
|
|
129
|
+
contextVariables: q.contextVariables,
|
|
130
|
+
};
|
|
131
|
+
try {
|
|
132
|
+
const response = await onCommand(singleCommand);
|
|
133
|
+
return response && 'result' in response ? response.result : '';
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
return { error: err.message };
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
const results = await executeWithConcurrencyLimit(batchCommand.queries, processSingleQuery, MAX_CONCURRENT_BATCH_QUERIES);
|
|
140
|
+
if (parentProcess && parentProcess.isRunning()) {
|
|
141
|
+
parentProcess.respond({ results });
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
if (parentProcess && parentProcess.isRunning()) {
|
|
146
|
+
parentProcess.respond({ error: err.message });
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
62
150
|
});
|
|
63
151
|
// Handle process exit
|
|
64
152
|
process.on('exit', (code, signal) => {
|
|
65
153
|
this.currentProcess = null;
|
|
66
154
|
const executionTimeMs = Date.now() - startTime;
|
|
155
|
+
dbg('EXECUTE_END', { session: context.sessionId, depth: context.depth, durationMs: executionTimeMs, code, signal });
|
|
67
156
|
// Check for errors in output
|
|
68
157
|
const errorMatch = stdout.match(/__ERROR__:(.+)/);
|
|
69
158
|
if (errorMatch) {
|
|
@@ -97,6 +186,7 @@ export class PythonExecutor {
|
|
|
97
186
|
error,
|
|
98
187
|
executionTimeMs,
|
|
99
188
|
commands,
|
|
189
|
+
finalAnswerConfidence,
|
|
100
190
|
});
|
|
101
191
|
});
|
|
102
192
|
// Handle process error
|
|
@@ -122,7 +212,32 @@ export class PythonExecutor {
|
|
|
122
212
|
context: contextObj,
|
|
123
213
|
code,
|
|
124
214
|
};
|
|
125
|
-
|
|
215
|
+
const payload = JSON.stringify(initCommand);
|
|
216
|
+
// For large payloads, use temp file to avoid stdin buffer issues
|
|
217
|
+
if (payload.length > STDIN_SIZE_THRESHOLD) {
|
|
218
|
+
const tempDir = join(tmpdir(), 'rlm-context');
|
|
219
|
+
try {
|
|
220
|
+
mkdirSync(tempDir, { recursive: true });
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
223
|
+
// Directory exists
|
|
224
|
+
}
|
|
225
|
+
const tempFile = join(tempDir, `ctx-${randomBytes(8).toString('hex')}.json`);
|
|
226
|
+
writeFileSync(tempFile, payload, 'utf-8');
|
|
227
|
+
process.write(`${PROTOCOL_INIT_FILE}:${tempFile}\n`);
|
|
228
|
+
// Clean up temp file after process exits
|
|
229
|
+
process.on('exit', () => {
|
|
230
|
+
try {
|
|
231
|
+
unlinkSync(tempFile);
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
// Ignore cleanup errors
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
process.write(`${PROTOCOL_INIT}:${payload}\n`);
|
|
240
|
+
}
|
|
126
241
|
});
|
|
127
242
|
}
|
|
128
243
|
async respondToQuery(response) {
|
|
@@ -159,6 +274,16 @@ export class PythonExecutor {
|
|
|
159
274
|
contextVariables: payload.context,
|
|
160
275
|
};
|
|
161
276
|
}
|
|
277
|
+
case 'llm_query_batch': {
|
|
278
|
+
const payload = command.payload;
|
|
279
|
+
return {
|
|
280
|
+
type: 'llm_query_batch',
|
|
281
|
+
queries: payload.queries.map((q) => ({
|
|
282
|
+
query: q.query,
|
|
283
|
+
contextVariables: q.context,
|
|
284
|
+
})),
|
|
285
|
+
};
|
|
286
|
+
}
|
|
162
287
|
case 'set_result': {
|
|
163
288
|
const payload = command.payload;
|
|
164
289
|
return {
|
|
@@ -166,6 +291,14 @@ export class PythonExecutor {
|
|
|
166
291
|
result: payload.result,
|
|
167
292
|
};
|
|
168
293
|
}
|
|
294
|
+
case 'set_result_final': {
|
|
295
|
+
const payload = command.payload;
|
|
296
|
+
return {
|
|
297
|
+
type: 'set_result_final',
|
|
298
|
+
result: payload.result,
|
|
299
|
+
confidence: payload.confidence,
|
|
300
|
+
};
|
|
301
|
+
}
|
|
169
302
|
case 'set_variable': {
|
|
170
303
|
const payload = command.payload;
|
|
171
304
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python-executor.js","sourceRoot":"","sources":["../../../src/infrastructure/sandbox/python-executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"python-executor.js","sourceRoot":"","sources":["../../../src/infrastructure/sandbox/python-executor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudwarriors-ai/rlm",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "Recursive Language Model - Process massive contexts through recursive LLM decomposition",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@types/node": "^20.14.0",
|
|
62
|
+
"dotenv": "^17.2.3",
|
|
62
63
|
"typescript": "^5.4.5",
|
|
63
64
|
"vitest": "^1.6.0"
|
|
64
65
|
}
|