@cloudwarriors-ai/rlm 0.1.8 → 0.2.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 (92) 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 +213 -143
  8. package/dist/application/query-handler.js.map +1 -1
  9. package/dist/cli/commands/query.d.ts +1 -0
  10. package/dist/cli/commands/query.d.ts.map +1 -1
  11. package/dist/cli/commands/query.js +1 -0
  12. package/dist/cli/commands/query.js.map +1 -1
  13. package/dist/cli/config-loader.d.ts +3 -0
  14. package/dist/cli/config-loader.d.ts.map +1 -1
  15. package/dist/cli/config-loader.js +1 -0
  16. package/dist/cli/config-loader.js.map +1 -1
  17. package/dist/cli/index.js +6 -4
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/domain/constants.d.ts +124 -0
  20. package/dist/domain/constants.d.ts.map +1 -0
  21. package/dist/domain/constants.js +148 -0
  22. package/dist/domain/constants.js.map +1 -0
  23. package/dist/domain/errors/index.d.ts +1 -0
  24. package/dist/domain/errors/index.d.ts.map +1 -1
  25. package/dist/domain/errors/index.js +2 -0
  26. package/dist/domain/errors/index.js.map +1 -1
  27. package/dist/domain/errors/token-budget-error.d.ts +47 -0
  28. package/dist/domain/errors/token-budget-error.d.ts.map +1 -0
  29. package/dist/domain/errors/token-budget-error.js +41 -0
  30. package/dist/domain/errors/token-budget-error.js.map +1 -0
  31. package/dist/domain/interfaces/code-executor.d.ts +32 -3
  32. package/dist/domain/interfaces/code-executor.d.ts.map +1 -1
  33. package/dist/domain/interfaces/event-emitter.d.ts +55 -1
  34. package/dist/domain/interfaces/event-emitter.d.ts.map +1 -1
  35. package/dist/domain/interfaces/llm-provider.d.ts +4 -0
  36. package/dist/domain/interfaces/llm-provider.d.ts.map +1 -1
  37. package/dist/domain/services/cost-calculator.d.ts.map +1 -1
  38. package/dist/domain/services/cost-calculator.js +9 -4
  39. package/dist/domain/services/cost-calculator.js.map +1 -1
  40. package/dist/domain/types/config.d.ts +17 -0
  41. package/dist/domain/types/config.d.ts.map +1 -1
  42. package/dist/domain/types/config.js +41 -0
  43. package/dist/domain/types/config.js.map +1 -1
  44. package/dist/domain/types/index-schema.d.ts +206 -0
  45. package/dist/domain/types/index-schema.d.ts.map +1 -0
  46. package/dist/domain/types/index-schema.js +41 -0
  47. package/dist/domain/types/index-schema.js.map +1 -0
  48. package/dist/domain/types/index.d.ts +2 -0
  49. package/dist/domain/types/index.d.ts.map +1 -1
  50. package/dist/domain/types/index.js +4 -0
  51. package/dist/domain/types/index.js.map +1 -1
  52. package/dist/domain/utils/timer.d.ts +34 -0
  53. package/dist/domain/utils/timer.d.ts.map +1 -0
  54. package/dist/domain/utils/timer.js +39 -0
  55. package/dist/domain/utils/timer.js.map +1 -0
  56. package/dist/factory/create-rlm.d.ts +39 -6
  57. package/dist/factory/create-rlm.d.ts.map +1 -1
  58. package/dist/factory/create-rlm.js +41 -14
  59. package/dist/factory/create-rlm.js.map +1 -1
  60. package/dist/factory/default-config.d.ts +2 -0
  61. package/dist/factory/default-config.d.ts.map +1 -1
  62. package/dist/factory/default-config.js +2 -0
  63. package/dist/factory/default-config.js.map +1 -1
  64. package/dist/index.d.ts +1 -1
  65. package/dist/index.js +1 -1
  66. package/dist/infrastructure/llm/openrouter-provider.d.ts +2 -0
  67. package/dist/infrastructure/llm/openrouter-provider.d.ts.map +1 -1
  68. package/dist/infrastructure/llm/openrouter-provider.js +50 -18
  69. package/dist/infrastructure/llm/openrouter-provider.js.map +1 -1
  70. package/dist/infrastructure/llm/prompts/index.d.ts +1 -1
  71. package/dist/infrastructure/llm/prompts/index.d.ts.map +1 -1
  72. package/dist/infrastructure/llm/prompts/index.js +1 -1
  73. package/dist/infrastructure/llm/prompts/index.js.map +1 -1
  74. package/dist/infrastructure/llm/prompts/system-prompt.d.ts +14 -1
  75. package/dist/infrastructure/llm/prompts/system-prompt.d.ts.map +1 -1
  76. package/dist/infrastructure/llm/prompts/system-prompt.js +186 -52
  77. package/dist/infrastructure/llm/prompts/system-prompt.js.map +1 -1
  78. package/dist/infrastructure/logging/debug-logger.d.ts +29 -0
  79. package/dist/infrastructure/logging/debug-logger.d.ts.map +1 -0
  80. package/dist/infrastructure/logging/debug-logger.js +35 -0
  81. package/dist/infrastructure/logging/debug-logger.js.map +1 -0
  82. package/dist/infrastructure/sandbox/prelude/rlm_prelude.py +637 -41
  83. package/dist/infrastructure/sandbox/process-manager.d.ts +1 -0
  84. package/dist/infrastructure/sandbox/process-manager.d.ts.map +1 -1
  85. package/dist/infrastructure/sandbox/process-manager.js +19 -6
  86. package/dist/infrastructure/sandbox/process-manager.js.map +1 -1
  87. package/dist/infrastructure/sandbox/python-executor.d.ts +5 -1
  88. package/dist/infrastructure/sandbox/python-executor.d.ts.map +1 -1
  89. package/dist/infrastructure/sandbox/python-executor.js +124 -6
  90. package/dist/infrastructure/sandbox/python-executor.js.map +1 -1
  91. package/package.json +5 -2
  92. package/src/infrastructure/sandbox/prelude/rlm_prelude.py +637 -41
package/dist/cli/index.js CHANGED
@@ -23,7 +23,8 @@ program
23
23
  .option('--format <format>', 'Output format (text|json|table)')
24
24
  .option('-v, --verbose', 'Show verbose output')
25
25
  .option('--config <path>', 'Path to config file')
26
- .option('--api-key <key>', 'OpenRouter API key')
26
+ .option('--api-key <key>', 'API key (or set RLM_API_KEY / OPENROUTER_API_KEY env)')
27
+ .option('--base-url <url>', 'LLM API base URL (or set RLM_BASE_URL env)')
27
28
  .action(async (options) => {
28
29
  await queryCommand({
29
30
  query: options.query,
@@ -40,6 +41,7 @@ program
40
41
  verbose: options.verbose,
41
42
  config: options.config,
42
43
  apiKey: options.apiKey,
44
+ baseUrl: options.baseUrl,
43
45
  });
44
46
  });
45
47
  // Session commands
@@ -53,7 +55,7 @@ session
53
55
  .option('--limit <n>', 'Maximum number of sessions', parseInt)
54
56
  .option('--offset <n>', 'Offset for pagination', parseInt)
55
57
  .option('--format <format>', 'Output format (text|json|table)')
56
- .option('--api-key <key>', 'OpenRouter API key')
58
+ .option('--api-key <key>', 'API key (or set RLM_API_KEY env)')
57
59
  .action(async (options) => {
58
60
  await sessionListCommand({
59
61
  status: options.status,
@@ -67,7 +69,7 @@ session
67
69
  .command('get <id>')
68
70
  .description('Get session details')
69
71
  .option('--format <format>', 'Output format (text|json)')
70
- .option('--api-key <key>', 'OpenRouter API key')
72
+ .option('--api-key <key>', 'API key (or set RLM_API_KEY env)')
71
73
  .action(async (id, options) => {
72
74
  await sessionGetCommand({
73
75
  id,
@@ -78,7 +80,7 @@ session
78
80
  session
79
81
  .command('cancel <id>')
80
82
  .description('Cancel a running session')
81
- .option('--api-key <key>', 'OpenRouter API key')
83
+ .option('--api-key <key>', 'API key (or set RLM_API_KEY env)')
82
84
  .action(async (id, options) => {
83
85
  await sessionCancelCommand({
84
86
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAK7B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,yFAAyF,CAAC;KACtG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,gBAAgB;AAChB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,cAAc,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;KAClE,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC;KACzD,MAAM,CAAC,mBAAmB,EAAE,wBAAwB,CAAC;KACrD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;KACjD,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,EAAE,QAAQ,CAAC;KAC9D,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,EAAE,UAAU,CAAC;KAC3D,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,QAAQ,CAAC;KACtD,MAAM,CAAC,qBAAqB,EAAE,oBAAoB,EAAE,QAAQ,CAAC;KAC7D,MAAM,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,UAAU,CAAC;KAChE,MAAM,CAAC,kBAAkB,EAAE,2CAA2C,CAAC;KACvE,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC;KAC9D,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;KAC9C,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;KAChD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,YAAY,CAAC;QACjB,KAAK,EAAE,OAAO,CAAC,KAAe;QAC9B,OAAO,EAAE,OAAO,CAAC,OAA6B;QAC9C,IAAI,EAAE,OAAO,CAAC,IAA0B;QACxC,KAAK,EAAE,OAAO,CAAC,KAA2B;QAC1C,QAAQ,EAAE,OAAO,CAAC,QAA8B;QAChD,OAAO,EAAE,OAAO,CAAC,OAA6B;QAC9C,SAAS,EAAE,OAAO,CAAC,SAA+B;QAClD,OAAO,EAAE,OAAO,CAAC,OAA6B;QAC9C,WAAW,EAAE,OAAO,CAAC,WAAiC;QACtD,OAAO,EAAE,OAAO,CAAC,OAAkC;QACnD,MAAM,EAAE,OAAO,CAAC,MAAkC;QAClD,OAAO,EAAE,OAAO,CAAC,OAA8B;QAC/C,MAAM,EAAE,OAAO,CAAC,MAA4B;QAC5C,MAAM,EAAE,OAAO,CAAC,MAA4B;KAC7C,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,mBAAmB;AACnB,MAAM,OAAO,GAAG,OAAO;KACpB,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,qBAAqB,CAAC,CAAC;AAEtC,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,eAAe,CAAC;KAC5B,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;KAC/C,MAAM,CAAC,aAAa,EAAE,4BAA4B,EAAE,QAAQ,CAAC;KAC7D,MAAM,CAAC,cAAc,EAAE,uBAAuB,EAAE,QAAQ,CAAC;KACzD,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC;KAC9D,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,kBAAkB,CAAC;QACvB,MAAM,EAAE,OAAO,CAAC,MAAmC;QACnD,KAAK,EAAE,OAAO,CAAC,KAA2B;QAC1C,MAAM,EAAE,OAAO,CAAC,MAA4B;QAC5C,MAAM,EAAE,OAAO,CAAC,MAAkC;QAClD,MAAM,EAAE,OAAO,CAAC,MAA4B;KAC7C,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;KACxD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,OAAO,EAAE,EAAE;IACpC,MAAM,iBAAiB,CAAC;QACtB,EAAE;QACF,MAAM,EAAE,OAAO,CAAC,MAAkC;QAClD,MAAM,EAAE,OAAO,CAAC,MAA4B;KAC7C,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,OAAO,EAAE,EAAE;IACpC,MAAM,oBAAoB,CAAC;QACzB,EAAE;QACF,MAAM,EAAE,OAAO,CAAC,MAA4B;KAC7C,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,MAAM,MAAM,GAAG,OAAO;KACnB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0BAA0B,CAAC,CAAC;AAE3C,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;KACxD,MAAM,CAAC,aAAa,EAAE,uCAAuC,CAAC;KAC9D,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,iBAAiB,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC,MAAkC;QAClD,SAAS,EAAE,OAAO,CAAC,SAAgC;KACpD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,MAAM;KACH,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;IACrC,gBAAgB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEL,MAAM;KACH,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC;KAClD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,iBAAiB,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC,KAA4B;KAC5C,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,gBAAgB;AAChB,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Domain constants for RLM
3
+ *
4
+ * Centralizes magic numbers and configuration defaults
5
+ * to improve maintainability and make tuning easier.
6
+ */
7
+ /**
8
+ * Maximum characters per llm_query() call (~125K tokens)
9
+ * Per MIT CSAIL paper on Recursive Language Models
10
+ */
11
+ export declare const LLM_QUERY_MAX_CHARS = 500000;
12
+ /**
13
+ * Default max tokens per LLM call for code/answer generation
14
+ */
15
+ export declare const DEFAULT_MAX_TOKENS_PER_CALL = 4000;
16
+ /**
17
+ * Characters per token estimate for English text
18
+ * This is a simple heuristic; real tokenization varies by model
19
+ */
20
+ export declare const CHARS_PER_TOKEN_ESTIMATE = 4;
21
+ /**
22
+ * Default request timeout in milliseconds for LLM API calls
23
+ */
24
+ export declare const DEFAULT_REQUEST_TIMEOUT_MS = 60000;
25
+ /**
26
+ * Default max retries on transient errors
27
+ */
28
+ export declare const DEFAULT_MAX_RETRIES = 3;
29
+ /**
30
+ * Default retry-after seconds when rate limited (if not specified by server)
31
+ */
32
+ export declare const DEFAULT_RETRY_AFTER_SECONDS = 60;
33
+ /**
34
+ * Base delay for exponential backoff in milliseconds
35
+ */
36
+ export declare const BACKOFF_BASE_MS = 1000;
37
+ /**
38
+ * Health check timeout in milliseconds
39
+ */
40
+ export declare const HEALTH_CHECK_TIMEOUT_MS = 5000;
41
+ /**
42
+ * Default Python execution timeout in milliseconds
43
+ */
44
+ export declare const DEFAULT_PYTHON_TIMEOUT_MS = 30000;
45
+ /**
46
+ * Code preview truncation length (short)
47
+ */
48
+ export declare const CODE_PREVIEW_LENGTH_SHORT = 200;
49
+ /**
50
+ * Output preview truncation length (medium)
51
+ */
52
+ export declare const OUTPUT_PREVIEW_LENGTH = 500;
53
+ /**
54
+ * Token threshold for cost estimation (roughly 100K tokens per call)
55
+ */
56
+ export declare const COST_ESTIMATE_TOKEN_THRESHOLD = 100000;
57
+ /**
58
+ * Average output tokens for cost estimation
59
+ */
60
+ export declare const COST_ESTIMATE_AVG_OUTPUT_TOKENS = 2000;
61
+ /**
62
+ * Minimum cost multiplier for cost estimation range
63
+ */
64
+ export declare const COST_ESTIMATE_MIN_MULTIPLIER = 0.5;
65
+ /**
66
+ * Maximum cost multiplier for cost estimation range
67
+ */
68
+ export declare const COST_ESTIMATE_MAX_MULTIPLIER = 2;
69
+ /**
70
+ * Temperature for error recovery prompts (lower for more focused fixes)
71
+ */
72
+ export declare const ERROR_RECOVERY_TEMPERATURE = 0.2;
73
+ /**
74
+ * Maximum event listeners per emitter
75
+ */
76
+ export declare const MAX_EVENT_LISTENERS = 100;
77
+ /**
78
+ * Threshold for using temp file instead of stdin (10MB)
79
+ * Large payloads can block stdin buffer
80
+ */
81
+ export declare const STDIN_SIZE_THRESHOLD: number;
82
+ /**
83
+ * Maximum concurrent queries in llm_query_batch to avoid resource exhaustion.
84
+ * Each recursive call spawns a Python process + makes LLM API calls.
85
+ * 5 concurrent provides ~5x speedup while staying safe for most systems.
86
+ */
87
+ export declare const MAX_CONCURRENT_BATCH_QUERIES = 5;
88
+ /**
89
+ * Default OpenRouter API base URL
90
+ */
91
+ export declare const DEFAULT_OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1";
92
+ /**
93
+ * Default site name for OpenRouter analytics
94
+ */
95
+ export declare const DEFAULT_SITE_NAME = "RLM";
96
+ /**
97
+ * Protocol marker for initialization via stdin
98
+ */
99
+ export declare const PROTOCOL_INIT = "__INIT__";
100
+ /**
101
+ * Protocol marker for initialization via temp file
102
+ */
103
+ export declare const PROTOCOL_INIT_FILE = "__INIT_FILE__";
104
+ /**
105
+ * Protocol marker for command output
106
+ */
107
+ export declare const PROTOCOL_COMMAND = "__COMMAND__";
108
+ /**
109
+ * Protocol marker for response input
110
+ */
111
+ export declare const PROTOCOL_RESPONSE = "__RESPONSE__";
112
+ /**
113
+ * Protocol marker for completion
114
+ */
115
+ export declare const PROTOCOL_DONE = "__DONE__";
116
+ /**
117
+ * Protocol marker for errors
118
+ */
119
+ export declare const PROTOCOL_ERROR = "__ERROR__";
120
+ /**
121
+ * Protocol marker for warnings
122
+ */
123
+ export declare const PROTOCOL_WARNING = "__WARNING__";
124
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/domain/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAM1C;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC;;GAEG;AACH,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAM/C;;GAEG;AACH,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAMzC;;GAEG;AACH,eAAO,MAAM,6BAA6B,SAAU,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,+BAA+B,OAAO,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAM9C;;GAEG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAM9C;;GAEG;AACH,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAmB,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAM9C;;GAEG;AACH,eAAO,MAAM,2BAA2B,iCAAiC,CAAC;AAE1E;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAMvC;;GAEG;AACH,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,iBAAiB,iBAAiB,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,aAAa,aAAa,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,cAAc,cAAc,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,gBAAgB,gBAAgB,CAAC"}
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Domain constants for RLM
3
+ *
4
+ * Centralizes magic numbers and configuration defaults
5
+ * to improve maintainability and make tuning easier.
6
+ */
7
+ // =============================================================================
8
+ // LLM Query Limits (per MIT CSAIL paper on Recursive Language Models)
9
+ // =============================================================================
10
+ /**
11
+ * Maximum characters per llm_query() call (~125K tokens)
12
+ * Per MIT CSAIL paper on Recursive Language Models
13
+ */
14
+ export const LLM_QUERY_MAX_CHARS = 500_000;
15
+ /**
16
+ * Default max tokens per LLM call for code/answer generation
17
+ */
18
+ export const DEFAULT_MAX_TOKENS_PER_CALL = 4000;
19
+ /**
20
+ * Characters per token estimate for English text
21
+ * This is a simple heuristic; real tokenization varies by model
22
+ */
23
+ export const CHARS_PER_TOKEN_ESTIMATE = 4;
24
+ // =============================================================================
25
+ // Timeout & Retry Configuration
26
+ // =============================================================================
27
+ /**
28
+ * Default request timeout in milliseconds for LLM API calls
29
+ */
30
+ export const DEFAULT_REQUEST_TIMEOUT_MS = 60000;
31
+ /**
32
+ * Default max retries on transient errors
33
+ */
34
+ export const DEFAULT_MAX_RETRIES = 3;
35
+ /**
36
+ * Default retry-after seconds when rate limited (if not specified by server)
37
+ */
38
+ export const DEFAULT_RETRY_AFTER_SECONDS = 60;
39
+ /**
40
+ * Base delay for exponential backoff in milliseconds
41
+ */
42
+ export const BACKOFF_BASE_MS = 1000;
43
+ /**
44
+ * Health check timeout in milliseconds
45
+ */
46
+ export const HEALTH_CHECK_TIMEOUT_MS = 5000;
47
+ /**
48
+ * Default Python execution timeout in milliseconds
49
+ */
50
+ export const DEFAULT_PYTHON_TIMEOUT_MS = 30000;
51
+ // =============================================================================
52
+ // Preview & Display Truncation
53
+ // =============================================================================
54
+ /**
55
+ * Code preview truncation length (short)
56
+ */
57
+ export const CODE_PREVIEW_LENGTH_SHORT = 200;
58
+ /**
59
+ * Output preview truncation length (medium)
60
+ */
61
+ export const OUTPUT_PREVIEW_LENGTH = 500;
62
+ // =============================================================================
63
+ // Cost Estimation Thresholds
64
+ // =============================================================================
65
+ /**
66
+ * Token threshold for cost estimation (roughly 100K tokens per call)
67
+ */
68
+ export const COST_ESTIMATE_TOKEN_THRESHOLD = 100_000;
69
+ /**
70
+ * Average output tokens for cost estimation
71
+ */
72
+ export const COST_ESTIMATE_AVG_OUTPUT_TOKENS = 2000;
73
+ /**
74
+ * Minimum cost multiplier for cost estimation range
75
+ */
76
+ export const COST_ESTIMATE_MIN_MULTIPLIER = 0.5;
77
+ /**
78
+ * Maximum cost multiplier for cost estimation range
79
+ */
80
+ export const COST_ESTIMATE_MAX_MULTIPLIER = 2;
81
+ // =============================================================================
82
+ // Error Recovery
83
+ // =============================================================================
84
+ /**
85
+ * Temperature for error recovery prompts (lower for more focused fixes)
86
+ */
87
+ export const ERROR_RECOVERY_TEMPERATURE = 0.2;
88
+ // =============================================================================
89
+ // Process Management
90
+ // =============================================================================
91
+ /**
92
+ * Maximum event listeners per emitter
93
+ */
94
+ export const MAX_EVENT_LISTENERS = 100;
95
+ /**
96
+ * Threshold for using temp file instead of stdin (10MB)
97
+ * Large payloads can block stdin buffer
98
+ */
99
+ export const STDIN_SIZE_THRESHOLD = 10 * 1024 * 1024;
100
+ /**
101
+ * Maximum concurrent queries in llm_query_batch to avoid resource exhaustion.
102
+ * Each recursive call spawns a Python process + makes LLM API calls.
103
+ * 5 concurrent provides ~5x speedup while staying safe for most systems.
104
+ */
105
+ export const MAX_CONCURRENT_BATCH_QUERIES = 5;
106
+ // =============================================================================
107
+ // API Configuration
108
+ // =============================================================================
109
+ /**
110
+ * Default OpenRouter API base URL
111
+ */
112
+ export const DEFAULT_OPENROUTER_BASE_URL = 'https://openrouter.ai/api/v1';
113
+ /**
114
+ * Default site name for OpenRouter analytics
115
+ */
116
+ export const DEFAULT_SITE_NAME = 'RLM';
117
+ // =============================================================================
118
+ // Protocol Markers (for Python<->Node communication)
119
+ // =============================================================================
120
+ /**
121
+ * Protocol marker for initialization via stdin
122
+ */
123
+ export const PROTOCOL_INIT = '__INIT__';
124
+ /**
125
+ * Protocol marker for initialization via temp file
126
+ */
127
+ export const PROTOCOL_INIT_FILE = '__INIT_FILE__';
128
+ /**
129
+ * Protocol marker for command output
130
+ */
131
+ export const PROTOCOL_COMMAND = '__COMMAND__';
132
+ /**
133
+ * Protocol marker for response input
134
+ */
135
+ export const PROTOCOL_RESPONSE = '__RESPONSE__';
136
+ /**
137
+ * Protocol marker for completion
138
+ */
139
+ export const PROTOCOL_DONE = '__DONE__';
140
+ /**
141
+ * Protocol marker for errors
142
+ */
143
+ export const PROTOCOL_ERROR = '__ERROR__';
144
+ /**
145
+ * Protocol marker for warnings
146
+ */
147
+ export const PROTOCOL_WARNING = '__WARNING__';
148
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/domain/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gFAAgF;AAChF,sEAAsE;AACtE,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,gFAAgF;AAChF,gCAAgC;AAChC,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAE/C,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAO,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAI,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAE9C,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAE9C,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAE9C,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AAE1E;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC,gFAAgF;AAChF,qDAAqD;AACrD,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAE1C;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC"}
@@ -3,6 +3,7 @@ export { ExecutionError, CodeValidationError, ExecutionTimeoutError, SandboxViol
3
3
  export { LimitExceededError, SessionCancelledError, SessionTimeoutError, } from './limit-exceeded.js';
4
4
  export { ValidationError, ConfigurationError, ContextError, QueryError, } from './validation-error.js';
5
5
  export { LLMError, RateLimitError, AuthenticationError, ContentFilterError, MalformedResponseError, } from './llm-error.js';
6
+ export { TokenBudgetExceededError, LlmQueryCapacityError, type TokenBudgetExceededDetails, type LlmQueryCapacityDetails, } from './token-budget-error.js';
6
7
  /**
7
8
  * Check if an error is an RLM error
8
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/errors/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,UAAU,GACX,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,iBAAiB,EAAE,QAAQ,CAEtF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/errors/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,UAAU,GACX,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,iBAAiB,EAAE,QAAQ,CAEtF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAK1D"}
@@ -8,6 +8,8 @@ export { LimitExceededError, SessionCancelledError, SessionTimeoutError, } from
8
8
  export { ValidationError, ConfigurationError, ContextError, QueryError, } from './validation-error.js';
9
9
  // LLM errors
10
10
  export { LLMError, RateLimitError, AuthenticationError, ContentFilterError, MalformedResponseError, } from './llm-error.js';
11
+ // Token budget errors
12
+ export { TokenBudgetExceededError, LlmQueryCapacityError, } from './token-budget-error.js';
11
13
  /**
12
14
  * Check if an error is an RLM error
13
15
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/errors/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAE9B,eAAe;AACf,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,UAAU,GACX,MAAM,uBAAuB,CAAC;AAE/B,aAAa;AACb,OAAO,EACL,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,aAAa,IAAI,KAAK,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/errors/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,mBAAmB;AACnB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAE9B,eAAe;AACf,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,UAAU,GACX,MAAM,uBAAuB,CAAC;AAE/B,aAAa;AACb,OAAO,EACL,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAExB,sBAAsB;AACtB,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GAGtB,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,aAAa,IAAI,KAAK,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { RLMError } from './base-error.js';
2
+ /**
3
+ * Error details for token budget exceeded
4
+ */
5
+ export interface TokenBudgetExceededDetails {
6
+ /** Requested token count */
7
+ requested: number;
8
+ /** Maximum allowed tokens */
9
+ limit: number;
10
+ /** Preview of content (truncated) */
11
+ content?: string;
12
+ }
13
+ /**
14
+ * Error thrown when content exceeds the model's context limit
15
+ */
16
+ export declare class TokenBudgetExceededError extends RLMError {
17
+ readonly code = "TOKEN_BUDGET_EXCEEDED";
18
+ readonly recoverable = false;
19
+ /** Error details */
20
+ readonly details: TokenBudgetExceededDetails;
21
+ constructor(details: TokenBudgetExceededDetails, sessionId?: string);
22
+ toJSON(): Record<string, unknown>;
23
+ }
24
+ /**
25
+ * Error details for llm_query capacity exceeded
26
+ */
27
+ export interface LlmQueryCapacityDetails {
28
+ /** Provided character count */
29
+ providedChars: number;
30
+ /** Maximum allowed characters */
31
+ maxChars: number;
32
+ /** Hint for resolution */
33
+ hint: string;
34
+ }
35
+ /**
36
+ * Error thrown when llm_query() call exceeds capacity limit
37
+ * Per MIT paper: ~500K char limit per llm_query() call
38
+ */
39
+ export declare class LlmQueryCapacityError extends RLMError {
40
+ readonly code = "LLM_QUERY_CAPACITY_EXCEEDED";
41
+ readonly recoverable = false;
42
+ /** Error details */
43
+ readonly details: LlmQueryCapacityDetails;
44
+ constructor(details: LlmQueryCapacityDetails, sessionId?: string);
45
+ toJSON(): Record<string, unknown>;
46
+ }
47
+ //# sourceMappingURL=token-budget-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-budget-error.d.ts","sourceRoot":"","sources":["../../../src/domain/errors/token-budget-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAElB,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IAEd,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,QAAQ;IACpD,QAAQ,CAAC,IAAI,2BAA2B;IACxC,QAAQ,CAAC,WAAW,SAAS;IAE7B,oBAAoB;IACpB,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;gBAEjC,OAAO,EAAE,0BAA0B,EAAE,SAAS,CAAC,EAAE,MAAM;IAQ1D,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAM3C;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IAEtB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IAEjB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,QAAQ,CAAC,IAAI,iCAAiC;IAC9C,QAAQ,CAAC,WAAW,SAAS;IAE7B,oBAAoB;IACpB,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;gBAE9B,OAAO,EAAE,uBAAuB,EAAE,SAAS,CAAC,EAAE,MAAM;IAQvD,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAM3C"}
@@ -0,0 +1,41 @@
1
+ import { RLMError } from './base-error.js';
2
+ /**
3
+ * Error thrown when content exceeds the model's context limit
4
+ */
5
+ export class TokenBudgetExceededError extends RLMError {
6
+ code = 'TOKEN_BUDGET_EXCEEDED';
7
+ recoverable = false;
8
+ /** Error details */
9
+ details;
10
+ constructor(details, sessionId) {
11
+ super(`Token budget exceeded: ${details.requested} tokens requested, limit is ${details.limit} tokens`, sessionId);
12
+ this.details = details;
13
+ }
14
+ toJSON() {
15
+ return {
16
+ ...super.toJSON(),
17
+ details: this.details,
18
+ };
19
+ }
20
+ }
21
+ /**
22
+ * Error thrown when llm_query() call exceeds capacity limit
23
+ * Per MIT paper: ~500K char limit per llm_query() call
24
+ */
25
+ export class LlmQueryCapacityError extends RLMError {
26
+ code = 'LLM_QUERY_CAPACITY_EXCEEDED';
27
+ recoverable = false;
28
+ /** Error details */
29
+ details;
30
+ constructor(details, sessionId) {
31
+ super(`llm_query() capacity exceeded: ${details.providedChars} chars > ${details.maxChars} max. ${details.hint}`, sessionId);
32
+ this.details = details;
33
+ }
34
+ toJSON() {
35
+ return {
36
+ ...super.toJSON(),
37
+ details: this.details,
38
+ };
39
+ }
40
+ }
41
+ //# sourceMappingURL=token-budget-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-budget-error.js","sourceRoot":"","sources":["../../../src/domain/errors/token-budget-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAgB3C;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,QAAQ;IAC3C,IAAI,GAAG,uBAAuB,CAAC;IAC/B,WAAW,GAAG,KAAK,CAAC;IAE7B,oBAAoB;IACX,OAAO,CAA6B;IAE7C,YAAY,OAAmC,EAAE,SAAkB;QACjE,KAAK,CACH,0BAA0B,OAAO,CAAC,SAAS,+BAA+B,OAAO,CAAC,KAAK,SAAS,EAChG,SAAS,CACV,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEQ,MAAM;QACb,OAAO;YACL,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AAgBD;;;GAGG;AACH,MAAM,OAAO,qBAAsB,SAAQ,QAAQ;IACxC,IAAI,GAAG,6BAA6B,CAAC;IACrC,WAAW,GAAG,KAAK,CAAC;IAE7B,oBAAoB;IACX,OAAO,CAA0B;IAE1C,YAAY,OAAgC,EAAE,SAAkB;QAC9D,KAAK,CACH,kCAAkC,OAAO,CAAC,aAAa,YAAY,OAAO,CAAC,QAAQ,SAAS,OAAO,CAAC,IAAI,EAAE,EAC1G,SAAS,CACV,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEQ,MAAM;QACb,OAAO;YACL,GAAG,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF"}
@@ -51,20 +51,44 @@ export interface ExecutionResult {
51
51
  readonly executionTimeMs: number;
52
52
  /** Commands from Python to Node (llm_query, set_result, etc.) */
53
53
  readonly commands: readonly PythonCommand[];
54
+ /**
55
+ * Confidence level if set_result_final was called (0.0-1.0)
56
+ * Signals early termination - no further processing needed
57
+ */
58
+ readonly finalAnswerConfidence?: number;
54
59
  }
55
60
  /**
56
61
  * Commands that Python code can issue to Node
57
62
  */
58
- export type PythonCommand = LLMQueryCommand | SetResultCommand | SetVariableCommand;
63
+ export type PythonCommand = LLMQueryCommand | LLMQueryBatchCommand | SetResultCommand | SetResultFinalCommand | SetVariableCommand;
59
64
  export interface LLMQueryCommand {
60
65
  readonly type: 'llm_query';
61
66
  readonly query: string;
62
67
  readonly contextVariables: readonly string[];
63
68
  }
69
+ /**
70
+ * Batch query command for parallel processing (per MIT RLM paper optimization)
71
+ */
72
+ export interface LLMQueryBatchCommand {
73
+ readonly type: 'llm_query_batch';
74
+ readonly queries: readonly {
75
+ readonly query: string;
76
+ readonly contextVariables: readonly string[];
77
+ }[];
78
+ }
64
79
  export interface SetResultCommand {
65
80
  readonly type: 'set_result';
66
81
  readonly result: string;
67
82
  }
83
+ /**
84
+ * Command to set result AND signal early termination
85
+ * Per MIT paper: allows LLM to short-circuit when answer is found
86
+ */
87
+ export interface SetResultFinalCommand {
88
+ readonly type: 'set_result_final';
89
+ readonly result: string;
90
+ readonly confidence: number;
91
+ }
68
92
  export interface SetVariableCommand {
69
93
  readonly type: 'set_variable';
70
94
  readonly name: string;
@@ -80,9 +104,14 @@ export interface ICodeExecutor {
80
104
  validate(code: string): ValidationResult;
81
105
  /**
82
106
  * Execute Python code in sandbox
83
- * @param onCommand Optional callback to handle commands during execution (fixes deadlock for llm_query)
107
+ * @param onCommand Optional callback to handle commands during execution (fixes deadlock for llm_query).
108
+ * Returns response object to send back to Python, or undefined if not handled.
84
109
  */
85
- execute(code: string, context: ExecutionContext, onCommand?: (command: PythonCommand) => Promise<string | undefined>): Promise<ExecutionResult>;
110
+ execute(code: string, context: ExecutionContext, onCommand?: (command: PythonCommand) => Promise<{
111
+ result: string;
112
+ } | {
113
+ error: string;
114
+ } | undefined>): Promise<ExecutionResult>;
86
115
  /**
87
116
  * Send a response to a pending llm_query
88
117
  */
@@ -1 +1 @@
1
- {"version":3,"file":"code-executor.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/code-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"code-executor.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/code-executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhD,8BAA8B;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,8BAA8B;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,8BAA8B;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAExB,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IAE5C,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,oBAAoB;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,oCAAoC;IACpC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;CACpC;AAED,MAAM,MAAM,mBAAmB,GAC3B,cAAc,GACd,kBAAkB,GAClB,mBAAmB,GACnB,qBAAqB,GACrB,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,gCAAgC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,wCAAwC;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAExB,qCAAqC;IACrC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IAEjC,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IAE5C;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,kBAAkB,CAAC;AAEvB,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS;QACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;KAC9C,EAAE,CAAC;CACL;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAEzC;;;;OAIG;IACH,OAAO,CACL,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,CAAC;IAE5B;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC;CACpB"}
@@ -97,10 +97,64 @@ export interface LimitWarningEvent extends RLMEventBase {
97
97
  readonly max: number;
98
98
  readonly percentage: number;
99
99
  }
100
+ /**
101
+ * Token check event - emitted before llm_query() calls for observability
102
+ */
103
+ export interface TokenCheckEvent extends RLMEventBase {
104
+ readonly type: 'rlm.token_check';
105
+ readonly contextTokens: number;
106
+ readonly limit: number;
107
+ readonly depth: number;
108
+ readonly action: 'ok' | 'warning';
109
+ }
110
+ /**
111
+ * Code generated event - emitted when LLM generates Python code
112
+ */
113
+ export interface CodeGeneratedEvent extends RLMEventBase {
114
+ readonly type: 'rlm.code.generated';
115
+ readonly code: string;
116
+ readonly depth: number;
117
+ }
118
+ /**
119
+ * Direct answer generated event - emitted for recursive calls that return text
120
+ */
121
+ export interface DirectAnswerGeneratedEvent extends RLMEventBase {
122
+ readonly type: 'rlm.direct_answer.generated';
123
+ readonly answerLength: number;
124
+ readonly depth: number;
125
+ readonly answer: string;
126
+ }
127
+ /**
128
+ * Code executed event - emitted after Python code execution completes
129
+ */
130
+ export interface CodeExecutedEvent extends RLMEventBase {
131
+ readonly type: 'rlm.code.executed';
132
+ readonly success: boolean;
133
+ readonly stdout: string;
134
+ readonly stderr: string;
135
+ readonly error?: string;
136
+ readonly result?: string;
137
+ readonly depth: number;
138
+ }
139
+ /**
140
+ * Recovery started event - emitted when error recovery begins
141
+ */
142
+ export interface RecoveryStartedEvent extends RLMEventBase {
143
+ readonly type: 'rlm.recovery.started';
144
+ readonly error: string;
145
+ readonly traceback?: string;
146
+ readonly previousCode: string;
147
+ }
148
+ /**
149
+ * Recovery completed event - emitted when error recovery finishes
150
+ */
151
+ export interface RecoveryCompletedEvent extends RLMEventBase {
152
+ readonly type: 'rlm.recovery.completed';
153
+ }
100
154
  /**
101
155
  * Union of all RLM events
102
156
  */
103
- export type RLMEvent = SessionStartedEvent | SessionCompletedEvent | SessionFailedEvent | SessionCancelledEvent | LLMCallCompletedEvent | CodeExecutionCompletedEvent | RecursiveCallStartedEvent | RecursiveCallCompletedEvent | ProgressUpdateEvent | LimitWarningEvent;
157
+ export type RLMEvent = SessionStartedEvent | SessionCompletedEvent | SessionFailedEvent | SessionCancelledEvent | LLMCallCompletedEvent | CodeExecutionCompletedEvent | RecursiveCallStartedEvent | RecursiveCallCompletedEvent | ProgressUpdateEvent | LimitWarningEvent | TokenCheckEvent | CodeGeneratedEvent | DirectAnswerGeneratedEvent | CodeExecutedEvent | RecoveryStartedEvent | RecoveryCompletedEvent;
104
158
  /**
105
159
  * Event handler function
106
160
  */
@@ -1 +1 @@
1
- {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/event-emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-emitter.d.ts","sourceRoot":"","sources":["../../../src/domain/interfaces/event-emitter.ts"],"names":[],"mappings":"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"}
@@ -60,5 +60,9 @@ export interface ILLMProvider {
60
60
  * Check if the provider is healthy/available
61
61
  */
62
62
  healthCheck(): Promise<boolean>;
63
+ /**
64
+ * Get the context limit (in tokens) for the current model
65
+ */
66
+ getModelContextLimit(): number;
63
67
  }
64
68
  //# sourceMappingURL=llm-provider.d.ts.map