@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.
Files changed (76) hide show
  1. package/dist/application/handlers/llm-query-handler.d.ts +67 -0
  2. package/dist/application/handlers/llm-query-handler.d.ts.map +1 -0
  3. package/dist/application/handlers/llm-query-handler.js +169 -0
  4. package/dist/application/handlers/llm-query-handler.js.map +1 -0
  5. package/dist/application/query-handler.d.ts +23 -2
  6. package/dist/application/query-handler.d.ts.map +1 -1
  7. package/dist/application/query-handler.js +215 -112
  8. package/dist/application/query-handler.js.map +1 -1
  9. package/dist/cli/index.js +0 -0
  10. package/dist/domain/constants.d.ts +124 -0
  11. package/dist/domain/constants.d.ts.map +1 -0
  12. package/dist/domain/constants.js +148 -0
  13. package/dist/domain/constants.js.map +1 -0
  14. package/dist/domain/errors/index.d.ts +1 -0
  15. package/dist/domain/errors/index.d.ts.map +1 -1
  16. package/dist/domain/errors/index.js +2 -0
  17. package/dist/domain/errors/index.js.map +1 -1
  18. package/dist/domain/errors/token-budget-error.d.ts +47 -0
  19. package/dist/domain/errors/token-budget-error.d.ts.map +1 -0
  20. package/dist/domain/errors/token-budget-error.js +41 -0
  21. package/dist/domain/errors/token-budget-error.js.map +1 -0
  22. package/dist/domain/interfaces/code-executor.d.ts +32 -2
  23. package/dist/domain/interfaces/code-executor.d.ts.map +1 -1
  24. package/dist/domain/interfaces/event-emitter.d.ts +55 -1
  25. package/dist/domain/interfaces/event-emitter.d.ts.map +1 -1
  26. package/dist/domain/interfaces/llm-provider.d.ts +4 -0
  27. package/dist/domain/interfaces/llm-provider.d.ts.map +1 -1
  28. package/dist/domain/services/cost-calculator.d.ts.map +1 -1
  29. package/dist/domain/services/cost-calculator.js +9 -4
  30. package/dist/domain/services/cost-calculator.js.map +1 -1
  31. package/dist/domain/types/config.d.ts +17 -0
  32. package/dist/domain/types/config.d.ts.map +1 -1
  33. package/dist/domain/types/config.js +41 -0
  34. package/dist/domain/types/config.js.map +1 -1
  35. package/dist/domain/types/index-schema.d.ts +206 -0
  36. package/dist/domain/types/index-schema.d.ts.map +1 -0
  37. package/dist/domain/types/index-schema.js +41 -0
  38. package/dist/domain/types/index-schema.js.map +1 -0
  39. package/dist/domain/types/index.d.ts +2 -0
  40. package/dist/domain/types/index.d.ts.map +1 -1
  41. package/dist/domain/types/index.js +4 -0
  42. package/dist/domain/types/index.js.map +1 -1
  43. package/dist/domain/utils/timer.d.ts +34 -0
  44. package/dist/domain/utils/timer.d.ts.map +1 -0
  45. package/dist/domain/utils/timer.js +39 -0
  46. package/dist/domain/utils/timer.js.map +1 -0
  47. package/dist/factory/create-rlm.d.ts.map +1 -1
  48. package/dist/factory/create-rlm.js +1 -0
  49. package/dist/factory/create-rlm.js.map +1 -1
  50. package/dist/infrastructure/llm/openrouter-provider.d.ts +1 -0
  51. package/dist/infrastructure/llm/openrouter-provider.d.ts.map +1 -1
  52. package/dist/infrastructure/llm/openrouter-provider.js +30 -9
  53. package/dist/infrastructure/llm/openrouter-provider.js.map +1 -1
  54. package/dist/infrastructure/llm/prompts/index.d.ts +1 -1
  55. package/dist/infrastructure/llm/prompts/index.d.ts.map +1 -1
  56. package/dist/infrastructure/llm/prompts/index.js +1 -1
  57. package/dist/infrastructure/llm/prompts/index.js.map +1 -1
  58. package/dist/infrastructure/llm/prompts/system-prompt.d.ts +14 -1
  59. package/dist/infrastructure/llm/prompts/system-prompt.d.ts.map +1 -1
  60. package/dist/infrastructure/llm/prompts/system-prompt.js +186 -52
  61. package/dist/infrastructure/llm/prompts/system-prompt.js.map +1 -1
  62. package/dist/infrastructure/logging/debug-logger.d.ts +29 -0
  63. package/dist/infrastructure/logging/debug-logger.d.ts.map +1 -0
  64. package/dist/infrastructure/logging/debug-logger.js +35 -0
  65. package/dist/infrastructure/logging/debug-logger.js.map +1 -0
  66. package/dist/infrastructure/sandbox/prelude/rlm_prelude.py +637 -41
  67. package/dist/infrastructure/sandbox/process-manager.d.ts +1 -0
  68. package/dist/infrastructure/sandbox/process-manager.d.ts.map +1 -1
  69. package/dist/infrastructure/sandbox/process-manager.js +19 -6
  70. package/dist/infrastructure/sandbox/process-manager.js.map +1 -1
  71. package/dist/infrastructure/sandbox/python-executor.d.ts +6 -2
  72. package/dist/infrastructure/sandbox/python-executor.d.ts.map +1 -1
  73. package/dist/infrastructure/sandbox/python-executor.js +138 -5
  74. package/dist/infrastructure/sandbox/python-executor.js.map +1 -1
  75. package/package.json +2 -1
  76. package/src/infrastructure/sandbox/prelude/rlm_prelude.py +637 -41
@@ -37,6 +37,7 @@ export declare class PythonProcess extends EventEmitter {
37
37
  private killed;
38
38
  private stdoutBuffer;
39
39
  private stderrBuffer;
40
+ private readonly startTime;
40
41
  constructor(process: ChildProcess, timeoutMs: number);
41
42
  /**
42
43
  * Send input to the process
@@ -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;AAI3C;;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;gBAEd,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM;IAqCpD;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzB;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAKhC;;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;CAmCtB;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;IAwB3C;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKlC;;OAEG;IACH,OAAO,IAAI,IAAI;IAOf;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
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 || lines.indexOf(line) < lines.length - 1) {
124
+ else if (line.length > 0) {
112
125
  remainingLines.push(line);
113
126
  }
114
127
  }
115
- // Keep incomplete line in buffer
116
- const lastLine = remainingLines[remainingLines.length - 1];
117
- if (lastLine !== undefined && !lastLine.endsWith('\n')) {
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":"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"}
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): Promise<ExecutionResult>;
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,EAKjB,MAAM,0CAA0C,CAAC;AASlD;;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,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAiI1E,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;CAgCvB"}
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 ?? 30000,
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
- commands.push(this.convertCommand(command));
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
- process.write(`__INIT__:${JSON.stringify(initCommand)}\n`);
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.7",
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
  }