@cloudwarriors-ai/rlm 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +208 -0
- package/dist/application/index.d.ts +4 -0
- package/dist/application/index.d.ts.map +1 -0
- package/dist/application/index.js +4 -0
- package/dist/application/index.js.map +1 -0
- package/dist/application/query-handler.d.ts +49 -0
- package/dist/application/query-handler.d.ts.map +1 -0
- package/dist/application/query-handler.js +311 -0
- package/dist/application/query-handler.js.map +1 -0
- package/dist/application/rlm-service.d.ts +68 -0
- package/dist/application/rlm-service.d.ts.map +1 -0
- package/dist/application/rlm-service.js +132 -0
- package/dist/application/rlm-service.js.map +1 -0
- package/dist/application/session-manager.d.ts +70 -0
- package/dist/application/session-manager.d.ts.map +1 -0
- package/dist/application/session-manager.js +237 -0
- package/dist/application/session-manager.js.map +1 -0
- package/dist/cli/commands/config.d.ts +34 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +157 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/index.d.ts +4 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +4 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/query.d.ts +26 -0
- package/dist/cli/commands/query.d.ts.map +1 -0
- package/dist/cli/commands/query.js +90 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/session.d.ts +40 -0
- package/dist/cli/commands/session.d.ts.map +1 -0
- package/dist/cli/commands/session.js +55 -0
- package/dist/cli/commands/session.js.map +1 -0
- package/dist/cli/config-loader.d.ts +63 -0
- package/dist/cli/config-loader.d.ts.map +1 -0
- package/dist/cli/config-loader.js +94 -0
- package/dist/cli/config-loader.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +120 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/output/formatter.d.ts +24 -0
- package/dist/cli/output/formatter.d.ts.map +1 -0
- package/dist/cli/output/formatter.js +196 -0
- package/dist/cli/output/formatter.js.map +1 -0
- package/dist/cli/output/index.d.ts +3 -0
- package/dist/cli/output/index.d.ts.map +1 -0
- package/dist/cli/output/index.js +3 -0
- package/dist/cli/output/index.js.map +1 -0
- package/dist/cli/output/progress.d.ts +60 -0
- package/dist/cli/output/progress.d.ts.map +1 -0
- package/dist/cli/output/progress.js +142 -0
- package/dist/cli/output/progress.js.map +1 -0
- package/dist/domain/errors/base-error.d.ts +17 -0
- package/dist/domain/errors/base-error.d.ts.map +1 -0
- package/dist/domain/errors/base-error.js +29 -0
- package/dist/domain/errors/base-error.js.map +1 -0
- package/dist/domain/errors/execution-error.d.ts +61 -0
- package/dist/domain/errors/execution-error.d.ts.map +1 -0
- package/dist/domain/errors/execution-error.js +86 -0
- package/dist/domain/errors/execution-error.js.map +1 -0
- package/dist/domain/errors/index.d.ts +14 -0
- package/dist/domain/errors/index.d.ts.map +1 -0
- package/dist/domain/errors/index.js +26 -0
- package/dist/domain/errors/index.js.map +1 -0
- package/dist/domain/errors/limit-exceeded.d.ts +38 -0
- package/dist/domain/errors/limit-exceeded.d.ts.map +1 -0
- package/dist/domain/errors/limit-exceeded.js +71 -0
- package/dist/domain/errors/limit-exceeded.js.map +1 -0
- package/dist/domain/errors/llm-error.d.ts +60 -0
- package/dist/domain/errors/llm-error.d.ts.map +1 -0
- package/dist/domain/errors/llm-error.js +92 -0
- package/dist/domain/errors/llm-error.js.map +1 -0
- package/dist/domain/errors/validation-error.d.ts +58 -0
- package/dist/domain/errors/validation-error.d.ts.map +1 -0
- package/dist/domain/errors/validation-error.js +81 -0
- package/dist/domain/errors/validation-error.js.map +1 -0
- package/dist/domain/interfaces/code-executor.d.ts +98 -0
- package/dist/domain/interfaces/code-executor.d.ts.map +1 -0
- package/dist/domain/interfaces/code-executor.js +2 -0
- package/dist/domain/interfaces/code-executor.js.map +1 -0
- package/dist/domain/interfaces/event-emitter.d.ts +137 -0
- package/dist/domain/interfaces/event-emitter.d.ts.map +1 -0
- package/dist/domain/interfaces/event-emitter.js +2 -0
- package/dist/domain/interfaces/event-emitter.js.map +1 -0
- package/dist/domain/interfaces/index.d.ts +5 -0
- package/dist/domain/interfaces/index.d.ts.map +1 -0
- package/dist/domain/interfaces/index.js +2 -0
- package/dist/domain/interfaces/index.js.map +1 -0
- package/dist/domain/interfaces/llm-provider.d.ts +64 -0
- package/dist/domain/interfaces/llm-provider.d.ts.map +1 -0
- package/dist/domain/interfaces/llm-provider.js +2 -0
- package/dist/domain/interfaces/llm-provider.js.map +1 -0
- package/dist/domain/interfaces/session-store.d.ts +65 -0
- package/dist/domain/interfaces/session-store.d.ts.map +1 -0
- package/dist/domain/interfaces/session-store.js +2 -0
- package/dist/domain/interfaces/session-store.js.map +1 -0
- package/dist/domain/services/context-chunker.d.ts +43 -0
- package/dist/domain/services/context-chunker.d.ts.map +1 -0
- package/dist/domain/services/context-chunker.js +152 -0
- package/dist/domain/services/context-chunker.js.map +1 -0
- package/dist/domain/services/cost-calculator.d.ts +63 -0
- package/dist/domain/services/cost-calculator.d.ts.map +1 -0
- package/dist/domain/services/cost-calculator.js +121 -0
- package/dist/domain/services/cost-calculator.js.map +1 -0
- package/dist/domain/services/index.d.ts +5 -0
- package/dist/domain/services/index.d.ts.map +1 -0
- package/dist/domain/services/index.js +9 -0
- package/dist/domain/services/index.js.map +1 -0
- package/dist/domain/services/limit-checker.d.ts +54 -0
- package/dist/domain/services/limit-checker.d.ts.map +1 -0
- package/dist/domain/services/limit-checker.js +146 -0
- package/dist/domain/services/limit-checker.js.map +1 -0
- package/dist/domain/services/result-aggregator.d.ts +49 -0
- package/dist/domain/services/result-aggregator.d.ts.map +1 -0
- package/dist/domain/services/result-aggregator.js +131 -0
- package/dist/domain/services/result-aggregator.js.map +1 -0
- package/dist/domain/types/config.d.ts +41 -0
- package/dist/domain/types/config.d.ts.map +1 -0
- package/dist/domain/types/config.js +22 -0
- package/dist/domain/types/config.js.map +1 -0
- package/dist/domain/types/context.d.ts +64 -0
- package/dist/domain/types/context.d.ts.map +1 -0
- package/dist/domain/types/context.js +20 -0
- package/dist/domain/types/context.js.map +1 -0
- package/dist/domain/types/index.d.ts +5 -0
- package/dist/domain/types/index.d.ts.map +1 -0
- package/dist/domain/types/index.js +9 -0
- package/dist/domain/types/index.js.map +1 -0
- package/dist/domain/types/result.d.ts +137 -0
- package/dist/domain/types/result.d.ts.map +1 -0
- package/dist/domain/types/result.js +27 -0
- package/dist/domain/types/result.js.map +1 -0
- package/dist/domain/types/session.d.ts +74 -0
- package/dist/domain/types/session.d.ts.map +1 -0
- package/dist/domain/types/session.js +31 -0
- package/dist/domain/types/session.js.map +1 -0
- package/dist/factory/create-rlm.d.ts +77 -0
- package/dist/factory/create-rlm.d.ts.map +1 -0
- package/dist/factory/create-rlm.js +82 -0
- package/dist/factory/create-rlm.js.map +1 -0
- package/dist/factory/default-config.d.ts +27 -0
- package/dist/factory/default-config.d.ts.map +1 -0
- package/dist/factory/default-config.js +98 -0
- package/dist/factory/default-config.js.map +1 -0
- package/dist/factory/index.d.ts +3 -0
- package/dist/factory/index.d.ts.map +1 -0
- package/dist/factory/index.js +3 -0
- package/dist/factory/index.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/infrastructure/events/event-types.d.ts +35 -0
- package/dist/infrastructure/events/event-types.d.ts.map +1 -0
- package/dist/infrastructure/events/event-types.js +44 -0
- package/dist/infrastructure/events/event-types.js.map +1 -0
- package/dist/infrastructure/events/index.d.ts +3 -0
- package/dist/infrastructure/events/index.d.ts.map +1 -0
- package/dist/infrastructure/events/index.js +3 -0
- package/dist/infrastructure/events/index.js.map +1 -0
- package/dist/infrastructure/events/node-emitter.d.ts +72 -0
- package/dist/infrastructure/events/node-emitter.d.ts.map +1 -0
- package/dist/infrastructure/events/node-emitter.js +125 -0
- package/dist/infrastructure/events/node-emitter.js.map +1 -0
- package/dist/infrastructure/llm/index.d.ts +3 -0
- package/dist/infrastructure/llm/index.d.ts.map +1 -0
- package/dist/infrastructure/llm/index.js +3 -0
- package/dist/infrastructure/llm/index.js.map +1 -0
- package/dist/infrastructure/llm/openrouter-provider.d.ts +35 -0
- package/dist/infrastructure/llm/openrouter-provider.d.ts.map +1 -0
- package/dist/infrastructure/llm/openrouter-provider.js +158 -0
- package/dist/infrastructure/llm/openrouter-provider.js.map +1 -0
- package/dist/infrastructure/llm/prompts/code-gen-prompt.d.ts +21 -0
- package/dist/infrastructure/llm/prompts/code-gen-prompt.d.ts.map +1 -0
- package/dist/infrastructure/llm/prompts/code-gen-prompt.js +78 -0
- package/dist/infrastructure/llm/prompts/code-gen-prompt.js.map +1 -0
- package/dist/infrastructure/llm/prompts/error-recovery-prompt.d.ts +24 -0
- package/dist/infrastructure/llm/prompts/error-recovery-prompt.d.ts.map +1 -0
- package/dist/infrastructure/llm/prompts/error-recovery-prompt.js +70 -0
- package/dist/infrastructure/llm/prompts/error-recovery-prompt.js.map +1 -0
- package/dist/infrastructure/llm/prompts/index.d.ts +4 -0
- package/dist/infrastructure/llm/prompts/index.d.ts.map +1 -0
- package/dist/infrastructure/llm/prompts/index.js +4 -0
- package/dist/infrastructure/llm/prompts/index.js.map +1 -0
- package/dist/infrastructure/llm/prompts/system-prompt.d.ts +12 -0
- package/dist/infrastructure/llm/prompts/system-prompt.d.ts.map +1 -0
- package/dist/infrastructure/llm/prompts/system-prompt.js +96 -0
- package/dist/infrastructure/llm/prompts/system-prompt.js.map +1 -0
- package/dist/infrastructure/persistence/index.d.ts +3 -0
- package/dist/infrastructure/persistence/index.d.ts.map +1 -0
- package/dist/infrastructure/persistence/index.js +3 -0
- package/dist/infrastructure/persistence/index.js.map +1 -0
- package/dist/infrastructure/persistence/memory-store.d.ts +24 -0
- package/dist/infrastructure/persistence/memory-store.d.ts.map +1 -0
- package/dist/infrastructure/persistence/memory-store.js +71 -0
- package/dist/infrastructure/persistence/memory-store.js.map +1 -0
- package/dist/infrastructure/persistence/schema.d.ts +120 -0
- package/dist/infrastructure/persistence/schema.d.ts.map +1 -0
- package/dist/infrastructure/persistence/schema.js +130 -0
- package/dist/infrastructure/persistence/schema.js.map +1 -0
- package/dist/infrastructure/sandbox/ast-validator.d.ts +23 -0
- package/dist/infrastructure/sandbox/ast-validator.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/ast-validator.js +249 -0
- package/dist/infrastructure/sandbox/ast-validator.js.map +1 -0
- package/dist/infrastructure/sandbox/index.d.ts +4 -0
- package/dist/infrastructure/sandbox/index.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/index.js +4 -0
- package/dist/infrastructure/sandbox/index.js.map +1 -0
- package/dist/infrastructure/sandbox/prelude/rlm_prelude.py +376 -0
- package/dist/infrastructure/sandbox/process-manager.d.ts +98 -0
- package/dist/infrastructure/sandbox/process-manager.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/process-manager.js +186 -0
- package/dist/infrastructure/sandbox/process-manager.js.map +1 -0
- package/dist/infrastructure/sandbox/python-executor.d.ts +29 -0
- package/dist/infrastructure/sandbox/python-executor.d.ts.map +1 -0
- package/dist/infrastructure/sandbox/python-executor.js +182 -0
- package/dist/infrastructure/sandbox/python-executor.js.map +1 -0
- package/package.json +65 -0
- package/src/infrastructure/sandbox/prelude/rlm_prelude.py +376 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { DEFAULT_CONFIG } from '../domain/types/config.js';
|
|
2
|
+
/**
|
|
3
|
+
* Environment variable names for configuration
|
|
4
|
+
*/
|
|
5
|
+
export const ENV_VARS = {
|
|
6
|
+
OPENROUTER_API_KEY: 'OPENROUTER_API_KEY',
|
|
7
|
+
RLM_MODEL: 'RLM_MODEL',
|
|
8
|
+
RLM_MAX_DEPTH: 'RLM_MAX_DEPTH',
|
|
9
|
+
RLM_MAX_COST_USD: 'RLM_MAX_COST_USD',
|
|
10
|
+
RLM_MAX_TOKENS: 'RLM_MAX_TOKENS',
|
|
11
|
+
RLM_TIMEOUT_SECONDS: 'RLM_TIMEOUT_SECONDS',
|
|
12
|
+
RLM_SANDBOX_MODE: 'RLM_SANDBOX_MODE',
|
|
13
|
+
RLM_TEMPERATURE: 'RLM_TEMPERATURE',
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Load configuration from environment variables
|
|
17
|
+
*/
|
|
18
|
+
export function loadConfigFromEnv() {
|
|
19
|
+
const config = {};
|
|
20
|
+
const model = process.env[ENV_VARS.RLM_MODEL];
|
|
21
|
+
if (model) {
|
|
22
|
+
config.model = model;
|
|
23
|
+
}
|
|
24
|
+
const maxDepth = process.env[ENV_VARS.RLM_MAX_DEPTH];
|
|
25
|
+
if (maxDepth) {
|
|
26
|
+
const parsed = parseInt(maxDepth, 10);
|
|
27
|
+
if (!isNaN(parsed) && parsed > 0 && parsed <= 10) {
|
|
28
|
+
config.maxRecursionDepth = parsed;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const maxCost = process.env[ENV_VARS.RLM_MAX_COST_USD];
|
|
32
|
+
if (maxCost) {
|
|
33
|
+
const parsed = parseFloat(maxCost);
|
|
34
|
+
if (!isNaN(parsed) && parsed > 0) {
|
|
35
|
+
config.maxCostUsd = parsed;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const maxTokens = process.env[ENV_VARS.RLM_MAX_TOKENS];
|
|
39
|
+
if (maxTokens) {
|
|
40
|
+
const parsed = parseInt(maxTokens, 10);
|
|
41
|
+
if (!isNaN(parsed) && parsed > 0) {
|
|
42
|
+
config.maxTokens = parsed;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const timeout = process.env[ENV_VARS.RLM_TIMEOUT_SECONDS];
|
|
46
|
+
if (timeout) {
|
|
47
|
+
const parsed = parseInt(timeout, 10);
|
|
48
|
+
if (!isNaN(parsed) && parsed > 0) {
|
|
49
|
+
config.timeoutMs = parsed * 1000;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const sandboxMode = process.env[ENV_VARS.RLM_SANDBOX_MODE];
|
|
53
|
+
if (sandboxMode === 'strict' || sandboxMode === 'permissive' || sandboxMode === 'disabled') {
|
|
54
|
+
config.sandboxMode = sandboxMode;
|
|
55
|
+
}
|
|
56
|
+
const temperature = process.env[ENV_VARS.RLM_TEMPERATURE];
|
|
57
|
+
if (temperature) {
|
|
58
|
+
const parsed = parseFloat(temperature);
|
|
59
|
+
if (!isNaN(parsed) && parsed >= 0 && parsed <= 1) {
|
|
60
|
+
config.temperature = parsed;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return config;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Resolve configuration with defaults and environment
|
|
67
|
+
*/
|
|
68
|
+
export function resolveConfig(userConfig, includeEnv = true) {
|
|
69
|
+
const envConfig = includeEnv ? loadConfigFromEnv() : {};
|
|
70
|
+
return {
|
|
71
|
+
...DEFAULT_CONFIG,
|
|
72
|
+
...envConfig,
|
|
73
|
+
...userConfig,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Validate configuration values
|
|
78
|
+
*/
|
|
79
|
+
export function validateConfig(config) {
|
|
80
|
+
const errors = [];
|
|
81
|
+
if (config.maxRecursionDepth < 1 || config.maxRecursionDepth > 10) {
|
|
82
|
+
errors.push('maxRecursionDepth must be between 1 and 10');
|
|
83
|
+
}
|
|
84
|
+
if (config.maxTokens < 1000) {
|
|
85
|
+
errors.push('maxTokens must be at least 1000');
|
|
86
|
+
}
|
|
87
|
+
if (config.maxCostUsd < 0) {
|
|
88
|
+
errors.push('maxCostUsd must be non-negative');
|
|
89
|
+
}
|
|
90
|
+
if (config.timeoutMs < 1000) {
|
|
91
|
+
errors.push('timeoutMs must be at least 1000 (1 second)');
|
|
92
|
+
}
|
|
93
|
+
if (config.temperature < 0 || config.temperature > 1) {
|
|
94
|
+
errors.push('temperature must be between 0 and 1');
|
|
95
|
+
}
|
|
96
|
+
return errors;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=default-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-config.js","sourceRoot":"","sources":["../../src/factory/default-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAyB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,qBAAqB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @cloudwarriors-ai/rlm
|
|
3
|
+
*
|
|
4
|
+
* Recursive Language Model - Process massive contexts through recursive LLM decomposition
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { createRLM } from '@cloudwarriors-ai/rlm';
|
|
9
|
+
*
|
|
10
|
+
* const rlm = createRLM({
|
|
11
|
+
* apiKey: process.env.OPENROUTER_API_KEY,
|
|
12
|
+
* });
|
|
13
|
+
*
|
|
14
|
+
* const result = await rlm.query(
|
|
15
|
+
* fs.readFileSync('./massive-codebase.txt', 'utf-8'),
|
|
16
|
+
* 'Find all security vulnerabilities'
|
|
17
|
+
* );
|
|
18
|
+
*
|
|
19
|
+
* console.log(result.answer);
|
|
20
|
+
* console.log(`Cost: $${result.usage.costUsd.toFixed(4)}`);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export { createRLM, type CreateRLMOptions } from './factory/create-rlm.js';
|
|
24
|
+
export { type RLMConfig, type RLMConfigInput, type SandboxMode, DEFAULT_CONFIG, createConfig, } from './domain/types/config.js';
|
|
25
|
+
export { type ContextInput, type ContextVariable, type ContextMetadata, type ContextSource, type ContextChunk, } from './domain/types/context.js';
|
|
26
|
+
export { type RLMResult, type ResourceUsage, type TokenUsage, type ExecutionTrace, type ExecutionStep, type RecursiveCallResult, } from './domain/types/result.js';
|
|
27
|
+
export { type RLMSession, type SessionStatus, type SessionState, } from './domain/types/session.js';
|
|
28
|
+
export { type ILLMProvider, type ICodeExecutor, type ISessionStore, type IEventEmitter, type Message, type GenerateOptions, type LLMResponse, type ExecutionContext, type ExecutionResult, type SessionFilter, type SessionPatch, type RLMEvent, type EventHandler, } from './domain/interfaces/index.js';
|
|
29
|
+
export { RLMEventTypes, type RLMEventType } from './infrastructure/events/event-types.js';
|
|
30
|
+
export { type RLMSessionRow, type RLMCallRow, CREATE_TABLES_SQL, } from './infrastructure/persistence/schema.js';
|
|
31
|
+
export { RLMError, LimitExceededError, ExecutionError, ValidationError, ConfigurationError, LLMError, RateLimitError, AuthenticationError, isRLMError, isRecoverableError, } from './domain/errors/index.js';
|
|
32
|
+
export { RLMService, type RLMServiceOptions } from './application/rlm-service.js';
|
|
33
|
+
export { OpenRouterProvider, type OpenRouterConfig } from './infrastructure/llm/openrouter-provider.js';
|
|
34
|
+
export { PythonExecutor, type PythonExecutorConfig } from './infrastructure/sandbox/python-executor.js';
|
|
35
|
+
export { MemorySessionStore } from './infrastructure/persistence/memory-store.js';
|
|
36
|
+
export { NodeEventEmitter, NoopEventEmitter } from './infrastructure/events/node-emitter.js';
|
|
37
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3E,OAAO,EACL,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,cAAc,EACd,YAAY,GACb,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,mBAAmB,GACzB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,GAClB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAG1F,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,iBAAiB,GAClB,MAAM,wCAAwC,CAAC;AAGhD,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGlF,OAAO,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @cloudwarriors-ai/rlm
|
|
3
|
+
*
|
|
4
|
+
* Recursive Language Model - Process massive contexts through recursive LLM decomposition
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { createRLM } from '@cloudwarriors-ai/rlm';
|
|
9
|
+
*
|
|
10
|
+
* const rlm = createRLM({
|
|
11
|
+
* apiKey: process.env.OPENROUTER_API_KEY,
|
|
12
|
+
* });
|
|
13
|
+
*
|
|
14
|
+
* const result = await rlm.query(
|
|
15
|
+
* fs.readFileSync('./massive-codebase.txt', 'utf-8'),
|
|
16
|
+
* 'Find all security vulnerabilities'
|
|
17
|
+
* );
|
|
18
|
+
*
|
|
19
|
+
* console.log(result.answer);
|
|
20
|
+
* console.log(`Cost: $${result.usage.costUsd.toFixed(4)}`);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
// Factory function (main entry point)
|
|
24
|
+
export { createRLM } from './factory/create-rlm.js';
|
|
25
|
+
// Configuration
|
|
26
|
+
export { DEFAULT_CONFIG, createConfig, } from './domain/types/config.js';
|
|
27
|
+
// Event types
|
|
28
|
+
export { RLMEventTypes } from './infrastructure/events/event-types.js';
|
|
29
|
+
// Database schema (for Hermes integration)
|
|
30
|
+
export { CREATE_TABLES_SQL, } from './infrastructure/persistence/schema.js';
|
|
31
|
+
// Errors
|
|
32
|
+
export { RLMError, LimitExceededError, ExecutionError, ValidationError, ConfigurationError, LLMError, RateLimitError, AuthenticationError, isRLMError, isRecoverableError, } from './domain/errors/index.js';
|
|
33
|
+
// Service class (for advanced usage)
|
|
34
|
+
export { RLMService } from './application/rlm-service.js';
|
|
35
|
+
// Infrastructure components (for custom assembly)
|
|
36
|
+
export { OpenRouterProvider } from './infrastructure/llm/openrouter-provider.js';
|
|
37
|
+
export { PythonExecutor } from './infrastructure/sandbox/python-executor.js';
|
|
38
|
+
export { MemorySessionStore } from './infrastructure/persistence/memory-store.js';
|
|
39
|
+
export { NodeEventEmitter, NoopEventEmitter } from './infrastructure/events/node-emitter.js';
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAyB,MAAM,yBAAyB,CAAC;AAE3E,gBAAgB;AAChB,OAAO,EAIL,cAAc,EACd,YAAY,GACb,MAAM,0BAA0B,CAAC;AA6ClC,cAAc;AACd,OAAO,EAAE,aAAa,EAAqB,MAAM,wCAAwC,CAAC;AAE1F,2CAA2C;AAC3C,OAAO,EAGL,iBAAiB,GAClB,MAAM,wCAAwC,CAAC;AAEhD,SAAS;AACT,OAAO,EACL,QAAQ,EACR,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,qCAAqC;AACrC,OAAO,EAAE,UAAU,EAA0B,MAAM,8BAA8B,CAAC;AAElF,kDAAkD;AAClD,OAAO,EAAE,kBAAkB,EAAyB,MAAM,6CAA6C,CAAC;AACxG,OAAO,EAAE,cAAc,EAA6B,MAAM,6CAA6C,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event type constants for RLM
|
|
3
|
+
*/
|
|
4
|
+
export declare const RLMEventTypes: {
|
|
5
|
+
readonly SESSION_STARTED: "rlm.session.started";
|
|
6
|
+
readonly SESSION_COMPLETED: "rlm.session.completed";
|
|
7
|
+
readonly SESSION_FAILED: "rlm.session.failed";
|
|
8
|
+
readonly SESSION_CANCELLED: "rlm.session.cancelled";
|
|
9
|
+
readonly LLM_CALL_STARTED: "rlm.llm.started";
|
|
10
|
+
readonly LLM_CALL_COMPLETED: "rlm.llm.completed";
|
|
11
|
+
readonly LLM_CALL_FAILED: "rlm.llm.failed";
|
|
12
|
+
readonly CODE_GENERATION_STARTED: "rlm.code.generation.started";
|
|
13
|
+
readonly CODE_GENERATION_COMPLETED: "rlm.code.generation.completed";
|
|
14
|
+
readonly CODE_EXECUTION_STARTED: "rlm.code.execution.started";
|
|
15
|
+
readonly CODE_EXECUTION_COMPLETED: "rlm.code.completed";
|
|
16
|
+
readonly CODE_EXECUTION_FAILED: "rlm.code.failed";
|
|
17
|
+
readonly RECURSIVE_CALL_STARTED: "rlm.recursive.started";
|
|
18
|
+
readonly RECURSIVE_CALL_COMPLETED: "rlm.recursive.completed";
|
|
19
|
+
readonly PROGRESS_UPDATE: "rlm.progress.update";
|
|
20
|
+
readonly LIMIT_WARNING: "rlm.limit.warning";
|
|
21
|
+
readonly LIMIT_EXCEEDED: "rlm.limit.exceeded";
|
|
22
|
+
readonly ERROR_RECOVERY_STARTED: "rlm.recovery.started";
|
|
23
|
+
readonly ERROR_RECOVERY_COMPLETED: "rlm.recovery.completed";
|
|
24
|
+
readonly ERROR_RECOVERY_FAILED: "rlm.recovery.failed";
|
|
25
|
+
};
|
|
26
|
+
export type RLMEventType = (typeof RLMEventTypes)[keyof typeof RLMEventTypes];
|
|
27
|
+
/**
|
|
28
|
+
* Get all event types as an array
|
|
29
|
+
*/
|
|
30
|
+
export declare function getAllEventTypes(): RLMEventType[];
|
|
31
|
+
/**
|
|
32
|
+
* Check if a string is a valid RLM event type
|
|
33
|
+
*/
|
|
34
|
+
export declare function isRLMEventType(type: string): type is RLMEventType;
|
|
35
|
+
//# sourceMappingURL=event-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-types.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/events/event-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;CAgChB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE9E;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,YAAY,EAAE,CAEjD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,YAAY,CAEjE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event type constants for RLM
|
|
3
|
+
*/
|
|
4
|
+
export const RLMEventTypes = {
|
|
5
|
+
// Session lifecycle
|
|
6
|
+
SESSION_STARTED: 'rlm.session.started',
|
|
7
|
+
SESSION_COMPLETED: 'rlm.session.completed',
|
|
8
|
+
SESSION_FAILED: 'rlm.session.failed',
|
|
9
|
+
SESSION_CANCELLED: 'rlm.session.cancelled',
|
|
10
|
+
// LLM calls
|
|
11
|
+
LLM_CALL_STARTED: 'rlm.llm.started',
|
|
12
|
+
LLM_CALL_COMPLETED: 'rlm.llm.completed',
|
|
13
|
+
LLM_CALL_FAILED: 'rlm.llm.failed',
|
|
14
|
+
// Code execution
|
|
15
|
+
CODE_GENERATION_STARTED: 'rlm.code.generation.started',
|
|
16
|
+
CODE_GENERATION_COMPLETED: 'rlm.code.generation.completed',
|
|
17
|
+
CODE_EXECUTION_STARTED: 'rlm.code.execution.started',
|
|
18
|
+
CODE_EXECUTION_COMPLETED: 'rlm.code.completed',
|
|
19
|
+
CODE_EXECUTION_FAILED: 'rlm.code.failed',
|
|
20
|
+
// Recursion
|
|
21
|
+
RECURSIVE_CALL_STARTED: 'rlm.recursive.started',
|
|
22
|
+
RECURSIVE_CALL_COMPLETED: 'rlm.recursive.completed',
|
|
23
|
+
// Progress & warnings
|
|
24
|
+
PROGRESS_UPDATE: 'rlm.progress.update',
|
|
25
|
+
LIMIT_WARNING: 'rlm.limit.warning',
|
|
26
|
+
LIMIT_EXCEEDED: 'rlm.limit.exceeded',
|
|
27
|
+
// Recovery
|
|
28
|
+
ERROR_RECOVERY_STARTED: 'rlm.recovery.started',
|
|
29
|
+
ERROR_RECOVERY_COMPLETED: 'rlm.recovery.completed',
|
|
30
|
+
ERROR_RECOVERY_FAILED: 'rlm.recovery.failed',
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Get all event types as an array
|
|
34
|
+
*/
|
|
35
|
+
export function getAllEventTypes() {
|
|
36
|
+
return Object.values(RLMEventTypes);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Check if a string is a valid RLM event type
|
|
40
|
+
*/
|
|
41
|
+
export function isRLMEventType(type) {
|
|
42
|
+
return Object.values(RLMEventTypes).includes(type);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=event-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-types.js","sourceRoot":"","sources":["../../../src/infrastructure/events/event-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,oBAAoB;IACpB,eAAe,EAAE,qBAAqB;IACtC,iBAAiB,EAAE,uBAAuB;IAC1C,cAAc,EAAE,oBAAoB;IACpC,iBAAiB,EAAE,uBAAuB;IAE1C,YAAY;IACZ,gBAAgB,EAAE,iBAAiB;IACnC,kBAAkB,EAAE,mBAAmB;IACvC,eAAe,EAAE,gBAAgB;IAEjC,iBAAiB;IACjB,uBAAuB,EAAE,6BAA6B;IACtD,yBAAyB,EAAE,+BAA+B;IAC1D,sBAAsB,EAAE,4BAA4B;IACpD,wBAAwB,EAAE,oBAAoB;IAC9C,qBAAqB,EAAE,iBAAiB;IAExC,YAAY;IACZ,sBAAsB,EAAE,uBAAuB;IAC/C,wBAAwB,EAAE,yBAAyB;IAEnD,sBAAsB;IACtB,eAAe,EAAE,qBAAqB;IACtC,aAAa,EAAE,mBAAmB;IAClC,cAAc,EAAE,oBAAoB;IAEpC,WAAW;IACX,sBAAsB,EAAE,sBAAsB;IAC9C,wBAAwB,EAAE,wBAAwB;IAClD,qBAAqB,EAAE,qBAAqB;CACpC,CAAC;AAIX;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAoB,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,YAAY,EACjB,gBAAgB,EAChB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAEb,gBAAgB,EAChB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import type { IEventEmitter, RLMEvent, EventHandler } from '../../domain/interfaces/event-emitter.js';
|
|
3
|
+
/**
|
|
4
|
+
* Node.js EventEmitter adapter implementing IEventEmitter
|
|
5
|
+
*/
|
|
6
|
+
export declare class NodeEventEmitter implements IEventEmitter {
|
|
7
|
+
private readonly emitter;
|
|
8
|
+
private readonly anyHandlers;
|
|
9
|
+
constructor(externalEmitter?: EventEmitter);
|
|
10
|
+
emit(event: RLMEvent): void;
|
|
11
|
+
on<T extends RLMEvent['type']>(type: T, handler: EventHandler<Extract<RLMEvent, {
|
|
12
|
+
type: T;
|
|
13
|
+
}>>): void;
|
|
14
|
+
onAny(handler: EventHandler): void;
|
|
15
|
+
off<T extends RLMEvent['type']>(type: T, handler: EventHandler<Extract<RLMEvent, {
|
|
16
|
+
type: T;
|
|
17
|
+
}>>): void;
|
|
18
|
+
offAny(handler: EventHandler): void;
|
|
19
|
+
/**
|
|
20
|
+
* Get the underlying Node.js EventEmitter
|
|
21
|
+
*/
|
|
22
|
+
getEmitter(): EventEmitter;
|
|
23
|
+
/**
|
|
24
|
+
* Remove all listeners
|
|
25
|
+
*/
|
|
26
|
+
removeAllListeners(): void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* No-op event emitter for when events aren't needed
|
|
30
|
+
*/
|
|
31
|
+
export declare class NoopEventEmitter implements IEventEmitter {
|
|
32
|
+
emit(_event: RLMEvent): void;
|
|
33
|
+
on<T extends RLMEvent['type']>(_type: T, _handler: EventHandler<Extract<RLMEvent, {
|
|
34
|
+
type: T;
|
|
35
|
+
}>>): void;
|
|
36
|
+
onAny(_handler: EventHandler): void;
|
|
37
|
+
off<T extends RLMEvent['type']>(_type: T, _handler: EventHandler<Extract<RLMEvent, {
|
|
38
|
+
type: T;
|
|
39
|
+
}>>): void;
|
|
40
|
+
offAny(_handler: EventHandler): void;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Buffering event emitter that stores events until flushed
|
|
44
|
+
*/
|
|
45
|
+
export declare class BufferingEventEmitter implements IEventEmitter {
|
|
46
|
+
private readonly buffer;
|
|
47
|
+
private readonly target;
|
|
48
|
+
private buffering;
|
|
49
|
+
constructor(target: IEventEmitter);
|
|
50
|
+
emit(event: RLMEvent): void;
|
|
51
|
+
on<T extends RLMEvent['type']>(type: T, handler: EventHandler<Extract<RLMEvent, {
|
|
52
|
+
type: T;
|
|
53
|
+
}>>): void;
|
|
54
|
+
onAny(handler: EventHandler): void;
|
|
55
|
+
off<T extends RLMEvent['type']>(type: T, handler: EventHandler<Extract<RLMEvent, {
|
|
56
|
+
type: T;
|
|
57
|
+
}>>): void;
|
|
58
|
+
offAny(handler: EventHandler): void;
|
|
59
|
+
/**
|
|
60
|
+
* Flush all buffered events to the target
|
|
61
|
+
*/
|
|
62
|
+
flush(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Clear the buffer without emitting
|
|
65
|
+
*/
|
|
66
|
+
clear(): void;
|
|
67
|
+
/**
|
|
68
|
+
* Get the number of buffered events
|
|
69
|
+
*/
|
|
70
|
+
get size(): number;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=node-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-emitter.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/events/node-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACb,MAAM,0CAA0C,CAAC;AAElD;;GAEG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgC;gBAEhD,eAAe,CAAC,EAAE,YAAY;IAO1C,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAc3B,EAAE,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAC3B,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,GACpD,IAAI;IAIP,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIlC,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAC5B,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,GACpD,IAAI;IAIP,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAInC;;OAEG;IACH,UAAU,IAAI,YAAY;IAI1B;;OAEG;IACH,kBAAkB,IAAI,IAAI;CAI3B;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IACpD,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI;IAI5B,EAAE,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAC3B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,GACrD,IAAI;IAIP,KAAK,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAInC,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAC5B,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,GACrD,IAAI;IAIP,MAAM,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;CAGrC;AAED;;GAEG;AACH,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,SAAS,CAAQ;gBAEb,MAAM,EAAE,aAAa;IAIjC,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAQ3B,EAAE,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAC3B,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,GACpD,IAAI;IAIP,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIlC,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,EAC5B,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,GACpD,IAAI;IAIP,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAInC;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
/**
|
|
3
|
+
* Node.js EventEmitter adapter implementing IEventEmitter
|
|
4
|
+
*/
|
|
5
|
+
export class NodeEventEmitter {
|
|
6
|
+
emitter;
|
|
7
|
+
anyHandlers = new Set();
|
|
8
|
+
constructor(externalEmitter) {
|
|
9
|
+
this.emitter = externalEmitter ?? new EventEmitter();
|
|
10
|
+
// Increase max listeners for heavy usage
|
|
11
|
+
this.emitter.setMaxListeners(100);
|
|
12
|
+
}
|
|
13
|
+
emit(event) {
|
|
14
|
+
// Emit to type-specific listeners
|
|
15
|
+
this.emitter.emit(event.type, event);
|
|
16
|
+
// Emit to "any" listeners
|
|
17
|
+
for (const handler of this.anyHandlers) {
|
|
18
|
+
try {
|
|
19
|
+
handler(event);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.error('Error in event handler:', error);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
on(type, handler) {
|
|
27
|
+
this.emitter.on(type, handler);
|
|
28
|
+
}
|
|
29
|
+
onAny(handler) {
|
|
30
|
+
this.anyHandlers.add(handler);
|
|
31
|
+
}
|
|
32
|
+
off(type, handler) {
|
|
33
|
+
this.emitter.off(type, handler);
|
|
34
|
+
}
|
|
35
|
+
offAny(handler) {
|
|
36
|
+
this.anyHandlers.delete(handler);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get the underlying Node.js EventEmitter
|
|
40
|
+
*/
|
|
41
|
+
getEmitter() {
|
|
42
|
+
return this.emitter;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Remove all listeners
|
|
46
|
+
*/
|
|
47
|
+
removeAllListeners() {
|
|
48
|
+
this.emitter.removeAllListeners();
|
|
49
|
+
this.anyHandlers.clear();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* No-op event emitter for when events aren't needed
|
|
54
|
+
*/
|
|
55
|
+
export class NoopEventEmitter {
|
|
56
|
+
emit(_event) {
|
|
57
|
+
// No-op
|
|
58
|
+
}
|
|
59
|
+
on(_type, _handler) {
|
|
60
|
+
// No-op
|
|
61
|
+
}
|
|
62
|
+
onAny(_handler) {
|
|
63
|
+
// No-op
|
|
64
|
+
}
|
|
65
|
+
off(_type, _handler) {
|
|
66
|
+
// No-op
|
|
67
|
+
}
|
|
68
|
+
offAny(_handler) {
|
|
69
|
+
// No-op
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Buffering event emitter that stores events until flushed
|
|
74
|
+
*/
|
|
75
|
+
export class BufferingEventEmitter {
|
|
76
|
+
buffer = [];
|
|
77
|
+
target;
|
|
78
|
+
buffering = true;
|
|
79
|
+
constructor(target) {
|
|
80
|
+
this.target = target;
|
|
81
|
+
}
|
|
82
|
+
emit(event) {
|
|
83
|
+
if (this.buffering) {
|
|
84
|
+
this.buffer.push(event);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.target.emit(event);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
on(type, handler) {
|
|
91
|
+
this.target.on(type, handler);
|
|
92
|
+
}
|
|
93
|
+
onAny(handler) {
|
|
94
|
+
this.target.onAny(handler);
|
|
95
|
+
}
|
|
96
|
+
off(type, handler) {
|
|
97
|
+
this.target.off(type, handler);
|
|
98
|
+
}
|
|
99
|
+
offAny(handler) {
|
|
100
|
+
this.target.offAny(handler);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Flush all buffered events to the target
|
|
104
|
+
*/
|
|
105
|
+
flush() {
|
|
106
|
+
this.buffering = false;
|
|
107
|
+
for (const event of this.buffer) {
|
|
108
|
+
this.target.emit(event);
|
|
109
|
+
}
|
|
110
|
+
this.buffer.length = 0;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Clear the buffer without emitting
|
|
114
|
+
*/
|
|
115
|
+
clear() {
|
|
116
|
+
this.buffer.length = 0;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Get the number of buffered events
|
|
120
|
+
*/
|
|
121
|
+
get size() {
|
|
122
|
+
return this.buffer.length;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=node-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-emitter.js","sourceRoot":"","sources":["../../../src/infrastructure/events/node-emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { OpenRouterProvider, type OpenRouterConfig } from './openrouter-provider.js';
|
|
2
|
+
export { RLM_SYSTEM_PROMPT, formatSystemPrompt, CODE_GEN_PROMPT, RECURSIVE_QUERY_PROMPT, formatCodeGenPrompt, formatRecursiveQueryPrompt, extractPythonCode, ERROR_RECOVERY_PROMPT, VALIDATION_ERROR_PROMPT, formatErrorRecoveryPrompt, formatValidationErrorPrompt, MAX_RECOVERY_ATTEMPTS, } from './prompts/index.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAErF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { OpenRouterProvider } from './openrouter-provider.js';
|
|
2
|
+
export { RLM_SYSTEM_PROMPT, formatSystemPrompt, CODE_GEN_PROMPT, RECURSIVE_QUERY_PROMPT, formatCodeGenPrompt, formatRecursiveQueryPrompt, extractPythonCode, ERROR_RECOVERY_PROMPT, VALIDATION_ERROR_PROMPT, formatErrorRecoveryPrompt, formatValidationErrorPrompt, MAX_RECOVERY_ATTEMPTS, } from './prompts/index.js';
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/llm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAyB,MAAM,0BAA0B,CAAC;AAErF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ILLMProvider, Message, GenerateOptions, LLMResponse } from '../../domain/interfaces/llm-provider.js';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for OpenRouter provider
|
|
4
|
+
*/
|
|
5
|
+
export interface OpenRouterConfig {
|
|
6
|
+
/** API key */
|
|
7
|
+
readonly apiKey: string;
|
|
8
|
+
/** Model to use */
|
|
9
|
+
readonly model: string;
|
|
10
|
+
/** Base URL (default: https://openrouter.ai/api/v1) */
|
|
11
|
+
readonly baseUrl?: string;
|
|
12
|
+
/** Site URL for OpenRouter analytics */
|
|
13
|
+
readonly siteUrl?: string;
|
|
14
|
+
/** Site name for OpenRouter analytics */
|
|
15
|
+
readonly siteName?: string;
|
|
16
|
+
/** Request timeout in ms */
|
|
17
|
+
readonly timeoutMs?: number;
|
|
18
|
+
/** Maximum retries on transient errors */
|
|
19
|
+
readonly maxRetries?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* OpenRouter LLM provider implementation
|
|
23
|
+
*/
|
|
24
|
+
export declare class OpenRouterProvider implements ILLMProvider {
|
|
25
|
+
private readonly config;
|
|
26
|
+
constructor(config: OpenRouterConfig);
|
|
27
|
+
generate(messages: readonly Message[], options?: GenerateOptions): Promise<LLMResponse>;
|
|
28
|
+
estimateTokens(text: string): number;
|
|
29
|
+
getModel(): string;
|
|
30
|
+
healthCheck(): Promise<boolean>;
|
|
31
|
+
private makeRequest;
|
|
32
|
+
private mapFinishReason;
|
|
33
|
+
private sleep;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=openrouter-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openrouter-provider.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/llm/openrouter-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,OAAO,EACP,eAAe,EACf,WAAW,EACZ,MAAM,yCAAyC,CAAC;AASjD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc;IACd,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,mBAAmB;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,uDAAuD;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,wCAAwC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,4BAA4B;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAwCD;;GAEG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;gBAExC,MAAM,EAAE,gBAAgB;IAY9B,QAAQ,CACZ,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,WAAW,CAAC;IAmDvB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMpC,QAAQ,IAAI,MAAM;IAIZ,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;YAgBvB,WAAW;IAgEzB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,KAAK;CAGd"}
|